@bscotch/gamemaker-releases 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,13 +17,19 @@ Latest releases document: https://github.com/bscotch/gamemaker-info/releases/lat
17
17
  ## Usage
18
18
 
19
19
  ```ts
20
- import { listReleasesWithNotes } from '@bscotch/gamemaker-releases';
21
-
22
- // Get info for all releases, including IDE and Runtime, across
23
- // all channels, with release notes. The first run may take a while,
24
- // since there are many files that need to be fetched. These are
25
- // cached for future runs, however.
26
- const releases = await listReleasesWithNotes();
20
+ import {
21
+ fetchReleasesSummaryWithNotes,
22
+ computeReleasesSummaryWithNotes
23
+ } from '@bscotch/gamemaker-releases';
24
+
25
+ // 🚀 Fetch the latest already-computed summary
26
+ // of all GameMaker releases:
27
+ const releases = await fetchReleasesSummaryWithNotes();
28
+
29
+ // 🐌 Freshly compile the centralized release summary.
30
+ // This can be useful if the pre-computed
31
+ // summary is out of date.
32
+ const releases = await computeReleasesSummaryWithNotes();
27
33
  ```
28
34
 
29
35
  ## Background Info
package/dist/browser.d.ts CHANGED
@@ -4,10 +4,5 @@
4
4
  export { ideFeedUrls, runtimeFeedUrls } from './urls.js';
5
5
  export { gameMakerReleaseWithNotesSchema } from './feeds.types.js';
6
6
  export type { ArtifactType, Channel, GameMakerRelease, GameMakerReleaseWithNotes, } from './feeds.types.js';
7
- /**
8
- * This package is used to generate a releases object, stored
9
- * as a JSON file for public download. The latest version of this
10
- * releases object can be downloaded from this URL.
11
- */
12
- export declare const releasesUrl = "https://github.com/bscotch/gamemaker-info/releases/latest/download/releases-summary.json";
7
+ export { releasesUrl } from './releases.js';
13
8
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EACV,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B;;;;GAIG;AACH,eAAO,MAAM,WAAW,6FACoE,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EACV,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
package/dist/browser.js CHANGED
@@ -3,10 +3,5 @@
3
3
  */
4
4
  export { ideFeedUrls, runtimeFeedUrls } from './urls.js';
5
5
  export { gameMakerReleaseWithNotesSchema } from './feeds.types.js';
6
- /**
7
- * This package is used to generate a releases object, stored
8
- * as a JSON file for public download. The latest version of this
9
- * releases object can be downloaded from this URL.
10
- */
11
- export const releasesUrl = 'https://github.com/bscotch/gamemaker-info/releases/latest/download/releases-summary.json';
6
+ export { releasesUrl } from './releases.js';
12
7
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AAOnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GACtB,0FAA0F,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AAOnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
package/dist/notes.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Pathy } from '@bscotch/pathy';
2
- import { GameMakerRelease } from './feeds.types.js';
2
+ import { ArtifactType, GameMakerRelease } from './feeds.types.js';
3
3
  export declare function listReleaseNotes(releases: GameMakerRelease[], cache?: Pathy | string): Promise<Record<string, {
4
4
  version: string;
5
5
  url: string;
@@ -13,4 +13,22 @@ export declare function listReleaseNotes(releases: GameMakerRelease[], cache?: P
13
13
  }[];
14
14
  };
15
15
  }>>;
16
+ export declare function cleanNote(note: {
17
+ type?: ArtifactType;
18
+ version: string;
19
+ url: string;
20
+ release_notes: string[];
21
+ }): {
22
+ version: string;
23
+ url: string;
24
+ title: string | null;
25
+ type: "ide" | "runtime";
26
+ changes: {
27
+ since: string | null;
28
+ groups: {
29
+ title: string;
30
+ changes: string[];
31
+ }[];
32
+ };
33
+ };
16
34
  //# sourceMappingURL=notes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EAEL,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAI1B,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,KAAK,GAAE,KAAK,GAAG,MAA8B;;;;;;;;;;;;IA8B9C"}
1
+ {"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAI1B,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,KAAK,GAAE,KAAK,GAAG,MAA8B;;;;;;;;;;;;IA8B9C;AAqDD,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;;;;;;;;;;;;EAiBA"}
package/dist/notes.js CHANGED
@@ -74,7 +74,7 @@ function cleanNotes(cachedNotes) {
74
74
  }, {});
75
75
  return notesByUrl;
76
76
  }
77
- function cleanNote(note) {
77
+ export function cleanNote(note) {
78
78
  assert(note.type, 'Note type must be set');
79
79
  const { body, title } = parseHeader(note.release_notes.join(''));
80
80
  const groups = parseBody(body);
@@ -100,7 +100,7 @@ function relativeToVersion(title) {
100
100
  }
101
101
  function parseBody(html) {
102
102
  // Split on h3 elements, and then pull out the lists within each
103
- const parts = html.split(/<h3>\s*(.+?)\s*<\/h3>\s*<ul>\s*(.+?)\s*<\/ul>/g);
103
+ const parts = html.split(/<h3>\s*(.+?)\s*<\/h3>\s*<ul>\s*(.+?)\s*<\/ul>/gs);
104
104
  const changes = [];
105
105
  for (let groupIdx = 0; groupIdx < parts.length - 2; groupIdx += 3) {
106
106
  const [title, list] = [parts[groupIdx + 1], parts[groupIdx + 2]];
@@ -109,7 +109,7 @@ function parseBody(html) {
109
109
  return changes;
110
110
  }
111
111
  function parseList(htmlList) {
112
- const parts = htmlList.split(/<li>\s*(.+?)\s*<\/li>/g);
112
+ const parts = htmlList.split(/<li>\s*(.+?)\s*<\/li>/gs);
113
113
  const changes = [];
114
114
  for (let groupIdx = 0; groupIdx < parts.length - 1; groupIdx += 2) {
115
115
  const change = parts[groupIdx + 1];
@@ -124,7 +124,7 @@ function parseHeader(html) {
124
124
  // If there is an h2 with the word "since" in it (otherwise the first h2), treat that
125
125
  // one as the one describing this version and remove everything above and all headers
126
126
  // below it.
127
- const h2s = html.match(/<h2>\s*(.+?)\s*<\/h2>/g);
127
+ const h2s = html.match(/<h2>\s*(.+?)\s*<\/h2>/gs);
128
128
  if (!h2s?.length) {
129
129
  return { title: null, body: html };
130
130
  }
package/dist/notes.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"notes.js","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAIL,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA4B,EAC5B,QAAwB,qBAAqB;IAE7C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,aAAa,CACrD,0BAA0B,CAC3B,CAAC;IACF,MAAM,CACJ,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAC9B,wCAAwC,CACzC,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,CAAU,EAAE;YAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YACnC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;oBACxB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC3B,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;iBAClC;gBACD,SAAS;aACV;YACD,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;YACxD,SAAS,CAAC,GAAG,CAAC,GAAG;gBACf,IAAI;gBACJ,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;aACpC,CAAC;YACF,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAClC;KACF;IACD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,UAAU,CAAC,WAAiC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,GAAG,IAAI;QACP,GAAG;KACJ,CAAC,CAAC,CAAC;IACJ,gEAAgE;IAChE,iFAAiF;IACjF,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1E,MAAM,CACJ,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9B,2CAA2C,CAC5C,CAAC;IACF,6DAA6D;IAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7C,gFAAgF;IAChF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YACvC,SAAS;SACV;QACD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5C,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CACrC,CAAC;QACF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACxC,SAAS;SACV;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC3B,0DAA0D;YAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtE,SAAS;SACV;QACD,oCAAoC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,EAAE;YAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;KACJ;IACD,gFAAgF;IAChF,8BAA8B;IAC9B,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACnD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAA4C,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,IAKlB;IACC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IAC3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE9C,qBAAqB;IACrB,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE;YACP,KAAK,EAAE,YAAY;YACnB,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB;IAC7C,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,gEAAgE;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC3E,MAAM,OAAO,GAA2C,EAAE,CAAC;IAC3D,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE;QACjE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnD;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACtB;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,qFAAqF;IACrF,4BAA4B;IAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACnB,qFAAqF;IACrF,qFAAqF;IACrF,YAAY;IACZ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;QAChB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACpC;IACD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,YAAY,GAAG,CAAC,EAAE;QACpB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;KACtC;IACD,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,uCAAuC,CAAC,CAAC;IACzE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,kCAAkC,CAAE,CAAC;IAC3E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"notes.js","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * This package is used to generate a releases object, stored
3
+ * as a JSON file for public download. The latest version of this
4
+ * releases object can be downloaded from this URL.
5
+ */
6
+ export declare const releasesUrl = "https://github.com/bscotch/gamemaker-info/releases/latest/download/releases-summary.json";
7
+ /**
8
+ * Given a URL to an already-synthesized
9
+ * GameMaker Studio merged-releases feed,
10
+ * download the feed and return the list of
11
+ * releases.
12
+ */
13
+ export declare function downloadGameMakerInfo(url?: string): Promise<{
14
+ ide: {
15
+ link?: string | undefined;
16
+ type: "ide" | "runtime";
17
+ channel: "lts" | "stable" | "beta" | "unstable";
18
+ version: string;
19
+ feedUrl: string;
20
+ publishedAt: string;
21
+ notesUrl: string;
22
+ notes: {
23
+ since: string | null;
24
+ groups: {
25
+ title: string;
26
+ changes: string[];
27
+ }[];
28
+ };
29
+ };
30
+ runtime: {
31
+ link?: string | undefined;
32
+ type: "ide" | "runtime";
33
+ channel: "lts" | "stable" | "beta" | "unstable";
34
+ version: string;
35
+ feedUrl: string;
36
+ publishedAt: string;
37
+ notesUrl: string;
38
+ notes: {
39
+ since: string | null;
40
+ groups: {
41
+ title: string;
42
+ changes: string[];
43
+ }[];
44
+ };
45
+ };
46
+ channel: "lts" | "stable" | "beta" | "unstable";
47
+ summary: string;
48
+ publishedAt: string;
49
+ }[]>;
50
+ //# sourceMappingURL=releases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"releases.d.ts","sourceRoot":"","sources":["../src/releases.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,WAAW,6FACoE,CAAC;AAE7F;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM5D"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ import { gameMakerReleaseWithNotesSchema } from './feeds.types.js';
3
+ import { fetchJson } from './fetch.js';
4
+ /**
5
+ * This package is used to generate a releases object, stored
6
+ * as a JSON file for public download. The latest version of this
7
+ * releases object can be downloaded from this URL.
8
+ */
9
+ export const releasesUrl = 'https://github.com/bscotch/gamemaker-info/releases/latest/download/releases-summary.json';
10
+ /**
11
+ * Given a URL to an already-synthesized
12
+ * GameMaker Studio merged-releases feed,
13
+ * download the feed and return the list of
14
+ * releases.
15
+ */
16
+ export async function downloadGameMakerInfo(url = releasesUrl) {
17
+ const releases = await fetchJson(url, z.array(gameMakerReleaseWithNotesSchema));
18
+ return releases;
19
+ }
20
+ //# sourceMappingURL=releases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"releases.js","sourceRoot":"","sources":["../src/releases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GACtB,0FAA0F,CAAC;AAE7F;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAG,GAAG,WAAW;IAC3D,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,GAAG,EACH,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CACzC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bscotch/gamemaker-releases",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Utility for combining GameMaker release data into a single feed.",
5
5
  "keywords": [
6
6
  "gamemaker",
@@ -37,33 +37,32 @@
37
37
  },
38
38
  "main": "dist/index.js",
39
39
  "types": "dist/index.d.ts",
40
- "scripts": {
41
- "build": "tsc --build",
42
- "clean": "rimraf build dist",
43
- "test": "mocha --config ../../config/.mocharc.cjs",
44
- "test:dev": "mocha --config ../../config/.mocharc.cjs --forbid-only=false --parallel=false --timeout=9999999999",
45
- "watch": "tsc --build --watch"
46
- },
47
40
  "dependencies": {
48
- "@bscotch/pathy": "^2.5.1",
49
- "@bscotch/utility": "^6.7.0",
41
+ "@bscotch/pathy": "^2.6.0",
42
+ "@bscotch/utility": "^6.8.0",
50
43
  "entities": "^4.4.0",
51
- "fast-xml-parser": "^4.0.12",
44
+ "fast-xml-parser": "^4.1.2",
52
45
  "node-fetch": "^3.3.0",
53
- "tslib": "^2.4.1",
54
- "zod": "^3.19.1"
46
+ "tslib": "^2.5.0",
47
+ "zod": "^3.20.6"
55
48
  },
56
49
  "devDependencies": {
57
50
  "@types/chai": "^4",
58
51
  "@types/mocha": "^10.0.1",
59
52
  "@types/rimraf": "^3",
60
53
  "chai": "^4.3.7",
61
- "mocha": "^10.1.0",
62
- "rimraf": "^3.0.2",
63
- "typescript": "^4.9.3"
54
+ "mocha": "^10.2.0",
55
+ "rimraf": "^4.1.2",
56
+ "typescript": "^4.9.5"
64
57
  },
65
- "packageManager": "yarn@3.2.4",
66
58
  "publishConfig": {
67
59
  "access": "public"
60
+ },
61
+ "scripts": {
62
+ "build": "tsc --build",
63
+ "clean": "rimraf build dist",
64
+ "test": "mocha --config ../../config/.mocharc.cjs",
65
+ "test:dev": "mocha --config ../../config/.mocharc.cjs --forbid-only=false --parallel=false --timeout=9999999999",
66
+ "watch": "tsc --build --watch"
68
67
  }
69
68
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=feeds.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feeds.test.d.ts","sourceRoot":"","sources":["../src/feeds.test.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- import { pathy } from '@bscotch/pathy';
2
- import { expect } from 'chai';
3
- import { listReleases, listReleasesWithNotes } from './feeds.js';
4
- import { rawReleaseNotesCacheSchema } from './feeds.types.js';
5
- const notesCache = pathy('release-notes-cache.json').withValidator(rawReleaseNotesCacheSchema);
6
- describe('Release Feeds', function () {
7
- it('can create a centralized GameMaker Releases database', async function () {
8
- const releases = await listReleases();
9
- const withNotes = await listReleasesWithNotes(releases, notesCache);
10
- expect(withNotes.length).to.be.greaterThan(0);
11
- expect(withNotes.every((r) => r.channel)).to.exist;
12
- for (const type of ['ide', 'runtime']) {
13
- expect(withNotes.every((r) => r[type])).to.exist;
14
- expect(withNotes.every((r) => r[type].version)).to.exist;
15
- expect(withNotes.every((r) => r[type].notes)).to.exist;
16
- expect(withNotes.every((r) => r[type].notes.groups)).to.exist;
17
- }
18
- });
19
- });
20
- //# sourceMappingURL=feeds.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feeds.test.js","sourceRoot":"","sources":["../src/feeds.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,UAAU,GAAG,KAAK,CAAC,0BAA0B,CAAC,CAAC,aAAa,CAChE,0BAA0B,CAC3B,CAAC;AAEF,QAAQ,CAAC,eAAe,EAAE;IACxB,EAAE,CAAC,sDAAsD,EAAE,KAAK;QAC9D,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,CAAU,EAAE;YAC9C,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YACjD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YACzD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;SAC/D;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}