Skip to content

Commit 9fc7f9a

Browse files
committed
fix: fix vulnerable deps and update to gulp v4
1 parent 1d18c52 commit 9fc7f9a

File tree

7 files changed

+4053
-1671
lines changed

7 files changed

+4053
-1671
lines changed

Gulpfile.js

Lines changed: 43 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
var gulp = require('gulp');
22
var fs = require('fs');
33
var path = require('path');
4-
var run = require('run-sequence');
54
var merge = require('merge-stream');
65
var del = require('del');
76
var exec = require('child_process').exec;
@@ -39,7 +38,7 @@ function getCommentHandler() {
3938
}
4039
}
4140

42-
gulp.task('icons', function () {
41+
gulp.task('icons', function (cb) {
4342
var used = [
4443
'alert', 'arrow-right', 'code', 'diff', 'git-commit', 'git-pull-request',
4544
'info', 'issue-closed', 'issue-opened', 'link', 'location', 'organization',
@@ -62,6 +61,7 @@ gulp.task('icons', function () {
6261
}, {});
6362

6463
fs.writeFileSync('./assets/octicons.json', JSON.stringify(data, null, ' '));
64+
cb();
6565
});
6666

6767
gulp.task('css:prepare', function () {
@@ -78,24 +78,16 @@ gulp.task('css:compile', function () {
7878
.pipe(gulp.dest('./src'));
7979
});
8080

81-
gulp.task('css', ['css:prepare', 'css:compile']);
81+
gulp.task('css', gulp.series('css:prepare', 'css:compile'));
8282

83-
gulp.task('resource:inline', ['icons'], function () {
83+
gulp.task('resource:inline', gulp.series('icons', function () {
8484
return gulp.src('./src/hovercard.js')
8585
.pipe(replace('\'__OCTICONS__\'', JSON.stringify(require('./assets/octicons.json'))))
8686
.pipe(replace('\'__EMOJI_DATA__\'', JSON.stringify(require('./assets/emoji.json'))))
8787
.pipe(gulp.dest('./tmp'));
88-
});
89-
90-
// gulp.task('firefox:resource', function () {
91-
// return gulp.src('./src/hovercard.js')
92-
// .pipe(replace('\'__OCTICONS__\'', 'self.options.octicons'))
93-
// .pipe(replace('\'__EMOJI_DATA__\'', 'self.options.emojiMap'))
94-
// .pipe(rename('hovercard.firefox.js'))
95-
// .pipe(gulp.dest('./tmp'));
96-
// });
88+
}));
9789

98-
gulp.task('userscript:prepare', ['resource:inline'], function () {
90+
gulp.task('userscript:prepare', gulp.series('resource:inline', function () {
9991
var hovercard = gulp.src('./tmp/hovercard.js')
10092
.pipe(buble({
10193
transforms: {
@@ -108,9 +100,9 @@ gulp.task('userscript:prepare', ['resource:inline'], function () {
108100
.pipe(replace('{{version}}', version))
109101
.pipe(gulp.dest('./tmp'));
110102
return merge(hovercard, meta);
111-
});
103+
}));
112104

113-
gulp.task('userscript:styles', ['css'], function () {
105+
gulp.task('userscript:styles', gulp.series('css', function () {
114106
return gulp.src([
115107
'./tmp/tooltipster.css',
116108
'./src/hovercard.css',
@@ -119,16 +111,15 @@ gulp.task('userscript:styles', ['css'], function () {
119111
.pipe(concat('userscript.css'))
120112
.pipe(cssnano({ zindex: false }))
121113
.pipe(gulp.dest('./tmp'));
122-
});
114+
}));
123115

124-
gulp.task('userscript:inject-styles', ['userscript:styles'], function () {
116+
gulp.task('userscript:inject-styles', gulp.series('userscript:styles', function () {
125117
return gulp.src('./userscript/src/inject-styles.js')
126118
.pipe(replace('__USER_SCRIPT_STYLES__', fs.readFileSync('./tmp/userscript.css', { encoding: 'utf8' }).replace(/'/g, '\\\'')))
127119
.pipe(gulp.dest('./tmp'));
128-
});
120+
}));
129121

130-
gulp.task('userscript', ['userscript:inject-styles', 'userscript:prepare'], function () {
131-
var inMetaBlock = false;
122+
gulp.task('userscript', gulp.series('userscript:inject-styles', 'userscript:prepare', function () {
132123
return gulp.src([
133124
'./tmp/metadata.js',
134125
'./tmp/inject-styles.js',
@@ -143,9 +134,9 @@ gulp.task('userscript', ['userscript:inject-styles', 'userscript:prepare'], func
143134
preserveComments: getCommentHandler()
144135
}))
145136
.pipe(gulp.dest('./userscript/dist'));
146-
});
137+
}));
147138

148-
gulp.task('chrome:cp', ['resource:inline', 'css', 'icons'], function () {
139+
gulp.task('chrome:cp', gulp.series('resource:inline', 'css', 'icons', function () {
149140
var manifestPath = './extensions/chrome/manifest.json';
150141
var manifest = JSON.parse(fs.readFileSync(manifestPath, { encoding: 'utf8' }));
151142
manifest.version = version;
@@ -157,9 +148,9 @@ gulp.task('chrome:cp', ['resource:inline', 'css', 'icons'], function () {
157148
];
158149
return gulp.src(targets)
159150
.pipe(gulp.dest('./extensions/chrome'));
160-
});
151+
}));
161152

162-
gulp.task('firefox:cp', ['resource:inline', 'css', 'icons'], function () {
153+
gulp.task('firefox:cp', gulp.series('resource:inline', 'css', 'icons', function () {
163154
var manifestPath = './extensions/firefox/manifest.json';
164155
var manifest = JSON.parse(fs.readFileSync(manifestPath, { encoding: 'utf8' }));
165156
manifest.version = version;
@@ -171,9 +162,9 @@ gulp.task('firefox:cp', ['resource:inline', 'css', 'icons'], function () {
171162
];
172163
return gulp.src(targets)
173164
.pipe(gulp.dest('./extensions/firefox'));
174-
});
165+
}));
175166

176-
gulp.task('safari:cp', ['resource:inline', 'css', 'icons'], function () {
167+
gulp.task('safari:cp', gulp.series('resource:inline', 'css', 'icons', function () {
177168
var infoPath = './extensions/github-hovercard.safariextension/Info.plist';
178169
var info = plist.parse(fs.readFileSync(infoPath, { encoding: 'utf8' }));
179170
info.CFBundleShortVersionString = version;
@@ -186,15 +177,15 @@ gulp.task('safari:cp', ['resource:inline', 'css', 'icons'], function () {
186177
];
187178
return gulp.src(targets)
188179
.pipe(gulp.dest('./extensions/github-hovercard.safariextension'));
189-
});
180+
}));
190181

191-
gulp.task('edge:hack', ['resource:inline'], function () {
182+
gulp.task('edge:hack', gulp.series('resource:inline', function () {
192183
return gulp.src(['./tmp/hovercard.js'])
193184
.pipe(replace('$(() => {', 'document.addEventListener(\'DOMContentLoaded\', () => {'))
194185
.pipe(gulp.dest('./extensions/edge'));
195-
});
186+
}));
196187

197-
gulp.task('edge:cp', ['edge:hack', 'css', 'icons'], function () {
188+
gulp.task('edge:cp', gulp.series('edge:hack', 'css', 'icons', function () {
198189
var manifestPath = './extensions/edge/manifest.json';
199190
var manifest = JSON.parse(fs.readFileSync(manifestPath, { encoding: 'utf8' }));
200191
manifest.version = version;
@@ -206,91 +197,57 @@ gulp.task('edge:cp', ['edge:hack', 'css', 'icons'], function () {
206197
];
207198
return gulp.src(targets)
208199
.pipe(gulp.dest('./extensions/edge'));
209-
});
200+
}));
210201

211-
// gulp.task('firefox:cp', ['firefox:resource', 'css', 'icons'], function () {
212-
// var fxPackPath = './extensions/firefox/package.json';
213-
// var fxPack = JSON.parse(fs.readFileSync(fxPackPath, { encoding: 'utf8' }));
214-
// fxPack.version = version;
215-
// fs.writeFileSync(fxPackPath, JSON.stringify(fxPack, null, ' '));
216-
217-
// var targets = [
218-
// './src/*', '!./src/hovercard.js', '!./src/*.styl',
219-
// '!./src/tooltipster.css', './tmp/tooltipster.css'
220-
// ];
221-
// var main = gulp.src(['./tmp/hovercard.firefox.js'])
222-
// .pipe(rename('hovercard.js'))
223-
// .pipe(gulp.dest('./extensions/firefox/data'));
224-
// var src = gulp.src(targets.concat([
225-
// './assets/emoji.json', './assets/octicons.json'
226-
// ]))
227-
// .pipe(gulp.dest('./extensions/firefox/data'));
228-
// var icon = gulp.src('./icon.png')
229-
// .pipe(gulp.dest('./extensions/firefox'))
230-
// return merge(main, src, icon);
231-
// });
232-
233-
gulp.task('chrome:zip', ['chrome:cp'], function (cb) {
202+
gulp.task('chrome:zip', gulp.series('chrome:cp', function (cb) {
234203
exec(
235204
'find . -path \'*/.*\' -prune -o -type f -print | zip ../packed/github-hovercard.chrome.zip -@',
236205
{ cwd: 'extensions/chrome' },
237-
function (error, stdout, stderr) {
206+
function (error) {
238207
if (error) {
239208
return cb(error);
240209
} else {
241210
cb();
242211
}
243212
}
244213
);
245-
});
214+
}));
246215

247-
gulp.task('firefox:zip', ['firefox:cp'], function (cb) {
216+
gulp.task('firefox:zip', gulp.series('firefox:cp', function (cb) {
248217
exec(
249218
'find . -path \'*/.*\' -prune -o -type f -print | zip ../packed/github-hovercard.firefox.zip -@',
250219
{ cwd: 'extensions/firefox' },
251-
function (error, stdout, stderr) {
220+
function (error) {
252221
if (error) {
253222
return cb(error);
254223
} else {
255224
cb();
256225
}
257226
}
258227
);
259-
});
228+
}));
260229

261-
gulp.task('edge:zip', ['edge:cp'], function (cb) {
230+
gulp.task('edge:zip', gulp.series('edge:cp', function (cb) {
262231
exec(
263232
'find . -path \'*/.*\' -prune -o -type f -print | zip ../packed/github-hovercard.edge.zip -@',
264233
{ cwd: 'extensions/edge' },
265-
function (error, stdout, stderr) {
234+
function (error) {
266235
if (error) {
267236
return cb(error);
268237
} else {
269238
cb();
270239
}
271240
}
272241
);
273-
});
242+
}));
274243

275-
// gulp.task('firefox:xpi', ['firefox:cp'], function (cb) {
276-
// exec('jpm xpi', {
277-
// cwd: 'extensions/firefox'
278-
// }, function (error, stdout, stderr) {
279-
// if (error) {
280-
// return cb(error);
281-
// }
282-
// fs.renameSync('./extensions/firefox/github-hovercard.xpi', './extensions/packed/github-hovercard.xpi');
283-
// cb();
284-
// });
285-
// });
286-
287-
gulp.task('opera:nex', ['chrome:zip'], function (cb) {
244+
gulp.task('opera:nex', gulp.series('chrome:zip', function (cb) {
288245
exec(''
289246
+ '"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"'
290247
+ ' --pack-extension=' + path.join(__dirname, 'extensions/chrome')
291248
+ ' --pack-extension-key=' + path.join(process.env.HOME, '.ssh/chrome.pem')
292249
+ ' --disable-gpu',
293-
function (error, stdout, stderr) {
250+
function (error) {
294251
if (error) {
295252
return cb(error);
296253
} else {
@@ -299,9 +256,9 @@ gulp.task('opera:nex', ['chrome:zip'], function (cb) {
299256
}
300257
}
301258
);
302-
});
259+
}));
303260

304-
gulp.task('demo:prepare', ['resource:inline'], function () {
261+
gulp.task('demo:prepare', gulp.series('resource:inline', function () {
305262
var hovercard = gulp.src('./tmp/hovercard.js')
306263
.pipe(replace('location.host', '\'github.com\''))
307264
.pipe(buble({
@@ -321,7 +278,7 @@ gulp.task('demo:prepare', ['resource:inline'], function () {
321278
.pipe(gulp.dest('./tmp'));
322279

323280
return merge(hovercard, demo);
324-
});
281+
}));
325282

326283
gulp.task('demo:index', function () {
327284
var changelog = fs.readFileSync('./CHANGELOG.md', { encoding: 'utf8' });
@@ -333,7 +290,7 @@ gulp.task('demo:index', function () {
333290
.pipe(gulp.dest('.'));
334291
});
335292

336-
gulp.task('demo', ['css', 'demo:prepare', 'demo:index'], function () {
293+
gulp.task('demo', gulp.series('css', 'demo:prepare', 'demo:index', function () {
337294
var jsSrc = gulp.src([
338295
'./src/jquery.js',
339296
'./src/mustache.js',
@@ -359,14 +316,12 @@ gulp.task('demo', ['css', 'demo:prepare', 'demo:index'], function () {
359316
.pipe(gulp.dest('./demo/dist'));
360317

361318
return merge(jsSrc, cssSrc);
362-
});
319+
}));
363320

364-
gulp.task('cleanup', function (cb) {
321+
gulp.task('cleanup', function () {
365322
return del(['./tmp']);
366323
});
367324

368-
gulp.task('extensions', ['chrome:zip', 'firefox:zip', 'edge:zip', 'opera:nex', 'safari:cp']);
369-
gulp.task('build', ['extensions', 'demo', 'userscript']);
370-
gulp.task('default', function (cb) {
371-
run('build', 'cleanup', cb);
372-
});
325+
gulp.task('extensions', gulp.series('chrome:zip', 'firefox:zip', 'edge:zip', 'opera:nex', 'safari:cp'));
326+
gulp.task('build', gulp.series('extensions', 'demo', 'userscript'));
327+
gulp.task('default', gulp.series('build', 'cleanup'));
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)