@metapages/metapage 1.8.25 → 1.8.27

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.
Files changed (72) hide show
  1. package/README.md +13 -12
  2. package/dist/index.js +859 -841
  3. package/dist/index.js.map +1 -1
  4. package/dist/metapage/Constants.d.ts.map +1 -1
  5. package/dist/metapage/Metaframe.d.ts +8 -8
  6. package/dist/metapage/Metaframe.d.ts.map +1 -1
  7. package/dist/metapage/Metapage.d.ts +5 -5
  8. package/dist/metapage/Metapage.d.ts.map +1 -1
  9. package/dist/metapage/MetapageIFrameRpcClient.d.ts +8 -8
  10. package/dist/metapage/MetapageIFrameRpcClient.d.ts.map +1 -1
  11. package/dist/metapage/MetapageTools.d.ts +4 -4
  12. package/dist/metapage/MetapageTools.d.ts.map +1 -1
  13. package/dist/metapage/Shared.d.ts +4 -4
  14. package/dist/metapage/core.d.ts +2 -1
  15. package/dist/metapage/core.d.ts.map +1 -1
  16. package/dist/metapage/data.d.ts.map +1 -1
  17. package/dist/metapage/errors/MissingMetaframeJson.d.ts.map +1 -1
  18. package/dist/metapage/errors/RootMetapageError.d.ts.map +1 -1
  19. package/dist/metapage/jsonrpc.d.ts +4 -4
  20. package/dist/metapage/jsonrpc.d.ts.map +1 -1
  21. package/dist/metapage/metapageRenderer.d.ts +16 -2
  22. package/dist/metapage/metapageRenderer.d.ts.map +1 -1
  23. package/dist/metapage/v0_1_0/all.d.ts +1 -1
  24. package/dist/metapage/v0_1_0/all.d.ts.map +1 -1
  25. package/dist/metapage/v0_2/all.d.ts +1 -1
  26. package/dist/metapage/v0_2/all.d.ts.map +1 -1
  27. package/dist/metapage/v0_3/JsonRpcMethods.d.ts +3 -3
  28. package/dist/metapage/v0_3/JsonRpcMethods.d.ts.map +1 -1
  29. package/dist/metapage/v0_3/all.d.ts +2 -2
  30. package/dist/metapage/v0_3/all.d.ts.map +1 -1
  31. package/dist/metapage/v0_4/metaframe.d.ts +3 -3
  32. package/dist/metapage/v0_4/metaframe.d.ts.map +1 -1
  33. package/dist/metapage/v0_4/metapage.d.ts +3 -3
  34. package/dist/metapage/v0_4/metapage.d.ts.map +1 -1
  35. package/dist/metapage/v1/metaframe.d.ts +3 -3
  36. package/dist/metapage/v1/metapage.d.ts +3 -3
  37. package/dist/metapage/v2/metaframe.d.ts +3 -3
  38. package/dist/metapage/v2/metapage.d.ts +3 -3
  39. package/dist/metapage/versions.d.ts.map +1 -1
  40. package/package.json +2 -1
  41. package/src/metapage/Constants.ts +5 -6
  42. package/src/metapage/Metaframe.ts +54 -62
  43. package/src/metapage/Metapage.ts +41 -41
  44. package/src/metapage/MetapageIFrameRpcClient.ts +20 -20
  45. package/src/metapage/MetapageTools.ts +15 -18
  46. package/src/metapage/README.md +5 -5
  47. package/src/metapage/Shared.ts +5 -5
  48. package/src/metapage/conversions-metaframe.ts +35 -35
  49. package/src/metapage/conversions-metapage.ts +25 -25
  50. package/src/metapage/core.ts +2 -1
  51. package/src/metapage/data.ts +38 -48
  52. package/src/metapage/errors/MissingMetaframeJson.ts +11 -12
  53. package/src/metapage/errors/RootMetapageError.ts +11 -12
  54. package/src/metapage/jsonrpc.ts +6 -12
  55. package/src/metapage/metapageRenderer.ts +110 -66
  56. package/src/metapage/metapageRendererExample.ts +1 -1
  57. package/src/metapage/util.ts +6 -6
  58. package/src/metapage/v0_1_0/all.ts +6 -6
  59. package/src/metapage/v0_2/all.ts +15 -13
  60. package/src/metapage/v0_3/JsonRpcMethods.ts +6 -10
  61. package/src/metapage/v0_3/all.ts +7 -10
  62. package/src/metapage/v0_4/README.md +1 -0
  63. package/src/metapage/v0_4/index.ts +0 -1
  64. package/src/metapage/v0_4/metaframe.ts +3 -6
  65. package/src/metapage/v0_4/metapage.ts +3 -6
  66. package/src/metapage/v1/index.ts +0 -1
  67. package/src/metapage/v1/metaframe.ts +3 -4
  68. package/src/metapage/v1/metapage.ts +3 -3
  69. package/src/metapage/v2/index.ts +0 -1
  70. package/src/metapage/v2/metaframe.ts +3 -4
  71. package/src/metapage/v2/metapage.ts +3 -3
  72. package/src/metapage/versions.ts +11 -4
@@ -12,7 +12,7 @@ import {
12
12
  import { MetapageHashParams, MetapageShared } from "./Shared";
13
13
  import { MetaframeDefinitionV2 } from "./v2";
14
14
  import { MetaframeInputMap, MetapageInstanceInputs } from "./v0_4";
15
- import { MetaframeId, MetaframePipeId, MetapageId } from "./core";
15
+ import { Disposer, MetaframeId, MetaframePipeId, MetapageId } from "./core";
16
16
  import { convertMetaframeJsonToCurrentVersion } from "./conversions-metaframe";
17
17
  import { MetapageEvents } from "./events";
18
18
  import {
@@ -47,10 +47,10 @@ export class MetapageIFrameRpcClient extends EventEmitter<
47
47
  _consoleBackgroundColor: string;
48
48
  inputs: MetaframeInputMap = {};
49
49
  outputs: MetaframeInputMap = {};
50
- _disposables: (() => void)[] = [];
50
+ _disposables: Disposer[] = [];
51
51
  _rpcListeners: ((r: JsonRpcRequest<any>) => void)[] = [];
52
52
  _loaded: boolean = false;
53
- _onLoaded: (() => void)[] = [];
53
+ _onLoaded: Disposer[] = [];
54
54
  _parentId: MetapageId;
55
55
  _debug: boolean;
56
56
  _sendInputsAfterRegistration: boolean = false;
@@ -64,7 +64,7 @@ export class MetapageIFrameRpcClient extends EventEmitter<
64
64
  iframeId: MetaframeId,
65
65
  parentId: MetapageId,
66
66
  consoleBackgroundColor: string,
67
- debug: boolean = false
67
+ debug: boolean = false,
68
68
  ) {
69
69
  super();
70
70
  // Url sanitation
@@ -121,7 +121,7 @@ export class MetapageIFrameRpcClient extends EventEmitter<
121
121
  this._metapage._definition.metaframes[this.id].allow!;
122
122
  if (this._debug) {
123
123
  this.log(
124
- `mf allow=${selfThis._iframe.allow} from this._metapage?._definition`
124
+ `mf allow=${selfThis._iframe.allow} from this._metapage?._definition`,
125
125
  );
126
126
  }
127
127
  } else {
@@ -132,7 +132,7 @@ export class MetapageIFrameRpcClient extends EventEmitter<
132
132
  urlEncodedDefinition =
133
133
  urlEncodedDefinition && urlEncodedDefinition?.version
134
134
  ? await convertMetaframeJsonToCurrentVersion(
135
- urlEncodedDefinition
135
+ urlEncodedDefinition,
136
136
  )
137
137
  : undefined;
138
138
  if (!selfThis._iframe) {
@@ -202,8 +202,8 @@ export class MetapageIFrameRpcClient extends EventEmitter<
202
202
 
203
203
  addListenerReturnDisposer(
204
204
  event: JsonRpcMethodsFromParent | MetapageEvents,
205
- listener: ListenerFn<any[]>
206
- ): () => void {
205
+ listener: ListenerFn<any[]>,
206
+ ): Disposer {
207
207
  super.addListener(event, listener);
208
208
  const disposer = () => {
209
209
  super.removeListener(event, listener);
@@ -251,7 +251,7 @@ export class MetapageIFrameRpcClient extends EventEmitter<
251
251
  MetapageEvents.Warning,
252
252
  `Failed to fetch or convert: ${url}\nError: ${
253
253
  (err as Error)?.message ? (err as Error)?.message : err?.toString()
254
- }`
254
+ }`,
255
255
  );
256
256
  }
257
257
  }
@@ -331,11 +331,11 @@ export class MetapageIFrameRpcClient extends EventEmitter<
331
331
  }
332
332
  }
333
333
 
334
- public onInputs(f: (m: MetaframeInputMap) => void): () => void {
334
+ public onInputs(f: (m: MetaframeInputMap) => void): Disposer {
335
335
  return this.addListenerReturnDisposer(MetapageEvents.Inputs, f);
336
336
  }
337
337
 
338
- public onInput(pipeName: MetaframePipeId, f: (_: any) => void): () => void {
338
+ public onInput(pipeName: MetaframePipeId, f: (_: any) => void): Disposer {
339
339
  var fWrap = function (inputs: MetaframeInputMap) {
340
340
  if (inputs.hasOwnProperty(pipeName)) {
341
341
  f(inputs[pipeName]);
@@ -344,11 +344,11 @@ export class MetapageIFrameRpcClient extends EventEmitter<
344
344
  return this.addListenerReturnDisposer(MetapageEvents.Inputs, fWrap);
345
345
  }
346
346
 
347
- public onOutputs(f: (m: MetaframeInputMap) => void): () => void {
347
+ public onOutputs(f: (m: MetaframeInputMap) => void): Disposer {
348
348
  return this.addListenerReturnDisposer(MetapageEvents.Outputs, f);
349
349
  }
350
350
 
351
- public onOutput(pipeName: MetaframePipeId, f: (_: any) => void): () => void {
351
+ public onOutput(pipeName: MetaframePipeId, f: (_: any) => void): Disposer {
352
352
  var fWrap = function (outputs: MetaframeInputMap) {
353
353
  if (outputs.hasOwnProperty(pipeName)) {
354
354
  f(outputs[pipeName]);
@@ -409,7 +409,7 @@ export class MetapageIFrameRpcClient extends EventEmitter<
409
409
  };
410
410
  this.sendRpcInternal(
411
411
  JsonRpcMethodsFromParent.SetupIframeServerResponse,
412
- response
412
+ response,
413
413
  );
414
414
  }
415
415
 
@@ -490,7 +490,7 @@ export class MetapageIFrameRpcClient extends EventEmitter<
490
490
  MetapageToolsLog(
491
491
  `Metapage[${this._parentId}] Metaframe[${this.id}] ${s}`,
492
492
  this._color,
493
- this._consoleBackgroundColor
493
+ this._consoleBackgroundColor,
494
494
  );
495
495
  }
496
496
 
@@ -509,14 +509,14 @@ export class MetapageIFrameRpcClient extends EventEmitter<
509
509
  if (this._metapage) {
510
510
  this._metapage.error(
511
511
  `Cannot send to child iframe messageJSON=${JSON.stringify(
512
- messageJSON
513
- ).substring(0, 200)}`
512
+ messageJSON,
513
+ ).substring(0, 200)}`,
514
514
  );
515
515
  } else {
516
516
  console.error(
517
517
  `Cannot send to child iframe messageJSON=${JSON.stringify(
518
- messageJSON
519
- ).substring(0, 200)}`
518
+ messageJSON,
519
+ ).substring(0, 200)}`,
520
520
  );
521
521
  }
522
522
  }
@@ -534,7 +534,7 @@ export class MetapageIFrameRpcClient extends EventEmitter<
534
534
  this._bufferTimeout = window.setInterval(function () {
535
535
  if (thing._iframe && thing._iframe.contentWindow) {
536
536
  thing._bufferMessages!.forEach((m) =>
537
- thing._iframe!.contentWindow!.postMessage(m, thing.url)
537
+ thing._iframe!.contentWindow!.postMessage(m, thing.url),
538
538
  );
539
539
  window.clearInterval(thing._bufferTimeout);
540
540
  thing._bufferTimeout = undefined;
@@ -1,14 +1,9 @@
1
- import stringify from 'fast-json-stable-stringify';
2
- import { create } from 'mutative';
3
- import { MetapageHashParams } from './Shared.js';
4
- import {
5
- MetaframeId,
6
- MetapageId,
7
- } from './core.js';
8
- import {
9
- MetaframeInputMap,
10
- } from './v0_4/index.js';
11
- import { MetapageDefinitionV2 } from './v2/metapage.js';
1
+ import stringify from "fast-json-stable-stringify";
2
+ import { create } from "mutative";
3
+ import { MetapageHashParams } from "./Shared.js";
4
+ import { MetaframeId, MetapageId } from "./core.js";
5
+ import { MetaframeInputMap } from "./v0_4/index.js";
6
+ import { MetapageDefinitionV2 } from "./v2/metapage.js";
12
7
  /**
13
8
  * Merges new values into the a new object.
14
9
  * Does NOT check if there are actually new keys.
@@ -19,7 +14,7 @@ import { MetapageDefinitionV2 } from './v2/metapage.js';
19
14
  */
20
15
  export const merge = (
21
16
  current: MetaframeInputMap,
22
- newInputs: MetaframeInputMap
17
+ newInputs: MetaframeInputMap,
23
18
  ): MetaframeInputMap => {
24
19
  if (!newInputs) {
25
20
  return current;
@@ -46,13 +41,13 @@ export const getUrlParam = (key: MetapageHashParams): string | null => {
46
41
 
47
42
  export const getUrlParamDebug = (): boolean => {
48
43
  return new URLSearchParams(window.location.search).has(
49
- MetapageHashParams.mp_debug
44
+ MetapageHashParams.mp_debug,
50
45
  );
51
46
  };
52
47
 
53
48
  export const isDebugFromUrlsParams = (): boolean => {
54
49
  const param = new URLSearchParams(window.location.search).get(
55
- MetapageHashParams.mp_debug
50
+ MetapageHashParams.mp_debug,
56
51
  );
57
52
  return param === "true" || param === "1";
58
53
  };
@@ -162,19 +157,21 @@ export const pageLoaded = async (): Promise<void> => {
162
157
  export const metapageAllSha256Hash = async (metapage: MetapageDefinitionV2) => {
163
158
  const metapageStr = stringify(metapage);
164
159
  return await sha256ToBase64(metapageStr);
165
- }
160
+ };
166
161
 
167
- export const metapageOnlyEssentailSha256Hash = async (metapage: Pick<MetapageDefinitionV2, "metaframes" | "version">) => {
162
+ export const metapageOnlyEssentailSha256Hash = async (
163
+ metapage: Pick<MetapageDefinitionV2, "metaframes" | "version">,
164
+ ) => {
168
165
  const metapageStr = stringify({
169
166
  version: metapage.version,
170
167
  metaframes: metapage.metaframes,
171
168
  });
172
169
  return await sha256ToBase64(metapageStr);
173
- }
170
+ };
174
171
 
175
172
  async function sha256ToBase64(str: string) {
176
173
  const encoder = new TextEncoder();
177
174
  const data = encoder.encode(str);
178
- const hash = await crypto.subtle.digest('SHA-256', data);
175
+ const hash = await crypto.subtle.digest("SHA-256", data);
179
176
  return btoa(String.fromCharCode(...new Uint8Array(hash)));
180
177
  }
@@ -3,9 +3,9 @@ I'd like the initialize steps to be:
3
3
  1. set metapage definition and state (input + output values of metaframes). Not pipes yet.
4
4
  2. start iframes
5
5
  3. iframes
6
- - can't send messages until parent sends init package that includes initial values (inputs+outputs)
7
- - sends init request to parent
8
- - parent sends init package in response, incl inputs+outputs
9
- - get init package, updates outputs (which does nothing), then inputs, then allow events that trigger downstream code, and potentially output updates. Ignore when outputs match, push downstream if outputs are different.
6
+ - can't send messages until parent sends init package that includes initial values (inputs+outputs)
7
+ - sends init request to parent
8
+ - parent sends init package in response, incl inputs+outputs
9
+ - get init package, updates outputs (which does nothing), then inputs, then allow events that trigger downstream code, and potentially output updates. Ignore when outputs match, push downstream if outputs are different.
10
10
  4. there is no way to reliably wait until all child metaframes are ready, they point to internet resources that can be down, but you don't want the rest of the metapgae to be down. So the next step does not wait for the previous step to complete.
11
- 5. Set all pipes. No need to pipe values because the initial state is already set.
11
+ 5. Set all pipes. No need to pipe values because the initial state is already set.
@@ -1,9 +1,9 @@
1
- import { EventEmitter } from 'eventemitter3';
1
+ import { EventEmitter } from "eventemitter3";
2
2
 
3
- import { MetapageEvents } from './events.js';
4
- import { JsonRpcMethodsFromParent } from './jsonrpc.js';
5
- import { MetapageDefinitionV2 } from './v2/index.js';
6
- import { MetapageVersionCurrent } from './versions.js';
3
+ import { MetapageEvents } from "./events.js";
4
+ import { JsonRpcMethodsFromParent } from "./jsonrpc.js";
5
+ import { MetapageDefinitionV2 } from "./v2/index.js";
6
+ import { MetapageVersionCurrent } from "./versions.js";
7
7
 
8
8
  export enum MetapageHashParams {
9
9
  mp_debug = "mp_debug",
@@ -23,7 +23,7 @@ type AnyMetaframeDefinition =
23
23
 
24
24
  export const convertMetaframeDefinitionToVersion = async (
25
25
  def: any | AnyMetaframeDefinition,
26
- targetVersion: VersionsMetaframe
26
+ targetVersion: VersionsMetaframe,
27
27
  ): Promise<any> => {
28
28
  if (!def) {
29
29
  throw "Metaframe definition null";
@@ -31,7 +31,7 @@ export const convertMetaframeDefinitionToVersion = async (
31
31
 
32
32
  if (!def.version) {
33
33
  throw `Missing "version" key in metaframe definition: ${JSON.stringify(
34
- def
34
+ def,
35
35
  )}`;
36
36
  }
37
37
  if (!targetVersion) {
@@ -52,7 +52,7 @@ export const convertMetaframeDefinitionToVersion = async (
52
52
  headers: {
53
53
  "Content-Type": "application/json",
54
54
  },
55
- }
55
+ },
56
56
  );
57
57
  const respBody = await resp.json();
58
58
  return respBody as MetaframeDefinitionV2;
@@ -63,20 +63,20 @@ export const convertMetaframeDefinitionToVersion = async (
63
63
 
64
64
  const targetDefinition = convertMetaframeDefinitionToTargetVersionInternal(
65
65
  def,
66
- targetVersion
66
+ targetVersion,
67
67
  );
68
68
  return targetDefinition;
69
69
  };
70
70
 
71
71
  export const convertMetaframeDefinitionToCurrentVersion = async (
72
- def: any | AnyMetaframeDefinition
72
+ def: any | AnyMetaframeDefinition,
73
73
  ): Promise<MetaframeDefinitionV1> => {
74
74
  return convertMetaframeDefinitionToVersion(def, MetaframeVersionCurrent);
75
75
  };
76
76
 
77
77
  const convertMetaframeDefinitionToTargetVersionInternal = (
78
78
  def: any | AnyMetaframeDefinition,
79
- targetVersion: VersionsMetaframe
79
+ targetVersion: VersionsMetaframe,
80
80
  ): AnyMetaframeDefinition => {
81
81
  if (!def) {
82
82
  throw "Metaframe definition null";
@@ -103,10 +103,10 @@ const convertMetaframeDefinitionToTargetVersionInternal = (
103
103
  case "0.3": {
104
104
  if (compareVersions(targetVersion, currentVersion) > 0) {
105
105
  currentDefinition = definition_v0_3_to_v0_4(
106
- currentDefinition as MetaframeDefinitionV03
106
+ currentDefinition as MetaframeDefinitionV03,
107
107
  );
108
108
  currentVersion = getMatchingMetaframeVersion(
109
- currentDefinition.version
109
+ currentDefinition.version,
110
110
  );
111
111
  } else {
112
112
  throw `Cannot convert from version ${currentVersion} to ${targetVersion}`;
@@ -116,17 +116,17 @@ const convertMetaframeDefinitionToTargetVersionInternal = (
116
116
  case "0.4": {
117
117
  if (compareVersions(targetVersion, currentVersion) > 0) {
118
118
  currentDefinition = definition_v0_4_to_v0_5(
119
- currentDefinition as MetaframeDefinitionV4
119
+ currentDefinition as MetaframeDefinitionV4,
120
120
  );
121
121
  currentVersion = getMatchingMetaframeVersion(
122
- currentDefinition.version
122
+ currentDefinition.version,
123
123
  );
124
124
  } else {
125
125
  currentDefinition = definition_v0_4_to_v0_3(
126
- currentDefinition as MetaframeDefinitionV4
126
+ currentDefinition as MetaframeDefinitionV4,
127
127
  );
128
128
  currentVersion = getMatchingMetaframeVersion(
129
- currentDefinition.version
129
+ currentDefinition.version,
130
130
  );
131
131
  }
132
132
  break;
@@ -134,17 +134,17 @@ const convertMetaframeDefinitionToTargetVersionInternal = (
134
134
  case "0.5": {
135
135
  if (compareVersions(targetVersion, currentVersion) > 0) {
136
136
  currentDefinition = definition_v0_5_to_v0_6(
137
- currentDefinition as MetaframeDefinitionV5
137
+ currentDefinition as MetaframeDefinitionV5,
138
138
  );
139
139
  currentVersion = getMatchingMetaframeVersion(
140
- currentDefinition.version
140
+ currentDefinition.version,
141
141
  );
142
142
  } else {
143
143
  currentDefinition = definition_v0_5_to_v0_4(
144
- currentDefinition as MetaframeDefinitionV5
144
+ currentDefinition as MetaframeDefinitionV5,
145
145
  );
146
146
  currentVersion = getMatchingMetaframeVersion(
147
- currentDefinition.version
147
+ currentDefinition.version,
148
148
  );
149
149
  }
150
150
  break;
@@ -152,17 +152,17 @@ const convertMetaframeDefinitionToTargetVersionInternal = (
152
152
  case "0.6": {
153
153
  if (compareVersions(targetVersion, currentVersion) > 0) {
154
154
  currentDefinition = definition_v0_6_to_v1(
155
- currentDefinition as MetaframeDefinitionV6
155
+ currentDefinition as MetaframeDefinitionV6,
156
156
  );
157
157
  currentVersion = getMatchingMetaframeVersion(
158
- currentDefinition.version
158
+ currentDefinition.version,
159
159
  );
160
160
  } else {
161
161
  currentDefinition = definition_v0_6_to_v0_5(
162
- currentDefinition as MetaframeDefinitionV6
162
+ currentDefinition as MetaframeDefinitionV6,
163
163
  );
164
164
  currentVersion = getMatchingMetaframeVersion(
165
- currentDefinition.version
165
+ currentDefinition.version,
166
166
  );
167
167
  }
168
168
  break;
@@ -170,17 +170,17 @@ const convertMetaframeDefinitionToTargetVersionInternal = (
170
170
  case "1": {
171
171
  if (compareVersions(targetVersion, currentVersion) > 0) {
172
172
  currentDefinition = definition_v1_to_v2(
173
- currentDefinition as MetaframeDefinitionV1
173
+ currentDefinition as MetaframeDefinitionV1,
174
174
  );
175
175
  currentVersion = getMatchingMetaframeVersion(
176
- currentDefinition.version
176
+ currentDefinition.version,
177
177
  );
178
178
  } else {
179
179
  currentDefinition = definition_v1_to_v0_6(
180
- currentDefinition as MetaframeDefinitionV1
180
+ currentDefinition as MetaframeDefinitionV1,
181
181
  );
182
182
  currentVersion = getMatchingMetaframeVersion(
183
- currentDefinition.version
183
+ currentDefinition.version,
184
184
  );
185
185
  }
186
186
  break;
@@ -190,10 +190,10 @@ const convertMetaframeDefinitionToTargetVersionInternal = (
190
190
  throw `Cannot convert from version ${currentVersion} to ${targetVersion}`;
191
191
  } else {
192
192
  currentDefinition = definition_v2_to_v1(
193
- currentDefinition as MetaframeDefinitionV2
193
+ currentDefinition as MetaframeDefinitionV2,
194
194
  );
195
195
  currentVersion = getMatchingMetaframeVersion(
196
- currentDefinition.version
196
+ currentDefinition.version,
197
197
  );
198
198
  }
199
199
  break;
@@ -208,7 +208,7 @@ const convertMetaframeDefinitionToTargetVersionInternal = (
208
208
  export const convertMetaframeJsonToCurrentVersion = async (
209
209
  m: AnyMetaframeDefinition | undefined,
210
210
  // deprecated
211
- opts?: { errorIfUnknownVersion?: boolean }
211
+ opts?: { errorIfUnknownVersion?: boolean },
212
212
  ): Promise<MetaframeDefinitionV2 | undefined> => {
213
213
  if (!m) {
214
214
  return;
@@ -271,7 +271,7 @@ const definition_v0_5_to_v0_4 = (def: MetaframeDefinitionV5) => {
271
271
 
272
272
  // v0.6 and v1 are identical, but remove the operations field
273
273
  const definition_v0_6_to_v1 = (
274
- def: MetaframeDefinitionV6
274
+ def: MetaframeDefinitionV6,
275
275
  ): MetaframeDefinitionV1 => {
276
276
  return create(def, (draft: MetaframeDefinitionV6) => {
277
277
  draft.version = "1";
@@ -283,7 +283,7 @@ const definition_v0_6_to_v1 = (
283
283
 
284
284
  // v0.6 and v1 are identical
285
285
  const definition_v1_to_v0_6 = (
286
- def: MetaframeDefinitionV1
286
+ def: MetaframeDefinitionV1,
287
287
  ): MetaframeDefinitionV6 => {
288
288
  return create(def, (draft: MetaframeDefinitionV1) => {
289
289
  draft.version = "0.6";
@@ -294,7 +294,7 @@ const definition_v1_to_v0_6 = (
294
294
  };
295
295
 
296
296
  const definition_v2_to_v1 = (
297
- def: MetaframeDefinitionV2
297
+ def: MetaframeDefinitionV2,
298
298
  ): MetaframeDefinitionV1 => {
299
299
  return create(def, (draft: MetaframeDefinitionV2) => {
300
300
  draft.version = "1";
@@ -309,7 +309,7 @@ const definition_v2_to_v1 = (
309
309
  };
310
310
 
311
311
  const definition_v1_to_v2 = (
312
- def: MetaframeDefinitionV1
312
+ def: MetaframeDefinitionV1,
313
313
  ): MetaframeDefinitionV2 => {
314
314
  return create(def, (draft: MetaframeDefinitionV1) => {
315
315
  draft.version = "2";
@@ -328,7 +328,7 @@ const definition_v1_to_v2 = (
328
328
  // which we are not using in any of those versions, its too new and not stable
329
329
  // and not documented.
330
330
  const definition_v0_5_to_v0_6 = (
331
- source: MetaframeDefinitionV5
331
+ source: MetaframeDefinitionV5,
332
332
  ): MetaframeDefinitionV6 => {
333
333
  return create(source, (draft: MetaframeDefinitionV5) => {
334
334
  draft.version = "0.6";
@@ -342,7 +342,7 @@ const definition_v0_5_to_v0_6 = (
342
342
  // which we are not using in any of those versions, its too new and not stable
343
343
  // and not documented.
344
344
  const definition_v0_6_to_v0_5 = (
345
- source: MetaframeDefinitionV6
345
+ source: MetaframeDefinitionV6,
346
346
  ): MetaframeDefinitionV5 => {
347
347
  return create<MetaframeDefinitionV5>(
348
348
  source,
@@ -351,13 +351,13 @@ const definition_v0_6_to_v0_5 = (
351
351
  if (draft?.metadata?.operations) {
352
352
  delete draft.metadata.operations;
353
353
  }
354
- }
354
+ },
355
355
  );
356
356
  };
357
357
 
358
358
  // ["0.3", "0.4", "0.5", "0.6", "1"]
359
359
  export const getMatchingMetaframeVersion = (
360
- version: string
360
+ version: string,
361
361
  ): VersionsMetaframe => {
362
362
  if (version === "latest") {
363
363
  return MetaframeVersionCurrent;
@@ -17,7 +17,7 @@ export const convertMetapageDefinitionToVersion = async (
17
17
  | MetapageDefinitionV03
18
18
  | MetapageDefinitionV1
19
19
  | MetapageDefinitionV2,
20
- targetVersion: VersionsMetapage
20
+ targetVersion: VersionsMetapage,
21
21
  ): Promise<any> => {
22
22
  if (!def) {
23
23
  throw "Metapage definition null";
@@ -46,7 +46,7 @@ export const convertMetapageDefinitionToVersion = async (
46
46
  headers: {
47
47
  "Content-Type": "application/json",
48
48
  },
49
- }
49
+ },
50
50
  );
51
51
  const respBody = await resp.json();
52
52
  return respBody as MetapageDefinitionV1;
@@ -57,7 +57,7 @@ export const convertMetapageDefinitionToVersion = async (
57
57
 
58
58
  const targetDefinition = convertMetapageDefinitionToTargetVersionInternal(
59
59
  def,
60
- targetVersion
60
+ targetVersion,
61
61
  );
62
62
  return targetDefinition;
63
63
  };
@@ -68,7 +68,7 @@ export const convertMetapageDefinitionToCurrentVersion = async (
68
68
  | MetapageDefinitionV02
69
69
  | MetapageDefinitionV03
70
70
  | MetapageDefinitionV1
71
- | MetapageDefinitionV2
71
+ | MetapageDefinitionV2,
72
72
  ): Promise<MetapageDefinitionV2> => {
73
73
  return convertMetapageDefinitionToVersion(def, MetapageVersionCurrent);
74
74
  };
@@ -80,7 +80,7 @@ const convertMetapageDefinitionToTargetVersionInternal = (
80
80
  | MetapageDefinitionV03
81
81
  | MetapageDefinitionV1
82
82
  | MetapageDefinitionV2,
83
- targetVersion: VersionsMetapage
83
+ targetVersion: VersionsMetapage,
84
84
  ):
85
85
  | MetapageDefinitionV02
86
86
  | MetapageDefinitionV03
@@ -92,7 +92,7 @@ const convertMetapageDefinitionToTargetVersionInternal = (
92
92
 
93
93
  if (!def.version) {
94
94
  throw `Missing "version" key in metapage definition: ${JSON.stringify(
95
- def
95
+ def,
96
96
  )}`;
97
97
  }
98
98
 
@@ -112,10 +112,10 @@ const convertMetapageDefinitionToTargetVersionInternal = (
112
112
  case "0.2": {
113
113
  if (compareVersions(targetVersion, currentVersion) > 0) {
114
114
  currentDefinition = definition_v0_2_to_v0_3(
115
- currentDefinition as MetapageDefinitionV02
115
+ currentDefinition as MetapageDefinitionV02,
116
116
  );
117
117
  currentVersion = getMatchingMetapageVersion(
118
- currentDefinition.version
118
+ currentDefinition.version,
119
119
  );
120
120
  } else {
121
121
  throw `Cannot convert from version ${currentVersion} to ${targetVersion}`;
@@ -125,17 +125,17 @@ const convertMetapageDefinitionToTargetVersionInternal = (
125
125
  case "0.3": {
126
126
  if (compareVersions(targetVersion, currentVersion) > 0) {
127
127
  currentDefinition = definition_v0_3_to_v1(
128
- currentDefinition as MetapageDefinitionV03
128
+ currentDefinition as MetapageDefinitionV03,
129
129
  );
130
130
  currentVersion = getMatchingMetapageVersion(
131
- currentDefinition.version
131
+ currentDefinition.version,
132
132
  );
133
133
  } else {
134
134
  currentDefinition = definition_v0_3_to_v0_2(
135
- currentDefinition as MetapageDefinitionV03
135
+ currentDefinition as MetapageDefinitionV03,
136
136
  );
137
137
  currentVersion = getMatchingMetapageVersion(
138
- currentDefinition.version
138
+ currentDefinition.version,
139
139
  );
140
140
  }
141
141
  break;
@@ -143,17 +143,17 @@ const convertMetapageDefinitionToTargetVersionInternal = (
143
143
  case "1": {
144
144
  if (compareVersions(targetVersion, currentVersion) > 0) {
145
145
  currentDefinition = definition_v1_to_v2(
146
- currentDefinition as MetapageDefinitionV1
146
+ currentDefinition as MetapageDefinitionV1,
147
147
  );
148
148
  currentVersion = getMatchingMetapageVersion(
149
- currentDefinition.version
149
+ currentDefinition.version,
150
150
  );
151
151
  } else {
152
152
  currentDefinition = definition_v1_to_v0_3(
153
- currentDefinition as MetapageDefinitionV1
153
+ currentDefinition as MetapageDefinitionV1,
154
154
  );
155
155
  currentVersion = getMatchingMetapageVersion(
156
- currentDefinition.version
156
+ currentDefinition.version,
157
157
  );
158
158
  }
159
159
  break;
@@ -163,10 +163,10 @@ const convertMetapageDefinitionToTargetVersionInternal = (
163
163
  throw `Cannot convert from version ${currentVersion} to ${targetVersion}, 1 is the latest version`;
164
164
  } else {
165
165
  currentDefinition = definition_v2_to_v1(
166
- currentDefinition as MetapageDefinitionV2
166
+ currentDefinition as MetapageDefinitionV2,
167
167
  );
168
168
  currentVersion = getMatchingMetapageVersion(
169
- currentDefinition.version
169
+ currentDefinition.version,
170
170
  );
171
171
  }
172
172
  break;
@@ -179,7 +179,7 @@ const convertMetapageDefinitionToTargetVersionInternal = (
179
179
  };
180
180
 
181
181
  const definition_v0_2_to_v0_3 = (
182
- old: MetapageDefinitionV02
182
+ old: MetapageDefinitionV02,
183
183
  ): MetapageDefinitionV03 => {
184
184
  return create<MetapageDefinitionV03>(old, (draft: MetapageDefinitionV02) => {
185
185
  // Exactly the same except v0.3 has plugins
@@ -188,7 +188,7 @@ const definition_v0_2_to_v0_3 = (
188
188
  };
189
189
 
190
190
  const definition_v0_3_to_v0_2 = (
191
- old: MetapageDefinitionV03
191
+ old: MetapageDefinitionV03,
192
192
  ): MetapageDefinitionV02 => {
193
193
  return create<MetapageDefinitionV02>(old, (draft: MetapageDefinitionV03) => {
194
194
  // Exactly the same except v0.3 has plugins
@@ -197,7 +197,7 @@ const definition_v0_3_to_v0_2 = (
197
197
  };
198
198
 
199
199
  const definition_v0_3_to_v1 = (
200
- def: MetapageDefinitionV03
200
+ def: MetapageDefinitionV03,
201
201
  ): MetapageDefinitionV1 => {
202
202
  return create<MetapageDefinitionV1>(def, (draft) => {
203
203
  // We removed plugins in v1
@@ -208,7 +208,7 @@ const definition_v0_3_to_v1 = (
208
208
  };
209
209
 
210
210
  const definition_v1_to_v0_3 = (
211
- def: MetapageDefinitionV1
211
+ def: MetapageDefinitionV1,
212
212
  ): MetapageDefinitionV03 => {
213
213
  return create(def, (draft: MetapageDefinitionV1) => {
214
214
  // We removed plugins in v1, but we don't need to add them back
@@ -218,7 +218,7 @@ const definition_v1_to_v0_3 = (
218
218
  };
219
219
 
220
220
  const definition_v2_to_v1 = (
221
- def: MetapageDefinitionV2
221
+ def: MetapageDefinitionV2,
222
222
  ): MetapageDefinitionV1 => {
223
223
  return create(def, (draft: MetapageDefinitionV2) => {
224
224
  // keywords -> tags
@@ -237,7 +237,7 @@ const definition_v2_to_v1 = (
237
237
  };
238
238
 
239
239
  const definition_v1_to_v2 = (
240
- def: MetapageDefinitionV1
240
+ def: MetapageDefinitionV1,
241
241
  ): MetapageDefinitionV2 => {
242
242
  return create(def, (draft: MetapageDefinitionV1) => {
243
243
  // tags -> keywords
@@ -258,7 +258,7 @@ const definition_v1_to_v2 = (
258
258
  };
259
259
 
260
260
  export const getMatchingMetapageVersion = (
261
- version: string
261
+ version: string,
262
262
  ): VersionsMetapage => {
263
263
  if (version === "latest") {
264
264
  return MetapageVersionCurrent;
@@ -3,8 +3,9 @@ export {
3
3
  MetaframeVersionsAll,
4
4
  MetapageVersionCurrent,
5
5
  MetapageVersionsAll,
6
- } from './versions.js';
6
+ } from "./versions.js";
7
7
  export type Url = string;
8
8
  export type MetaframePipeId = string;
9
9
  export type MetaframeId = string;
10
10
  export type MetapageId = string;
11
+ export type Disposer = () => void;