oc 0.50.43 → 0.50.46

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## Change Log
2
2
 
3
+ ### v0.50.45
4
+ - [#1470](https://github.com/opencomponents/oc/pull/1470) Fix absolute require for ESM modules
5
+
6
+ ### v0.50.44
7
+ - [#1468](https://github.com/opencomponents/oc/pull/1468) fix fallback
8
+
3
9
  ### v0.50.43
4
10
  - [#1467](https://github.com/opencomponents/oc/pull/1467) dont assume errors on fallback registry calls might have a body
5
11
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oc-client",
3
3
  "description": "The OpenComponents client-side javascript client",
4
- "version": "0.50.43",
4
+ "version": "0.50.46",
5
5
  "repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
6
6
  "author": "Matteo Figus <matteofigus@gmail.com>",
7
7
  "oc": {
@@ -23,14 +23,14 @@
23
23
  ],
24
24
  "dataProvider": {
25
25
  "type": "node.js",
26
- "hashKey": "da67523d87d09bd1778ccb8b63fb6120747be5f3",
26
+ "hashKey": "40a905d9727467b2c4eb6d3585c493a0d71c9030",
27
27
  "src": "server.js",
28
28
  "size": 644
29
29
  }
30
30
  },
31
- "version": "0.50.43",
31
+ "version": "0.50.46",
32
32
  "packaged": true,
33
- "date": 1769081401923
33
+ "date": 1778488481892
34
34
  },
35
35
  "devDependencies": {
36
36
  "oc-template-es6-compiler": "^1.0.1"
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=(t,s)=>{const{staticPath:e,templates:a}=t;return s(null,{staticPath:e,templates:a})},r=(t,s)=>{o(t,(e,a,i={})=>{if(e)return s(e);if(a==null)return s(null,{__oc_emptyResponse:!0});const n=t.action?a:Object.assign({},a,{_staticPath:t.staticPath,_baseUrl:t.baseUrl,_componentName:"oc-client",_componentVersion:"0.50.43"}),c=t.staticPath.indexOf("http")===0?t.staticPath:"https:"+t.staticPath;return s(null,Object.assign({},{component:{key:"c4abb6bf4dc6657fb718a45b64bd6b2cb92e874a",src:c+"template.js",props:n,esm:!1,development:void 0}}))})};exports.data=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=(t,s)=>{const{staticPath:e,templates:a}=t;return s(null,{staticPath:e,templates:a})},r=(t,s)=>{o(t,(e,a,i={})=>{if(e)return s(e);if(a==null)return s(null,{__oc_emptyResponse:!0});const n=t.action?a:Object.assign({},a,{_staticPath:t.staticPath,_baseUrl:t.baseUrl,_componentName:"oc-client",_componentVersion:"0.50.46"}),c=t.staticPath.indexOf("http")===0?t.staticPath:"https:"+t.staticPath;return s(null,Object.assign({},{component:{key:"c4abb6bf4dc6657fb718a45b64bd6b2cb92e874a",src:c+"template.js",props:n,esm:!1,development:void 0}}))})};exports.data=r;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oc-client",
3
3
  "description": "The OpenComponents client-side javascript client",
4
- "version": "0.50.43",
4
+ "version": "0.50.46",
5
5
  "repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
6
6
  "author": "Matteo Figus <matteofigus@gmail.com>",
7
7
  "oc": {
@@ -14,7 +14,8 @@ const requireCoreDependency = (x) => (isCoreDependency(x) && (0, try_require_1.d
14
14
  const requireDependency = (requirePath) => {
15
15
  const nodeModulesPath = node_path_1.default.resolve('.', 'node_modules');
16
16
  const modulePath = node_path_1.default.resolve(nodeModulesPath, requirePath);
17
- return (0, try_require_1.default)(modulePath);
17
+ // ESM only modules might not define a "main" field and therefore the absolute path of modulePath will not work
18
+ return (0, try_require_1.default)(modulePath) || (0, try_require_1.default)(requirePath);
18
19
  };
19
20
  const throwError = (requirePath) => {
20
21
  throw {
@@ -28,7 +29,7 @@ exports.default = (injectedDependencies) => (requirePath) => {
28
29
  if (!isAllowed) {
29
30
  return throwError(requirePath);
30
31
  }
31
- return (requireDependency(requirePath) ||
32
- requireCoreDependency(requirePath) ||
32
+ return (requireCoreDependency(requirePath) ||
33
+ requireDependency(requirePath) ||
33
34
  throwError(requirePath));
34
35
  };
@@ -81,8 +81,8 @@ function getComponentFallbackForViewType(buildUrl, conf, req, res, registryError
81
81
  });
82
82
  }
83
83
  function getComponent(fallbackRegistryUrl, headers, component, callback) {
84
- // For some reason, undici doesn't like the content-type header
85
- const { 'content-type': _, ...restHeaders } = headers;
84
+ // Avoid forwarding body/content negotiation headers that break fallback parsing.
85
+ const { 'content-type': _, 'accept-encoding': __, ...restHeaders } = headers;
86
86
  (0, undici_1.request)(fallbackRegistryUrl, {
87
87
  method: 'POST',
88
88
  headers: {
package/logintervals.md CHANGED
@@ -1 +1 @@
1
- [{"to":"v0.50.43","from":"v0.50.42"},{"to":"v0.50.42","from":"v0.50.41"},{"to":"v0.50.41","from":"v0.50.40"},{"to":"v0.50.40","from":"v0.50.39"},{"to":"v0.50.39","from":"v0.50.38"},{"to":"v0.50.38","from":"v0.50.37"},{"to":"v0.50.37","from":"v0.50.36"},{"to":"v0.50.36","from":"v0.50.35"},{"to":"v0.50.35","from":"v0.50.34"},{"to":"v0.50.34","from":"v0.50.33"},{"to":"v0.50.33","from":"v0.50.32"},{"to":"v0.50.32","from":"v0.50.31"},{"to":"v0.50.31","from":"v0.50.30"},{"to":"v0.50.30","from":"v0.50.29"},{"to":"v0.50.29","from":"v0.50.28"},{"to":"v0.50.28","from":"v0.50.27"},{"to":"v0.50.27","from":"v0.50.26"},{"to":"v0.50.26","from":"v0.50.25"},{"to":"v0.50.25","from":"v0.50.24"},{"to":"v0.50.24","from":"v0.50.23"},{"to":"v0.50.23","from":"v0.50.22"},{"to":"v0.50.22","from":"v0.50.21"},{"to":"v0.50.21","from":"v0.50.20"},{"to":"v0.50.20","from":"v0.50.18"},{"to":"v0.50.18","from":"v0.50.17"},{"to":"v0.50.17","from":"v0.50.16"},{"to":"v0.50.16","from":"v0.50.15"},{"to":"v0.50.15","from":"v0.50.14"},{"to":"v0.50.14","from":"v0.50.13"},{"to":"v0.50.13","from":"v0.50.12"},{"to":"v0.50.12","from":"v0.50.11"},{"to":"v0.50.11","from":"v0.50.10"},{"to":"v0.50.10","from":"v0.50.9"},{"to":"v0.50.9","from":"v0.50.8"},{"to":"v0.50.8","from":"v0.50.7"},{"to":"v0.50.7","from":"v0.50.6"},{"to":"v0.50.6","from":"v0.50.5"},{"to":"v0.50.5","from":"v0.50.4"},{"to":"v0.50.4","from":"v0.50.3"},{"to":"v0.50.3","from":"v0.50.2"},{"to":"v0.50.2","from":"v0.50.1"},{"to":"v0.50.1","from":"v0.50.0"},{"to":"v0.50.0","from":"v0.49.67"},{"to":"v0.49.67","from":"v0.49.66"},{"to":"v0.49.66","from":"v0.49.65"},{"to":"v0.49.65","from":"v0.49.64"},{"to":"v0.49.64","from":"v0.49.63"},{"to":"v0.49.63","from":"v0.49.62"},{"to":"v0.49.62","from":"v0.49.61"},{"to":"v0.49.61","from":"v0.49.60"},{"to":"v0.49.60","from":"v0.49.59"},{"to":"v0.49.59","from":"v0.49.58"},{"to":"v0.49.58","from":"v0.49.57"},{"to":"v0.49.57","from":"v0.49.56"},{"to":"v0.49.56","from":"v0.49.55"},{"to":"v0.49.55","from":"v0.49.54"},{"to":"v0.49.54","from":"v0.49.53"},{"to":"v0.49.53","from":"v0.49.52"},{"to":"v0.49.52","from":"v0.49.51"},{"to":"v0.49.51","from":"v0.49.50"},{"to":"v0.49.50","from":"v0.49.49"},{"to":"v0.49.49","from":"v0.49.48"},{"to":"v0.49.48","from":"v0.49.47"},{"to":"v0.49.47","from":"v0.49.46"},{"to":"v0.49.46","from":"v0.49.45"},{"to":"v0.49.45","from":"v0.49.44"},{"to":"v0.49.44","from":"v0.49.43"},{"to":"v0.49.43","from":"v0.49.42"},{"to":"v0.49.42","from":"v0.49.41"},{"to":"v0.49.41","from":"v0.49.40"},{"to":"v0.49.40","from":"v0.49.39"},{"to":"v0.49.39","from":"v0.49.38"},{"to":"v0.49.38","from":"v0.49.37"},{"to":"v0.49.37","from":"v0.49.36"},{"to":"v0.49.36","from":"v0.49.35"},{"to":"v0.49.35","from":"v0.49.34"},{"to":"v0.49.34","from":"v0.49.32"},{"to":"v0.49.32","from":"v0.49.31"},{"to":"v0.49.31","from":"v0.49.30"},{"to":"v0.49.30","from":"v0.49.29"},{"to":"v0.49.29","from":"v0.49.28"},{"to":"v0.49.28","from":"v0.49.27"},{"to":"v0.49.27","from":"v0.49.26"},{"to":"v0.49.26","from":"v0.49.25"},{"to":"v0.49.25","from":"v0.49.24"},{"to":"v0.49.24","from":"v0.49.23"},{"to":"v0.49.23","from":"v0.49.22"},{"to":"v0.49.22","from":"v0.49.21"},{"to":"v0.49.21","from":"v0.49.20"},{"to":"v0.49.20","from":"v0.49.19"},{"to":"v0.49.19","from":"v0.49.18"},{"to":"v0.49.18","from":"v0.49.17"},{"to":"v0.49.17","from":"v0.49.16"},{"to":"v0.49.16","from":"v0.49.15"},{"to":"v0.49.15","from":"v0.49.14"},{"to":"v0.49.14","from":"v0.49.12"},{"to":"v0.49.12","from":"v0.49.11"},{"to":"v0.49.11","from":"v0.49.9"},{"to":"v0.49.9","from":"v0.49.8"},{"to":"v0.49.8","from":"v0.49.7"},{"to":"v0.49.7","from":"v0.49.6"},{"to":"v0.49.6","from":"v0.49.5"},{"to":"v0.49.5","from":"v0.49.4"},{"to":"v0.49.4","from":"v0.49.3"},{"to":"v0.49.3","from":"v0.49.2"},{"to":"v0.49.2","from":"v0.49.1"},{"to":"v0.49.1","from":"v0.49.0"},{"to":"v0.49.0","from":"v0.48.23"},{"to":"v0.48.23","from":"v0.48.22"},{"to":"v0.48.22","from":"v0.48.21"},{"to":"v0.48.21","from":"v0.48.19"},{"to":"v0.48.19","from":"v0.48.18"},{"to":"v0.48.18","from":"v0.48.17"},{"to":"v0.48.17","from":"v0.48.16"},{"to":"v0.48.16","from":"v0.48.15"},{"to":"v0.48.15","from":"v0.48.14"},{"to":"v0.48.14","from":"v0.48.13"},{"to":"v0.48.13","from":"v0.48.12"},{"to":"v0.48.12","from":"v0.48.11"},{"to":"v0.48.11","from":"v0.48.10"},{"to":"v0.48.10","from":"v0.48.9"},{"to":"v0.48.9","from":"v0.48.7"},{"to":"v0.48.7","from":"v0.48.6"},{"to":"v0.48.6","from":"v0.48.5"},{"to":"v0.48.5","from":"v0.48.4"},{"to":"v0.48.4","from":"v0.48.3"},{"to":"v0.48.3","from":"v0.48.2"},{"to":"v0.48.2","from":"v0.48.1"},{"to":"v0.48.1","from":"v0.48.0"},{"to":"v0.48.0","from":"v0.47.1"},{"to":"v0.47.1","from":"v0.47.0"},{"to":"v0.47.0","from":"v0.46.0"},{"to":"v0.46.0","from":"v0.45.4"},{"to":"v0.45.4","from":"v0.45.3"},{"to":"v0.45.3","from":"v0.45.2"},{"to":"v0.45.2","from":"v0.45.1"},{"to":"v0.45.1","from":"v0.45.0"},{"to":"v0.45.0","from":"v0.44.13"},{"to":"v0.44.13","from":"v0.44.12"},{"to":"v0.44.12","from":"v0.44.11"},{"to":"v0.44.11","from":"v0.44.10"},{"to":"v0.44.10","from":"v0.44.9"},{"to":"v0.44.9","from":"v0.44.8"},{"to":"v0.44.8","from":"v0.44.7"},{"to":"v0.44.7","from":"v0.44.6"},{"to":"v0.44.6","from":"v0.44.5"},{"to":"v0.44.5","from":"v0.44.4"},{"to":"v0.44.4","from":"v0.44.3"},{"to":"v0.44.3","from":"v0.44.2"},{"to":"v0.44.2","from":"v0.44.1"},{"to":"v0.44.1","from":"v0.44.0"},{"to":"v0.44.0","from":"v0.43.2"},{"to":"v0.43.2","from":"v0.43.1"},{"to":"v0.43.1","from":"v0.43.0"},{"to":"v0.43.0","from":"v0.42.26"},{"to":"v0.42.26","from":"v0.42.25"},{"to":"v0.42.25","from":"v0.42.24"},{"to":"v0.42.24","from":"v0.42.23"},{"to":"v0.42.23","from":"v0.42.22"},{"to":"v0.42.22","from":"v0.42.21"},{"to":"v0.42.21","from":"v0.42.20"},{"to":"v0.42.20","from":"v0.42.19"},{"to":"v0.42.19","from":"v0.42.18"},{"to":"v0.42.18","from":"v0.42.17"},{"to":"v0.42.17","from":"v0.42.16"},{"to":"v0.42.16","from":"v0.42.15"},{"to":"v0.42.15","from":"v0.42.14"},{"to":"v0.42.14","from":"v0.42.13"},{"to":"v0.42.13","from":"v0.42.12"},{"to":"v0.42.12","from":"v0.42.10"},{"to":"v0.42.10","from":"v0.42.9"},{"to":"v0.42.9","from":"v0.42.8"},{"to":"v0.42.8","from":"v0.42.7"},{"to":"v0.42.7","from":"v0.42.6"},{"to":"v0.42.6","from":"v0.42.5"},{"to":"v0.42.5","from":"v0.42.4"},{"to":"v0.42.4","from":"v0.42.3"},{"to":"v0.42.3","from":"v0.42.2"},{"to":"v0.42.2","from":"v0.42.1"},{"to":"v0.42.1","from":"v0.42.0"},{"to":"v0.42.0","from":"v0.41.16"},{"to":"v0.41.16","from":"v0.41.15"},{"to":"v0.41.15","from":"v0.41.14"},{"to":"v0.41.14","from":"v0.41.13"},{"to":"v0.41.13","from":"v0.41.12"},{"to":"v0.41.12","from":"v0.41.11"},{"to":"v0.41.11","from":"v0.41.10"},{"to":"v0.41.10","from":"v0.41.9"},{"to":"v0.41.9","from":"v0.41.8"},{"to":"v0.41.8","from":"v0.41.7"},{"to":"v0.41.7","from":"v0.41.6"},{"to":"v0.41.6","from":"v0.41.5"},{"to":"v0.41.5","from":"v0.41.4"},{"to":"v0.41.4","from":"v0.41.3"},{"to":"v0.41.3","from":"v0.41.2"},{"to":"v0.41.2","from":"v0.41.1"},{"to":"v0.41.1","from":"v0.41.0"},{"to":"v0.41.0","from":"v0.40.10"},{"to":"v0.40.10","from":"v0.40.9"},{"to":"v0.40.9","from":"v0.40.8"},{"to":"v0.40.8","from":"v0.40.7"},{"to":"v0.40.7","from":"v0.40.6"},{"to":"v0.40.6","from":"v0.40.5"},{"to":"v0.40.5","from":"v0.40.4"},{"to":"v0.40.4","from":"v0.40.3"},{"to":"v0.40.3","from":"v0.40.2"},{"to":"v0.40.2","from":"v0.40.1"},{"to":"v0.40.1","from":"v0.40.0"},{"to":"v0.40.0","from":"v0.39.8"},{"to":"v0.39.8","from":"v0.39.7"},{"to":"v0.39.7","from":"v0.39.6"},{"to":"v0.39.6","from":"v0.39.5"},{"to":"v0.39.5","from":"v0.39.4"},{"to":"v0.39.4","from":"v0.39.3"},{"to":"v0.39.3","from":"v0.39.2"},{"to":"v0.39.2","from":"v0.39.1"},{"to":"v0.39.1","from":"v0.39.0"},{"to":"v0.39.0","from":"v0.38.8"},{"to":"v0.38.8","from":"v0.38.7"},{"to":"v0.38.7","from":"v0.38.6"},{"to":"v0.38.6","from":"v0.38.5"},{"to":"v0.38.5","from":"v0.38.4"},{"to":"v0.38.4","from":"v0.38.3"},{"to":"v0.38.3","from":"v0.38.2"},{"to":"v0.38.2","from":"v0.38.1"},{"to":"v0.38.1","from":"v0.38.0"},{"to":"v0.38.0","from":"v0.37.11"},{"to":"v0.37.11","from":"v0.37.10"},{"to":"v0.37.10","from":"v0.37.9"},{"to":"v0.37.9","from":"v0.37.8"},{"to":"v0.37.8","from":"v0.37.7"},{"to":"v0.37.7","from":"v0.37.6"},{"to":"v0.37.6","from":"v0.37.5"},{"to":"v0.37.5","from":"v0.37.4"},{"to":"v0.37.4","from":"v0.37.3"},{"to":"v0.37.3","from":"v0.37.2"},{"to":"v0.37.2","from":"v0.37.1"},{"to":"v0.37.1","from":"v0.37.0"},{"to":"v0.37.0","from":"v0.36.28"},{"to":"v0.36.28","from":"v0.36.27"},{"to":"v0.36.27","from":"v0.36.26"},{"to":"v0.36.26","from":"v0.36.25"},{"to":"v0.36.25","from":"v0.36.24"},{"to":"v0.36.24","from":"v0.36.23"},{"to":"v0.36.23","from":"v0.36.22"},{"to":"v0.36.22","from":"v0.36.21"},{"to":"v0.36.21","from":"v0.36.20"},{"to":"v0.36.20","from":"v0.36.19"},{"to":"v0.36.19","from":"v0.36.18"},{"to":"v0.36.18","from":"v0.36.17"},{"to":"v0.36.17","from":"v0.36.16"},{"to":"v0.36.16","from":"v0.36.15"},{"to":"v0.36.15","from":"v0.36.14"},{"to":"v0.36.14","from":"v0.36.13"},{"to":"v0.36.13","from":"v0.36.12"},{"to":"v0.36.12","from":"v0.36.11"},{"to":"v0.36.11","from":"v0.36.10"},{"to":"v0.36.10","from":"v0.36.9"},{"to":"v0.36.9","from":"v0.36.8"},{"to":"v0.36.8","from":"v0.36.7"},{"to":"v0.36.7","from":"v0.36.6"},{"to":"v0.36.6","from":"v0.36.5"},{"to":"v0.36.5","from":"v0.36.4"},{"to":"v0.36.4","from":"v0.36.3"},{"to":"v0.36.3","from":"v0.36.2"},{"to":"v0.36.2","from":"v0.36.1"},{"to":"v0.36.1","from":"v0.36.0"},{"to":"v0.36.0","from":"v0.35.6"},{"to":"v0.35.6","from":"v0.35.5"},{"to":"v0.35.5","from":"v0.35.4"},{"to":"v0.35.4","from":"v0.35.3"},{"to":"v0.35.3","from":"v0.35.2"},{"to":"v0.35.2","from":"v0.35.1"},{"to":"v0.35.1","from":"v0.35.0"},{"to":"v0.35.0","from":"v0.34.8"},{"to":"v0.34.8","from":"v0.34.7"},{"to":"v0.34.7","from":"v0.34.6"},{"to":"v0.34.6","from":"v0.34.5"},{"to":"v0.34.5","from":"v0.34.4"},{"to":"v0.34.4","from":"v0.34.3"},{"to":"v0.34.3","from":"v0.34.2"},{"to":"v0.34.2","from":"v0.34.1"},{"to":"v0.34.1","from":"v0.34.0"},{"to":"v0.34.0","from":"v0.33.31"},{"to":"v0.33.31","from":"v0.33.30"},{"to":"v0.33.30","from":"v0.33.29"},{"to":"v0.33.29","from":"v0.33.28"},{"to":"v0.33.28","from":"v0.33.27"},{"to":"v0.33.27","from":"v0.33.26"},{"to":"v0.33.26","from":"v0.33.25"},{"to":"v0.33.25","from":"v0.33.24"},{"to":"v0.33.24","from":"v0.33.23"},{"to":"v0.33.23","from":"v0.33.22"},{"to":"v0.33.22","from":"v0.33.21"},{"to":"v0.33.21","from":"v0.33.20"},{"to":"v0.33.20","from":"v0.33.19"},{"to":"v0.33.19","from":"v0.33.18"},{"to":"v0.33.18","from":"v0.33.17"},{"to":"v0.33.17","from":"v0.33.16"},{"to":"v0.33.16","from":"v0.33.15"},{"to":"v0.33.15","from":"v0.33.14"},{"to":"v0.33.14","from":"v0.33.13"},{"to":"v0.33.13","from":"v0.33.12"},{"to":"v0.33.12","from":"v0.33.11"},{"to":"v0.33.11","from":"v0.33.10"},{"to":"v0.33.10","from":"v0.33.9"},{"to":"v0.33.9","from":"v0.33.8"},{"to":"v0.33.8","from":"v0.33.7"},{"to":"v0.33.7","from":"v0.33.6"},{"to":"v0.33.6","from":"v0.33.5"},{"to":"v0.33.5","from":"v0.33.4"},{"to":"v0.33.4","from":"v0.33.3"},{"to":"v0.33.3","from":"v0.33.2"},{"to":"v0.33.2","from":"v0.33.1"},{"to":"v0.33.1","from":"v0.33.0"},{"to":"v0.33.0","from":"v0.32.6"},{"to":"v0.32.6","from":"v0.32.5"},{"to":"v0.32.5","from":"v0.32.4"},{"to":"v0.32.4","from":"v0.32.3"},{"to":"v0.32.3","from":"v0.32.2"},{"to":"v0.32.2","from":"v0.32.1"},{"to":"v0.32.1","from":"v0.32.0"},{"to":"v0.32.0","from":"v0.31.2"},{"to":"v0.31.2","from":"v0.31.1"},{"to":"v0.31.1","from":"v0.31.0"},{"to":"v0.31.0","from":"v0.30.9"},{"to":"v0.30.9","from":"v0.30.8"},{"to":"v0.30.8","from":"v0.30.7"},{"to":"v0.30.7","from":"v0.30.6"},{"to":"v0.30.6","from":"v0.30.5"},{"to":"v0.30.5","from":"v0.30.4"},{"to":"v0.30.4","from":"v0.30.3"},{"to":"v0.30.3","from":"v0.30.2"},{"to":"v0.30.2","from":"v0.30.1"},{"to":"v0.30.1","from":"v0.30.0"},{"to":"v0.30.0","from":"v0.29.4"},{"to":"v0.29.4","from":"v0.29.3"},{"to":"v0.29.3","from":"v0.29.2"},{"to":"v0.29.2","from":"v0.29.1"},{"to":"v0.29.1","from":"v0.29.0"},{"to":"v0.29.0","from":"v0.28.9"},{"to":"v0.28.9","from":"v0.28.8"},{"to":"v0.28.8","from":"v0.28.7"},{"to":"v0.28.7","from":"v0.28.6"},{"to":"v0.28.6","from":"v0.28.5"},{"to":"v0.28.5","from":"v0.28.4"},{"to":"v0.28.4","from":"v0.28.3"},{"to":"v0.28.3","from":"v0.28.2"},{"to":"v0.28.2","from":"v0.28.1"},{"to":"v0.28.1","from":"v0.28.0"},{"to":"v0.28.0","from":"v0.27.9"},{"to":"v0.27.9","from":"v0.27.8"},{"to":"v0.27.8","from":"v0.27.7"},{"to":"v0.27.7","from":"v0.27.6"},{"to":"v0.27.6","from":"v0.27.5"},{"to":"v0.27.5","from":"v0.27.4"},{"to":"v0.27.4","from":"v0.27.3"},{"to":"v0.27.3","from":"v0.27.2"},{"to":"v0.27.2","from":"v0.27.1"},{"to":"v0.27.1","from":"v0.27.0"},{"to":"v0.27.0","from":"v0.26.2"},{"to":"v0.26.2","from":"v0.26.1"},{"to":"v0.26.1","from":"v0.26.0"},{"to":"v0.26.0","from":"v0.25.0"},{"to":"v0.25.0","from":"v0.24.1"},{"to":"v0.24.1","from":"v0.24.0"},{"to":"v0.24.0","from":"v0.23.7"},{"to":"v0.23.7","from":"v0.23.6"},{"to":"v0.23.6","from":"v0.23.5"},{"to":"v0.23.5","from":"v0.23.4"},{"to":"v0.23.4","from":"v0.23.3"},{"to":"v0.23.3","from":"v0.23.2"},{"to":"v0.23.2","from":"v0.23.1"},{"to":"v0.23.1","from":"v0.23.0"},{"to":"v0.23.0","from":"v0.22.3"},{"to":"v0.22.3","from":"v0.22.2"},{"to":"v0.22.2","from":"v0.22.1"},{"to":"v0.22.1","from":"v0.22.0"},{"to":"v0.22.0","from":"v0.21.0"},{"to":"v0.21.0","from":"v0.20.5"},{"to":"v0.20.5","from":"v0.20.4"},{"to":"v0.20.4","from":"v0.20.3"},{"to":"v0.20.3","from":"v0.20.2"},{"to":"v0.20.2","from":"v0.20.1"},{"to":"v0.20.1","from":"v0.20.0"},{"to":"v0.20.0","from":"v0.19.5"},{"to":"v0.19.5","from":"v0.19.4"},{"to":"v0.19.4","from":"v0.19.3"},{"to":"v0.19.3","from":"v0.19.2"},{"to":"v0.19.2","from":"v0.19.1"},{"to":"v0.19.1","from":"v0.19.0"},{"to":"v0.19.0","from":"6181a540729a7179d7a9d41489dfc241335cf1b5"}]
1
+ [{"to":"v0.50.46","from":"v0.50.45"},{"to":"v0.50.45","from":"v0.50.44"},{"to":"v0.50.44","from":"v0.50.43"},{"to":"v0.50.43","from":"v0.50.42"},{"to":"v0.50.42","from":"v0.50.41"},{"to":"v0.50.41","from":"v0.50.40"},{"to":"v0.50.40","from":"v0.50.39"},{"to":"v0.50.39","from":"v0.50.38"},{"to":"v0.50.38","from":"v0.50.37"},{"to":"v0.50.37","from":"v0.50.36"},{"to":"v0.50.36","from":"v0.50.35"},{"to":"v0.50.35","from":"v0.50.34"},{"to":"v0.50.34","from":"v0.50.33"},{"to":"v0.50.33","from":"v0.50.32"},{"to":"v0.50.32","from":"v0.50.31"},{"to":"v0.50.31","from":"v0.50.30"},{"to":"v0.50.30","from":"v0.50.29"},{"to":"v0.50.29","from":"v0.50.28"},{"to":"v0.50.28","from":"v0.50.27"},{"to":"v0.50.27","from":"v0.50.26"},{"to":"v0.50.26","from":"v0.50.25"},{"to":"v0.50.25","from":"v0.50.24"},{"to":"v0.50.24","from":"v0.50.23"},{"to":"v0.50.23","from":"v0.50.22"},{"to":"v0.50.22","from":"v0.50.21"},{"to":"v0.50.21","from":"v0.50.20"},{"to":"v0.50.20","from":"v0.50.18"},{"to":"v0.50.18","from":"v0.50.17"},{"to":"v0.50.17","from":"v0.50.16"},{"to":"v0.50.16","from":"v0.50.15"},{"to":"v0.50.15","from":"v0.50.14"},{"to":"v0.50.14","from":"v0.50.13"},{"to":"v0.50.13","from":"v0.50.12"},{"to":"v0.50.12","from":"v0.50.11"},{"to":"v0.50.11","from":"v0.50.10"},{"to":"v0.50.10","from":"v0.50.9"},{"to":"v0.50.9","from":"v0.50.8"},{"to":"v0.50.8","from":"v0.50.7"},{"to":"v0.50.7","from":"v0.50.6"},{"to":"v0.50.6","from":"v0.50.5"},{"to":"v0.50.5","from":"v0.50.4"},{"to":"v0.50.4","from":"v0.50.3"},{"to":"v0.50.3","from":"v0.50.2"},{"to":"v0.50.2","from":"v0.50.1"},{"to":"v0.50.1","from":"v0.50.0"},{"to":"v0.50.0","from":"v0.49.67"},{"to":"v0.49.67","from":"v0.49.66"},{"to":"v0.49.66","from":"v0.49.65"},{"to":"v0.49.65","from":"v0.49.64"},{"to":"v0.49.64","from":"v0.49.63"},{"to":"v0.49.63","from":"v0.49.62"},{"to":"v0.49.62","from":"v0.49.61"},{"to":"v0.49.61","from":"v0.49.60"},{"to":"v0.49.60","from":"v0.49.59"},{"to":"v0.49.59","from":"v0.49.58"},{"to":"v0.49.58","from":"v0.49.57"},{"to":"v0.49.57","from":"v0.49.56"},{"to":"v0.49.56","from":"v0.49.55"},{"to":"v0.49.55","from":"v0.49.54"},{"to":"v0.49.54","from":"v0.49.53"},{"to":"v0.49.53","from":"v0.49.52"},{"to":"v0.49.52","from":"v0.49.51"},{"to":"v0.49.51","from":"v0.49.50"},{"to":"v0.49.50","from":"v0.49.49"},{"to":"v0.49.49","from":"v0.49.48"},{"to":"v0.49.48","from":"v0.49.47"},{"to":"v0.49.47","from":"v0.49.46"},{"to":"v0.49.46","from":"v0.49.45"},{"to":"v0.49.45","from":"v0.49.44"},{"to":"v0.49.44","from":"v0.49.43"},{"to":"v0.49.43","from":"v0.49.42"},{"to":"v0.49.42","from":"v0.49.41"},{"to":"v0.49.41","from":"v0.49.40"},{"to":"v0.49.40","from":"v0.49.39"},{"to":"v0.49.39","from":"v0.49.38"},{"to":"v0.49.38","from":"v0.49.37"},{"to":"v0.49.37","from":"v0.49.36"},{"to":"v0.49.36","from":"v0.49.35"},{"to":"v0.49.35","from":"v0.49.34"},{"to":"v0.49.34","from":"v0.49.32"},{"to":"v0.49.32","from":"v0.49.31"},{"to":"v0.49.31","from":"v0.49.30"},{"to":"v0.49.30","from":"v0.49.29"},{"to":"v0.49.29","from":"v0.49.28"},{"to":"v0.49.28","from":"v0.49.27"},{"to":"v0.49.27","from":"v0.49.26"},{"to":"v0.49.26","from":"v0.49.25"},{"to":"v0.49.25","from":"v0.49.24"},{"to":"v0.49.24","from":"v0.49.23"},{"to":"v0.49.23","from":"v0.49.22"},{"to":"v0.49.22","from":"v0.49.21"},{"to":"v0.49.21","from":"v0.49.20"},{"to":"v0.49.20","from":"v0.49.19"},{"to":"v0.49.19","from":"v0.49.18"},{"to":"v0.49.18","from":"v0.49.17"},{"to":"v0.49.17","from":"v0.49.16"},{"to":"v0.49.16","from":"v0.49.15"},{"to":"v0.49.15","from":"v0.49.14"},{"to":"v0.49.14","from":"v0.49.12"},{"to":"v0.49.12","from":"v0.49.11"},{"to":"v0.49.11","from":"v0.49.9"},{"to":"v0.49.9","from":"v0.49.8"},{"to":"v0.49.8","from":"v0.49.7"},{"to":"v0.49.7","from":"v0.49.6"},{"to":"v0.49.6","from":"v0.49.5"},{"to":"v0.49.5","from":"v0.49.4"},{"to":"v0.49.4","from":"v0.49.3"},{"to":"v0.49.3","from":"v0.49.2"},{"to":"v0.49.2","from":"v0.49.1"},{"to":"v0.49.1","from":"v0.49.0"},{"to":"v0.49.0","from":"v0.48.23"},{"to":"v0.48.23","from":"v0.48.22"},{"to":"v0.48.22","from":"v0.48.21"},{"to":"v0.48.21","from":"v0.48.19"},{"to":"v0.48.19","from":"v0.48.18"},{"to":"v0.48.18","from":"v0.48.17"},{"to":"v0.48.17","from":"v0.48.16"},{"to":"v0.48.16","from":"v0.48.15"},{"to":"v0.48.15","from":"v0.48.14"},{"to":"v0.48.14","from":"v0.48.13"},{"to":"v0.48.13","from":"v0.48.12"},{"to":"v0.48.12","from":"v0.48.11"},{"to":"v0.48.11","from":"v0.48.10"},{"to":"v0.48.10","from":"v0.48.9"},{"to":"v0.48.9","from":"v0.48.7"},{"to":"v0.48.7","from":"v0.48.6"},{"to":"v0.48.6","from":"v0.48.5"},{"to":"v0.48.5","from":"v0.48.4"},{"to":"v0.48.4","from":"v0.48.3"},{"to":"v0.48.3","from":"v0.48.2"},{"to":"v0.48.2","from":"v0.48.1"},{"to":"v0.48.1","from":"v0.48.0"},{"to":"v0.48.0","from":"v0.47.1"},{"to":"v0.47.1","from":"v0.47.0"},{"to":"v0.47.0","from":"v0.46.0"},{"to":"v0.46.0","from":"v0.45.4"},{"to":"v0.45.4","from":"v0.45.3"},{"to":"v0.45.3","from":"v0.45.2"},{"to":"v0.45.2","from":"v0.45.1"},{"to":"v0.45.1","from":"v0.45.0"},{"to":"v0.45.0","from":"v0.44.13"},{"to":"v0.44.13","from":"v0.44.12"},{"to":"v0.44.12","from":"v0.44.11"},{"to":"v0.44.11","from":"v0.44.10"},{"to":"v0.44.10","from":"v0.44.9"},{"to":"v0.44.9","from":"v0.44.8"},{"to":"v0.44.8","from":"v0.44.7"},{"to":"v0.44.7","from":"v0.44.6"},{"to":"v0.44.6","from":"v0.44.5"},{"to":"v0.44.5","from":"v0.44.4"},{"to":"v0.44.4","from":"v0.44.3"},{"to":"v0.44.3","from":"v0.44.2"},{"to":"v0.44.2","from":"v0.44.1"},{"to":"v0.44.1","from":"v0.44.0"},{"to":"v0.44.0","from":"v0.43.2"},{"to":"v0.43.2","from":"v0.43.1"},{"to":"v0.43.1","from":"v0.43.0"},{"to":"v0.43.0","from":"v0.42.26"},{"to":"v0.42.26","from":"v0.42.25"},{"to":"v0.42.25","from":"v0.42.24"},{"to":"v0.42.24","from":"v0.42.23"},{"to":"v0.42.23","from":"v0.42.22"},{"to":"v0.42.22","from":"v0.42.21"},{"to":"v0.42.21","from":"v0.42.20"},{"to":"v0.42.20","from":"v0.42.19"},{"to":"v0.42.19","from":"v0.42.18"},{"to":"v0.42.18","from":"v0.42.17"},{"to":"v0.42.17","from":"v0.42.16"},{"to":"v0.42.16","from":"v0.42.15"},{"to":"v0.42.15","from":"v0.42.14"},{"to":"v0.42.14","from":"v0.42.13"},{"to":"v0.42.13","from":"v0.42.12"},{"to":"v0.42.12","from":"v0.42.10"},{"to":"v0.42.10","from":"v0.42.9"},{"to":"v0.42.9","from":"v0.42.8"},{"to":"v0.42.8","from":"v0.42.7"},{"to":"v0.42.7","from":"v0.42.6"},{"to":"v0.42.6","from":"v0.42.5"},{"to":"v0.42.5","from":"v0.42.4"},{"to":"v0.42.4","from":"v0.42.3"},{"to":"v0.42.3","from":"v0.42.2"},{"to":"v0.42.2","from":"v0.42.1"},{"to":"v0.42.1","from":"v0.42.0"},{"to":"v0.42.0","from":"v0.41.16"},{"to":"v0.41.16","from":"v0.41.15"},{"to":"v0.41.15","from":"v0.41.14"},{"to":"v0.41.14","from":"v0.41.13"},{"to":"v0.41.13","from":"v0.41.12"},{"to":"v0.41.12","from":"v0.41.11"},{"to":"v0.41.11","from":"v0.41.10"},{"to":"v0.41.10","from":"v0.41.9"},{"to":"v0.41.9","from":"v0.41.8"},{"to":"v0.41.8","from":"v0.41.7"},{"to":"v0.41.7","from":"v0.41.6"},{"to":"v0.41.6","from":"v0.41.5"},{"to":"v0.41.5","from":"v0.41.4"},{"to":"v0.41.4","from":"v0.41.3"},{"to":"v0.41.3","from":"v0.41.2"},{"to":"v0.41.2","from":"v0.41.1"},{"to":"v0.41.1","from":"v0.41.0"},{"to":"v0.41.0","from":"v0.40.10"},{"to":"v0.40.10","from":"v0.40.9"},{"to":"v0.40.9","from":"v0.40.8"},{"to":"v0.40.8","from":"v0.40.7"},{"to":"v0.40.7","from":"v0.40.6"},{"to":"v0.40.6","from":"v0.40.5"},{"to":"v0.40.5","from":"v0.40.4"},{"to":"v0.40.4","from":"v0.40.3"},{"to":"v0.40.3","from":"v0.40.2"},{"to":"v0.40.2","from":"v0.40.1"},{"to":"v0.40.1","from":"v0.40.0"},{"to":"v0.40.0","from":"v0.39.8"},{"to":"v0.39.8","from":"v0.39.7"},{"to":"v0.39.7","from":"v0.39.6"},{"to":"v0.39.6","from":"v0.39.5"},{"to":"v0.39.5","from":"v0.39.4"},{"to":"v0.39.4","from":"v0.39.3"},{"to":"v0.39.3","from":"v0.39.2"},{"to":"v0.39.2","from":"v0.39.1"},{"to":"v0.39.1","from":"v0.39.0"},{"to":"v0.39.0","from":"v0.38.8"},{"to":"v0.38.8","from":"v0.38.7"},{"to":"v0.38.7","from":"v0.38.6"},{"to":"v0.38.6","from":"v0.38.5"},{"to":"v0.38.5","from":"v0.38.4"},{"to":"v0.38.4","from":"v0.38.3"},{"to":"v0.38.3","from":"v0.38.2"},{"to":"v0.38.2","from":"v0.38.1"},{"to":"v0.38.1","from":"v0.38.0"},{"to":"v0.38.0","from":"v0.37.11"},{"to":"v0.37.11","from":"v0.37.10"},{"to":"v0.37.10","from":"v0.37.9"},{"to":"v0.37.9","from":"v0.37.8"},{"to":"v0.37.8","from":"v0.37.7"},{"to":"v0.37.7","from":"v0.37.6"},{"to":"v0.37.6","from":"v0.37.5"},{"to":"v0.37.5","from":"v0.37.4"},{"to":"v0.37.4","from":"v0.37.3"},{"to":"v0.37.3","from":"v0.37.2"},{"to":"v0.37.2","from":"v0.37.1"},{"to":"v0.37.1","from":"v0.37.0"},{"to":"v0.37.0","from":"v0.36.28"},{"to":"v0.36.28","from":"v0.36.27"},{"to":"v0.36.27","from":"v0.36.26"},{"to":"v0.36.26","from":"v0.36.25"},{"to":"v0.36.25","from":"v0.36.24"},{"to":"v0.36.24","from":"v0.36.23"},{"to":"v0.36.23","from":"v0.36.22"},{"to":"v0.36.22","from":"v0.36.21"},{"to":"v0.36.21","from":"v0.36.20"},{"to":"v0.36.20","from":"v0.36.19"},{"to":"v0.36.19","from":"v0.36.18"},{"to":"v0.36.18","from":"v0.36.17"},{"to":"v0.36.17","from":"v0.36.16"},{"to":"v0.36.16","from":"v0.36.15"},{"to":"v0.36.15","from":"v0.36.14"},{"to":"v0.36.14","from":"v0.36.13"},{"to":"v0.36.13","from":"v0.36.12"},{"to":"v0.36.12","from":"v0.36.11"},{"to":"v0.36.11","from":"v0.36.10"},{"to":"v0.36.10","from":"v0.36.9"},{"to":"v0.36.9","from":"v0.36.8"},{"to":"v0.36.8","from":"v0.36.7"},{"to":"v0.36.7","from":"v0.36.6"},{"to":"v0.36.6","from":"v0.36.5"},{"to":"v0.36.5","from":"v0.36.4"},{"to":"v0.36.4","from":"v0.36.3"},{"to":"v0.36.3","from":"v0.36.2"},{"to":"v0.36.2","from":"v0.36.1"},{"to":"v0.36.1","from":"v0.36.0"},{"to":"v0.36.0","from":"v0.35.6"},{"to":"v0.35.6","from":"v0.35.5"},{"to":"v0.35.5","from":"v0.35.4"},{"to":"v0.35.4","from":"v0.35.3"},{"to":"v0.35.3","from":"v0.35.2"},{"to":"v0.35.2","from":"v0.35.1"},{"to":"v0.35.1","from":"v0.35.0"},{"to":"v0.35.0","from":"v0.34.8"},{"to":"v0.34.8","from":"v0.34.7"},{"to":"v0.34.7","from":"v0.34.6"},{"to":"v0.34.6","from":"v0.34.5"},{"to":"v0.34.5","from":"v0.34.4"},{"to":"v0.34.4","from":"v0.34.3"},{"to":"v0.34.3","from":"v0.34.2"},{"to":"v0.34.2","from":"v0.34.1"},{"to":"v0.34.1","from":"v0.34.0"},{"to":"v0.34.0","from":"v0.33.31"},{"to":"v0.33.31","from":"v0.33.30"},{"to":"v0.33.30","from":"v0.33.29"},{"to":"v0.33.29","from":"v0.33.28"},{"to":"v0.33.28","from":"v0.33.27"},{"to":"v0.33.27","from":"v0.33.26"},{"to":"v0.33.26","from":"v0.33.25"},{"to":"v0.33.25","from":"v0.33.24"},{"to":"v0.33.24","from":"v0.33.23"},{"to":"v0.33.23","from":"v0.33.22"},{"to":"v0.33.22","from":"v0.33.21"},{"to":"v0.33.21","from":"v0.33.20"},{"to":"v0.33.20","from":"v0.33.19"},{"to":"v0.33.19","from":"v0.33.18"},{"to":"v0.33.18","from":"v0.33.17"},{"to":"v0.33.17","from":"v0.33.16"},{"to":"v0.33.16","from":"v0.33.15"},{"to":"v0.33.15","from":"v0.33.14"},{"to":"v0.33.14","from":"v0.33.13"},{"to":"v0.33.13","from":"v0.33.12"},{"to":"v0.33.12","from":"v0.33.11"},{"to":"v0.33.11","from":"v0.33.10"},{"to":"v0.33.10","from":"v0.33.9"},{"to":"v0.33.9","from":"v0.33.8"},{"to":"v0.33.8","from":"v0.33.7"},{"to":"v0.33.7","from":"v0.33.6"},{"to":"v0.33.6","from":"v0.33.5"},{"to":"v0.33.5","from":"v0.33.4"},{"to":"v0.33.4","from":"v0.33.3"},{"to":"v0.33.3","from":"v0.33.2"},{"to":"v0.33.2","from":"v0.33.1"},{"to":"v0.33.1","from":"v0.33.0"},{"to":"v0.33.0","from":"v0.32.6"},{"to":"v0.32.6","from":"v0.32.5"},{"to":"v0.32.5","from":"v0.32.4"},{"to":"v0.32.4","from":"v0.32.3"},{"to":"v0.32.3","from":"v0.32.2"},{"to":"v0.32.2","from":"v0.32.1"},{"to":"v0.32.1","from":"v0.32.0"},{"to":"v0.32.0","from":"v0.31.2"},{"to":"v0.31.2","from":"v0.31.1"},{"to":"v0.31.1","from":"v0.31.0"},{"to":"v0.31.0","from":"v0.30.9"},{"to":"v0.30.9","from":"v0.30.8"},{"to":"v0.30.8","from":"v0.30.7"},{"to":"v0.30.7","from":"v0.30.6"},{"to":"v0.30.6","from":"v0.30.5"},{"to":"v0.30.5","from":"v0.30.4"},{"to":"v0.30.4","from":"v0.30.3"},{"to":"v0.30.3","from":"v0.30.2"},{"to":"v0.30.2","from":"v0.30.1"},{"to":"v0.30.1","from":"v0.30.0"},{"to":"v0.30.0","from":"v0.29.4"},{"to":"v0.29.4","from":"v0.29.3"},{"to":"v0.29.3","from":"v0.29.2"},{"to":"v0.29.2","from":"v0.29.1"},{"to":"v0.29.1","from":"v0.29.0"},{"to":"v0.29.0","from":"v0.28.9"},{"to":"v0.28.9","from":"v0.28.8"},{"to":"v0.28.8","from":"v0.28.7"},{"to":"v0.28.7","from":"v0.28.6"},{"to":"v0.28.6","from":"v0.28.5"},{"to":"v0.28.5","from":"v0.28.4"},{"to":"v0.28.4","from":"v0.28.3"},{"to":"v0.28.3","from":"v0.28.2"},{"to":"v0.28.2","from":"v0.28.1"},{"to":"v0.28.1","from":"v0.28.0"},{"to":"v0.28.0","from":"v0.27.9"},{"to":"v0.27.9","from":"v0.27.8"},{"to":"v0.27.8","from":"v0.27.7"},{"to":"v0.27.7","from":"v0.27.6"},{"to":"v0.27.6","from":"v0.27.5"},{"to":"v0.27.5","from":"v0.27.4"},{"to":"v0.27.4","from":"v0.27.3"},{"to":"v0.27.3","from":"v0.27.2"},{"to":"v0.27.2","from":"v0.27.1"},{"to":"v0.27.1","from":"v0.27.0"},{"to":"v0.27.0","from":"v0.26.2"},{"to":"v0.26.2","from":"v0.26.1"},{"to":"v0.26.1","from":"v0.26.0"},{"to":"v0.26.0","from":"v0.25.0"},{"to":"v0.25.0","from":"v0.24.1"},{"to":"v0.24.1","from":"v0.24.0"},{"to":"v0.24.0","from":"v0.23.7"},{"to":"v0.23.7","from":"v0.23.6"},{"to":"v0.23.6","from":"v0.23.5"},{"to":"v0.23.5","from":"v0.23.4"},{"to":"v0.23.4","from":"v0.23.3"},{"to":"v0.23.3","from":"v0.23.2"},{"to":"v0.23.2","from":"v0.23.1"},{"to":"v0.23.1","from":"v0.23.0"},{"to":"v0.23.0","from":"v0.22.3"},{"to":"v0.22.3","from":"v0.22.2"},{"to":"v0.22.2","from":"v0.22.1"},{"to":"v0.22.1","from":"v0.22.0"},{"to":"v0.22.0","from":"v0.21.0"},{"to":"v0.21.0","from":"v0.20.5"},{"to":"v0.20.5","from":"v0.20.4"},{"to":"v0.20.4","from":"v0.20.3"},{"to":"v0.20.3","from":"v0.20.2"},{"to":"v0.20.2","from":"v0.20.1"},{"to":"v0.20.1","from":"v0.20.0"},{"to":"v0.20.0","from":"v0.19.5"},{"to":"v0.19.5","from":"v0.19.4"},{"to":"v0.19.4","from":"v0.19.3"},{"to":"v0.19.3","from":"v0.19.2"},{"to":"v0.19.2","from":"v0.19.1"},{"to":"v0.19.1","from":"v0.19.0"},{"to":"v0.19.0","from":"6181a540729a7179d7a9d41489dfc241335cf1b5"}]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oc",
3
- "version": "0.50.43",
3
+ "version": "0.50.46",
4
4
  "description": "A framework for developing and distributing html components",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,335 +0,0 @@
1
- ---
2
- description: Use specific OC rules over Vite
3
- globs: "*.ts, *.tsx, *.html, *.css, *.js, *.jsx, package.json"
4
- alwaysApply: false
5
- ---
6
- # OpenComponents (OC) Framework Documentation
7
-
8
- ## Core Principles & Best Practices
9
-
10
- - **OC = Presentation Layer**: Server for data prep, not full backend services
11
- - **Keep Frontend Light**: Minimize client-side JS, prefer server-side data prep
12
- - **Library Minimalism**: Resist adding libraries, prefer native APIs
13
- - **Server-First Data Flow**: Server prepares → Client displays → User interacts → Server responds
14
-
15
- ## Anti-Patterns to Avoid
16
-
17
- - Building full CRUD in OC components
18
- - Using OC server as backend replacement
19
- - Heavy client-side state management
20
- - Large components with multiple responsibilities
21
- - Client-side data fetching when server-side works
22
-
23
- ## When to Use Server vs Client
24
-
25
- - **Server-side**: Data fetching, transformations, auth, business logic, initial state
26
- - **Client-side**: User interactions, real-time validation, UI state, progressive enhancement
27
-
28
- ## Project Structure
29
-
30
- OpenComponents is a microfrontend technology that resembles a Vite project but with key differences:
31
-
32
- - **No index.html**: This file is automatically generated during development
33
- - **Dual architecture**: Contains both client and server components
34
- - **Entry points**: Defined in package.json under `files.template.src` and `files.data`
35
-
36
- ## Development Commands
37
-
38
- - Run locally with: `oc dev folder-where-to-run [port] [options]`
39
- - Execute from parent folder (not component folder)
40
- - Default port: 3000 (can be overridden)
41
- - Common options:
42
- - `--components component-name`: Load only specific component(s)
43
- - `--prefix=/path/`: Simulate registry prefix for production matching
44
- - `--fallbackRegistryUrl=url`: Fetch missing components from remote registry
45
- - Example: `oc dev .. 3030 --components mycomponent --prefix=/registry/`
46
-
47
- ## Server Architecture
48
-
49
- - Server uses `oc-server` helper package
50
- - Must export a `Server` class instance named `server`
51
- - Server configuration methods:
52
- - `new Server({ stream: true })`: Enable Promise serialization + Map/Set support
53
- - `.withParameters()`: Define component parameters (initial props from URL)
54
- - `.handler()`: Method that returns initial data for client rendering
55
- - `.actions()`: Define endpoints the microfrontend can call
56
-
57
- ### Parameters vs Actions
58
-
59
- - **Parameters**: Initial props passed via URL query string (like `?userId=1`)
60
- - **Actions**: Server endpoints that the client can call after initial render
61
-
62
- ### Streaming Mode Benefits
63
-
64
- - **Non-blocking rendering**: Return Promises instead of awaiting slow operations
65
- - **Enhanced serialization**: Support for Map, Set, and other complex data types
66
- - **Performance**: Client renders immediately, async data resolves later
67
- - **Trade-off**: Small serialization overhead for enhanced capabilities
68
-
69
- ## Performance Best Practices
70
-
71
- - Use `new Server({stream: true})` for non-blocking rendering
72
- - Return Promises instead of awaiting slow operations
73
- - Keep initial payload small
74
- - Fail fast with `undefined` from handlers
75
- - **Use `ctx.setHeader('Cache-Control', 'max-age=X')` when same params produce same result** - reduces registry load
76
-
77
- ## Client Architecture
78
-
79
- - Root component receives server data as initial props
80
- - **Must use default export** - OC build process wraps your component
81
- - **Type Safety**: `InitialData` and `ActionOutput<'actionName'>` are auto-inferred from server
82
- - **Static Assets**: Import directly from `../public/` - auto-resolved to `staticPath`
83
- - **CSS Modules**: All CSS imports are automatically CSS modules
84
- - **Server Actions**: Call via `serverClient.actionName()` with full type safety
85
- - **Initial Data Access**: Use `getInitialData()` to access server handler data anywhere on the client (not on the server)
86
-
87
- ## File Structure Guidelines
88
-
89
- When working with OpenComponents:
90
-
91
- 1. **Package.json Configuration**
92
-
93
- ```json
94
- {
95
- "oc": {
96
- "files": {
97
- "data": "src/server.ts", // Server entry point
98
- "template": {
99
- "src": "src/index.tsx", // Client entry point
100
- "type": "oc-template-react" // Template type
101
- },
102
- "static": ["public", "assets"] // Static asset directories (array)
103
- }
104
- }
105
- }
106
- ```
107
-
108
- 2. **TypeScript Declaration File (Required)**
109
-
110
- ```typescript
111
- // src/global.d.ts or similar .d.ts file
112
- /// <reference types="oc-vite/client" />
113
- ```
114
-
115
- This provides:
116
-
117
- - CSS module typing for imports
118
- - `window.oc` object typing with utilities
119
- - `window.oc.events` for component communication
120
-
121
- 3. **Template Types Available**
122
-
123
- - `oc-template-react`: React components
124
- - `oc-template-vue`: Vue components
125
- - `oc-template-svelte`: Svelte components
126
- - `oc-template-solid`: Solid.js components
127
- - `oc-template-preact`: Preact components
128
- - `oc-template-elm`: Elm components
129
- - `oc-template-es6`: Vanilla JavaScript
130
-
131
- 4. **Required Dependencies**
132
- - Core: `oc`, `oc-server`
133
- - Template-specific compiler (e.g., `oc-template-react-compiler`)
134
- - Framework dependencies (e.g., `react`, `react-dom`)
135
- - Note: `oc-vite` is included as transient dependency
136
-
137
- ## Code Patterns
138
-
139
- ### Server Pattern (TypeScript)
140
-
141
- ```typescript
142
- import { Server } from "oc-server";
143
-
144
- export const server = new Server({ stream: true }) // Optional: enables Promise serialization + Map/Set support
145
- .withParameters({
146
- paramName: {
147
- default: "defaultValue",
148
- description: "Parameter description",
149
- example: "exampleValue",
150
- mandatory: true, // or false
151
- type: "string" | "number" | "boolean", // URL parameters only
152
- },
153
- })
154
- .handler(async (params, ctx) => {
155
- // params: validated parameters from URL
156
- // ctx: DataContext with staticPath, requestHeaders, etc.
157
-
158
- // Return undefined to prevent rendering
159
- if (someErrorCondition) {
160
- return; // or return undefined
161
- }
162
-
163
- // With stream: true, you can return Promises for non-blocking rendering
164
- const slowDataPromise = fetchSlowData(); // Don't await - return Promise
165
-
166
- // Set cache headers when same params produce same result
167
- ctx.setHeader("Cache-Control", "max-age=300"); // 5 minutes cache
168
-
169
- return {
170
- // immediate data for initial render
171
- staticPath: ctx.staticPath,
172
- // Promise will be resolved on client (with stream: true)
173
- slowData: slowDataPromise,
174
- // Enhanced serialization support (with stream: true)
175
- mapData: new Map([["key", "value"]]),
176
- setData: new Set([1, 2, 3]),
177
- };
178
- })
179
- .action("actionName", async (params: { paramName: ParamType }) => {
180
- // Server endpoint callable from client
181
- // With stream: true, actions can also return Promises and enhanced data types
182
- return {
183
- // response data - can include Promises, Maps, Sets when streaming enabled
184
- };
185
- });
186
-
187
- // TypeScript module augmentation for type safety
188
- declare module "oc-server" {
189
- interface Register {
190
- server: typeof server;
191
- }
192
- }
193
- ```
194
-
195
- ### Client Patterns (React/TypeScript)
196
-
197
- ```typescript
198
- import { useState, useEffect } from "react";
199
- import {
200
- serverClient,
201
- InitialData,
202
- ActionOutput,
203
- getInitialData,
204
- } from "oc-server";
205
- import styles from "./styles.css"; // Always CSS modules in OC
206
- import logo from "../public/logo.png"; // Auto-resolved to staticPath
207
-
208
- // Type-safe interfaces from server module declaration
209
- type AdditionalData = ActionOutput<"actionName">; // Inferred from server action
210
-
211
- // getInitialData() - sync function to access server handler data anywhere
212
- const serverData = getInitialData(); // Returns same data as props, works in any template
213
-
214
- // MUST be default export - wrapped by OC build process
215
- const App: React.FC<InitialData> = (props: InitialData) => {
216
- // InitialData is inferred from server handler return type
217
- const { serverProp1, serverProp2, slowData } = props; // slowData might be a Promise
218
-
219
- // Handle streaming data (when server uses stream: true)
220
- const [resolvedSlowData, setResolvedSlowData] = useState(null);
221
-
222
- useEffect(() => {
223
- if (slowData instanceof Promise) {
224
- slowData.then(setResolvedSlowData);
225
- } else {
226
- setResolvedSlowData(slowData);
227
- }
228
- }, [slowData]);
229
-
230
- // Alternative: access server data without props
231
- const alternativeData = getInitialData();
232
-
233
- const [actionData, setActionData] = useState<AdditionalData | null>(null);
234
- const [error, setError] = useState("");
235
-
236
- const callServerAction = async () => {
237
- try {
238
- // Type-safe server action calls
239
- const data = await serverClient.actionName({ param: value });
240
- setActionData(data);
241
- } catch (err) {
242
- setError(String(err)); // Handle action errors
243
- }
244
- };
245
-
246
- return (
247
- <div className={styles.container}>
248
- <img src={logo} alt="Static asset" />
249
- {resolvedSlowData ? <div>{resolvedSlowData}</div> : <div>Loading...</div>}
250
- {/* Component JSX */}
251
- </div>
252
- );
253
- };
254
-
255
- export default App; // Required: Must be default export
256
- ```
257
-
258
- ## Important Notes
259
-
260
- - OpenComponents is a microfrontend architecture with registry-based distribution
261
- - Components are published with name/version and served at runtime
262
- - **TypeScript Setup**: Add `/// <reference types="oc-vite/client" />` to a .d.ts file for proper typing
263
- - **Component Communication**: Use `window.oc.events` for inter-component communication
264
-
265
- `window.oc.events` provides the following methods:
266
-
267
- - `on(eventName, handler)`: Register a listener for an event.
268
- - `off(eventName, handler?)`: Remove a specific listener or all listeners for an event.
269
- - `fire(eventName, data?)`: Emit an event with optional data payload.
270
- - `reset()`: Remove all registered event listeners.
271
-
272
- - **Local Development**: `oc dev` simulates an OC Registry (like npm for components)
273
- - **Static assets**: Auto-resolved using Vite's `experimental.renderBuiltUrl`
274
- - **CSS Modules**: All CSS imports are automatically CSS modules
275
- - **Default Export Required**: Client components must use default export for OC build wrapper
276
- - **Type Safety**: Full TypeScript inference from server to client via module declaration
277
- - **Initial Data**: Access server handler data via props OR `getInitialData()` (works in any template)
278
- - **Parameters**: Only `string`, `number`, `boolean` types (passed via URL)
279
- - **Error handling**: Return `undefined` from handler to prevent rendering
280
- - **Streaming Mode**: Use `new Server({ stream: true })` for Promise serialization and enhanced data types
281
- - **Non-blocking Rendering**: Return Promises from handler/actions instead of awaiting slow operations
282
- - **Action Errors**: Use try-catch blocks for server action error handling
283
- - **Build Commands**: `oc package` or `oc publish` (includes package) for production builds
284
- - **Component usage**: `<oc-component src="registry-url/component/version?props" />`
285
- - **Fallback Registry**: Local dev can fetch missing components from remote registry
286
- - **Multi-component**: Use `--components` flag to load specific components only
287
-
288
- ## DataContext Interface
289
-
290
- The handler's `ctx` parameter provides:
291
-
292
- - `staticPath`: Path to static assets (`/name/version/static`)
293
- - `requestHeaders`: HTTP request headers
294
- - `requestIp`: Client IP address
295
- - `baseUrl`: Component base URL
296
- - `acceptLanguage`: Client language preferences
297
- - `setHeader()`: Set response headers
298
- - `setEmptyResponse()`: Set empty response
299
- - `env`: Environment variables
300
- - `params`: Validated parameters
301
- - `plugins`: Available plugins
302
- - `templates`: Available templates
303
-
304
- ### Using setHeader() for Response Control
305
-
306
- The `setHeader()` method allows you to set HTTP response headers before the component is rendered. This is particularly useful for:
307
-
308
- - **Caching**: Set cache headers to reduce registry load and improve performance
309
- - **Security**: Set security headers like CSP, X-Frame-Options, etc.
310
- - **Content Type**: Override default content type if needed
311
- - **Custom Headers**: Set any custom headers for your use case
312
-
313
- #### Caching Example
314
-
315
- ```typescript
316
- .handler(async (params, ctx) => {
317
- // If the same parameters will produce the same result for a period of time,
318
- // you can cache the response to reduce registry load
319
- ctx.setHeader('Cache-Control', 'max-age=600'); // Cache for 10 minutes
320
-
321
- // Your handler logic here
322
- return { data: "cached response" };
323
- });
324
- ```
325
-
326
- This is especially useful when:
327
-
328
- - Component data doesn't change frequently for the same parameters
329
- - You want to reduce load on your backend services
330
- - You want to improve performance for repeated requests
331
- - The component output is deterministic for given parameters
332
-
333
- ## Remember
334
-
335
- Server-rendered microfrontends. Keep it simple, let server do heavy lifting.
@@ -1 +0,0 @@
1
- /// <reference types="oc-vite/client" />