oc 0.50.44 → 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 +3 -0
- package/dist/components/oc-client/_package/package.json +4 -4
- package/dist/components/oc-client/_package/server.js +1 -1
- package/dist/components/oc-client/package.json +1 -1
- package/dist/registry/domain/require-wrapper.js +4 -3
- package/logintervals.md +1 -1
- package/package.json +1 -1
- package/test-components/test/.cursor/rules/oc-project.mdc +0 -335
- package/test-components/test/oc-app.d.ts +0 -1
- package/test-components/test/package-lock.json +0 -5053
- package/test-components/test/package.json +0 -25
- package/test-components/test/public/logo.png +0 -0
- package/test-components/test/src/server.ts +0 -66
- package/test-components/test/src/styles.css +0 -30
- package/test-components/test/src/view.ts +0 -46
- package/test-components/test/tsconfig.json +0 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oc-client",
|
|
3
3
|
"description": "The OpenComponents client-side javascript client",
|
|
4
|
-
"version": "0.50.
|
|
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": "
|
|
26
|
+
"hashKey": "40a905d9727467b2c4eb6d3585c493a0d71c9030",
|
|
27
27
|
"src": "server.js",
|
|
28
28
|
"size": 644
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
-
"version": "0.50.
|
|
31
|
+
"version": "0.50.46",
|
|
32
32
|
"packaged": true,
|
|
33
|
-
"date":
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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 (
|
|
32
|
-
|
|
32
|
+
return (requireCoreDependency(requirePath) ||
|
|
33
|
+
requireDependency(requirePath) ||
|
|
33
34
|
throwError(requirePath));
|
|
34
35
|
};
|
package/logintervals.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"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"}]
|
|
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,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" />
|