Socket
Socket
Sign inDemoInstall

@google-cloud/text-to-speech

Package Overview
Dependencies
117
Maintainers
1
Versions
57
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.2.0 to 1.3.0

13

CHANGELOG.md

@@ -7,2 +7,15 @@ # Changelog

## [1.3.0](https://www.github.com/googleapis/nodejs-text-to-speech/compare/v1.2.0...v1.3.0) (2019-09-16)
### Bug Fixes
* **docs:** READMEs updated with new samples ([d3e09e0](https://www.github.com/googleapis/nodejs-text-to-speech/commit/d3e09e0))
* add proto field behavior options ([#265](https://www.github.com/googleapis/nodejs-text-to-speech/issues/265)) ([1f184a3](https://www.github.com/googleapis/nodejs-text-to-speech/commit/1f184a3))
### Features
* code samples for ssml addresses tutorial ([#257](https://www.github.com/googleapis/nodejs-text-to-speech/issues/257)) ([e423f2a](https://www.github.com/googleapis/nodejs-text-to-speech/commit/e423f2a))
## [1.2.0](https://www.github.com/googleapis/nodejs-text-to-speech/compare/v1.1.4...v1.2.0) (2019-09-05)

@@ -9,0 +22,0 @@

4

package.json
{
"name": "@google-cloud/text-to-speech",
"description": "Cloud Text-to-Speech API client for Node.js",
"version": "1.2.0",
"version": "1.3.0",
"license": "Apache-2.0",

@@ -46,3 +46,3 @@ "author": "Google LLC",

"eslint-config-prettier": "^6.0.0",
"eslint-plugin-node": "^9.0.0",
"eslint-plugin-node": "^10.0.0",
"eslint-plugin-prettier": "^3.0.0",

@@ -49,0 +49,0 @@ "jsdoc-fresh": "^1.0.1",

@@ -21,2 +21,6 @@ {

"TextToSpeech": {
"options": {
"(google.api.default_host)": "texttospeech.googleapis.com",
"(google.api.oauth_scopes)": "https://www.googleapis.com/auth/cloud-platform"
},
"methods": {

@@ -27,3 +31,4 @@ "ListVoices": {

"options": {
"(google.api.http).get": "/v1/voices"
"(google.api.http).get": "/v1/voices",
"(google.api.method_signature)": "language_code"
}

@@ -36,3 +41,4 @@ },

"(google.api.http).post": "/v1/text:synthesize",
"(google.api.http).body": "*"
"(google.api.http).body": "*",
"(google.api.method_signature)": "input,voice,audio_config"
}

@@ -46,6 +52,25 @@ }

"type": "string",
"id": 1
"id": 1,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
}
}
},
"SsmlVoiceGender": {
"values": {
"SSML_VOICE_GENDER_UNSPECIFIED": 0,
"MALE": 1,
"FEMALE": 2,
"NEUTRAL": 3
}
},
"AudioEncoding": {
"values": {
"AUDIO_ENCODING_UNSPECIFIED": 0,
"LINEAR16": 1,
"MP3": 2,
"OGG_OPUS": 3
}
},
"ListVoicesResponse": {

@@ -85,11 +110,20 @@ "fields": {

"type": "SynthesisInput",
"id": 1
"id": 1,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
},
"voice": {
"type": "VoiceSelectionParams",
"id": 2
"id": 2,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
},
"audioConfig": {
"type": "AudioConfig",
"id": 3
"id": 3,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
}

@@ -122,3 +156,6 @@ }

"type": "string",
"id": 1
"id": 1,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
},

@@ -139,19 +176,34 @@ "name": {

"type": "AudioEncoding",
"id": 1
"id": 1,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
},
"speakingRate": {
"type": "double",
"id": 2
"id": 2,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
},
"pitch": {
"type": "double",
"id": 3
"id": 3,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
},
"volumeGainDb": {
"type": "double",
"id": 4
"id": 4,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
},
"sampleRateHertz": {
"type": "int32",
"id": 5
"id": 5,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
},

@@ -161,3 +213,6 @@ "effectsProfileId": {

"type": "string",
"id": 6
"id": 6,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
}

@@ -173,18 +228,2 @@ }

}
},
"SsmlVoiceGender": {
"values": {
"SSML_VOICE_GENDER_UNSPECIFIED": 0,
"MALE": 1,
"FEMALE": 2,
"NEUTRAL": 3
}
},
"AudioEncoding": {
"values": {
"AUDIO_ENCODING_UNSPECIFIED": 0,
"LINEAR16": 1,
"MP3": 2,
"OGG_OPUS": 3
}
}

@@ -196,9 +235,15 @@ }

"cc_enable_arenas": true,
"csharp_namespace": "Google.Cloud.TextToSpeech.V1beta1",
"go_package": "google.golang.org/genproto/googleapis/cloud/texttospeech/v1beta1;texttospeech",
"java_multiple_files": true,
"java_outer_classname": "TextToSpeechProto",
"java_package": "com.google.cloud.texttospeech.v1beta1"
"java_package": "com.google.cloud.texttospeech.v1beta1",
"php_namespace": "Google\\Cloud\\TextToSpeech\\V1beta1"
},
"nested": {
"TextToSpeech": {
"options": {
"(google.api.default_host)": "texttospeech.googleapis.com",
"(google.api.oauth_scopes)": "https://www.googleapis.com/auth/cloud-platform"
},
"methods": {

@@ -209,3 +254,4 @@ "ListVoices": {

"options": {
"(google.api.http).get": "/v1beta1/voices"
"(google.api.http).get": "/v1beta1/voices",
"(google.api.method_signature)": "language_code"
}

@@ -218,3 +264,4 @@ },

"(google.api.http).post": "/v1beta1/text:synthesize",
"(google.api.http).body": "*"
"(google.api.http).body": "*",
"(google.api.method_signature)": "input,voice,audio_config"
}

@@ -228,6 +275,25 @@ }

"type": "string",
"id": 1
"id": 1,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
}
}
},
"SsmlVoiceGender": {
"values": {
"SSML_VOICE_GENDER_UNSPECIFIED": 0,
"MALE": 1,
"FEMALE": 2,
"NEUTRAL": 3
}
},
"AudioEncoding": {
"values": {
"AUDIO_ENCODING_UNSPECIFIED": 0,
"LINEAR16": 1,
"MP3": 2,
"OGG_OPUS": 3
}
},
"ListVoicesResponse": {

@@ -267,11 +333,20 @@ "fields": {

"type": "SynthesisInput",
"id": 1
"id": 1,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
},
"voice": {
"type": "VoiceSelectionParams",
"id": 2
"id": 2,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
},
"audioConfig": {
"type": "AudioConfig",
"id": 3
"id": 3,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
}

@@ -304,3 +379,6 @@ }

"type": "string",
"id": 1
"id": 1,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
},

@@ -321,19 +399,34 @@ "name": {

"type": "AudioEncoding",
"id": 1
"id": 1,
"options": {
"(google.api.field_behavior)": "REQUIRED"
}
},
"speakingRate": {
"type": "double",
"id": 2
"id": 2,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
},
"pitch": {
"type": "double",
"id": 3
"id": 3,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
},
"volumeGainDb": {
"type": "double",
"id": 4
"id": 4,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
},
"sampleRateHertz": {
"type": "int32",
"id": 5
"id": 5,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
},

@@ -343,3 +436,6 @@ "effectsProfileId": {

"type": "string",
"id": 6
"id": 6,
"options": {
"(google.api.field_behavior)": "OPTIONAL"
}
}

@@ -355,18 +451,2 @@ }

}
},
"SsmlVoiceGender": {
"values": {
"SSML_VOICE_GENDER_UNSPECIFIED": 0,
"MALE": 1,
"FEMALE": 2,
"NEUTRAL": 3
}
},
"AudioEncoding": {
"values": {
"AUDIO_ENCODING_UNSPECIFIED": 0,
"LINEAR16": 1,
"MP3": 2,
"OGG_OPUS": 3
}
}

@@ -383,3 +463,3 @@ }

"java_multiple_files": true,
"java_outer_classname": "HttpProto",
"java_outer_classname": "FieldBehaviorProto",
"java_package": "com.google.api",

@@ -476,2 +556,34 @@ "objc_class_prefix": "GAPI",

}
},
"methodSignature": {
"rule": "repeated",
"type": "string",
"id": 1051,
"extend": "google.protobuf.MethodOptions"
},
"defaultHost": {
"type": "string",
"id": 1049,
"extend": "google.protobuf.ServiceOptions"
},
"oauthScopes": {
"type": "string",
"id": 1050,
"extend": "google.protobuf.ServiceOptions"
},
"fieldBehavior": {
"rule": "repeated",
"type": "google.api.FieldBehavior",
"id": 1052,
"extend": "google.protobuf.FieldOptions"
},
"FieldBehavior": {
"values": {
"FIELD_BEHAVIOR_UNSPECIFIED": 0,
"OPTIONAL": 1,
"REQUIRED": 2,
"OUTPUT_ONLY": 3,
"INPUT_ONLY": 4,
"IMMUTABLE": 5
}
}

@@ -478,0 +590,0 @@ }

@@ -102,2 +102,3 @@ [//]: # "This README.md file is auto-generated, all changes to this file will be lost."

| Quickstart | [source code](https://github.com/googleapis/nodejs-text-to-speech/blob/master/samples/quickstart.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-text-to-speech&page=editor&open_in_editor=samples/quickstart.js,samples/README.md) |
| Ssml Addresses | [source code](https://github.com/googleapis/nodejs-text-to-speech/blob/master/samples/ssmlAddresses.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-text-to-speech&page=editor&open_in_editor=samples/ssmlAddresses.js,samples/README.md) |
| Synthesize | [source code](https://github.com/googleapis/nodejs-text-to-speech/blob/master/samples/synthesize.js) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/nodejs-text-to-speech&page=editor&open_in_editor=samples/synthesize.js,samples/README.md) |

@@ -104,0 +105,0 @@

@@ -22,3 +22,3 @@ // Copyright 2019 Google LLC

* @property {string} languageCode
* Optional (but recommended)
* Optional. Recommended.
* [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If

@@ -136,5 +136,5 @@ * specified, the ListVoices call will only return voices that can be used to

* @property {string} languageCode
* The language (and optionally also the region) of the voice expressed as a
* Required. The language (and potentially also the region) of the voice expressed as a
* [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag, e.g.
* "en-US". Required. This should not include a script tag (e.g. use
* "en-US". This should not include a script tag (e.g. use
* "cmn-cn" rather than "cmn-Hant-cn"), because the script will be inferred

@@ -150,7 +150,7 @@ * from the input provided in the SynthesisInput. The TTS service

* @property {string} name
* The name of the voice. Optional; if not set, the service will choose a
* The name of the voice. If not set, the service will choose a
* voice based on the other parameters such as language_code and gender.
*
* @property {number} ssmlGender
* The preferred gender of the voice. Optional; if not set, the service will
* The preferred gender of the voice. If not set, the service will
* choose a voice based on the other parameters such as language_code and

@@ -175,3 +175,3 @@ * name. Note that this is only a preference, not requirement; if a

* @property {number} audioEncoding
* Required. The format of the requested audio byte stream.
* Required. The format of the audio byte stream.
*

@@ -181,39 +181,39 @@ * The number should be among the values of [AudioEncoding]{@link google.cloud.texttospeech.v1.AudioEncoding}

* @property {number} speakingRate
* Optional speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal
* native speed supported by the specific voice. 2.0 is twice as fast, and
* 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any
* other values < 0.25 or > 4.0 will return an error.
* Optional. Input only. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is
* the normal native speed supported by the specific voice. 2.0 is twice as
* fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0
* speed. Any other values < 0.25 or > 4.0 will return an error.
*
* @property {number} pitch
* Optional speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20
* semitones from the original pitch. -20 means decrease 20 semitones from the
* original pitch.
* Optional. Input only. Speaking pitch, in the range [-20.0, 20.0]. 20 means
* increase 20 semitones from the original pitch. -20 means decrease 20
* semitones from the original pitch.
*
* @property {number} volumeGainDb
* Optional volume gain (in dB) of the normal native volume supported by the
* specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of
* 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)
* will play at approximately half the amplitude of the normal native signal
* amplitude. A value of +6.0 (dB) will play at approximately twice the
* amplitude of the normal native signal amplitude. Strongly recommend not to
* exceed +10 (dB) as there's usually no effective increase in loudness for
* any value greater than that.
* Optional. Input only. Volume gain (in dB) of the normal native volume
* supported by the specific voice, in the range [-96.0, 16.0]. If unset, or
* set to a value of 0.0 (dB), will play at normal native signal amplitude. A
* value of -6.0 (dB) will play at approximately half the amplitude of the
* normal native signal amplitude. A value of +6.0 (dB) will play at
* approximately twice the amplitude of the normal native signal amplitude.
* Strongly recommend not to exceed +10 (dB) as there's usually no effective
* increase in loudness for any value greater than that.
*
* @property {number} sampleRateHertz
* The synthesis sample rate (in hertz) for this audio. Optional. If this is
* different from the voice's natural sample rate, then the synthesizer will
* honor this request by converting to the desired sample rate (which might
* result in worse audio quality), unless the specified sample rate is not
* supported for the encoding chosen, in which case it will fail the request
* and return google.rpc.Code.INVALID_ARGUMENT.
* Optional. The synthesis sample rate (in hertz) for this audio. When this is
* specified in SynthesizeSpeechRequest, if this is different from the voice's
* natural sample rate, then the synthesizer will honor this request by
* converting to the desired sample rate (which might result in worse audio
* quality), unless the specified sample rate is not supported for the
* encoding chosen, in which case it will fail the request and return
* google.rpc.Code.INVALID_ARGUMENT.
*
* @property {string[]} effectsProfileId
* An identifier which selects 'audio effects' profiles that are applied on
* (post synthesized) text to speech.
* Effects are applied on top of each other in the order they are given.
* See
* Optional. Input only. An identifier which selects 'audio effects' profiles
* that are applied on (post synthesized) text to speech. Effects are applied
* on top of each other in the order they are given. See
* [audio
* profiles](https://cloud.google.com/text-to-speech/docs/audio-profiles) for
* current supported profile ids.
*
* [audio-profiles](https://cloud.google.com/text-to-speech/docs/audio-profiles)
* for current supported profile ids.
*
* @typedef AudioConfig

@@ -232,3 +232,4 @@ * @memberof google.cloud.texttospeech.v1

* The audio data bytes encoded as specified in the request, including the
* header (For LINEAR16 audio, we include the WAV header). Note: as
* header for encodings that are wrapped in containers (e.g. MP3, OGG_OPUS).
* For LINEAR16 audio, we include the WAV header. Note: as
* with all bytes fields, protobuffers use a pure binary representation,

@@ -266,3 +267,3 @@ * whereas JSON representations use base64.

/**
* MP3 audio.
* MP3 audio at 32kbps.
*/

@@ -269,0 +270,0 @@ MP3: 2,

@@ -24,3 +24,3 @@ {

"ListVoices": {
"timeout_millis": 30000,
"timeout_millis": 60000,
"retry_codes_name": "idempotent",

@@ -31,3 +31,3 @@ "retry_params_name": "default"

"timeout_millis": 60000,
"retry_codes_name": "idempotent",
"retry_codes_name": "non_idempotent",
"retry_params_name": "default"

@@ -34,0 +34,0 @@ }

@@ -215,3 +215,3 @@ // Copyright 2019 Google LLC

* @param {string} [request.languageCode]
* Optional (but recommended)
* Optional. Recommended.
* [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If

@@ -218,0 +218,0 @@ * specified, the ListVoices call will only return voices that can be used to

@@ -22,3 +22,3 @@ // Copyright 2019 Google LLC

* @property {string} languageCode
* Optional (but recommended)
* Optional. Recommended.
* [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If

@@ -136,5 +136,5 @@ * specified, the ListVoices call will only return voices that can be used to

* @property {string} languageCode
* The language (and optionally also the region) of the voice expressed as a
* Required. The language (and potentially also the region) of the voice expressed as a
* [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag, e.g.
* "en-US". Required. This should not include a script tag (e.g. use
* "en-US". This should not include a script tag (e.g. use
* "cmn-cn" rather than "cmn-Hant-cn"), because the script will be inferred

@@ -150,7 +150,7 @@ * from the input provided in the SynthesisInput. The TTS service

* @property {string} name
* The name of the voice. Optional; if not set, the service will choose a
* The name of the voice. If not set, the service will choose a
* voice based on the other parameters such as language_code and gender.
*
* @property {number} ssmlGender
* The preferred gender of the voice. Optional; if not set, the service will
* The preferred gender of the voice. If not set, the service will
* choose a voice based on the other parameters such as language_code and

@@ -175,3 +175,3 @@ * name. Note that this is only a preference, not requirement; if a

* @property {number} audioEncoding
* Required. The format of the requested audio byte stream.
* Required. The format of the audio byte stream.
*

@@ -181,34 +181,38 @@ * The number should be among the values of [AudioEncoding]{@link google.cloud.texttospeech.v1beta1.AudioEncoding}

* @property {number} speakingRate
* Optional speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal
* native speed supported by the specific voice. 2.0 is twice as fast, and
* 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any
* other values < 0.25 or > 4.0 will return an error.
* Optional. Input only. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is
* the normal native speed supported by the specific voice. 2.0 is twice as
* fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0
* speed. Any other values < 0.25 or > 4.0 will return an error.
*
* @property {number} pitch
* Optional speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20
* semitones from the original pitch. -20 means decrease 20 semitones from the
* original pitch.
* Optional. Input only. Speaking pitch, in the range [-20.0, 20.0]. 20 means
* increase 20 semitones from the original pitch. -20 means decrease 20
* semitones from the original pitch.
*
* @property {number} volumeGainDb
* Optional volume gain (in dB) of the normal native volume supported by the
* specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of
* 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)
* will play at approximately half the amplitude of the normal native signal
* amplitude. A value of +6.0 (dB) will play at approximately twice the
* amplitude of the normal native signal amplitude. Strongly recommend not to
* exceed +10 (dB) as there's usually no effective increase in loudness for
* any value greater than that.
* Optional. Input only. Volume gain (in dB) of the normal native volume
* supported by the specific voice, in the range [-96.0, 16.0]. If unset, or
* set to a value of 0.0 (dB), will play at normal native signal amplitude. A
* value of -6.0 (dB) will play at approximately half the amplitude of the
* normal native signal amplitude. A value of +6.0 (dB) will play at
* approximately twice the amplitude of the normal native signal amplitude.
* Strongly recommend not to exceed +10 (dB) as there's usually no effective
* increase in loudness for any value greater than that.
*
* @property {number} sampleRateHertz
* The synthesis sample rate (in hertz) for this audio. Optional. If this is
* different from the voice's natural sample rate, then the synthesizer will
* honor this request by converting to the desired sample rate (which might
* result in worse audio quality), unless the specified sample rate is not
* supported for the encoding chosen, in which case it will fail the request
* and return google.rpc.Code.INVALID_ARGUMENT.
* Optional. The synthesis sample rate (in hertz) for this audio. When this is
* specified in SynthesizeSpeechRequest, if this is different from the voice's
* natural sample rate, then the synthesizer will honor this request by
* converting to the desired sample rate (which might result in worse audio
* quality), unless the specified sample rate is not supported for the
* encoding chosen, in which case it will fail the request and return
* google.rpc.Code.INVALID_ARGUMENT.
*
* @property {string[]} effectsProfileId
* An identifier which selects 'audio effects' profiles that are applied on
* (post synthesized) text to speech.
* Effects are applied on top of each other in the order they are given.
* Optional. Input only. An identifier which selects 'audio effects' profiles
* that are applied on (post synthesized) text to speech. Effects are applied
* on top of each other in the order they are given. See
* [audio
* profiles](https://cloud.google.com/text-to-speech/docs/audio-profiles) for
* current supported profile ids.
*

@@ -228,3 +232,4 @@ * @typedef AudioConfig

* The audio data bytes encoded as specified in the request, including the
* header (For LINEAR16 audio, we include the WAV header). Note: as
* header for encodings that are wrapped in containers (e.g. MP3, OGG_OPUS).
* For LINEAR16 audio, we include the WAV header. Note: as
* with all bytes fields, protobuffers use a pure binary representation,

@@ -262,3 +267,3 @@ * whereas JSON representations use base64.

/**
* MP3 audio.
* MP3 audio at 32kbps.
*/

@@ -265,0 +270,0 @@ MP3: 2,

@@ -24,3 +24,3 @@ {

"ListVoices": {
"timeout_millis": 30000,
"timeout_millis": 60000,
"retry_codes_name": "idempotent",

@@ -31,3 +31,3 @@ "retry_params_name": "default"

"timeout_millis": 60000,
"retry_codes_name": "idempotent",
"retry_codes_name": "non_idempotent",
"retry_params_name": "default"

@@ -34,0 +34,0 @@ }

@@ -210,4 +210,3 @@ // Copyright 2019 Google LLC

/**
* Returns a list of Voice
* supported for synthesis.
* Returns a list of Voice supported for synthesis.
*

@@ -217,3 +216,3 @@ * @param {Object} request

* @param {string} [request.languageCode]
* Optional (but recommended)
* Optional. Recommended.
* [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. If

@@ -220,0 +219,0 @@ * specified, the ListVoices call will only return voices that can be used to

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc