diff --git a/src/pptr/PPTRProduct.js b/src/pptr/PPTRProduct.js index 9f405f6..9623ca4 100644 --- a/src/pptr/PPTRProduct.js +++ b/src/pptr/PPTRProduct.js @@ -39,23 +39,124 @@ function isFirefoxPrivateBrowsingMode() { export class PPTRProduct extends App.Product { static async fetchReleaseAndReadme(staleData) { const fetchTimestamp = Date.now(); - const [releasesText, readmeText] = await Promise.all([ - fetch('https://api.github.com/repos/GoogleChrome/puppeteer/releases').then(r => r.text()), + const [ readmeText ] = await Promise.all([ fetch('https://raw.githubusercontent.com/GoogleChrome/puppeteer/main/README.md').then(r => r.text()), ]); - const releases = JSON.parse(releasesText).map(release => ({ - name: release.tag_name, - releaseNotes: release.body, - timestamp: (new Date(release.published_at)).getTime(), - apiText: '' - })); + // Hard-code all releases + const releases = [ + { name: "v15.2.0", timestamp: new Date("2022-06-29T12:26:01.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v15.1.1", timestamp: new Date("2022-06-25T11:33:56.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v15.1.0", timestamp: new Date("2022-06-24T16:42:48.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v15.0.2", timestamp: new Date("2022-06-24T13:30:53.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v15.0.1", timestamp: new Date("2022-06-24T07:42:26.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v15.0.0", timestamp: new Date("2022-06-23T11:38:41.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.4.1", timestamp: new Date("2022-06-17T13:29:39.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.4.0", timestamp: new Date("2022-06-13T21:06:10.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.3.0", timestamp: new Date("2022-06-07T14:21:59.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.2.1", timestamp: new Date("2022-06-02T13:39:04.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.2.0", timestamp: new Date("2022-06-01T20:12:15.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.1.2", timestamp: new Date("2022-05-30T14:29:08.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.1.1", timestamp: new Date("2022-05-19T15:00:05.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.1.0", timestamp: new Date("2022-05-13T07:34:06.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v14.0.0", timestamp: new Date("2022-05-09T13:31:25.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.7.0", timestamp: new Date("2022-04-28T11:06:55.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.6.0", timestamp: new Date("2022-04-20T08:09:53.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.5.2", timestamp: new Date("2022-03-31T09:11:44.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.5.1", timestamp: new Date("2022-03-09T13:25:35.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.5.0", timestamp: new Date("2022-03-07T13:24:25.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.4.1", timestamp: new Date("2022-03-01T07:30:04.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.4.0", timestamp: new Date("2022-02-22T12:35:20.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.3.2", timestamp: new Date("2022-02-14T11:36:33.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.3.1", timestamp: new Date("2022-02-10T15:02:29.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.3.0", timestamp: new Date("2022-02-09T17:35:31.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.2.0", timestamp: new Date("2022-02-07T14:36:49.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.1.3", timestamp: new Date("2022-01-31T09:17:18.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.1.2", timestamp: new Date("2022-01-25T07:56:59.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.1.1", timestamp: new Date("2022-01-18T08:56:21.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.1.0", timestamp: new Date("2022-01-17T14:42:30.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.0.1", timestamp: new Date("2021-12-22T08:07:36.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v13.0.0", timestamp: new Date("2021-12-10T09:11:03.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v12.0.1", timestamp: new Date("2021-11-29T20:09:12.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v12.0.0", timestamp: new Date("2021-11-27T16:09:30.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v11.0.0", timestamp: new Date("2021-11-03T09:26:53.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v10.4.0", timestamp: new Date("2021-09-21T15:32:18.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v10.2.0", timestamp: new Date("2021-08-04T12:51:02.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v10.1.0", timestamp: new Date("2021-06-29T07:27:53.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v10.0.0", timestamp: new Date("2021-05-31T12:40:13.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v9.1.1", timestamp: new Date("2021-05-05T08:40:11.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v9.1.0", timestamp: new Date("2021-05-03T12:11:02.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v9.0.0", timestamp: new Date("2021-04-21T11:25:02.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v8.0.0", timestamp: new Date("2021-02-26T08:34:28.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v7.1.0", timestamp: new Date("2021-02-12T10:55:49.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v7.0.4", timestamp: new Date("2021-02-09T12:35:19.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v7.0.3", timestamp: new Date("2021-02-09T08:51:39.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v7.0.2", timestamp: new Date("2021-02-09T08:28:06.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v7.0.1", timestamp: new Date("2021-02-04T10:16:53.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v7.0.0", timestamp: new Date("2021-02-03T15:35:59.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v6.0.0", timestamp: new Date("2021-02-02T11:05:06.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.5.0", timestamp: new Date("2020-11-16T13:39:47.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.4.1", timestamp: new Date("2020-10-27T15:05:56.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.4.0", timestamp: new Date("2020-10-23T15:08:01.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.3.1", timestamp: new Date("2020-09-22T10:56:36.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.3.0", timestamp: new Date("2020-09-11T08:56:58.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.2.1", timestamp: new Date("2020-07-21T14:33:12.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.2.0", timestamp: new Date("2020-07-17T12:36:03.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.1.0", timestamp: new Date("2020-07-13T08:32:39.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v5.0.0", timestamp: new Date("2020-07-02T13:33:31.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v4.0.1", timestamp: new Date("2020-06-24T13:23:26.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v4.0.0", timestamp: new Date("2020-06-15T13:51:59.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v3.3.0", timestamp: new Date("2020-06-02T08:59:38.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v3.2.0", timestamp: new Date("2020-05-29T09:23:48.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v3.1.0", timestamp: new Date("2020-05-18T11:49:42.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v3.0.4", timestamp: new Date("2020-05-07T10:02:06.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v3.0.3", timestamp: new Date("2020-05-06T15:01:11.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v3.0.2", timestamp: new Date("2020-04-28T09:26:45.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v3.0.1", timestamp: new Date("2020-04-22T14:41:07.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v3.0.0", timestamp: new Date("2020-04-16T09:13:44.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v2.1.1", timestamp: new Date("2020-02-05T13:42:00.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v2.1.0", timestamp: new Date("2020-01-28T06:06:32.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v2.0.0", timestamp: new Date("2019-10-24T13:10:27.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.20.0", timestamp: new Date("2019-09-13T07:41:02.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.19.0", timestamp: new Date("2019-07-23T05:04:49.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.18.1", timestamp: new Date("2019-06-26T17:41:13.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.18.0", timestamp: new Date("2019-06-20T22:15:59.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.17.0", timestamp: new Date("2019-05-24T00:13:55.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.16.0", timestamp: new Date("2019-05-13T22:18:42.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.15.0", timestamp: new Date("2019-04-26T02:26:36.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.14.0", timestamp: new Date("2019-03-29T05:34:38.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.13.0", timestamp: new Date("2019-03-05T02:40:19.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.12.2", timestamp: new Date("2019-02-05T19:38:58.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.12.1", timestamp: new Date("2019-02-01T20:32:21.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.12.0", timestamp: new Date("2019-02-01T03:39:32.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.11.0", timestamp: new Date("2018-11-30T06:13:46.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.10.0", timestamp: new Date("2018-11-02T03:10:21.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.9.0", timestamp: new Date("2018-10-04T21:38:23.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.8.0", timestamp: new Date("2018-09-06T20:53:37.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.7.0", timestamp: new Date("2018-08-10T01:56:00.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.6.2", timestamp: new Date("2018-08-01T20:41:49.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.6.1", timestamp: new Date("2018-07-24T18:19:37.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.6.0", timestamp: new Date("2018-07-13T00:31:25.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.5.0", timestamp: new Date("2018-06-07T19:22:13.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.4.0", timestamp: new Date("2018-05-09T05:13:09.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.3.0", timestamp: new Date("2018-04-13T18:05:58.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.2.0", timestamp: new Date("2018-03-16T02:20:56.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.1.1", timestamp: new Date("2018-02-24T06:09:54.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.1.0", timestamp: new Date("2018-02-16T17:17:30.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.0.0", timestamp: new Date("2018-01-12T03:52:58.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v0.13.0", timestamp: new Date("2017-11-11T02:26:58.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.2.0", timestamp: new Date("2018-03-16T02:20:56.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.1.1", timestamp: new Date("2018-02-24T06:09:54.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.1.0", timestamp: new Date("2018-02-16T17:17:30.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v1.0.0", timestamp: new Date("2018-01-12T03:52:58.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v0.13.0", timestamp: new Date("2017-11-11T02:26:58.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v0.12.0", timestamp: new Date("2017-10-14T16:58:57.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v0.11.0", timestamp: new Date("2017-09-21T05:46:44.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v0.10.2", timestamp: new Date("2017-09-02T04:06:34.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v0.10.1", timestamp: new Date("2017-08-26T02:44:11.000Z").getTime(), releaseNotes: '', apiText: '' }, + { name: "v0.10.0", timestamp: new Date("2017-08-25T01:23:37.000Z").getTime(), releaseNotes: '', apiText: '' }, + ] // Add initial release - was published as a tag. - releases.push({ - name: 'v0.9.0', - timestamp: (new Date('August 16, 2017')).getTime(), - releaseNotes: '', - apiText: '', - }); + releases.push({ name: 'v0.9.0', timestamp: (new Date('August 16, 2017')).getTime(), releaseNotes: '', apiText: '' }); // Initialize release priorities that define their sorting order. for (const release of releases) {