From ac7b7c0ec80c846480eb0ebbbbfb7f6aa99c50eb Mon Sep 17 00:00:00 2001 From: Andrew Bunker Date: Mon, 8 Aug 2016 16:33:52 -0600 Subject: [PATCH 01/29] changed version again --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b7d5d6e..c89b94e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "embedable", - "version": "1.0.15", + "version": "1.0.16", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From 4a755a0e8b5ecfd7a5f9000a1acfee99054bb310 Mon Sep 17 00:00:00 2001 From: Andrew Bunker Date: Wed, 17 Aug 2016 15:46:22 -0600 Subject: [PATCH 02/29] complete retooling of facebook embed rules --- index.js | 64 +++++++--- package.json | 2 +- provider/index.js | 4 +- providers/domains_ef.js | 277 ++++++++++++++++++++++++++++++++++++---- 4 files changed, 306 insertions(+), 41 deletions(-) diff --git a/index.js b/index.js index e3aec2c..51a2c38 100644 --- a/index.js +++ b/index.js @@ -79,7 +79,8 @@ _.extend(Embed.prototype, { addProvider: function(provider) { var name = provider.name - , self = this; + , self = this + , pattern = null; if (this.providers[name]) { throw new Error('Duplicate provider: ' + name); @@ -93,13 +94,23 @@ _.extend(Embed.prototype, { provider.uri = [provider.uri]; } _.each(provider.uri, function(uri) { - if (!_.isRegExp(uri)) { - uri = new RegExp(uri, "i"); + if (typeof uri === 'function' && pattern) { + pattern.process = uri; + } + else { + if (typeof uri === 'string') { + uri = new RegExp(uri, "i"); + } + else if (!_.isRegExp(uri)) { + throw new Error('Invalid URI pattern: ' + uri + ' for ' + name); + } + pattern = { + regex: uri, + provider: provider, + process: null + }; + self.patterns.push(pattern); } - self.patterns.push({ - regex: uri, - provider: provider - }); }); }, @@ -137,7 +148,7 @@ _.extend(Embed.prototype, { }); } // resolve the provider promise - return this.fetchProvider(opts, pattern) + return this.fetchProvider(pattern) .then(function(data) { // handle default provider redirects @@ -163,19 +174,40 @@ _.extend(Embed.prototype, { }, findProvider: function(uri) { - for (var i = 0, l = this.patterns.length; i < l; i++) { - if (this.patterns[i].regex.test(uri)) { - return this.patterns[i]; + var i, l, pattern, parts; + + for (i = 0, l = this.patterns.length; i < l; i++) { + pattern = this.patterns[i]; + + if (pattern.regex.test(uri)) { + parts = uri.match(pattern.regex); + + // if process, run parts through it + if (parts && pattern.process) { + parts = pattern.process(parts); + } + // if parts is string, use as uri and continue + if (typeof parts === 'string') { + uri = parts; + } + // return parts & provider + else { + return { + provider: pattern.provider, + parts: parts, + uri: uri + }; + } } } }, - fetchProvider: function(opts, pattern) { - var uri = opts.redirect || opts.uri - parts = uri.match(pattern.regex); - + fetchProvider: function(pattern) { try { - data = pattern.provider.fetch(uri, parts); + data = pattern.provider.fetch( + pattern.uri, + pattern.parts + ); } catch (err) { return when.reject({ diff --git a/package.json b/package.json index c89b94e..66f21aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "embedable", - "version": "1.0.16", + "version": "1.0.17", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { diff --git a/provider/index.js b/provider/index.js index 0ede9d2..e6c68df 100644 --- a/provider/index.js +++ b/provider/index.js @@ -280,8 +280,8 @@ _.extend(Provider.prototype, { , out = '' , tag, title, width, height, ratio; - // render embed tag - if (data.embed_src) { + // if embed_raw = true, then use embed_html instead + if (data.embed_src && !data.embed_raw) { tag = data.embed_tag || this.tag; title = data.embed_title || data.title; diff --git a/providers/domains_ef.js b/providers/domains_ef.js index ee7fc70..a50d9ee 100644 --- a/providers/domains_ef.js +++ b/providers/domains_ef.js @@ -16,44 +16,277 @@ module.exports = [ } }), +// https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2FFamilyShare%2Fvideos%2F10154202941490485%2F&show_text=1&width=560 +// https://www.facebook.com/RebeccaSheehanKSDK/photos/a.671696456319040.1073741829.669142353241117/690241274464558/?type=3&theater +// +//
+//

Working on this story today in Freeburg, IL...here's the dress code flyer sent home with parents of 5th - 8th graders. Many parents said they're offended by its wording and images. Are you?

Posted by Rebecca Sheehan KSDK on Wednesday, July 27, 2016
+ +// + + // ------------------------------------------------------------------- + // FACEBOOK VIDEO + // ------------------------------------------------------------------- + + // SEE: https://developers.facebook.com/docs/plugins/oembed-endpoints + // https://www.facebook.com/{page-name}/videos/{video-id}/ + // https://www.facebook.com/{username}/videos/{video-id}/ + // https://www.facebook.com/video.php?id={video-id} + // https://www.facebook.com/video.php?v={video-id} Provider.extend({ name: 'facebook-video', type: 'rich', - uri: 'facebook\\.com/(.+?)/videos/([0-9]+)/*$', - weight: 79, // parse before facebook provider - version: 1, - fetch: function(uri) { - return this.fetchGraph(uri); - }, + uri: [ + /facebook\.com\/plugins\/video.php(.*?)href=([^&]+)/, // REWRITE PLUGIN HREF URI + function(parts) { + return decodeURIComponent(parts[2]); + }, + /facebook\.com\/(.+?)\/videos\/(.+)$/, + function(parts) { + return { + page_name: parts[1], + video_id: parts[2] + }; + }, + /facebook\.com\/video.php\?\w+=(.+)$/, + function(parts) { + return { + video_id: parts[1] + }; + } + ], + weight: 79, // parse before generic facebook provider + version: 2, script: '//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7', - asEmbed: function(entry) { - return '
' - + '
' - + '
' - + 'View video on Facebook' - + '
' - + this.asScript(); + fetch: function(uri, params) { + return this.fetchEmbed(uri, { + api: "https://www.facebook.com/plugins/video/oembed.json/" + }) + .then(function(data) { + if (data.embed_html) { + data.embed_html = data.embed_html.replace(//img, ''); + data.embed_html = data.embed_html.replace(/
<\/div>/, ''); + data.embed_raw = true; // don't render iframe via data.embed_src + } + return _.extend(data, params); + }); } }), + // ------------------------------------------------------------------- + // FACEBOOK POST + // ------------------------------------------------------------------- + + // SEE: https://developers.facebook.com/docs/plugins/oembed-endpoints + // https://www.facebook.com/{page-name}/posts/{post-id} + // https://www.facebook.com/{username}/posts/{post-id} + // https://www.facebook.com/{username}/activity/{activity-id} + // https://www.facebook.com/photo.php?fbid={photo-id} + // https://www.facebook.com/photos/{photo-id} + // https://www.facebook.com/permalink.php?story_fbid={post-id} + // https://www.facebook.com/media/set?set={set-id} + // https://www.facebook.com/questions/{question-id} + // https://www.facebook.com/notes/{username}/{note-url}/{note-id} Provider.extend({ - name: 'facebook', + name: 'facebook-post', type: 'rich', - uri: 'facebook\\.com', + uri: [ + /facebook\.com\/plugins\/post.php(.*?)href=([^&]+)/, + function(parts) { + return decodeURIComponent(parts[2]); // REWRITE PLUGIN HREF URI + }, + /facebook\.com\/([^\/]+)\/posts\/(.+)$/, + function(parts) { + return { + uri_type: 'post', + page_name: parts[1], + post_id: parts[2] + }; + }, + /facebook\.com\/([^\/]+)\/activity\/(.+)$/, + function(parts) { + return { + uri_type: 'activity', + username: parts[1], + activity_id: parts[2] + }; + }, + /facebook\.com\/photo.php\?fbid=(.+)$/, + function(parts) { + return { + uri_type: 'photo', + photo_id: parts[1] + }; + }, + /facebook\.com\/(.+?)\/photos\/(.+)$/, + function(parts) { + return { + uri_type: 'photo', + photo_id: parts[1] + }; + }, + /facebook\.com\/photos\/(.+)$/, + function(parts) { + return { + uri_type: 'photo', + photo_id: parts[1] + }; + }, + /facebook\.com\/permalink.php?story_fbid=(.+)$/, + function(parts) { + return { + uri_type: 'permalink', + post_id: parts[1] + }; + }, + /facebook\.com\/media\/set\?set=(.+)$/, + function(parts) { + return { + uri_type: 'media', + set_id: parts[1] + }; + }, + /facebook\.com\/questions\/(.+)$/, + function(parts) { + return { + uri_type: 'question', + question_id: parts[1] + }; + }, + /facebook\.com\/notes\/(.*?)\/(.*?)\/(.+)$/, + function(parts) { + return { + uri_type: 'note', + username: parts[1], + note_url: parts[2], + note_id: parts[3] + }; + }, + ], + weight: 79, // parse before generic facebook provider version: 1, - fetch: function(uri) { - return this.fetchGraph(uri); - }, script: '//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7', + fetch: function(uri, params) { + return this.fetchEmbed(uri, { + api: "https://www.facebook.com/plugins/post/oembed.json/" + }) + .then(function(data) { + if (data.embed_html) { + data.embed_html = data.embed_html.replace(//img, ''); + data.embed_html = data.embed_html.replace(/
<\/div>/, ''); + data.embed_raw = true; // don't render iframe via data.embed_src + } + return _.extend(data, params); + }); + } + }), + + // ------------------------------------------------------------------- + // FACEBOOK COMMENT + // ------------------------------------------------------------------- + + // https://www.facebook.com/plugins/comment_embed.php?href=https%3A%2F%2Fwww.facebook.com%2FRebeccaSheehanKSDK%2Fphotos%2Fa.671696456319040.1073741829.669142353241117%2F690241274464558%2F%3Ftype%3D3%26comment_id%3D690960497725969&include_parent=false + // https://www.facebook.com/zuck/posts/10102577175875681?comment_id=1193531464007751&reply_comment_id=654912701278942 + Provider.extend({ + name: 'facebook-comment', + type: 'rich', + uri: [ + /facebook\.com\/plugins\/comment_embed.php(.*?)href=([^&]+)/, + function(parts) { + return decodeURIComponent(parts[2]); // REWRITE PLUGIN HREF URI + }, + /facebook\.com\/(.+?)comment_id=(\d+)$/, + function(parts) { + return { + comment_id: parts[2] + }; + } + ], + weight: 79, // parse before generic facebook provider + version: 2, + script: '//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7', + fetch: function(uri, parts) { + var data = { embed_src: uri }; + + if ((parts = uri.match(/comment_id=(\d+)/))) { + data.comment_id = parts[1]; + } + if ((parts = uri.match(/reply_comment_id=(\d+)/))) { + data.reply_comment_id = parts[1]; + } + return data; + }, asEmbed: function(entry) { - return '
' - + '
' + return '
' + + '
' + this.asScript(); } }), + //
+ //
+ // + //
+ //
+ +// Provider.extend({ +// name: 'facebook', +// type: 'rich', +// uri: 'facebook\\.com', +// version: 1, +// fetch: function(uri) { +// var href = uri +// , type = 'fb-post' +// , parts; + +// // test if iframe plugin uri +// if ((/plugins/).test(uri) && (parts = uri.match(/href=([^&]+)/))) { +// href = decodeURIComponent(parts[1]); +// } +// // test if embedded comment +// if ((/comment/).test(href)) { +// type = 'fb-comment-embed'; +// } +// return this.fetchGraph(href).then(function(data) { +// data.href = href; +// data.type = type; +// return data; +// }); +// }, +// script: '//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7', +// asEmbed: function(entry) { +// var uri = entry.data.href || entry.uri +// , type = entry.data.type || 'fb-post'; + +// console.log("ENTRY", entry.data); +// console.log("TYPE", type); + +// // return ''; + +// return '
' +// + '
' +// + this.asScript(); +// } +// }), + Provider.extend({ name: 'flickr', type: "photo", From 3d5d46126079b53e39ca7cd4f0029a20df54f239 Mon Sep 17 00:00:00 2001 From: Andrew Bunker Date: Wed, 17 Aug 2016 16:11:21 -0600 Subject: [PATCH 03/29] re-added the generic facebook provider --- package.json | 2 +- providers/domains_ef.js | 72 +++++++++-------------------------------- 2 files changed, 17 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index 66f21aa..fd6fd4c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "embedable", - "version": "1.0.17", + "version": "1.0.18", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { diff --git a/providers/domains_ef.js b/providers/domains_ef.js index a50d9ee..35a93f1 100644 --- a/providers/domains_ef.js +++ b/providers/domains_ef.js @@ -230,62 +230,22 @@ module.exports = [ } }), - //
- //
- // - //
- //
- -// Provider.extend({ -// name: 'facebook', -// type: 'rich', -// uri: 'facebook\\.com', -// version: 1, -// fetch: function(uri) { -// var href = uri -// , type = 'fb-post' -// , parts; - -// // test if iframe plugin uri -// if ((/plugins/).test(uri) && (parts = uri.match(/href=([^&]+)/))) { -// href = decodeURIComponent(parts[1]); -// } -// // test if embedded comment -// if ((/comment/).test(href)) { -// type = 'fb-comment-embed'; -// } -// return this.fetchGraph(href).then(function(data) { -// data.href = href; -// data.type = type; -// return data; -// }); -// }, -// script: '//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7', -// asEmbed: function(entry) { -// var uri = entry.data.href || entry.uri -// , type = entry.data.type || 'fb-post'; - -// console.log("ENTRY", entry.data); -// console.log("TYPE", type); - -// // return ''; - -// return '
' -// + '
' -// + this.asScript(); -// } -// }), + Provider.extend({ + name: 'facebook', + type: 'rich', + uri: 'facebook\\.com', + version: 1, + fetch: function(uri) { + return this.fetchGraph(uri); + }, + script: '//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.7', + asEmbed: function(entry) { + return '
' + + '
' + + this.asScript(); + } + }), Provider.extend({ name: 'flickr', From 3c00b0d1c8e81db63563e00f485cb9a74a734318 Mon Sep 17 00:00:00 2001 From: Andrew Bunker Date: Wed, 17 Aug 2016 17:13:39 -0600 Subject: [PATCH 04/29] fixed youtube provider bug --- package.json | 2 +- providers/domains_yz.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fd6fd4c..a4ebaf7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "embedable", - "version": "1.0.18", + "version": "1.0.19", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { diff --git a/providers/domains_yz.js b/providers/domains_yz.js index 673c119..cee3c4d 100644 --- a/providers/domains_yz.js +++ b/providers/domains_yz.js @@ -33,7 +33,7 @@ module.exports = [ type: 'video', uri: [ "//youtube\\.com/[^#?/]+#[^#?/]+/.+$", - /(youtube\.com|youtu\.be)\/(embed|index|profile|view_play_list|playlist|user|watch|v)\//, + /(youtube\.com|youtu\.be)\/(embed|index|profile|view_play_list|playlist|user|watch|v)/i ], version: 0, fetch: function(uri) { From d17b9e8d7131986eb31445314ad120c1f3e26e8d Mon Sep 17 00:00:00 2001 From: Andrew Bunker Date: Fri, 19 Aug 2016 11:38:06 -0600 Subject: [PATCH 05/29] fixed aspect-ratio issue with giphy provider --- package.json | 2 +- provider/index.js | 2 ++ providers/domains_gh.js | 12 +++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a4ebaf7..1a33bf5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "embedable", - "version": "1.0.19", + "version": "1.0.20", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { diff --git a/provider/index.js b/provider/index.js index e6c68df..139d74a 100644 --- a/provider/index.js +++ b/provider/index.js @@ -292,6 +292,8 @@ _.extend(Provider.prototype, { ? Math.round((height / width) * 100) : 50; +console.log("asEmbed", width, height, ratio); + out = '
<' + tag diff --git a/providers/domains_gh.js b/providers/domains_gh.js index 3c88d1c..0f8fec9 100644 --- a/providers/domains_gh.js +++ b/providers/domains_gh.js @@ -20,7 +20,7 @@ module.exports = [ name: "giphy", type: "video", uri: "(giphy\.com|gph\.is)/.+", - version: 1, + version: 2, fetch: function(uri) { return this.fetchGraph(uri).then(function(data) { var photo = data.photo_url @@ -31,6 +31,16 @@ module.exports = [ ? ('//giphy.com/embed/' + id) : null; + // NOTE: For some reason the embed width & height they are providing + // us is not the correct aspect ratio. However, the photo_width & + // photo_height are... so we are using those for now. We may consider + // eliminating this at some point if they fix the problem. + if (data.photo_width) { + data.embed_width = data.photo_width; + } + if (data.photo_height) { + data.embed_height = data.photo_height; + } return data; }); } From 5811cd57524075d1bd45d63fb12b7b8faae187e2 Mon Sep 17 00:00:00 2001 From: Nathan Knowles Date: Tue, 4 Oct 2016 10:55:41 -0600 Subject: [PATCH 06/29] Added option to handle wrapping in
tags for Instant Articles --- package.json | 2 +- provider/index.js | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 1a33bf5..d284528 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "embedable", - "version": "1.0.20", + "version": "1.0.21", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { diff --git a/provider/index.js b/provider/index.js index 139d74a..3c85e38 100644 --- a/provider/index.js +++ b/provider/index.js @@ -161,6 +161,13 @@ _.extend(Provider.prototype, { + (style ? ' embed-' + style : '') + '">' + out + '
'; } + + if (opts.fbInstant) { + out = '
'; + } + return out; }, From 89ed6acb6e28c25aed1cce12b0241e2b562537c9 Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Thu, 16 Feb 2017 10:57:39 -0700 Subject: [PATCH 07/29] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 26d67d4..396ba5d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# embedable +# embeddable Embed media via oEmbed or openGraph @@ -18,4 +18,4 @@ var data = embed.fetch('https://www.youtube.com/watch?v=igUMDICqTpQ'); var html = data.then(function(data) { return embed.render(data); }); -``` \ No newline at end of file +``` From b3a871e47a527ae398aee24e762788d46cc8294d Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Thu, 16 Feb 2017 10:58:34 -0700 Subject: [PATCH 08/29] Update package.json --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index d284528..417f23f 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "embedable", + "name": "ddm-embeddable", "version": "1.0.21", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", @@ -8,7 +8,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/numinos1/embedable.git" + "url": "https://github.com/deseretdigital/embeddable.git" }, "keywords": [ "oembed", @@ -19,9 +19,9 @@ "author": "Andrew Bunker", "license": "MIT", "bugs": { - "url": "https://github.com/numinos1/embedable/issues" + "url": "https://github.com/deseretdigital/embeddable/issues" }, - "homepage": "https://github.com/numinos1/embedable", + "homepage": "https://github.com/deseretdigital/embeddable", "dependencies": { "htmlparser2": "^3.9.0", "lodash": "^3.10.1", From 2d31ecebd78c7287c47523bc22ed4523a201bb39 Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Thu, 16 Feb 2017 11:03:05 -0700 Subject: [PATCH 09/29] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 396ba5d..942a6f4 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,18 @@ Embed media via oEmbed or openGraph +# Install + +`npm install ddm-embeddable` + # Example of using the embedable code to fetch and render a uri ```javascript // Require the embedable library -var Embedable = require('embedable'); +var Embeddable = require('ddm-embeddable'); // Instantiate the embedable object -var embed = Embedable(); +var embed = Embeddable(); // Asynchronously fetch metadata for a URI var data = embed.fetch('https://www.youtube.com/watch?v=igUMDICqTpQ'); From a3bc8ce7bfd317f1218638a4bf3f2f1f46290090 Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Thu, 16 Feb 2017 11:03:22 -0700 Subject: [PATCH 10/29] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 417f23f..0402ac4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.0.21", + "version": "1.1.0", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From f4e870775314ae8db774c874c048d76ea5fa9564 Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Wed, 30 Aug 2017 12:54:42 -0600 Subject: [PATCH 11/29] Switch YouTube to use oembed endpoint --- package-lock.json | 531 ++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- providers/domains_yz.js | 16 +- test/youtube.js | 24 ++ 4 files changed, 560 insertions(+), 14 deletions(-) create mode 100644 package-lock.json create mode 100644 test/youtube.js diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..50c1607 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,531 @@ +{ + "name": "ddm-embeddable", + "version": "1.1.0", + "lockfileVersion": 1, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "assertion-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", + "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "dev": true + }, + "chai-as-promised": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-5.3.0.tgz", + "integrity": "sha1-CdekApCKpw39vq1T5YU/x50+8hw=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + }, + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "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": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "dependencies": { + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=" + }, + "domutils": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", + "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "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.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + }, + "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=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "mime-db": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + }, + "mime-types": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=" + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true + }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + }, + "sprintf-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", + "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=" + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true + }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true + }, + "underscore.string": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=" + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "when": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", + "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" + } + } +} diff --git a/package.json b/package.json index 0402ac4..01e0a37 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { - "test": "mocha test/index.js" + "test": "mocha test/index.js", + "test-youtube": "mocha test/youtube.js" }, "repository": { "type": "git", diff --git a/providers/domains_yz.js b/providers/domains_yz.js index cee3c4d..2145eb0 100644 --- a/providers/domains_yz.js +++ b/providers/domains_yz.js @@ -37,19 +37,9 @@ module.exports = [ ], version: 0, fetch: function(uri) { - return this.fetchGraph(uri, { - paid: 'meta/paid', - channelId: 'meta/channelId', - videoId: 'meta/videoId', - duration: 'meta/duration', - unlisted: 'meta/unlisted', - playerType: 'meta/playerType', - isFamilyFriendly: 'meta/isFamilyFriendly', - interactionCount: 'meta/interactionCount', - datePublished: 'meta/datePublished', - genre: 'meta/genre' - }); + return this.fetchEmbed(uri, { + api: 'https://www.youtube.com/oembed' + }); } }) - ]; diff --git a/test/youtube.js b/test/youtube.js new file mode 100644 index 0000000..919e02f --- /dev/null +++ b/test/youtube.js @@ -0,0 +1,24 @@ +var chai = require("chai") + , assert = chai.assert + , chaiAsPromised = require("chai-as-promised") + , Embedable = require('../index.js'); + +chai.use(chaiAsPromised); + +var embed = Embedable(); + +describe('Fetch from YouTube', function() { + it('Is able to fetch from youtube', function() { + return embed.fetch('https://www.youtube.com/watch?v=yYonI7n4XlE') + .then(function(data) { + console.log(data); + console.log("----------------------------------------"); + return embed.render(data); + }) + .then(function(html) { + console.log(html); + assert.typeOf(html, 'string'); + }); + }); + +}); From 2df324516f9dfa14d3ac39a80c1162f52c581bf0 Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Wed, 30 Aug 2017 13:51:28 -0600 Subject: [PATCH 12/29] Increment version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 01e0a37..c200eef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.1.0", + "version": "1.2.0", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From 06188963f9ea4e79856e68f94222887427a7870e Mon Sep 17 00:00:00 2001 From: Chase Noel Date: Wed, 25 Oct 2017 14:16:35 -0600 Subject: [PATCH 13/29] Add the deseretnews provider --- providers/domains_cd.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/providers/domains_cd.js b/providers/domains_cd.js index b57a676..5a4e10b 100644 --- a/providers/domains_cd.js +++ b/providers/domains_cd.js @@ -112,6 +112,18 @@ module.exports = [ } }), + Provider.extend({ + name: 'deseretnews', + type: 'rich', + uri: "//(?:[-\\w]+\\.)?deseretnews\\.com/.+$", + version: 0, + fetch: function(uri) { + return this.fetchEmbed(uri, { + api: "http://www.deseretnews.com/services/oembed", + }); + } + }), + Provider.extend({ name: 'deviantart', type: 'photo', From e4f69b078b7e16d0a0b7b587999742ab5643b45e Mon Sep 17 00:00:00 2001 From: Chase Noel Date: Wed, 25 Oct 2017 16:47:42 -0600 Subject: [PATCH 14/29] Fixed url schema --- providers/domains_cd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/domains_cd.js b/providers/domains_cd.js index 5a4e10b..e2d4d10 100644 --- a/providers/domains_cd.js +++ b/providers/domains_cd.js @@ -119,7 +119,7 @@ module.exports = [ version: 0, fetch: function(uri) { return this.fetchEmbed(uri, { - api: "http://www.deseretnews.com/services/oembed", + api: "https://www.deseretnews.com/services/oembed", }); } }), From e5a5ce04241be1d727c2d6111085499c3757aca2 Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Thu, 26 Oct 2017 10:18:24 -0600 Subject: [PATCH 15/29] Increment to 1.2.1: Adds DeseretNews.com --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c200eef..a8f2dca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.2.0", + "version": "1.2.1", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From 4ebd49ec9ad120fe0d0b4418c4dd9aa43156c283 Mon Sep 17 00:00:00 2001 From: Chase Noel Date: Thu, 26 Oct 2017 13:39:46 -0600 Subject: [PATCH 16/29] Narrow the URI match --- providers/domains_cd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/domains_cd.js b/providers/domains_cd.js index e2d4d10..ef0eda7 100644 --- a/providers/domains_cd.js +++ b/providers/domains_cd.js @@ -115,7 +115,7 @@ module.exports = [ Provider.extend({ name: 'deseretnews', type: 'rich', - uri: "//(?:[-\\w]+\\.)?deseretnews\\.com/.+$", + uri: "//(?:[-\\w]+\\.)?deseretnews\\.com/quizlet/.+$", version: 0, fetch: function(uri) { return this.fetchEmbed(uri, { From 23138c074e8283316cdac86b7a52a2aa32ae5107 Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Thu, 26 Oct 2017 14:40:18 -0600 Subject: [PATCH 17/29] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a8f2dca..566c73a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.2.1", + "version": "1.2.2", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From b4ef924e59e1a71be7c1cb8b8088acc905edbb5a Mon Sep 17 00:00:00 2001 From: Brendan Warkentin Date: Tue, 31 Oct 2017 12:06:12 -0600 Subject: [PATCH 18/29] Allow Vimeo provider to match video URLs without sub-domain --- providers/domains_uv.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/providers/domains_uv.js b/providers/domains_uv.js index a0b0a65..5c1dd09 100644 --- a/providers/domains_uv.js +++ b/providers/domains_uv.js @@ -70,7 +70,10 @@ module.exports = [ Provider.extend({ name: 'vimeo', type: "video", - uri: "//(www|player|)\\.vimeo\\.com/.+$", + uri: [ + "//(www|player)\\.vimeo\\.com/.+$", + "//vimeo\\.com/.+$" + ], version: 0, fetch: function(uri) { return this.fetchEmbed(uri, { From c2c9d39e6e5062789dbda9a9583d0ac4ecc2a94d Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Wed, 8 Nov 2017 09:22:48 -0700 Subject: [PATCH 19/29] Increment release (adds vimeo) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 566c73a..3b7e7c4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.2.2", + "version": "1.2.3", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From 21f1f4d272839cb6083544656ffcefd0df40eaac Mon Sep 17 00:00:00 2001 From: Brendan Warkentin Date: Wed, 31 Jan 2018 14:49:08 -0700 Subject: [PATCH 20/29] Update domains_cd.js --- providers/domains_cd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/domains_cd.js b/providers/domains_cd.js index ef0eda7..aa1b5c9 100644 --- a/providers/domains_cd.js +++ b/providers/domains_cd.js @@ -113,7 +113,7 @@ module.exports = [ }), Provider.extend({ - name: 'deseretnews', + name: 'deseretnews-quizlet', type: 'rich', uri: "//(?:[-\\w]+\\.)?deseretnews\\.com/quizlet/.+$", version: 0, From 3b88775f98bd150cc99bb8ae9f95d98b4596ea83 Mon Sep 17 00:00:00 2001 From: Serhii Yehorov Date: Fri, 2 Feb 2018 18:13:21 +0200 Subject: [PATCH 21/29] Added DN Ask Survery embed provider --- providers/domains_cd.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/providers/domains_cd.js b/providers/domains_cd.js index ef0eda7..c2f9610 100644 --- a/providers/domains_cd.js +++ b/providers/domains_cd.js @@ -113,10 +113,22 @@ module.exports = [ }), Provider.extend({ - name: 'deseretnews', + name: 'deseretnews-quizlet', type: 'rich', uri: "//(?:[-\\w]+\\.)?deseretnews\\.com/quizlet/.+$", - version: 0, + version: 0, + fetch: function(uri) { + return this.fetchEmbed(uri, { + api: "https://www.deseretnews.com/services/oembed", + }); + } + }), + + Provider.extend({ + name: 'deseretnews-ask', + type: 'rich', + uri: "amazonaws\\.com/ask\\.deseretnews.com/(\\w+)\\.html$", + version: 0, fetch: function(uri) { return this.fetchEmbed(uri, { api: "https://www.deseretnews.com/services/oembed", From 6ee9d39e5c77d7fc2830ebd57aac9d045f4f624d Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Wed, 7 Feb 2018 10:41:42 -0700 Subject: [PATCH 22/29] Updates version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3b7e7c4..5f2c717 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.2.3", + "version": "1.2.4", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From 7c229d40c7647aea97acb8d4f08287544d4e8880 Mon Sep 17 00:00:00 2001 From: Christopher Pies Date: Thu, 12 Apr 2018 08:30:21 -0600 Subject: [PATCH 23/29] Escape html characters in title --- package-lock.json | 242 ++++++++++++++++++++++++++++++++++++++++------ package.json | 1 + provider/index.js | 11 +-- 3 files changed, 219 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 50c1607..f515d94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,17 @@ { "name": "ddm-embeddable", - "version": "1.1.0", + "version": "1.2.4", "lockfileVersion": 1, + "requires": true, "dependencies": { "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } }, "asn1": { "version": "0.2.3", @@ -43,12 +48,18 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } }, "caseless": { "version": "0.12.0", @@ -59,7 +70,12 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", - "dev": true + "dev": true, + "requires": { + "assertion-error": "1.0.2", + "deep-eql": "0.1.3", + "type-detect": "1.0.0" + } }, "chai-as-promised": { "version": "5.3.0", @@ -75,7 +91,10 @@ "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } }, "commander": { "version": "2.3.0", @@ -91,12 +110,18 @@ "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.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" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -109,13 +134,19 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "deep-eql": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", "dev": true, + "requires": { + "type-detect": "0.1.1" + }, "dependencies": { "type-detect": { "version": "0.1.1", @@ -140,6 +171,10 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, "dependencies": { "domelementtype": { "version": "1.1.3", @@ -156,18 +191,28 @@ "domhandler": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=" + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "requires": { + "domelementtype": "1.3.0" + } }, "domutils": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", - "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=" + "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "entities": { "version": "1.1.1", @@ -198,12 +243,20 @@ "form-data": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" + } }, "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" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -216,7 +269,11 @@ "version": "3.2.11", "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } }, "growl": { "version": "1.9.2", @@ -232,27 +289,55 @@ "har-validator": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, + "html-escape": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-escape/-/html-escape-2.0.0.tgz", + "integrity": "sha1-YMjd1GXt8MrgKvnpn99fiDsJvkk=" + }, "htmlparser2": { "version": "3.9.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=" + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.6.2", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } }, "inherits": { "version": "2.0.3", @@ -279,6 +364,10 @@ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, "dependencies": { "commander": { "version": "0.6.1", @@ -308,7 +397,10 @@ "json-stable-stringify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "0.0.0" + } }, "json-stringify-safe": { "version": "5.0.1", @@ -324,6 +416,12 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -351,13 +449,20 @@ "mime-types": { "version": "2.1.16", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=" + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "requires": { + "mime-db": "1.29.0" + } }, "minimatch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } }, "minimist": { "version": "0.0.8", @@ -369,13 +474,28 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8" + } }, "mocha": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", - "dev": true + "dev": true, + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + } }, "ms": { "version": "0.7.1", @@ -411,12 +531,45 @@ "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, "request": { "version": "2.81.0", "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=" + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.16", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } }, "safe-buffer": { "version": "5.1.1", @@ -432,7 +585,10 @@ "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } }, "sprintf-js": { "version": "1.1.1", @@ -443,6 +599,16 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -454,7 +620,10 @@ "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } }, "stringstream": { "version": "0.0.5", @@ -476,12 +645,18 @@ "tough-cookie": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=" + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "requires": { + "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=" + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } }, "tweetnacl": { "version": "0.14.5", @@ -498,7 +673,11 @@ "underscore.string": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", - "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=" + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "requires": { + "sprintf-js": "1.1.1", + "util-deprecate": "1.0.2" + } }, "util-deprecate": { "version": "1.0.2", @@ -514,6 +693,11 @@ "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.3.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", diff --git a/package.json b/package.json index 5f2c717..ab6a2be 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ }, "homepage": "https://github.com/deseretdigital/embeddable", "dependencies": { + "html-escape": "^2.0.0", "htmlparser2": "^3.9.0", "lodash": "^3.10.1", "request": "^2.74.0", diff --git a/provider/index.js b/provider/index.js index 3c85e38..12340d2 100644 --- a/provider/index.js +++ b/provider/index.js @@ -1,4 +1,5 @@ var _ = require('lodash') + , htmlEscape = require('html-escape') , when = require('when') , request = require('request') , toTag = require('./toTag') @@ -208,7 +209,7 @@ _.extend(Provider.prototype, { asTitle: function(entry, opts) { var data = entry.data - , title = opts.title || data.title || '' + , title = htmlEscape(opts.title || data.title || '') , credit = this.asCredit(entry, opts) || ''; if (!credit && !title) { @@ -251,7 +252,7 @@ _.extend(Provider.prototype, { return this.toTag('a', { 'href': entry.uri, - }, opts.title || data.title || entry.uri); + }, htmlEscape(opts.title) || htmlEscape(data.title) || entry.uri); }, /** @@ -268,7 +269,7 @@ _.extend(Provider.prototype, { } return this.toTag('img', { 'src': data.photo_url, - 'alt': opts.title || data.title, + 'alt': htmlEscape(opts.title || data.title), 'width': opts.width || '100%', 'height': opts.height || 'auto', 'class': 'embed-photo' @@ -290,7 +291,7 @@ _.extend(Provider.prototype, { // if embed_raw = true, then use embed_html instead if (data.embed_src && !data.embed_raw) { tag = data.embed_tag || this.tag; - title = data.embed_title || data.title; + title = htmlEscape(data.embed_title || data.title); width = parseInt(opts.width || data.embed_width, 10) || 0; height = parseInt(opts.height || data.embed_height, 10) || 0; @@ -299,8 +300,6 @@ _.extend(Provider.prototype, { ? Math.round((height / width) * 100) : 50; -console.log("asEmbed", width, height, ratio); - out = '
<' + tag From 0abb51dfd6bb0990e900ecc68001bef6f65eff19 Mon Sep 17 00:00:00 2001 From: Spencer Dickson Date: Wed, 2 May 2018 15:22:18 -0600 Subject: [PATCH 24/29] update version number --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ab6a2be..4d1f5ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.2.4", + "version": "1.2.5", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From 6766ee066c67a031b1a76eb95122c56e08696190 Mon Sep 17 00:00:00 2001 From: Serhii Yehorov Date: Thu, 26 Jul 2018 16:18:11 +0300 Subject: [PATCH 25/29] Changed dnews quizlet povider to be dnews generic provider --- providers/domains_cd.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/providers/domains_cd.js b/providers/domains_cd.js index c2f9610..85d0d44 100644 --- a/providers/domains_cd.js +++ b/providers/domains_cd.js @@ -113,9 +113,9 @@ module.exports = [ }), Provider.extend({ - name: 'deseretnews-quizlet', + name: 'deseretnews', type: 'rich', - uri: "//(?:[-\\w]+\\.)?deseretnews\\.com/quizlet/.+$", + uri: "//(?:[-\\w]+\\.)?deseretnews\\.com/.+$", version: 0, fetch: function(uri) { return this.fetchEmbed(uri, { From a13fa4469e125e8791672ce2495ce3c263c77ecf Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Fri, 17 Aug 2018 09:25:05 -0600 Subject: [PATCH 26/29] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4d1f5ac..55fefe1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.2.5", + "version": "1.3.0", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { From 8a0310efa5a59ebc2ad76cdbe9fc03908e46f8d3 Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Fri, 17 Aug 2018 09:34:06 -0600 Subject: [PATCH 27/29] Updates dependencies to remove vulns --- package-lock.json | 687 +++++++++++++++++++++++----------------------- package.json | 10 +- 2 files changed, 350 insertions(+), 347 deletions(-) diff --git a/package-lock.json b/package-lock.json index f515d94..cfcda03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,32 +1,37 @@ { "name": "ddm-embeddable", - "version": "1.2.4", + "version": "1.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } }, "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assertion-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", - "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "asynckit": { @@ -35,52 +40,78 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + "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.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "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": { - "hoek": "2.16.3" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, + "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 + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chai": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", - "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.0.2", - "deep-eql": "0.1.3", - "type-detect": "1.0.0" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "chai-as-promised": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-5.3.0.tgz", - "integrity": "sha1-CdekApCKpw39vq1T5YU/x50+8hw=", + "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==", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "co": { @@ -89,17 +120,23 @@ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", - "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "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 }, "core-util-is": { @@ -107,53 +144,30 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.10.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" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "assert-plus": "^1.0.0" } }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "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": "0.7.1" + "ms": "2.0.0" } }, "deep-eql": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "0.1.1" - }, - "dependencies": { - "type-detect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", - "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", - "dev": true - } + "type-detect": "^4.0.0" } }, "delayed-stream": { @@ -162,9 +176,9 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "diff": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", - "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "dom-serializer": { @@ -172,8 +186,8 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -193,7 +207,7 @@ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -201,17 +215,18 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "entities": { @@ -220,96 +235,111 @@ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" }, "escape-string-regexp": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", - "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "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 }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "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": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, "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.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.16" + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "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 + }, "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" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "assert-plus": "^1.0.0" } }, "glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimatch": "0.3.0" + "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" } }, "growl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", - "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true }, "html-escape": { "version": "2.0.0", @@ -321,22 +351,32 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.6.2", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.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": { @@ -359,30 +399,6 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "jade": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", - "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", - "dev": true, - "requires": { - "commander": "0.6.1", - "mkdirp": "0.3.0" - }, - "dependencies": { - "commander": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", - "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", - "dev": true - }, - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", - "dev": true - } - } - }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", @@ -394,24 +410,16 @@ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "0.0.0" - } + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "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=" }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -421,47 +429,33 @@ "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } } }, "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "mime-db": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" }, "mime-types": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "1.29.0" + "mime-db": "~1.35.0" } }, "minimatch": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -480,95 +474,127 @@ } }, "mocha": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", - "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, "requires": { - "commander": "2.3.0", - "debug": "2.2.0", - "diff": "1.4.0", - "escape-string-regexp": "1.0.2", - "glob": "3.2.11", - "growl": "1.9.2", - "jade": "0.26.3", + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "1.2.0", - "to-iso-string": "0.0.2" + "supports-color": "5.4.0" } }, "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "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=", + "dev": true + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true }, "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.16", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "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": { + "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==" + } } }, "safe-buffer": { @@ -576,19 +602,10 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.16.3" - } + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sprintf-js": { "version": "1.1.1", @@ -596,25 +613,19 @@ "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=" }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "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_decoder": { @@ -622,32 +633,25 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, "supports-color": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", - "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", - "dev": true - }, - "to-iso-string": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", - "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", - "dev": true + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } }, "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "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": { - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -655,7 +659,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -665,9 +669,9 @@ "optional": true }, "type-detect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", - "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "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 }, "underscore.string": { @@ -675,8 +679,8 @@ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", "requires": { - "sprintf-js": "1.1.1", - "util-deprecate": "1.0.2" + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" } }, "util-deprecate": { @@ -685,31 +689,30 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "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", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "extsprintf": "^1.2.0" } }, "when": { "version": "3.7.8", "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true } } } diff --git a/package.json b/package.json index 55fefe1..9c1c735 100644 --- a/package.json +++ b/package.json @@ -26,14 +26,14 @@ "dependencies": { "html-escape": "^2.0.0", "htmlparser2": "^3.9.0", - "lodash": "^3.10.1", - "request": "^2.74.0", + "lodash": "^4.17.10", + "request": "^2.88.0", "underscore.string": "^3.3.4", "when": "^3.7.7" }, "devDependencies": { - "chai": "^3.5.0", - "chai-as-promised": "^5.2.0", - "mocha": "^2.4.5" + "chai": "^4.1.2", + "chai-as-promised": "^7.1.1", + "mocha": "^5.2.0" } } From 0a7c18bf95d1b37939e2250828946b84541ba47e Mon Sep 17 00:00:00 2001 From: Matt Montgomery Date: Mon, 20 Aug 2018 10:42:43 -0600 Subject: [PATCH 28/29] Updates deps and fixes lodash breakage --- package-lock.json | 6 +- package.json | 4 +- test/index.js | 140 +++++++++++++++++++++++++--------------------- 3 files changed, 81 insertions(+), 69 deletions(-) diff --git a/package-lock.json b/package-lock.json index cfcda03..7fc9388 100644 --- a/package-lock.json +++ b/package-lock.json @@ -432,9 +432,9 @@ } }, "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" }, "mime-db": { "version": "1.35.0", diff --git a/package.json b/package.json index 9c1c735..6437174 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ddm-embeddable", - "version": "1.3.0", + "version": "1.3.1", "description": "Oembed and OpenGraph embeds for content", "main": "index.js", "scripts": { @@ -26,7 +26,7 @@ "dependencies": { "html-escape": "^2.0.0", "htmlparser2": "^3.9.0", - "lodash": "^4.17.10", + "lodash": "^3.10.1", "request": "^2.88.0", "underscore.string": "^3.3.4", "when": "^3.7.7" diff --git a/test/index.js b/test/index.js index 43bd032..ce51e03 100644 --- a/test/index.js +++ b/test/index.js @@ -1,58 +1,53 @@ -var chai = require("chai") - , assert = chai.assert - , chaiAsPromised = require("chai-as-promised") - , Embedable = require('../index.js'); +var chai = require("chai"), + assert = chai.assert, + chaiAsPromised = require("chai-as-promised"), + Embedable = require("../index.js"); chai.use(chaiAsPromised); var embed = Embedable(); -describe('Embedable Module', function() { - - it('Is a constructor', function() { - assert.typeOf(Embedable, 'function'); +describe("Embedable Module", function() { + it("Is a constructor", function() { + assert.typeOf(Embedable, "function"); }); - it('Has a provider constructor', function() { - assert.typeOf(Embedable.Provider, 'function'); + it("Has a provider constructor", function() { + assert.typeOf(Embedable.Provider, "function"); }); - it('Has a providers array', function() { - assert.typeOf(Embedable.Providers, 'array'); + it("Has a providers array", function() { + assert.typeOf(Embedable.Providers, "array"); }); - it('Has more than 80 providers', function() { + it("Has more than 80 providers", function() { assert.isAtLeast(Embedable.Providers.length, 80); }); - }); -describe('Instance Methods', function() { - - it('Has addProvider()', function() { - assert.typeOf(embed.addProvider, 'function'); +describe("Instance Methods", function() { + it("Has addProvider()", function() { + assert.typeOf(embed.addProvider, "function"); }); - it('Has findProvider()', function() { - assert.typeOf(embed.findProvider, 'function'); + it("Has findProvider()", function() { + assert.typeOf(embed.findProvider, "function"); }); - it('Has fetchProvider()', function() { - assert.typeOf(embed.fetchProvider, 'function'); + it("Has fetchProvider()", function() { + assert.typeOf(embed.fetchProvider, "function"); }); - it('Has fetch()', function() { - assert.typeOf(embed.fetch, 'function'); + it("Has fetch()", function() { + assert.typeOf(embed.fetch, "function"); }); - it('Has render()', function() { - assert.typeOf(embed.render, 'function'); + it("Has render()", function() { + assert.typeOf(embed.render, "function"); }); - }); -describe('Fetch Method', function() { - +describe("Fetch Method", function() { // it('Is able to fetch from imgur', function() { // return embed.fetch('http://imgur.com/gallery/wz49SF8') // .then(function(data) { @@ -66,44 +61,62 @@ describe('Fetch Method', function() { // }); // }); - it('Is able to fetch from vimeo', function() { - return embed.fetch('https://vine.co/v/5AvZeItT92Z') - .then(function(data) { - console.log(data); - console.log("----------------------------------------"); - return embed.render(data); - }) - .then(function(html) { - console.log(html); - assert.typeOf(html, 'string'); - }); + it("Is able to fetch from vimeo", function() { + return embed + .fetch("https://vine.co/v/5AvZeItT92Z") + .then(function(data) { + console.log(data); + console.log("----------------------------------------"); + return embed.render(data); + }) + .then(function(html) { + console.log(html); + assert.typeOf(html, "string"); + }); }); - it('Is able to fetch from qzzr', function() { - return embed.fetch('https://www.qzzr.com/c/quiz/253072/which-dog-are-you-45cc751a-48dc-46df-a327-6703b44a14a5') - .then(function(data) { - console.log(data); - console.log("----------------------------------------"); - return embed.render(data); - }) - .then(function(html) { - console.log(html); - assert.typeOf(html, 'string'); - }); + // it("Is able to fetch from qzzr", function() { + // return embed + // .fetch( + // "https://www.qzzr.com/c/quiz/253072/which-dog-are-you-45cc751a-48dc-46df-a327-6703b44a14a5" + // ) + // .then(function(data) { + // console.log(data); + // console.log("----------------------------------------"); + // return embed.render(data); + // }) + // .then(function(html) { + // console.log(html); + // assert.typeOf(html, "string"); + // }); + // }); + it("Is able to fetch from twitter", function() { + return embed + .fetch("https://twitter.com/slcmayor/status/1022618019904729088") + .then(function(data) { + console.log(data); + console.log("----------------------------------------"); + return embed.render(data); + }) + .then(function(html) { + console.log(html); + assert.typeOf(html, "string"); + }); }); - it('Is able to fetch from pollcaster', function() { - return embed.fetch('https://www.pollcaster.com/c/poll/4xi4zsfv5gSXhnkaVoT9pfTOOgm') - .then(function(data) { - console.log(data); - console.log("----------------------------------------"); - return embed.render(data); - }) - .then(function(html) { - console.log(html); - assert.typeOf(html, 'string'); - }); - }); + // it("Is able to fetch from pollcaster", function() { + // return embed + // .fetch("https://www.pollcaster.com/c/poll/4xi4zsfv5gSXhnkaVoT9pfTOOgm") + // .then(function(data) { + // console.log(data); + // console.log("----------------------------------------"); + // return embed.render(data); + // }) + // .then(function(html) { + // console.log(html); + // assert.typeOf(html, "string"); + // }); + // }); /*it('Is able to fetch from Graphiq', function() { return embed.fetch('https://www.graphiq.com/wlp/dkAYMGlYKlD') .then(function(data) { @@ -167,5 +180,4 @@ describe('Fetch Method', function() { // assert.typeOf(html, 'string'); // }); // }); - }); From 26f4b1e0f7abb359a74a3076db2645883bb43ea6 Mon Sep 17 00:00:00 2001 From: Justin Carmony Date: Wed, 14 Feb 2024 11:47:57 -0700 Subject: [PATCH 29/29] automated: Add CODEOWNERS file for team @mattmontgomery --- CODEOWNERS | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..ba4ec16 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,9 @@ +# FILE GENERATRED BY gendoc-update-codeowners-and-properties + +# This file is used to define code owners for the repository. +# The format is: +# +# where scope is the directory or file to which the team is assigned. +# For example: +# * @team +* @mattmontgomery \ No newline at end of file