Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Sovrn Master #18

Merged
merged 146 commits into from
Jun 25, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
f3244db
Update rubiconBidAdapter.js (#3753)
robertrmartinez Apr 16, 2019
2f0e98d
Prebid 2.11.0 Release
Apr 16, 2019
8de1fac
Increment pre version
Apr 17, 2019
984dfb1
PubCommonId - Add support for localStorage (#3661)
pycnvr Apr 18, 2019
e119938
Rubicon BidAdapter - SRA support for >10 bids (#3514)
Apr 18, 2019
8016edb
SpotX: Add hide_skin parameter (#3760)
spotxslagle Apr 19, 2019
9ffff94
Added dealId to response (#3762)
richaudience Apr 19, 2019
12eceea
add ShowHeroes Adapter (#3733)
vadim-mazzherin Apr 19, 2019
fee6194
adding instream capabilities to emx_digital adapter (#3752)
EMXDigital Apr 19, 2019
3e97e59
change externalUid to camelcase (#3757)
sumit116 Apr 19, 2019
542b990
Sonobi Adapter - Support UnifiedId/tradedesk from user id module (#3743)
JonGoSonobi Apr 19, 2019
69f114a
change matching url (#3730)
ignat-one Apr 19, 2019
8ff71ae
update aja adaptor: add page_url parameter (#3722)
naoto0822 Apr 20, 2019
95e9cdf
Update supported sizes in adapter bid response (#3738)
madma Apr 20, 2019
b481489
wrapperType and wrapperVersion parameters for TrustX Bid Adapter (#3751)
PWyrembak Apr 20, 2019
7e39777
Add Go2Net Adapter (#3763)
AdmixerTech Apr 20, 2019
71d5753
[Native] Add privacyIcon for native ad (#3770)
zhenyi2697 Apr 22, 2019
1ef6197
Synacormedia: Added video support to adapter. (#3695)
amuraco Apr 22, 2019
253cbf4
Improve emoteevBidAdapter (#3673)
piotr-yuxuan Apr 22, 2019
c14f915
fix handling of gdpr object (#3756)
Apr 23, 2019
b491a05
Add NAF Digital Bidder Adapter (#3750)
vyatsun Apr 23, 2019
49afe63
Automated functional tests for longform testpages (#3659)
jsnellbaker Apr 23, 2019
449fc72
Prebid 2.12.0 Release
Apr 23, 2019
b42627b
Increment pre version
Apr 23, 2019
2741f95
Sovrn Analytics Adapter (#3761)
aprakash-sovrn Apr 25, 2019
f1aeb85
Update VIS.X bid adapter (#3777)
mk0x9 Apr 25, 2019
16b46ae
Debug Unit Test Issue in CircleCI (#3754)
Apr 26, 2019
6ca459d
fixed gumgums example params in readme (#3779)
mikewilso Apr 29, 2019
c6069f1
ReklamStore Adapter Update (#3784)
ReklamStoreIT Apr 29, 2019
f350bba
Update PubMatic banner and video examples to use adSlot without (#3786)
Apr 29, 2019
e31b9d8
Conversant Adapter - support User ID module (#3533)
Apr 29, 2019
d6eeb31
kargo sizes and full bid request object (#3771)
samuelhorwitz Apr 30, 2019
4155553
fix ref error on yieldmo adapter (#3776)
ETNOL Apr 30, 2019
40a4ac6
Detect ad blocker recovered requests + send dynamic parameters to ada…
bjorn-lw Apr 30, 2019
8f5ea4c
Add support for bidderRequest.refererInfo in Adhese Adapter (#3725)
mefjush Apr 30, 2019
e741cf8
PrebidManager Analytics: init module (#3735)
Prebid-Manager Apr 30, 2019
352da36
smartadserverBidAdapter.js - make bid.params.domain optional (#3781)
phtechno Apr 30, 2019
c48817c
update e2e tests in README (#3778)
jsnellbaker May 1, 2019
1357e96
OpenX Adapter - support User ID module (#3529)
May 1, 2019
2936197
Delete sonobi_video.html (#3791)
bretg May 1, 2019
8e2ee4a
remove optimize.js from build process (#3789)
snapwich May 1, 2019
2302336
Pubmatic: Making Adslot param optional (#3788)
pm-harshad-mane May 1, 2019
ef45260
Prebid 2.13.0 Release
bretg May 1, 2019
1c24544
Increment pre version
bretg May 1, 2019
5ba930d
add adUnitCodes as param for setTargetingForAst() (#3792)
sumit116 May 2, 2019
f04f912
Add HPMD Network bid adapter (#3764)
afominov May 2, 2019
38e50d2
VI Bid Adapter Changes (#3748)
alpadotsh May 3, 2019
10ec9a5
Add bucksense Adapter (#3785)
bkse-stefanodechicchis May 7, 2019
7406f1a
Add Video Reach adapter (#3766)
VideoReach May 7, 2019
7050fb1
onBidWon implementation (#3801)
seergiioo6 May 7, 2019
8776afe
Prebid 2.14.0 Release
May 7, 2019
f5e6e3a
Increment pre version
May 7, 2019
bd1636a
Orbidder uses onSetTargeting callback (#3804)
mmethner May 8, 2019
ad7b59d
Add Imonomy network BidAdapter (#3765)
imonomy May 9, 2019
f78b8e9
Rad 2751/specify ad units set targeting for ast (#3805)
sumit116 May 10, 2019
ed21da1
fixed misspelled word (#3816)
werowe May 13, 2019
acd3077
RichAudience: Files name updated (#3793)
richaudience May 13, 2019
6b8d087
Improve Digital adapter: Endpoint update (#3811)
jbartek25 May 13, 2019
54ac989
Support Prebid.js User ID module in Sharethrough bid adapter (#3819)
madma May 13, 2019
0877946
Added iframe user sync support (#3822)
alexkh13 May 13, 2019
be8d832
Gamoshi: Remove and update some bid response properties (#3806)
sa1omon May 14, 2019
a4f247c
update fun-hooks and use no-eval version for CSP (#3814)
snapwich May 14, 2019
9166db8
mgid adapter: native support, minor changes (#3774)
Gaudeamus May 14, 2019
af72997
Prebid 2.15.0 release
jsnellbaker May 14, 2019
b58d49c
increment pre version
jsnellbaker May 14, 2019
90accd8
updating maintainer email address in quantcastBidAdapter.md (#3830)
jacekburys-quantcast May 15, 2019
3b9f9e1
Reload Adapter: New (#3812)
mafernandez80 May 15, 2019
141ae9f
Teads-Adapter: Update way to find referrer (#3829)
May 16, 2019
d0b391f
Added size id 265 (1920x1080) (#3839)
hdeodhar May 20, 2019
034b57e
add renderer param in appnexus adapter request (#3836)
jsnellbaker May 20, 2019
45b519a
Project Limelight bidder adapter (#3835)
apykhteyev May 20, 2019
006eecc
PubMatic adapter support to read TTD Id from UserId module (#3834)
pm-harshad-mane May 20, 2019
d3faa6a
Added 240x400 size (#3809)
hdeodhar May 20, 2019
7846560
CPMStar Bid Adapter (#3820)
JoshuaMGoldstein May 21, 2019
d55b253
support external userId sub-modules (#3831)
May 21, 2019
72c8e4f
Adding advertiserId to appnexus adapter (#3833)
jaiminpanchal27 May 22, 2019
50de3d4
updated ozone adapter from v1.4.4 -> v2.0.0 (#3828)
afsheenb May 22, 2019
c6c20a2
fix how native sizes are passed in AppNexus adapter (#3832)
jsnellbaker May 22, 2019
612cd3d
Prebid 2.16.0 release
May 22, 2019
c006a6a
Increment pre version
May 22, 2019
a7953e4
Refactor bid response - remove unnecessary properties (#3807)
May 27, 2019
3f5a598
change in Aardvark adapter to handle additional data (#3821)
musikele May 27, 2019
96aae26
Updated the bidder code in the test ad unit. (#3844)
telariaEng May 27, 2019
d7af6db
Update rtbhouseBidAdapter.md (#3857)
Kamoris May 27, 2019
3f1b739
Added optional dealId parameter to bid response. (#3858)
dpapworth-qc May 27, 2019
0ee3cc6
adding Outstream mediaType to EMX Digital (#3840)
EMXDigital May 28, 2019
445df80
Adding bidfloor to video imp req (#3863)
robertrmartinez May 28, 2019
c1f6ce4
Rhythmone Adapter - Multiple ad size support, rewrite tests, update d…
May 28, 2019
dc3134c
minor updates to consentManagement tests (#3849)
jsnellbaker May 28, 2019
e88dec1
auction key limiter feature (#3825)
jsnellbaker May 28, 2019
a2f8500
aardvark tdid support (#3860)
aleksatr May 29, 2019
bec741d
We want to remove bidfloor if not set by pb (#3866)
robertrmartinez May 29, 2019
efd5ed6
mgid adapter: add support of currency.adServerCurrency (#3850)
Gaudeamus May 29, 2019
7094e08
Prebid 2.17.0 Release
May 29, 2019
dc8f6d5
Increment pre version
May 29, 2019
582ecdf
adxcgBidAdapter - added pubcid (#3824)
adxcgcom May 30, 2019
7aa0e0d
getCpmInNewCurrency to use current value of bid.cpm and bid.currency …
pm-harshad-mane Jun 3, 2019
ac65812
always adding originalCpm and originalCurrency to bid object (#3856)
pm-harshad-mane Jun 3, 2019
db167c0
new size Rubicon (#3877)
Jun 3, 2019
2f208f8
BIDDER_CODE check removed (#3862)
AdmixerTech Jun 4, 2019
2a10388
Bugfix add bid parameters if not present (#3808)
arneschulz1984 Jun 4, 2019
1f9937e
Remove useless bidderCode in bid response (#3864)
guiann Jun 5, 2019
3ac37f8
Use actual global object name in log message (#3874)
Rooke Jun 5, 2019
2cf6498
Digitrust submodule (#3867)
goosemanjack Jun 5, 2019
45e5be7
changed name company (#3875)
mhlm Jun 5, 2019
81932cd
New STAQ analytics adapter (#3772)
mquirion Jun 5, 2019
8b6fbd7
Prebid 2.18.0 release
Jun 5, 2019
a40835c
Increment pre version
Jun 5, 2019
5a4b25a
removed the non-working setting on table (#3890)
pm-harshad-mane Jun 7, 2019
3cb7342
Implement Appier Analytics Adapter. (#3871)
kd-appier Jun 10, 2019
cacb6e7
Adding aliases for adsparc and safereach to aardvark adapter (#3848)
naegelin Jun 10, 2019
2794cd8
Add slimCut bid adapter (#3880)
mcamustlr Jun 12, 2019
5715a02
feat(unruly-bid-adapter): use bidResponse siteId when configuring the…
paprikka Jun 12, 2019
9598148
[BID-3479] - Add BidResponse.meta.dspid for OpenX (#3895)
lambdarho Jun 12, 2019
96d46b1
kargo session id (#3897)
samuelhorwitz Jun 12, 2019
98db99c
allow endpoint configuration for rdn adapter (#3902)
snapwich Jun 12, 2019
83aa229
aardvark adapter, add width & height params (#3892)
aleksatr Jun 13, 2019
a9dc896
cache buster for user sync (#3838)
nwlosinski Jun 13, 2019
efe74f8
Add bidFloor to Yieldmo Adapter (#3886)
HolzAndrew Jun 13, 2019
40f032c
Add beachfront bidder params to set outstream player settings (#3868)
jsalis Jun 13, 2019
b617aa3
Adding Scaleable Analytics Adapter (#3846)
cconnors1515 Jun 13, 2019
1dc47c8
Fix filepath reference (#3905)
betancourtl Jun 13, 2019
81e8718
Prebid 2.19.0 Release
bretg Jun 13, 2019
20d8c8b
Increment pre version
bretg Jun 13, 2019
842cc19
digiTrustIdSystem.js add the synchronous behavior to facade call of D…
goosemanjack Jun 17, 2019
1c1035a
Feature/remove on set targeting (#3919)
ujuettner Jun 18, 2019
4b84beb
FeedAd bidder adapter (#3891)
couchcrew-thomas Jun 18, 2019
6e7eb3b
Fix #3813 move auctionEnd events so it always executes when auction c…
jsnellbaker Jun 18, 2019
bd5f2a0
fix import paths for various adapters (#3921)
jsnellbaker Jun 18, 2019
e53dad0
add --analyze arg for webpack bundle analyzing (#3914)
snapwich Jun 18, 2019
f6239de
Standardize permission bits (#3872)
Jun 18, 2019
6baa819
Prebid 2.20.0 release
jsnellbaker Jun 18, 2019
7e5bda2
increment pre version
jsnellbaker Jun 18, 2019
92fb453
always secure (#3922)
pm-harshad-mane Jun 18, 2019
ce095e0
GumGum: adds tradedesk id param (#3896)
susyt Jun 20, 2019
bbd73ce
Digitrust support in PBS bid adapter and Rubicon bid adapter (#3935)
msm0504 Jun 21, 2019
de8381f
ID5 userId submodule (#3798)
padurgeat Jun 24, 2019
37232c7
EMX Digital: Device info and Video parameter updates (#3929)
EMXDigital Jun 24, 2019
75aca43
update placementId to be number instead of string (#3941)
snapwich Jun 24, 2019
b6aaf64
[33Across adapter] Map ad unit path to element id (#3920)
glebglushtsov Jun 25, 2019
9d2f06c
New Adapter: bidglass (#3861)
dliebner Jun 25, 2019
e64360c
Prebid.js Video (#3901)
ix-prebid-support Jun 25, 2019
8e198bb
Add Outstream Renderer for Yieldlab Adapter (#3910)
mirkorean Jun 25, 2019
64a258a
Standardized COPPA support (#3936)
msm0504 Jun 25, 2019
e55684b
Adding privacy_supported flag (#3943)
jaiminpanchal27 Jun 25, 2019
5e1d889
Prebid 2.21.0 Release
Jun 25, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ commit your changes, and [open a pull request](https://help.github.com/articles/
master branch.

Pull requests must have 80% code coverage before beign considered for merge.
Additional details about the process can be found [here](./pr_review.md).
Additional details about the process can be found [here](./PR_REVIEW.md).

## Issues
[prebid.org](http://prebid.org/) contains documentation that may help answer questions you have about using Prebid.js.
Expand Down
18 changes: 14 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ prebid.requestBids({

*Note:* In the 1.24.0 release of Prebid.js we have transitioned to using gulp 4.0 from using gulp 3.9.1. To compily with gulp's recommended setup for 4.0, you'll need to have `gulp-cli` installed globally prior to running the general `npm install`. This shouldn't impact any other projects you may work on that use an earlier version of gulp in it's setup.

If you have a previous version of `gulp` installed globally, you'll need to remove it before installing `gulp-cli`. You can check if this is installed by running `gulp -v` and seeing the version that's listed in the `CLI` field of the output. If you have the `gulp` package installd globally, it's likely the same version that you'll see in the `Local` field. If you already have `gulp-cli` installed, it should be a lower major version (it's at version `2.0.1` at the time of the transition).
If you have a previous version of `gulp` installed globally, you'll need to remove it before installing `gulp-cli`. You can check if this is installed by running `gulp -v` and seeing the version that's listed in the `CLI` field of the output. If you have the `gulp` package installed globally, it's likely the same version that you'll see in the `Local` field. If you already have `gulp-cli` installed, it should be a lower major version (it's at version `2.0.1` at the time of the transition).

To remove the old package, you can use the command: `npm rm gulp -g`

Expand Down Expand Up @@ -207,10 +207,20 @@ gulp test-coverage
gulp view-coverage
```

For end-to-end testing, edit the example file `./integrationExamples/gpt/pbjs_example_gpt.html`:
For Prebid.org members with access to BrowserStack, additional end-to-end testing can be done with:

1. Change `{id}` values appropriately to set up ad units and bidders
2. Set the path to Prebid.js in your example file as shown below (see `pbs.src`).
```bash
gulp e2e-test --host=test.localhost
```

To run these tests, the following items are required:
- setup an alias of localhost in your `hosts` file (eg `127.0.0.1 test.localhost`); note - you can use any alias. Use this alias in the command-line argument above.
- access to [BrowserStack](https://www.browserstack.com/) account. Assign the following variables in your bash_profile:
```bash
export BROWSERSTACK_USERNAME='YourUserNameHere'
export BROWSERSTACK_ACCESS_KEY='YourAccessKeyHere'
```
You can get these BrowserStack values from your profile page.

For development:

Expand Down
40 changes: 24 additions & 16 deletions browsers.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
{
"bs_ie_14_windows_10": {
"bs_edge_16_windows_10": {
"base": "BrowserStack",
"os_version": "10",
"browser": "edge",
"browser_version": "14.0",
"browser_version": "16.0",
"device": null,
"os": "Windows"
},
"bs_edge_17_windows_10": {
"base": "BrowserStack",
"os_version": "10",
"browser": "edge",
"browser_version": "17.0",
"device": null,
"os": "Windows"
},
Expand All @@ -15,51 +23,51 @@
"device": null,
"os": "Windows"
},
"bs_chrome_62_windows_10": {
"bs_chrome_72_windows_10": {
"base": "BrowserStack",
"os_version": "10",
"browser": "chrome",
"browser_version": "62.0",
"browser_version": "72.0",
"device": null,
"os": "Windows"
},
"bs_chrome_61_windows_10": {
"bs_chrome_71_windows_10": {
"base": "BrowserStack",
"os_version": "10",
"browser": "chrome",
"browser_version": "61.0",
"browser_version": "71.0",
"device": null,
"os": "Windows"
},
"bs_firefox_58_windows_10": {
"bs_firefox_65_windows_10": {
"base": "BrowserStack",
"os_version": "10",
"browser": "firefox",
"browser_version": "58.0",
"browser_version": "65.0",
"device": null,
"os": "Windows"
},
"bs_firefox_57_windows_10": {
"bs_firefox_64_windows_10": {
"base": "BrowserStack",
"os_version": "10",
"browser": "firefox",
"browser_version": "57.0",
"browser_version": "64.0",
"device": null,
"os": "Windows"
},
"bs_safari_9.1_mac_elcapitan": {
"bs_safari_11_mac_high_sierra": {
"base": "BrowserStack",
"os_version": "El Capitan",
"os_version": "High Sierra",
"browser": "safari",
"browser_version": "9.1",
"browser_version": "11.1",
"device": null,
"os": "OS X"
},
"bs_safari_8_mac_yosemite": {
"bs_safari_12_mac_mojave": {
"base": "BrowserStack",
"os_version": "Yosemite",
"os_version": "Mojave",
"browser": "safari",
"browser_version": "8.0",
"browser_version": "12.0",
"device": null,
"os": "OS X"
}
Expand Down
78 changes: 9 additions & 69 deletions gulpHelpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ const fs = require('fs.extra');
const path = require('path');
const argv = require('yargs').argv;
const MANIFEST = 'package.json';
const exec = require('child_process').exec;
const through = require('through2');
const _ = require('lodash');
const gutil = require('gulp-util');
Expand All @@ -13,7 +12,6 @@ const BUILD_PATH = './build/dist';
const DEV_PATH = './build/dev';
const ANALYTICS_PATH = '../analytics';


// get only subdirectories that contain package.json with 'main' property
function isModuleDirectory(filePath) {
try {
Expand All @@ -22,8 +20,7 @@ function isModuleDirectory(filePath) {
const module = require(manifestPath);
return module && module.main;
}
}
catch (error) {}
} catch (error) {}
}

module.exports = {
Expand All @@ -38,8 +35,8 @@ module.exports = {
jsonifyHTML: function (str) {
console.log(arguments);
return str.replace(/\n/g, '')
.replace(/<\//g, '<\\/')
.replace(/\/>/g, '\\/>');
.replace(/<\//g, '<\\/')
.replace(/\/>/g, '\\/>');
},
getArgModules() {
var modules = (argv.modules || '').split(',').filter(module => !!module);
Expand All @@ -52,7 +49,7 @@ module.exports = {
fs.readFileSync(moduleFile, 'utf8')
);
}
} catch(e) {
} catch (e) {
throw new gutil.PluginError({
plugin: 'modules',
message: 'failed reading: ' + argv.modules
Expand All @@ -72,19 +69,19 @@ module.exports = {
var moduleName = file.split(new RegExp('[.\\' + path.sep + ']'))[0];
var modulePath = path.join(absoluteModulePath, file);
if (fs.lstatSync(modulePath).isDirectory()) {
modulePath = path.join(modulePath, "index.js")
modulePath = path.join(modulePath, 'index.js')
}
memo[modulePath] = moduleName;
return memo;
}, {});
} catch(err) {
} catch (err) {
internalModules = {};
}
return Object.assign(externalModules.reduce((memo, module) => {
try {
var modulePath = require.resolve(module);
memo[modulePath] = module;
} catch(err) {
} catch (err) {
// do something
}
return memo;
Expand All @@ -93,7 +90,7 @@ module.exports = {

getBuiltModules: function(dev, externalModules) {
var modules = this.getModuleNames(externalModules);
if(Array.isArray(externalModules)) {
if (Array.isArray(externalModules)) {
modules = _.intersection(modules, externalModules);
}
return modules.map(name => path.join(__dirname, dev ? DEV_PATH : BUILD_PATH, name + '.js'));
Expand Down Expand Up @@ -128,7 +125,7 @@ module.exports = {
* Returns an array of source files for inclusion in build process
*/
getAnalyticsSources: function() {
if (!argv.analytics) {return [];} // empty arrays won't affect a standard build
if (!argv.analytics) { return []; } // empty arrays won't affect a standard build

const directoryContents = fs.readdirSync(ANALYTICS_PATH);
return directoryContents
Expand All @@ -155,62 +152,5 @@ module.exports = {
}

return options;
},

createEnd2EndTestReport : function(targetDestinationDir) {
var browsers = require('./browsers.json');
var env = [];
var input = 'bs';
for(var key in browsers) {
if(key.substring(0, input.length) === input && browsers[key].browser !== 'iphone') {
env.push(key);
}
}

//create new directory structure
fs.rmrfSync(targetDestinationDir);
env.forEach(item => {
fs.mkdirpSync(targetDestinationDir + '/' + item);
});

//move xml files to newly created directory
var walker = fs.walk('./build/coverage/e2e/reports');
walker.on("file", function (root, stat, next) {
env.forEach(item => {
if(stat.name.search(item) !== -1) {
var src = root + '/' + stat.name;
var dest = targetDestinationDir + '/' + item + '/' + stat.name;
fs.copy(src, dest, {replace: true}, function(err) {
if(err) {
throw err;
}
});
}
});
next();
});

//run junit-viewer to read xml and create html
env.forEach(item => {
//junit-viewer --results="./custom-reports/chrome51" --save="./chrome.html"
var cmd = 'junit-viewer --results="' + targetDestinationDir + '/' + item + '" --save="' + targetDestinationDir + '/' + item +'.html"';
exec(cmd);
});

//create e2e-results.html
var html = '<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>End to End Testing Result</title><link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css"><script src="https://code.jquery.com/jquery-1.12.4.js"></script><script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script><script>$( function() {$( "#tabs" ).tabs({heightStyle: "fill"});});</script></head><body><div style="font-weight: bold;">Note: Refresh in 2-3 seconds if it says "Cannot get ....."</div><div id="tabs" style="height:2000px;">';
var li = '';
var tabs = '';
env.forEach(function(item,i) {
i++;
li = li + '<li><a href="#tabs-'+i+'">'+item+'</a></li>';
tabs = tabs + '<div id="tabs-'+i+'"><iframe name="'+item+'" src="/' + targetDestinationDir.slice(2) + '/'+item+'.html" frameborder="0" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;height:100%;width:100%;top:50px;left:0px;right:0px;bottom:0px" height="100%" width="100%"></iframe></div>';
});
html = html + '<ul>' + li + '</ul>' + tabs;
html = html + '</div></body></html>';

var filepath = targetDestinationDir + '/results.html';
fs.openSync(filepath, 'w+');
fs.writeFileSync(filepath, html);
}
};
Loading