Socket
Socket
Sign inDemoInstall

googleapis

Package Overview
Dependencies
118
Maintainers
2
Versions
254
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.2 to 1.0.3

10

apis/admin/email_migration_v2.js

@@ -49,4 +49,6 @@ /**

* @param {string} params.userKey - The email or immutable id of the user
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -58,9 +60,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/email/v2/users/' + params.userKey + '/mail',
url: 'https://www.googleapis.com/email/v2/users/' + params.userKey + '/mail',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/email/v2/users/' + params.userKey + '/mail',
requiredParams: ['userKey'],
pathParams: ['userKey'],
isMedia: true,
context: self

@@ -67,0 +69,0 @@ };

@@ -294,4 +294,6 @@ /**

* @param {string} params.projectId - Project ID of the project that will be billed for the job
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -303,9 +305,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/bigquery/v2/projects/' + params.projectId + '/jobs',
url: 'https://www.googleapis.com/bigquery/v2/projects/' + params.projectId + '/jobs',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/bigquery/v2/projects/' + params.projectId + '/jobs',
requiredParams: ['projectId'],
pathParams: ['projectId'],
isMedia: true,
context: self

@@ -312,0 +314,0 @@ };

@@ -78,4 +78,6 @@ /**

* @param {object} params - Parameters for request
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -87,7 +89,7 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/drive/v1/files',
url: 'https://www.googleapis.com/drive/v1/files',
method: 'POST'
},
params: params,
isMedia: true,
mediaUrl: 'https://www.googleapis.com/upload/drive/v1/files',
context: self

@@ -144,4 +146,6 @@ };

* @param {boolean=} params.updateViewedDate - Whether to update the view date after successfully updating the file.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -153,9 +157,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/drive/v1/files/' + params.id,
url: 'https://www.googleapis.com/drive/v1/files/' + params.id,
method: 'PUT'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/drive/v1/files/' + params.id,
requiredParams: ['id'],
pathParams: ['id'],
isMedia: true,
context: self

@@ -162,0 +166,0 @@ };

18

apis/fusiontables/v1.js

@@ -563,4 +563,5 @@ /**

* @param {string} params.tableId - The table into which new rows are being imported.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -572,9 +573,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/fusiontables/v1/tables/' + params.tableId + '/import',
url: 'https://www.googleapis.com/fusiontables/v1/tables/' + params.tableId + '/import',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/fusiontables/v1/tables/' + params.tableId + '/import',
requiredParams: ['tableId'],
pathParams: ['tableId'],
isMedia: true,
context: self

@@ -598,4 +599,5 @@ };

* @param {string} params.name - The name to be assigned to the new table.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -607,8 +609,8 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/fusiontables/v1/tables/import',
url: 'https://www.googleapis.com/fusiontables/v1/tables/import',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/fusiontables/v1/tables/import',
requiredParams: ['name'],
isMedia: true,
context: self

@@ -615,0 +617,0 @@ };

@@ -384,2 +384,30 @@ /**

/**
* genomics.datasets.undelete
*
* @desc Undeletes a dataset by restoring a dataset which was deleted via this API. This operation is only possible for a week after the deletion occurred.
*
* @alias genomics.datasets.undelete
* @memberOf! genomics(v1beta)
*
* @param {object} params - Parameters for request
* @param {string} params.datasetId - The ID of the dataset to be undeleted.
* @param {callback} callback - The callback that handles the response.
* @return {object} Request object
*/
undelete: function(params, callback) {
var parameters = {
options: {
url: 'https://www.googleapis.com/genomics/v1beta/datasets/' + params.datasetId + '/undelete',
method: 'POST'
},
params: params,
requiredParams: ['datasetId'],
pathParams: ['datasetId'],
context: self
};
return createAPIRequest(parameters, callback);
},
/**
* genomics.datasets.update

@@ -450,2 +478,30 @@ *

/**
* genomics.jobs.cancel
*
* @desc Cancels a job by ID. Note that it is possible for partial results to be generated and stored for cancelled jobs.
*
* @alias genomics.jobs.cancel
* @memberOf! genomics(v1beta)
*
* @param {object} params - Parameters for request
* @param {string} params.jobId - Required. The ID of the job.
* @param {callback} callback - The callback that handles the response.
* @return {object} Request object
*/
cancel: function(params, callback) {
var parameters = {
options: {
url: 'https://www.googleapis.com/genomics/v1beta/jobs/' + params.jobId + '/cancel',
method: 'POST'
},
params: params,
requiredParams: ['jobId'],
pathParams: ['jobId'],
context: self
};
return createAPIRequest(parameters, callback);
},
/**
* genomics.jobs.get

@@ -459,3 +515,3 @@ *

* @param {object} params - Parameters for request
* @param {string} params.jobId - The ID of the job.
* @param {string} params.jobId - Required. The ID of the job.
* @param {callback} callback - The callback that handles the response.

@@ -462,0 +518,0 @@ * @return {object} Request object

@@ -51,4 +51,6 @@ /**

* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -60,9 +62,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts',
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/drafts',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts',
requiredParams: ['userId'],
pathParams: ['userId'],
isMedia: true,
context: self

@@ -173,4 +175,6 @@ };

* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -182,9 +186,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts/send',
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/drafts/send',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts/send',
requiredParams: ['userId'],
pathParams: ['userId'],
isMedia: true,
context: self

@@ -207,4 +211,6 @@ };

* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -216,9 +222,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts/' + params.id,
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/drafts/' + params.id,
method: 'PUT'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/drafts/' + params.id,
requiredParams: ['userId', 'id'],
pathParams: ['id', 'userId'],
isMedia: true,
context: self

@@ -515,4 +521,6 @@ };

* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -524,9 +532,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages/import',
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/messages/import',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages/import',
requiredParams: ['userId'],
pathParams: ['userId'],
isMedia: true,
context: self

@@ -548,4 +556,6 @@ };

* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -557,9 +567,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages',
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/messages',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages',
requiredParams: ['userId'],
pathParams: ['userId'],
isMedia: true,
context: self

@@ -644,4 +654,6 @@ };

* @param {string} params.userId - The user's email address. The special value me can be used to indicate the authenticated user.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -653,9 +665,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages/send',
url: 'https://www.googleapis.com/gmail/v1/users/' + params.userId + '/messages/send',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/gmail/v1/users/' + params.userId + '/messages/send',
requiredParams: ['userId'],
pathParams: ['userId'],
isMedia: true,
context: self

@@ -662,0 +674,0 @@ };

@@ -49,4 +49,5 @@ /**

* @param {string} params.groupId - The group ID
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -58,9 +59,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/groups/v1/groups/' + params.groupId + '/archive',
url: 'https://www.googleapis.com/groups/v1/groups/' + params.groupId + '/archive',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/groups/v1/groups/' + params.groupId + '/archive',
requiredParams: ['groupId'],
pathParams: ['groupId'],
isMedia: true,
context: self

@@ -67,0 +68,0 @@ };

@@ -1131,4 +1131,5 @@ /**

* @param {string} params.id - The ID of the raster asset.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -1140,9 +1141,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/mapsengine/v1/rasters/' + params.id + '/files',
url: 'https://www.googleapis.com/mapsengine/v1/rasters/' + params.id + '/files',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/mapsengine/v1/rasters/' + params.id + '/files',
requiredParams: ['id', 'filename'],
pathParams: ['id'],
isMedia: true,
context: self

@@ -1535,4 +1536,5 @@ };

* @param {string} params.id - The ID of the table asset.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -1544,9 +1546,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/mapsengine/v1/tables/' + params.id + '/files',
url: 'https://www.googleapis.com/mapsengine/v1/tables/' + params.id + '/files',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/mapsengine/v1/tables/' + params.id + '/files',
requiredParams: ['id', 'filename'],
pathParams: ['id'],
isMedia: true,
context: self

@@ -1553,0 +1555,0 @@ };

@@ -509,4 +509,6 @@ /**

* @param {object} params - Parameters for request
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -518,7 +520,7 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/mirror/v1/timeline',
url: 'https://www.googleapis.com/mirror/v1/timeline',
method: 'POST'
},
params: params,
isMedia: true,
mediaUrl: 'https://www.googleapis.com/upload/mirror/v1/timeline',
context: self

@@ -601,4 +603,6 @@ };

* @param {string} params.id - The ID of the timeline item.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -610,9 +614,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/mirror/v1/timeline/' + params.id,
url: 'https://www.googleapis.com/mirror/v1/timeline/' + params.id,
method: 'PUT'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/mirror/v1/timeline/' + params.id,
requiredParams: ['id'],
pathParams: ['id'],
isMedia: true,
context: self

@@ -694,4 +698,5 @@ };

* @param {string} params.itemId - The ID of the timeline item the attachment belongs to.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -703,9 +708,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/mirror/v1/timeline/' + params.itemId + '/attachments',
url: 'https://www.googleapis.com/mirror/v1/timeline/' + params.itemId + '/attachments',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/mirror/v1/timeline/' + params.itemId + '/attachments',
requiredParams: ['itemId'],
pathParams: ['itemId'],
isMedia: true,
context: self

@@ -712,0 +717,0 @@ };

@@ -506,4 +506,6 @@ /**

* @param {string} params.userId - The ID of the user to create the activity on behalf of.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -515,9 +517,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/plusDomains/v1/people/' + params.userId + '/media/' + params.collection,
url: 'https://www.googleapis.com/plusDomains/v1/people/' + params.userId + '/media/' + params.collection,
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/plusDomains/v1/people/' + params.userId + '/media/' + params.collection,
requiredParams: ['userId', 'collection'],
pathParams: ['collection', 'userId'],
isMedia: true,
context: self

@@ -524,0 +526,0 @@ };

@@ -974,4 +974,6 @@ /**

* @param {string=} params.projection - Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -983,9 +985,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/storage/v1/b/' + params.bucket + '/o',
url: 'https://www.googleapis.com/storage/v1/b/' + params.bucket + '/o',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/storage/v1/b/' + params.bucket + '/o',
requiredParams: ['bucket'],
pathParams: ['bucket'],
isMedia: true,
context: self

@@ -992,0 +994,0 @@ };

@@ -652,4 +652,6 @@ /**

* @param {string=} params.projection - Set of properties to return. Defaults to no_acl, unless the object resource specifies the acl property, when it defaults to full.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -661,9 +663,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/storage/v1beta1/b/' + params.bucket + '/o',
url: 'https://www.googleapis.com/storage/v1beta1/b/' + params.bucket + '/o',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/storage/v1beta1/b/' + params.bucket + '/o',
requiredParams: ['bucket'],
pathParams: ['bucket'],
isMedia: true,
context: self

@@ -670,0 +672,0 @@ };

@@ -967,4 +967,6 @@ /**

* @param {string=} params.projection - Set of properties to return. Defaults to noAcl, unless the object resource specifies the acl property, when it defaults to full.
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
* @param {object} params.resource - Media resource metadata
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
* @param {callback} callback - The callback that handles the response.

@@ -976,9 +978,9 @@ * @return {object} Request object

options: {
url: 'https://www.googleapis.com/upload/storage/v1beta2/b/' + params.bucket + '/o',
url: 'https://www.googleapis.com/storage/v1beta2/b/' + params.bucket + '/o',
method: 'POST'
},
params: params,
mediaUrl: 'https://www.googleapis.com/upload/storage/v1beta2/b/' + params.bucket + '/o',
requiredParams: ['bucket'],
pathParams: ['bucket'],
isMedia: true,
context: self

@@ -985,0 +987,0 @@ };

@@ -23,3 +23,8 @@ /**

var transporter = new DefaultTransporter();
var stream = require('stream');
function isReadableStream(obj) {
return obj instanceof stream.Stream && typeof obj._read == 'function' &&
typeof obj._readableState == 'object';
}

@@ -37,6 +42,5 @@ function logErrorOnly(err) {

function isValidParams(params, keys, callback) {
var key;
for (key in keys) {
if (!params[keys[key]]) {
callback(new Error('Missing required parameter: ' + keys[key]), null);
for (var i = 0, len = keys.length; i < len; i++) {
if (!params[keys[i]]) {
callback(new Error('Missing required parameter: ' + keys[i]), null);
return false;

@@ -55,7 +59,7 @@ }

function createAPIRequest(parameters, callback) {
var req;
var req, body;
var mediaUrl = parameters.mediaUrl;
var context = parameters.context;
var params = parameters.params;
var options = parameters.options || {};
var isMedia = parameters.isMedia || false;
var requiredParams = parameters.requiredParams || [];

@@ -82,5 +86,6 @@ var pathParams = parameters.pathParams || [];

var method = options.method;
var media = params.media;
var media = params.media || {};
var resource = params.resource;
var authClient = params.auth || context._options.auth || context.google._options.auth;
var defaultMime = typeof media.body === 'string' ? 'text/plain' : 'application/octet-stream';
delete params.media;

@@ -91,3 +96,3 @@ delete params.resource;

// delete required parameters
for (var i in pathParams) {
for (var i = 0, len = pathParams.length; i < len; i++) {
delete params[pathParams[i]];

@@ -102,17 +107,18 @@ }

if (isMedia) {
// Create a boundary identifier and multipart read stream
var boundary = Math.random().toString(36).slice(2);
var mp = new Multipart(boundary);
if (mediaUrl && media && media.body) {
options.url = mediaUrl;
if (resource) {
// Create a boundary identifier and multipart read stream
var boundary = Math.random().toString(36).slice(2);
body = new Multipart(boundary);
// Always a multipart upload
params.uploadType = 'multipart';
// Use multipart upload
params.uploadType = 'multipart';
options.headers = {
'Content-Type': 'multipart/related; boundary="' + boundary + '"'
};
options.headers = {
'Content-Type': 'multipart/related; boundary="' + boundary + '"'
};
// Add parts to multipart request
if (resource) {
mp.addPart({
// Add parts to multipart request
body.addPart({
headers: {

@@ -123,12 +129,22 @@ 'Content-Type': 'application/json'

});
body.addPart({
headers: {
'Content-Type': media.mimeType || resource && resource.mimeType || defaultMime
},
body: media.body // can be a readable stream or raw string!
});
} else {
params.uploadType = 'media';
options.headers = {
'Content-Type': media.mimeType || defaultMime
};
if (isReadableStream(media.body)) {
body = media.body;
} else {
options.body = media.body;
}
}
mp.addPart({
headers: {
'Content-Type': resource && resource.mimeType || 'application/octet-stream'
},
body: media // can be a readable stream or raw string!
});
}
else {
} else {
options.json = resource || ((method === 'GET' || method === 'DELETE') ? true : {});

@@ -148,3 +164,3 @@ }

if (mp) mp.pipe(req);
if (body) body.pipe(req);
return req;

@@ -151,0 +167,0 @@ }

@@ -73,3 +73,9 @@ /**

json: true
}, opt_callback);
}, function(err, tokens) {
if (!err && tokens && tokens.expires_in) {
tokens.expiry_date = ((new Date()).getTime() + (tokens.expires_in * 1000));
delete tokens.expires_in;
}
opt_callback && opt_callback(err, tokens);
});
};

@@ -76,0 +82,0 @@

@@ -89,3 +89,3 @@ /**

token_type: 'Bearer',
expires_in: that.gapi.token_expires
expiry_date: ((new Date()).getTime() + (that.gapi.token_expires * 1000))
});

@@ -92,0 +92,0 @@ });

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

this.opts = opt_opts || {};
this.credentials = null;
this.credentials = {};
}

@@ -139,3 +139,9 @@

json: true
}, opt_callback);
}, function(err, tokens) {
if (!err && tokens && tokens.expires_in) {
tokens.expiry_date = ((new Date()).getTime() + (tokens.expires_in * 1000));
delete tokens.expires_in;
}
opt_callback && opt_callback(err, tokens);
});
};

@@ -164,3 +170,9 @@

json: true
}, opt_callback);
}, function(err, tokens) {
if (!err && tokens && tokens.expires_in) {
tokens.expiry_date = ((new Date()).getTime() + (tokens.expires_in * 1000));
delete tokens.expires_in;
}
opt_callback && opt_callback(err, tokens);
});
};

@@ -170,3 +182,3 @@

* Retrieves access token using refresh token
* @param {function=} callback callback
* @param {function} callback callback
*/

@@ -177,3 +189,4 @@ OAuth2Client.prototype.refreshAccessToken = function(callback) {

if (! this.credentials.refresh_token) {
throw new Error('No refresh token is set');
callback(new Error('No refresh token is set.'), null);
return;
}

@@ -207,2 +220,16 @@

/**
* Revokes access token and clears the credentials object
* @param {Function=} callback callback
*/
OAuth2Client.prototype.revokeCredentials = function(callback) {
var token = this.credentials.access_token;
this.credentials = {};
if (token) {
this.revokeToken(token, callback);
} else {
callback(new Error('No access token to revoke.'), null);
}
};
/**
* Provides a request implementation with OAuth 2.0 flow.

@@ -213,16 +240,45 @@ * If credentials have a refresh_token, in cases of HTTP

* @param {object} opts Request options.
* @param {function=} opt_callback Optional callback.
* @param {boolean=} opt_dontForceRefresh If set, don't ask for a new token
* with refresh_token.
* @param {function} callback callback.
* @return {Request} Request object
*/
OAuth2Client.prototype.request = function(opts, opt_callback, opt_dontForceRefresh) {
OAuth2Client.prototype.request = function(opts, callback) {
var that = this;
var credentials = this.credentials;
var expiryDate = credentials.expiry_date;
// if no expiry time, assume it's not expired
var isTokenExpired = expiryDate ? expiryDate <= (new Date()).getTime() : false;
if (!credentials.access_token && !credentials.refresh_token) {
throw new Error('No access or refresh token is set.');
callback(new Error('No access or refresh token is set.'), null);
return;
}
var shouldRefresh = !credentials.access_token || isTokenExpired;
if (shouldRefresh && credentials.refresh_token) {
this.refreshAccessToken(function(err, tokens) {
if (err) {
callback(err, null);
} else if (!tokens || (tokens && !tokens.access_token)) {
callback(new Error('Could not refresh access token.'), null);
} else {
return that._makeRequest(opts, callback);
}
});
} else {
return this._makeRequest(opts, callback);
}
};
/**
* Makes a request without paying attention to refreshing or anything
* Assumes that all credentials are set correctly.
* @param {object} opts Options for request
* @param {Function} callback callback function
* @return {Request} The request object created
*/
OAuth2Client.prototype._makeRequest = function(opts, callback) {
var that = this;
var credentials = this.credentials;
credentials.token_type = credentials.token_type || 'Bearer';

@@ -232,23 +288,3 @@ opts.headers = opts.headers || {};

return this.transporter.request(opts, function(err, body, res) {
// TODO: Check if it's not userRateLimitExceeded
var hasAuthError = res && (res.statusCode === 401 || res.statusCode === 403);
// if there is an auth error, refresh the token
// and make the request again
if (!opt_dontForceRefresh && hasAuthError && credentials.refresh_token) {
// refresh access token and re-request
that.refreshAccessToken(function(err, result) {
if (err || (result && !result.access_token)) {
opt_callback && opt_callback(err, result, res);
} else {
var tokens = result;
tokens.refresh_token = credentials.refresh_token;
that.credentials = tokens;
that.request(opts, opt_callback, true);
}
});
} else {
opt_callback && opt_callback(err, body, res);
}
});
return this.transporter.request(opts, callback);
};

@@ -255,0 +291,0 @@

@@ -83,4 +83,2 @@ # Migrating from version `0.x.x` to `1.0`

Media data is now specified in a `media` parameter instead of in `withMedia()`.
The mime-type is taken from the `resource` object, so there's no need to specify
it twice.

@@ -103,3 +101,6 @@ The old `0.x.x` way of uploading media:

},
media: 'Hello World'
media: {
mimeType: 'text/plain',
body: 'Hello World'
}
}, callback);

@@ -119,3 +120,6 @@ ```

},
media: fs.createReadStream('hello.txt')
media: {
mimeType: 'text/plain',
body: fs.createReadStream('hello.txt')
}
}, callback);

@@ -135,2 +139,9 @@ ```

``` js
var googleapis = require('googleapis');
var OAuth2Client = googleapis.OAuth2Client;
var oauth2Client = new OAuth2Client(/* .. */);
// ... discover plus api and get client object here ...
client

@@ -142,5 +153,11 @@ .plus.people.get({ userId: 'me' })

In `1.0`, just put it in the `auth` parameter. It's as easy as:
In `1.0`, OAuth2Client is now available at `google.auth.OAuth2` and now you can
just put your `oauth2Client` right in the `auth` parameter. It's as easy as:
``` js
var google = require('googleapis');
var OAuth2 = google.auth.OAuth2; // changed from google.OAuth2Client
var plus = google.plus('v1');
var oauth2Client = new OAuth2(/* .. */); // initialized the same way
plus.people.get({ userId: 'me', auth: oauth2Client }, callback);

@@ -147,0 +164,0 @@ ```

{
"name": "googleapis",
"version": "1.0.2",
"version": "1.0.3",
"author": "Google Inc.",

@@ -5,0 +5,0 @@ "description": "Google APIs Client Library for Node.js",

@@ -16,2 +16,8 @@ # Google APIs NodeJS Client [![Build Status][travisimg]][travis]

### Working with Google Cloud APIs?
If you're working with [Google Cloud Platform][cloudplatform] APIs such as
Datastore, Cloud Storage or Pub/Sub, consider using [`gcloud`][gcloud], a
Node idiomatic client for Google Cloud services.
## Installation

@@ -146,4 +152,4 @@

requests to Google APIs with the retrieved tokens. If you provide a
`refresh_token`, the `access_token` is automatically refreshed and the
request is replayed in case the `access_token` has expired.
`refresh_token` and the `access_token` has expired, the `access_token` will be
automatically refreshed and the request is replayed.

@@ -168,2 +174,15 @@ Following sample retrieves Google+ profile of the authenticated user.

#### Manually refreshing access token
If you need to manually refresh the `access_token` associated with your OAuth2
client, make sure you have a `refresh_token` set in your credentials first and
then call:
``` js
oauth2Client.refreshAccessToken(function(err, tokens) {
// your access_token is now refreshed and stored in oauth2Client
// store these new tokens in a safe place (e.g. database)
});
```
#### Using API keys

@@ -199,4 +218,4 @@

This client supports multipart media uploads. The resource parameters are
specified in the `resource` parameter object, and the media body itself is
specified in the `media` parameter.
specified in the `resource` parameter object, and the media itself is
specified in the `media.body` parameter with mime-type specified in `media.mimeType`.

@@ -214,7 +233,10 @@ Example: Upload a plain text file to Google Drive with the title "Test" and

},
media: 'Hello World'
media: {
mimeType: 'text/plain',
body: 'Hello World'
}
}, callback);
```
You can also upload media by specifying `media` as a [Readable stream][stream].
You can also upload media by specifying `media.body` as a [Readable stream][stream].
This can allow you to upload very large files that cannot fit into memory.

@@ -235,3 +257,6 @@

},
media: fs.createReadStream('awesome.png') // read streams are awesome!
media: {
mimeType: 'image/png',
body: fs.createReadStream('awesome.png') // read streams are awesome!
}
}, callback);

@@ -335,1 +360,3 @@ ```

[options]: https://github.com/google/google-api-nodejs-client/tree/master#options
[gcloud]: https://github.com/GoogleCloudPlatform/gcloud-node
[cloudplatform]: https://developers.google.com/cloud/

@@ -17,4 +17,8 @@ {% set lb = "{" %}

{% if m.supportsMediaUpload -%}
* @param {object} params.resource - Media resource metadata
* @param {string|object} params.media - Media body data to upload
{% if m.request -%}
* @param {object} params.resource - Media resource metadata
{% endif -%}
* @param {object} params.media - Media object
* @param {string} params.media.mimeType - Media mime-type
* @param {string|object} params.media.body - Media body contents
{% elif m.request -%}

@@ -29,9 +33,9 @@ * @param {object} params.resource - Request body data

options: {
url: {{ m.mediaUpload.protocols.simple.path|default(basePath + m.path)|buildurl }},
url: {{ (basePath + m.path)|buildurl }},
method: '{{ m.httpMethod }}'
},
params: params,
{%- if m.mediaUpload.protocols.simple.path -%}mediaUrl: {{ m.mediaUpload.protocols.simple.path|buildurl }},{%- endif -%}
{%- if m.parameterOrder.length -%}requiredParams: ['{{ m.parameterOrder|join("', '")|safe }}'],{%- endif -%}
{%- if pathParams.length -%}pathParams: ['{{ pathParams|join("', '")|safe }}'],{%- endif -%}
{%- if m.supportsMediaUpload -%}isMedia: true,{%- endif -%}
context: self

@@ -38,0 +42,0 @@ };

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc