Skip to content

Commit f66602b

Browse files
committed
πŸ“¦ v2.3.0
- πŸ‘¨β€πŸ’» Improved Regular Expressions - πŸ‘¨β€πŸ”§ Debug function and setting is now part of the {Spiderable} instance, before it was global - 😎 Added new AI Agents and AI Bots - πŸ‘¨β€πŸ’» Improved support for URLs with get-query - πŸ‘¨β€πŸ”¬ Improved test-suite with better coverage - πŸ‘¨β€πŸ”¬ URLs with get-query added to test-suite
1 parent 8e9e8c2 commit f66602b

File tree

7 files changed

+52
-50
lines changed

7 files changed

+52
-50
lines changed

β€Ž.meteorignoreβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
.mocharc.json
88
.npm
99
.npmignore
10+
ascii
1011
CHANGELOG.md
1112
CODE_OF_CONDUCT.md
1213
CONTRIBUTING.md

β€Ž.npmignoreβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
.mocharc.json
1010
.npm
1111
.versions
12+
ascii
1213
dist
1314
dist/*
1415
docs

β€Ž.versionsβ€Ž

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,55 @@
11
2-
babel-compiler@7.11.3
2+
babel-compiler@7.12.0
33
44
55
6-
6+
77
88
99
1010
11-
11+
1212
13-
13+
1414
1515
16-
16+
1717
18-
18+
1919
20-
20+
2121
22-
22+
2323
2424
2525
2626
27-
local-test:ostrio:spiderable-middleware@2.2.0
28-
29-
27+
local-test:ostrio:spiderable-middleware@2.3.0
28+
29+
3030
31-
31+
3232
3333
34-
34+
3535
3636
3737
3838
3939
40-
ostrio:spiderable-middleware@2.2.0
40+
ostrio:spiderable-middleware@2.3.0
4141
4242
4343
4444
4545
4646
47-
47+
4848
4949
50-
50+
5151
5252
53-
53+
5454
5555

β€Žlib/index.jsβ€Ž

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ var STRS = {
3232
},
3333
queryArgs: {
3434
url: '/?url=',
35-
bot: '&bot=',
35+
bot: '&___bot=',
3636
},
3737
enc: {
3838
base64: 'base64',
3939
},
4040
};
4141

4242
var packageDetails = {
43-
version: '2.2.0',
43+
version: '2.3.0',
4444
name: 'SPIDERABLE_MIDDLEWARE',
4545
};
4646

@@ -50,7 +50,7 @@ var RE = {
5050
trailingSlash: /\/$/,
5151
beginningSlash: /^\//,
5252
digit: /\d+/,
53-
staticExt: /\.(?:3ds|3g2|3gp|3gpp|7z|a|aac|aaf|adp|ai|aif|aiff|alz|ape|apk|appcache|ar|arj|asf|asx|atom|au|avchd|avi|bak|bbaw|bh|bin|bk|bmp|btif|bz2|bzip2|cab|caf|cco|cgm|class|cmx|cpio|cr2|crt|crx|css|csv|cur|dat|deb|der|dex|djvu|dll|dmg|dng|doc|docm|docx|dot|dotm|dra|drc|DS_Store|dsk|dts|dtshd|dvb|dwg|dxf|ear|ecelp4800|ecelp7470|ecelp9600|egg|eol|eot|eps|epub|exe|f4a|f4b|f4p|f4v|fbs|fh|fla|flac|fli|flv|fpx|fst|fvt|g3|geojson|gif|graffle|gz|gzip|h261|h263|h264|hqx|htc|ico|ief|img|ipa|iso|jad|jar|jardiff|jng|jnlp|jpeg|jpg|jpgv|jpm|js|jxr|key|kml|kmz|ktx|less|lha|lvp|lz|lzh|lzma|lzo|m2v|m3u|m4a|m4p|m4v|map|manifest|mar|markdown|md|mdi|mdown|mdwn|mht|mid|midi|mj2|mka|mkd|mkdn|mkdown|mkv|mml|mmr|mng|mobi|mov|movie|mp2|mp3|mp4|mp4a|mpe|mpeg|mpg|mpga|mpv|msi|msm|msp|mxf|mxu|nef|npx|nsv|numbers|o|oex|oga|ogg|ogv|opus|otf|pages|pbm|pcx|pdb|pdf|pea|pem|pgm|pic|pl|pm|png|pnm|pot|potm|potx|ppa|ppam|ppm|pps|ppsm|ppsx|ppt|pptm|pptx|prc|ps|psd|pya|pyc|pyo|pyv|qt|ra|rar|ras|raw|rdf|rgb|rip|rlc|rm|rmf|rmvb|ron|roq|rpm|rss|rtf|run|rz|s3m|s7z|safariextz|scpt|sea|sgi|shar|sil|sit|slk|smv|so|sub|svg|svgz|svi|swf|tar|tbz|tbz2|tcl|tga|tgz|thmx|tif|tiff|tk|tlz|topojson|torrent|ttc|ttf|txt|txz|udf|uvh|uvi|uvm|uvp|uvs|uvu|vcard|vcf|viv|vob|vtt|war|wav|wax|wbmp|wdp|weba|webapp|webm|webmanifest|webp|whl|wim|wm|wma|wml|wmlc|wmv|wmx|woff|woff2|wvx|xbm|xif|xla|xlam|xloc|xls|xlsb|xlsm|xlsx|xlt|xltm|xltx|xm|xmind|xml|xpi|xpm|xsl|xwd|xz|yuv|z|zip|zipx)(?:\?[a-zA-Z0-9\-\.\_\~\:\/\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=]*)?$/i
53+
staticExt: /\.(?:3ds|3g2|3gp|3gpp|7z|a|aac|aaf|adp|ai|aif|aiff|alz|ape|apk|appcache|ar|arj|asf|asx|atom|au|avchd|avi|bak|bbaw|bh|bin|bk|bmp|btif|bz2|bzip2|cab|caf|cco|cgm|class|cmx|cpio|cr2|crt|crx|css|csv|cur|dat|deb|der|dex|djvu|dll|dmg|dng|doc|docm|docx|dot|dotm|dra|drc|DS_Store|dsk|dts|dtshd|dvb|dwg|dxf|ear|ecelp4800|ecelp7470|ecelp9600|egg|eol|eot|eps|epub|exe|f4a|f4b|f4p|f4v|fbs|fh|fla|flac|fli|flv|fpx|fst|fvt|g3|geojson|gif|graffle|gz|gzip|h261|h263|h264|hqx|htc|ico|ief|img|ipa|iso|jad|jar|jardiff|jng|jnlp|jpeg|jpg|jpgv|jpm|js|jxr|key|kml|kmz|ktx|less|lha|lvp|lz|lzh|lzma|lzo|m2v|m3u|m4a|m4p|m4v|map|manifest|mar|markdown|md|mdi|mdown|mdwn|mht|mid|midi|mj2|mka|mkd|mkdn|mkdown|mkv|mml|mmr|mng|mobi|mov|movie|mp2|mp3|mp4|mp4a|mpe|mpeg|mpg|mpga|mpv|msi|msm|msp|mxf|mxu|nef|npx|nsv|numbers|o|oex|oga|ogg|ogv|opus|otf|pages|pbm|pcx|pdb|pdf|pea|pem|pgm|pic|pl|pm|png|pnm|pot|potm|potx|ppa|ppam|ppm|pps|ppsm|ppsx|ppt|pptm|pptx|prc|ps|psd|pya|pyc|pyo|pyv|qt|ra|rar|ras|raw|rdf|rgb|rip|rlc|rm|rmf|rmvb|ron|roq|rpm|rss|rtf|run|rz|s3m|s7z|safariextz|scpt|sea|sgi|shar|sil|sit|slk|smv|so|sub|svg|svgz|svi|swf|tar|tbz|tbz2|tcl|tga|tgz|thmx|tif|tiff|tk|tlz|topojson|torrent|ttc|ttf|txt|txz|udf|uvh|uvi|uvm|uvp|uvs|uvu|vcard|vcf|viv|vob|vtt|war|wav|wax|wbmp|wdp|weba|webapp|webm|webmanifest|webp|whl|wim|wm|wma|wml|wmlc|wmv|wmx|woff|woff2|wvx|xbm|xif|xla|xlam|xloc|xls|xlsb|xlsm|xlsx|xlt|xltm|xltx|xm|xmind|xml|xpi|xpm|xsl|xwd|xz|yuv|z|zip|zipx)$/i
5454
};
5555

5656
var isObject = function (obj) {
@@ -66,8 +66,6 @@ var _info = function info(...args) {
6666
console.info.call(console, '[INFO] [Spiderable-Middleware]', ...args);
6767
};
6868

69-
var _debug = function () {};
70-
7169
/** Class representing a Spiderable */
7270
module.exports = (function () {
7371
/**
@@ -133,11 +131,11 @@ module.exports = (function () {
133131
this.only = false;
134132
}
135133

136-
if (this.debug) {
137-
_debug = function debug(...args) {
134+
this._debug = function debug(...args) {
135+
if (this.debug) {
138136
_info('[DEBUG]', ...args);
139-
};
140-
}
137+
}
138+
};
141139

142140
if (!this.handler) {
143141
this.handler = this.middleware.bind(this);
@@ -186,7 +184,7 @@ module.exports = (function () {
186184
this.ignoreRE = false;
187185
}
188186

189-
this.debug && _debug('Spiderable class initiated', this);
187+
this._debug('Spiderable class initiated', this);
190188
}
191189

192190
/**
@@ -195,7 +193,7 @@ module.exports = (function () {
195193
* @name botsUA
196194
* @type {string[]}
197195
*/
198-
Spiderable.prototype.botsUA = ['\\.net crawler', '360spider', '50\\.nu', '8bo crawler bot', 'aboundex', 'accoona', 'adldxbot', 'adsbot-google', 'ahrefsbot', 'altavista', 'appengine-google', 'applebot', 'archiver', 'arielisbot', 'ask jeeves', 'auskunftbot', 'baidumobaider', 'baiduspider', 'becomebot', 'bingbot', 'bingpreview', 'bitbot', 'bitlybot', 'blitzbot', 'blogbridge', 'boardreader', 'botseer', 'catchbot', 'catchpoint bot', 'charlotte', 'checklinks', 'cliqzbot', 'clumboot', 'coccocbot', 'converacrawler', 'crawl-e', 'crawlconvera', 'dataparksearch', 'daum', 'deusu', 'developers\\.google\\.com/+/web/snippet', 'discordbot', 'dotbot', 'duckduckbot', 'elefent', 'embedly', 'evernote', 'exabot', 'facebookbot', 'facebookexternalhit', 'fatbot', 'fdse robot', 'feed seeker bot', 'feedfetcher', 'femtosearchbot', 'findlinks', 'flamingo_searchengine', 'flipboard', 'followsite bot', 'furlbot', 'fyberspider', 'gaisbot', 'galaxybot', 'geniebot', 'genieo', 'gigablast', 'gigabot', 'girafabot', 'gomezagent', 'gonzo1', 'google sketchup', 'google-structured-data-testing-tool', 'googlebot', 'haosouspider', 'heritrix', 'holmes', 'hoowwwer', 'htdig', 'ia_archiver', 'idbot', 'infuzapp', 'innovazion crawler', 'internetarchive', 'iqdb', 'iskanie', 'istellabot', 'izsearch\\.com', 'kaloogabot', 'kaz\\.kz_bot', 'kd bot', 'konqueror', 'kraken', 'kurzor', 'larbin', 'leia', 'lesnikbot', 'linguee bot', 'linkaider', 'linkapediabot', 'linkedinbot', 'lite bot', 'llaut', 'lookseek', 'lycos', 'mail\\.ru_bot', 'masidani_bot', 'masscan', 'mediapartners-google', 'metajobbot', 'mj12bot', 'mnogosearch', 'mogimogi', 'mojeekbot', 'motominerbot', 'mozdex', 'msiecrawler', 'msnbot', 'msrbot', 'netpursual', 'netresearch', 'netvibes', 'newsgator', 'ng-search', 'nicebot', 'nutchcvs', 'nuzzel', 'nymesis', 'objectssearch', 'odklbot', 'omgili', 'oovoo', 'oozbot', 'openfosbot', 'orangebot', 'orbiter', 'org_bot', 'outbrain', 'pagepeeker', 'pagesinventory', 'parsijoobot', 'paxleframework', 'peeplo screenshot bot', 'pinterest', 'plantynet_webrobot', 'plukkie', 'pompos', 'psbot', 'quora link preview', 'qwantify', 'read%20later', 'reaper', 'redcarpet', 'redditbot', 'retreiver', 'riddler', 'rival iq', 'rogerbot', 'saucenao', 'scooter', 'scrapy', 'scrubby', 'searchie', 'searchsight', 'seekbot', 'semanticdiscovery', 'seznambot', 'showyoubot', 'simplepie', 'simpy', 'sitelockspider', 'skypeuripreview', 'slack-imgproxy', 'slackbot', 'slurp', 'snappy', 'sogou', 'solofield', 'speedy spider', 'speedyspider', 'sputnikbot', 'stackrambler', 'teeraidbot', 'teoma', 'theusefulbot', 'thumbshots\\.ru', 'thumbshotsbot', 'tineye', 'toweya\\.com', 'toweyabot', 'tumblr', 'tweetedtimes', 'tweetmemebot', 'twitterbot', 'url2png', 'vagabondo', 'vebidoobot', 'viber', 'visionutils', 'vkshare', 'voilabot', 'vortex', 'votay bot', 'voyager', 'w3c_validator', 'wasalive\\.bot', 'web-sniffer', 'websquash\\.com', 'webthumb', 'whatsapp', 'whatweb', 'wire', 'wotbox', 'yacybot', 'yahoo', 'yandex', 'yeti', 'yisouspider', 'yodaobot', 'yooglifetchagent', 'yoozbot', 'yottaamonitor', 'yowedo', 'zao-crawler', 'zebot_www\\.ze\\.bz', 'zooshot', 'zyborg'];
196+
Spiderable.prototype.botsUA = ['\\.net crawler', '360spider', '50\\.nu', '8bo crawler bot', 'aboundex', 'accoona', 'adldxbot', 'adsbot-google', 'ahrefsbot', 'altavista', 'appengine-google', 'applebot', 'archiver', 'arielisbot', 'ask jeeves', 'auskunftbot', 'baidumobaider', 'baiduspider', 'becomebot', 'bingbot', 'bingpreview', 'bitbot', 'bitlybot', 'blitzbot', 'blogbridge', 'boardreader', 'botseer', 'catchbot', 'catchpoint bot', 'charlotte', 'checklinks', 'cliqzbot', 'clumboot', 'coccocbot', 'converacrawler', 'crawl-e', 'crawlconvera', 'dataparksearch', 'daum', 'deusu', 'developers\\.google\\.com/+/web/snippet', 'discordbot', 'dotbot', 'duckduckbot', 'elefent', 'embedly', 'evernote', 'exabot', 'facebookbot', 'facebookexternalhit', 'fatbot', 'fdse robot', 'feed seeker bot', 'feedfetcher', 'femtosearchbot', 'findlinks', 'flamingo_searchengine', 'flipboard', 'followsite bot', 'furlbot', 'fyberspider', 'gaisbot', 'galaxybot', 'geniebot', 'genieo', 'gigablast', 'gigabot', 'girafabot', 'gomezagent', 'gonzo1', 'google sketchup', 'google-structured-data-testing-tool', 'googlebot', 'haosouspider', 'heritrix', 'holmes', 'hoowwwer', 'htdig', 'ia_archiver', 'idbot', 'infuzapp', 'innovazion crawler', 'internetarchive', 'iqdb', 'iskanie', 'istellabot', 'izsearch\\.com', 'kaloogabot', 'kaz\\.kz_bot', 'kd bot', 'konqueror', 'kraken', 'kurzor', 'larbin', 'leia', 'lesnikbot', 'linguee bot', 'linkaider', 'linkapediabot', 'linkedinbot', 'lite bot', 'llaut', 'lookseek', 'lycos', 'mail\\.ru_bot', 'masidani_bot', 'masscan', 'mediapartners-google', 'metajobbot', 'mj12bot', 'mnogosearch', 'mogimogi', 'mojeekbot', 'motominerbot', 'mozdex', 'msiecrawler', 'msnbot', 'msrbot', 'netpursual', 'netresearch', 'netvibes', 'newsgator', 'ng-search', 'nicebot', 'nutchcvs', 'nuzzel', 'nymesis', 'objectssearch', 'odklbot', 'omgili', 'oovoo', 'oozbot', 'openfosbot', 'orangebot', 'orbiter', 'org_bot', 'outbrain', 'pagepeeker', 'pagesinventory', 'parsijoobot', 'paxleframework', 'peeplo screenshot bot', 'pinterest', 'plantynet_webrobot', 'plukkie', 'pompos', 'psbot', 'quora link preview', 'qwantify', 'read%20later', 'reaper', 'redcarpet', 'redditbot', 'retreiver', 'riddler', 'rival iq', 'rogerbot', 'saucenao', 'scooter', 'scrapy', 'scrubby', 'searchie', 'searchsight', 'seekbot', 'semanticdiscovery', 'seznambot', 'showyoubot', 'simplepie', 'simpy', 'sitelockspider', 'skypeuripreview', 'slack-imgproxy', 'slackbot', 'slurp', 'snappy', 'sogou', 'solofield', 'speedy spider', 'speedyspider', 'sputnikbot', 'stackrambler', 'teeraidbot', 'teoma', 'theusefulbot', 'thumbshots\\.ru', 'thumbshotsbot', 'tineye', 'toweya\\.com', 'toweyabot', 'tumblr', 'tweetedtimes', 'tweetmemebot', 'twitterbot', 'url2png', 'vagabondo', 'vebidoobot', 'viber', 'visionutils', 'vkshare', 'voilabot', 'vortex', 'votay bot', 'voyager', 'w3c_validator', 'wasalive\\.bot', 'web-sniffer', 'websquash\\.com', 'webthumb', 'whatsapp', 'whatweb', 'wire', 'wotbox', 'yacybot', 'yahoo', 'yandex', 'yeti', 'yisouspider', 'yodaobot', 'yooglifetchagent', 'yoozbot', 'yottaamonitor', 'yowedo', 'zao-crawler', 'zebot_www\\.ze\\.bz', 'zooshot', 'zyborg', 'ai2bot', 'amazonbot', 'anthropic\\.com', 'bard', 'bytespider', 'ccbot', 'chatgpt-user', 'claude-web', 'claudebot', 'cohere-ai', 'deepseek', 'diffbot', 'duckassistbot', 'gemini', 'google-extended', 'gptbot', 'grok', 'meta-external', 'mistralai', 'oai-searchbot', 'omgili', 'openai\\.com', 'perplexity\\.ai', 'perplexitybot', 'xai', 'youbot'];
199197

200198
/**
201199
* @memberOf Spiderable
@@ -216,15 +214,14 @@ module.exports = (function () {
216214
Spiderable.prototype.getServiceURL = function (urlObj, bua) {
217215
var botUA = bua ? bua : '';
218216
var reqUrl = this.rootURL;
219-
reqUrl += STRS.slash + urlObj.pathname.replace(RE.beginningSlash, STRS.empty);
220-
// reqUrl = reqUrl.replace(/([^:]\/)\/+/g, '$1');
217+
reqUrl += STRS.slash + urlObj.pathname.replace(RE.beginningSlash, STRS.empty) + urlObj.search;
221218
reqUrl = (this.serviceURL + STRS.queryArgs.url + encodeURIComponent(reqUrl));
222219

223220
if (typeof botUA === STRS.string && botUA.length) {
224221
reqUrl += STRS.queryArgs.bot + encodeURIComponent(botUA);
225222
}
226223

227-
this.debug && _debug('[getServiceURL] URL:', reqUrl);
224+
this._debug('[getServiceURL] URL:', reqUrl);
228225
return reqUrl;
229226
};
230227

@@ -247,17 +244,20 @@ module.exports = (function () {
247244
} catch (e) {
248245
// BAD URL IS PASSED!
249246
// IGNORING AND PASSING DOWN TO THE APP
250-
this.debug && _debug('[getRequestURL] [bad url]', path, req.url, e);
247+
this._debug('[getRequestURL] [bad url]', path, req.url, e);
251248
return false;
252249
}
253250

254251
urlObj.pathname = urlObj.pathname.replace(RE.beginningSlash, STRS.empty);
255252
var escapedFragment = urlObj.searchParams.has(STRS.escapedFragment) ? urlObj.searchParams.get(STRS.escapedFragment) : false;
256-
if (escapedFragment && typeof escapedFragment === STRS.string && escapedFragment.length) {
257-
urlObj.pathname += STRS.slash + (escapedFragment.replace(RE.beginningSlash, STRS.empty));
253+
if (escapedFragment && typeof escapedFragment === STRS.string) {
254+
urlObj.searchParams.delete(STRS.escapedFragment);
255+
if (escapedFragment.length) {
256+
urlObj.pathname += STRS.slash + (escapedFragment.replace(RE.beginningSlash, STRS.empty));
257+
}
258258
}
259259

260-
this.debug && _debug('[getRequestURL] URL:', urlObj.toString());
260+
this._debug('[getRequestURL] URL:', urlObj.toString());
261261

262262
if (!this.botsRE.test(req.headers[STRS.ua] || STRS.empty) && escapedFragment === false) {
263263
return false;
@@ -276,7 +276,7 @@ module.exports = (function () {
276276
*/
277277
Spiderable.prototype.middleware = function (req, res, next) {
278278
if (this.NAME !== packageDetails.name) {
279-
_warn('middleware has lost its context, ensure it\'s binded back, for example: `spiderable.handle.bind(spiderable)`');
279+
_warn('middleware has lost its context, ensure it\'s binds back, for example: `spiderable.handle.bind(spiderable)`');
280280
return false;
281281
}
282282

@@ -333,7 +333,7 @@ module.exports = (function () {
333333
}
334334

335335
if (hasIgnored) {
336-
this.debug && _debug('[middleware] [hasIgnored]', urlObj.pathname);
336+
this._debug('[middleware] [hasIgnored]', urlObj.pathname);
337337
next();
338338
return false;
339339
}
@@ -370,7 +370,7 @@ module.exports = (function () {
370370
try {
371371
var _headersRE = this.headersRE;
372372
var url = new URL(reqUrl);
373-
this.debug && _debug('[middleware] [requesting]', url.toString());
373+
this._debug('[middleware] [requesting]', url.toString());
374374
var serviceReq = https.request(url, payload, function (resp) {
375375
for (var _hName in resp.headers) {
376376
if (resp.headers[_hName]) {
@@ -386,27 +386,27 @@ module.exports = (function () {
386386
}
387387

388388
if (method === STRS.head) {
389-
self.debug && _debug('[middleware] [request] [HEAD] [received and end]', resp.statusCode);
389+
self._debug('[middleware] [request] [HEAD] [received and end]', resp.statusCode);
390390
res.writeHead(resp.statusCode);
391391
res.end();
392392
return;
393393
}
394394

395395
if (!res.headersSent) {
396-
self.debug && _debug('[middleware] [request] [writeHead]', resp.statusCode);
396+
self._debug('[middleware] [request] [writeHead]', resp.statusCode);
397397
res.writeHead(resp.statusCode);
398398
}
399399

400400
res.write(nullBuf);
401401
resp.on('data', function (data) {
402-
self.debug && _debug('[middleware] [response] [data received]', res.finished, res.writableEnded);
402+
self._debug('[middleware] [response] [data received]', res.finished, res.writableEnded);
403403
if (!res.finished && !res.writableEnded) {
404404
res.write(data);
405405
}
406406
});
407407

408408
resp.on('end', function (data) {
409-
self.debug && _debug('[middleware] [response] [end successfully]', res.finished, res.writableEnded);
409+
self._debug('[middleware] [response] [end successfully]', res.finished, res.writableEnded);
410410
if (!res.finished && !res.writableEnded) {
411411
res.end(data);
412412
}
@@ -415,7 +415,7 @@ module.exports = (function () {
415415

416416
var isEnded = false;
417417
var onEnd = function (error) {
418-
self.debug && _debug('[middleware] [onEnd]', error);
418+
self._debug('[middleware] [onEnd]', error);
419419
if (isEnded) {
420420
return;
421421
}
@@ -463,7 +463,7 @@ module.exports = (function () {
463463
});
464464

465465
req.on('aborted', function () {
466-
self.debug && _debug('[middleware] [req.aborted]', arguments);
466+
self._debug('[middleware] [req.aborted]', arguments);
467467
// No need to log this event as nothing bad happened
468468
// this simply means host which sent this request
469469
// has aborted the connection or got disconnected

β€Žpackage-lock.jsonβ€Ž

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€Žpackage.jsβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Package.describe({
22
name: 'ostrio:spiderable-middleware',
3-
version: '2.2.0',
4-
summary: 'Ensure Meteor.js apps are flawlessly crawled and indexed by search engines for optimal SEO',
3+
version: '2.3.0',
4+
summary: 'Boost organic traffic and enable SEO for Meteor.js application',
55
git: 'https://github.com/veliovgroup/spiderable-middleware',
66
documentation: 'README.md'
77
});

β€Žpackage.jsonβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "spiderable-middleware",
3-
"version": "2.2.0",
4-
"description": "Optimize SEO for JavaScript websites with pre-rendering that delivers SSR-like performance through effortless integration and zero coding",
3+
"version": "2.3.0",
4+
"description": "Boost organic traffic from SERPs, AI Chat Bots, and GPT",
55
"main": "lib/index.js",
66
"types": "types/index.d.ts",
77
"files": [

0 commit comments

Comments
Β (0)