Socket
Socket
Sign inDemoInstall

cloudmersive-image-api-client

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cloudmersive-image-api-client - npm Package Compare versions

Comparing version 1.2.0 to 1.2.1

docs/DrawPolygonInstance.md

108

docs/EditApi.md

@@ -10,4 +10,6 @@ # CloudmersiveImageApiClient.EditApi

[**editContrastAdaptive**](EditApi.md#editContrastAdaptive) | **POST** /image/edit/contrast/{gamma}/adaptive | Adaptively adjust the contrast of the image to be more appealing and easy to see
[**editDrawPolygon**](EditApi.md#editDrawPolygon) | **POST** /image/edit/draw/polygon | Draw polygon onto an image
[**editDrawRectangle**](EditApi.md#editDrawRectangle) | **POST** /image/edit/draw/rectangle | Draw rectangle onto an image
[**editDrawText**](EditApi.md#editDrawText) | **POST** /image/edit/draw/text | Draw text onto an image
[**editRotate**](EditApi.md#editRotate) | **POST** /image/edit/rotate/{degrees}/angle | Rotate an image any number of degrees

@@ -183,2 +185,55 @@

<a name="editDrawPolygon"></a>
# **editDrawPolygon**
> Object editDrawPolygon(request)
Draw polygon onto an image
Draw one or more polygons, with customized visuals, onto an image
### Example
```javascript
var CloudmersiveImageApiClient = require('cloudmersive-image-api-client');
var defaultClient = CloudmersiveImageApiClient.ApiClient.instance;
// Configure API key authorization: Apikey
var Apikey = defaultClient.authentications['Apikey'];
Apikey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.apiKeyPrefix = 'Token';
var apiInstance = new CloudmersiveImageApiClient.EditApi();
var request = new CloudmersiveImageApiClient.DrawPolygonRequest(); // DrawPolygonRequest |
var callback = function(error, data, response) {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
};
apiInstance.editDrawPolygon(request, callback);
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**request** | [**DrawPolygonRequest**](DrawPolygonRequest.md)| |
### Return type
**Object**
### Authorization
[Apikey](../README.md#Apikey)
### HTTP request headers
- **Content-Type**: application/json, text/json, application/xml, text/xml, application/x-www-form-urlencoded
- **Accept**: image/png
<a name="editDrawRectangle"></a>

@@ -290,1 +345,54 @@ # **editDrawRectangle**

<a name="editRotate"></a>
# **editRotate**
> Object editRotate(degrees)
Rotate an image any number of degrees
Rotates an image by an arbitrary number of degrees
### Example
```javascript
var CloudmersiveImageApiClient = require('cloudmersive-image-api-client');
var defaultClient = CloudmersiveImageApiClient.ApiClient.instance;
// Configure API key authorization: Apikey
var Apikey = defaultClient.authentications['Apikey'];
Apikey.apiKey = 'YOUR API KEY';
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.apiKeyPrefix = 'Token';
var apiInstance = new CloudmersiveImageApiClient.EditApi();
var degrees = 1.2; // Number | Degrees to rotate the image; values range from 0.0 to 360.0.
var callback = function(error, data, response) {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
};
apiInstance.editRotate(degrees, callback);
```
### Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**degrees** | **Number**| Degrees to rotate the image; values range from 0.0 to 360.0. |
### Return type
**Object**
### Authorization
[Apikey](../README.md#Apikey)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/octet-stream

2

package.json
{
"name": "cloudmersive-image-api-client",
"version": "1.2.0",
"version": "1.2.1",
"description": "Image_Recognition_and_Processing_APIs_let_you_use_Machine_Learning_to_recognize_and_process_images_and_also_perform_useful_image_modification_operations_",

@@ -5,0 +5,0 @@ "license": "Unlicense",

@@ -8,3 +8,3 @@ # cloudmersive-image-api-client

- API version: v1
- Package version: 1.2.0
- Package version: 1.2.1

@@ -135,4 +135,6 @@

*CloudmersiveImageApiClient.EditApi* | [**editContrastAdaptive**](docs/EditApi.md#editContrastAdaptive) | **POST** /image/edit/contrast/{gamma}/adaptive | Adaptively adjust the contrast of the image to be more appealing and easy to see
*CloudmersiveImageApiClient.EditApi* | [**editDrawPolygon**](docs/EditApi.md#editDrawPolygon) | **POST** /image/edit/draw/polygon | Draw polygon onto an image
*CloudmersiveImageApiClient.EditApi* | [**editDrawRectangle**](docs/EditApi.md#editDrawRectangle) | **POST** /image/edit/draw/rectangle | Draw rectangle onto an image
*CloudmersiveImageApiClient.EditApi* | [**editDrawText**](docs/EditApi.md#editDrawText) | **POST** /image/edit/draw/text | Draw text onto an image
*CloudmersiveImageApiClient.EditApi* | [**editRotate**](docs/EditApi.md#editRotate) | **POST** /image/edit/rotate/{degrees}/angle | Rotate an image any number of degrees
*CloudmersiveImageApiClient.FaceApi* | [**faceCompare**](docs/FaceApi.md#faceCompare) | **POST** /image/face/compare-and-match | Compare and match faces

@@ -160,2 +162,4 @@ *CloudmersiveImageApiClient.FaceApi* | [**faceCropFirst**](docs/FaceApi.md#faceCropFirst) | **POST** /image/face/crop/first | Crop image to face (square)

- [CloudmersiveImageApiClient.DetectedObject](docs/DetectedObject.md)
- [CloudmersiveImageApiClient.DrawPolygonInstance](docs/DrawPolygonInstance.md)
- [CloudmersiveImageApiClient.DrawPolygonRequest](docs/DrawPolygonRequest.md)
- [CloudmersiveImageApiClient.DrawRectangleInstance](docs/DrawRectangleInstance.md)

@@ -178,2 +182,3 @@ - [CloudmersiveImageApiClient.DrawRectangleRequest](docs/DrawRectangleRequest.md)

- [CloudmersiveImageApiClient.PersonWithAge](docs/PersonWithAge.md)
- [CloudmersiveImageApiClient.PolygonPoint](docs/PolygonPoint.md)
- [CloudmersiveImageApiClient.RecognitionOutcome](docs/RecognitionOutcome.md)

@@ -180,0 +185,0 @@ - [CloudmersiveImageApiClient.TextDetectionResult](docs/TextDetectionResult.md)

@@ -36,3 +36,3 @@ /**

* @module api/ArtisticApi
* @version 1.2.0
* @version 1.2.1
*/

@@ -39,0 +39,0 @@

@@ -19,6 +19,6 @@ /**

// AMD. Register as an anonymous module.
define(['ApiClient', 'model/DrawRectangleRequest', 'model/DrawTextRequest'], factory);
define(['ApiClient', 'model/DrawPolygonRequest', 'model/DrawRectangleRequest', 'model/DrawTextRequest'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports, like Node.
module.exports = factory(require('../ApiClient'), require('../model/DrawRectangleRequest'), require('../model/DrawTextRequest'));
module.exports = factory(require('../ApiClient'), require('../model/DrawPolygonRequest'), require('../model/DrawRectangleRequest'), require('../model/DrawTextRequest'));
} else {

@@ -29,5 +29,5 @@ // Browser globals (root is window)

}
root.CloudmersiveImageApiClient.EditApi = factory(root.CloudmersiveImageApiClient.ApiClient, root.CloudmersiveImageApiClient.DrawRectangleRequest, root.CloudmersiveImageApiClient.DrawTextRequest);
root.CloudmersiveImageApiClient.EditApi = factory(root.CloudmersiveImageApiClient.ApiClient, root.CloudmersiveImageApiClient.DrawPolygonRequest, root.CloudmersiveImageApiClient.DrawRectangleRequest, root.CloudmersiveImageApiClient.DrawTextRequest);
}
}(this, function(ApiClient, DrawRectangleRequest, DrawTextRequest) {
}(this, function(ApiClient, DrawPolygonRequest, DrawRectangleRequest, DrawTextRequest) {
'use strict';

@@ -38,3 +38,3 @@

* @module api/EditApi
* @version 1.2.0
* @version 1.2.1
*/

@@ -219,2 +219,49 @@

/**
* Callback function to receive the result of the editDrawPolygon operation.
* @callback module:api/EditApi~editDrawPolygonCallback
* @param {String} error Error message, if any.
* @param {Object} data The data returned by the service call.
* @param {String} response The complete HTTP response.
*/
/**
* Draw polygon onto an image
* Draw one or more polygons, with customized visuals, onto an image
* @param {module:model/DrawPolygonRequest} request
* @param {module:api/EditApi~editDrawPolygonCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {@link Object}
*/
this.editDrawPolygon = function(request, callback) {
var postBody = request;
// verify the required parameter 'request' is set
if (request === undefined || request === null) {
throw new Error("Missing the required parameter 'request' when calling editDrawPolygon");
}
var pathParams = {
};
var queryParams = {
};
var collectionQueryParams = {
};
var headerParams = {
};
var formParams = {
};
var authNames = ['Apikey'];
var contentTypes = ['application/json', 'text/json', 'application/xml', 'text/xml', 'application/x-www-form-urlencoded'];
var accepts = ['image/png'];
var returnType = Object;
return this.apiClient.callApi(
'/image/edit/draw/polygon', 'POST',
pathParams, queryParams, collectionQueryParams, headerParams, formParams, postBody,
authNames, contentTypes, accepts, returnType, callback
);
}
/**
* Callback function to receive the result of the editDrawRectangle operation.

@@ -312,2 +359,50 @@ * @callback module:api/EditApi~editDrawRectangleCallback

}
/**
* Callback function to receive the result of the editRotate operation.
* @callback module:api/EditApi~editRotateCallback
* @param {String} error Error message, if any.
* @param {Object} data The data returned by the service call.
* @param {String} response The complete HTTP response.
*/
/**
* Rotate an image any number of degrees
* Rotates an image by an arbitrary number of degrees
* @param {Number} degrees Degrees to rotate the image; values range from 0.0 to 360.0.
* @param {module:api/EditApi~editRotateCallback} callback The callback function, accepting three arguments: error, data, response
* data is of type: {@link Object}
*/
this.editRotate = function(degrees, callback) {
var postBody = null;
// verify the required parameter 'degrees' is set
if (degrees === undefined || degrees === null) {
throw new Error("Missing the required parameter 'degrees' when calling editRotate");
}
var pathParams = {
'degrees': degrees
};
var queryParams = {
};
var collectionQueryParams = {
};
var headerParams = {
};
var formParams = {
};
var authNames = ['Apikey'];
var contentTypes = [];
var accepts = ['application/octet-stream'];
var returnType = Object;
return this.apiClient.callApi(
'/image/edit/rotate/{degrees}/angle', 'POST',
pathParams, queryParams, collectionQueryParams, headerParams, formParams, postBody,
authNames, contentTypes, accepts, returnType, callback
);
}
};

@@ -314,0 +409,0 @@

@@ -36,3 +36,3 @@ /**

* @module api/FaceApi
* @version 1.2.0
* @version 1.2.1
*/

@@ -39,0 +39,0 @@

@@ -36,3 +36,3 @@ /**

* @module api/NsfwApi
* @version 1.2.0
* @version 1.2.1
*/

@@ -39,0 +39,0 @@

@@ -36,3 +36,3 @@ /**

* @module api/RecognizeApi
* @version 1.2.0
* @version 1.2.1
*/

@@ -39,0 +39,0 @@

@@ -36,3 +36,3 @@ /**

* @module api/ResizeApi
* @version 1.2.0
* @version 1.2.1
*/

@@ -39,0 +39,0 @@

@@ -35,3 +35,3 @@ /**

* @module ApiClient
* @version 1.2.0
* @version 1.2.1
*/

@@ -38,0 +38,0 @@

@@ -19,8 +19,8 @@ /**

// AMD. Register as an anonymous module.
define(['ApiClient', 'model/AgeDetectionResult', 'model/DetectedLicensePlate', 'model/DetectedObject', 'model/DrawRectangleInstance', 'model/DrawRectangleRequest', 'model/DrawTextInstance', 'model/DrawTextRequest', 'model/Face', 'model/FaceCompareResponse', 'model/FaceLocateResponse', 'model/FaceLocateWithLandmarksResponse', 'model/FaceMatch', 'model/FacePoint', 'model/FaceWithLandmarks', 'model/FineTextDetectionResult', 'model/FineTextItem', 'model/ImageDescriptionResponse', 'model/NsfwResult', 'model/ObjectDetectionResult', 'model/PersonWithAge', 'model/RecognitionOutcome', 'model/TextDetectionResult', 'model/TextItem', 'model/VehicleLicensePlateDetectionResult', 'api/ArtisticApi', 'api/EditApi', 'api/FaceApi', 'api/NsfwApi', 'api/RecognizeApi', 'api/ResizeApi'], factory);
define(['ApiClient', 'model/AgeDetectionResult', 'model/DetectedLicensePlate', 'model/DetectedObject', 'model/DrawPolygonInstance', 'model/DrawPolygonRequest', 'model/DrawRectangleInstance', 'model/DrawRectangleRequest', 'model/DrawTextInstance', 'model/DrawTextRequest', 'model/Face', 'model/FaceCompareResponse', 'model/FaceLocateResponse', 'model/FaceLocateWithLandmarksResponse', 'model/FaceMatch', 'model/FacePoint', 'model/FaceWithLandmarks', 'model/FineTextDetectionResult', 'model/FineTextItem', 'model/ImageDescriptionResponse', 'model/NsfwResult', 'model/ObjectDetectionResult', 'model/PersonWithAge', 'model/PolygonPoint', 'model/RecognitionOutcome', 'model/TextDetectionResult', 'model/TextItem', 'model/VehicleLicensePlateDetectionResult', 'api/ArtisticApi', 'api/EditApi', 'api/FaceApi', 'api/NsfwApi', 'api/RecognizeApi', 'api/ResizeApi'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports, like Node.
module.exports = factory(require('./ApiClient'), require('./model/AgeDetectionResult'), require('./model/DetectedLicensePlate'), require('./model/DetectedObject'), require('./model/DrawRectangleInstance'), require('./model/DrawRectangleRequest'), require('./model/DrawTextInstance'), require('./model/DrawTextRequest'), require('./model/Face'), require('./model/FaceCompareResponse'), require('./model/FaceLocateResponse'), require('./model/FaceLocateWithLandmarksResponse'), require('./model/FaceMatch'), require('./model/FacePoint'), require('./model/FaceWithLandmarks'), require('./model/FineTextDetectionResult'), require('./model/FineTextItem'), require('./model/ImageDescriptionResponse'), require('./model/NsfwResult'), require('./model/ObjectDetectionResult'), require('./model/PersonWithAge'), require('./model/RecognitionOutcome'), require('./model/TextDetectionResult'), require('./model/TextItem'), require('./model/VehicleLicensePlateDetectionResult'), require('./api/ArtisticApi'), require('./api/EditApi'), require('./api/FaceApi'), require('./api/NsfwApi'), require('./api/RecognizeApi'), require('./api/ResizeApi'));
module.exports = factory(require('./ApiClient'), require('./model/AgeDetectionResult'), require('./model/DetectedLicensePlate'), require('./model/DetectedObject'), require('./model/DrawPolygonInstance'), require('./model/DrawPolygonRequest'), require('./model/DrawRectangleInstance'), require('./model/DrawRectangleRequest'), require('./model/DrawTextInstance'), require('./model/DrawTextRequest'), require('./model/Face'), require('./model/FaceCompareResponse'), require('./model/FaceLocateResponse'), require('./model/FaceLocateWithLandmarksResponse'), require('./model/FaceMatch'), require('./model/FacePoint'), require('./model/FaceWithLandmarks'), require('./model/FineTextDetectionResult'), require('./model/FineTextItem'), require('./model/ImageDescriptionResponse'), require('./model/NsfwResult'), require('./model/ObjectDetectionResult'), require('./model/PersonWithAge'), require('./model/PolygonPoint'), require('./model/RecognitionOutcome'), require('./model/TextDetectionResult'), require('./model/TextItem'), require('./model/VehicleLicensePlateDetectionResult'), require('./api/ArtisticApi'), require('./api/EditApi'), require('./api/FaceApi'), require('./api/NsfwApi'), require('./api/RecognizeApi'), require('./api/ResizeApi'));
}
}(function(ApiClient, AgeDetectionResult, DetectedLicensePlate, DetectedObject, DrawRectangleInstance, DrawRectangleRequest, DrawTextInstance, DrawTextRequest, Face, FaceCompareResponse, FaceLocateResponse, FaceLocateWithLandmarksResponse, FaceMatch, FacePoint, FaceWithLandmarks, FineTextDetectionResult, FineTextItem, ImageDescriptionResponse, NsfwResult, ObjectDetectionResult, PersonWithAge, RecognitionOutcome, TextDetectionResult, TextItem, VehicleLicensePlateDetectionResult, ArtisticApi, EditApi, FaceApi, NsfwApi, RecognizeApi, ResizeApi) {
}(function(ApiClient, AgeDetectionResult, DetectedLicensePlate, DetectedObject, DrawPolygonInstance, DrawPolygonRequest, DrawRectangleInstance, DrawRectangleRequest, DrawTextInstance, DrawTextRequest, Face, FaceCompareResponse, FaceLocateResponse, FaceLocateWithLandmarksResponse, FaceMatch, FacePoint, FaceWithLandmarks, FineTextDetectionResult, FineTextItem, ImageDescriptionResponse, NsfwResult, ObjectDetectionResult, PersonWithAge, PolygonPoint, RecognitionOutcome, TextDetectionResult, TextItem, VehicleLicensePlateDetectionResult, ArtisticApi, EditApi, FaceApi, NsfwApi, RecognizeApi, ResizeApi) {
'use strict';

@@ -57,3 +57,3 @@

* @module index
* @version 1.2.0
* @version 1.2.1
*/

@@ -82,2 +82,12 @@ var exports = {

/**
* The DrawPolygonInstance model constructor.
* @property {module:model/DrawPolygonInstance}
*/
DrawPolygonInstance: DrawPolygonInstance,
/**
* The DrawPolygonRequest model constructor.
* @property {module:model/DrawPolygonRequest}
*/
DrawPolygonRequest: DrawPolygonRequest,
/**
* The DrawRectangleInstance model constructor.

@@ -168,2 +178,7 @@ * @property {module:model/DrawRectangleInstance}

/**
* The PolygonPoint model constructor.
* @property {module:model/PolygonPoint}
*/
PolygonPoint: PolygonPoint,
/**
* The RecognitionOutcome model constructor.

@@ -170,0 +185,0 @@ * @property {module:model/RecognitionOutcome}

@@ -39,3 +39,3 @@ /**

* @module model/AgeDetectionResult
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/DetectedLicensePlate
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/DetectedObject
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/DrawRectangleInstance
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/DrawRectangleRequest
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/DrawTextInstance
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/DrawTextRequest
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/Face
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/FaceCompareResponse
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/FaceLocateResponse
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/FaceLocateWithLandmarksResponse
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/FaceMatch
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/FacePoint
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/FaceWithLandmarks
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/FineTextDetectionResult
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/FineTextItem
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/ImageDescriptionResponse
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/NsfwResult
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/ObjectDetectionResult
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/PersonWithAge
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/RecognitionOutcome
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/TextDetectionResult
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/TextItem
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -39,3 +39,3 @@ /**

* @module model/VehicleLicensePlateDetectionResult
* @version 1.2.0
* @version 1.2.1
*/

@@ -42,0 +42,0 @@

@@ -83,2 +83,12 @@ /**

});
describe('editDrawPolygon', function() {
it('should call editDrawPolygon successfully', function(done) {
//uncomment below and update the code to test editDrawPolygon
//instance.editDrawPolygon(function(error) {
// if (error) throw error;
//expect().to.be();
//});
done();
});
});
describe('editDrawRectangle', function() {

@@ -104,4 +114,14 @@ it('should call editDrawRectangle successfully', function(done) {

});
describe('editRotate', function() {
it('should call editRotate successfully', function(done) {
//uncomment below and update the code to test editRotate
//instance.editRotate(function(error) {
// if (error) throw error;
//expect().to.be();
//});
done();
});
});
});
}));
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc