oc 0.50.18 → 0.50.20

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,8 @@
1
1
  ## Change Log
2
2
 
3
+ ### v0.50.20
4
+ - [#1426](https://github.com/opencomponents/oc/pull/1426) plugins with context
5
+
3
6
  ### v0.50.18
4
7
  - [#1425](https://github.com/opencomponents/oc/pull/1425) hide log calls
5
8
  - [#1424](https://github.com/opencomponents/oc/pull/1424) add publisher field
@@ -1,5 +1,6 @@
1
1
  import type { Logger } from '../logger';
2
2
  interface PluginMock {
3
+ context: boolean;
3
4
  name: string;
4
5
  register: {
5
6
  register: (options: unknown, dependencies: unknown, next: () => void) => void;
@@ -22,6 +22,7 @@ const defaultRegister = (_options, _dependencies, next) => {
22
22
  const registerStaticMocks = (mocks, logger) => Object.entries(mocks).map(([pluginName, mockedValue]) => {
23
23
  logger.ok(`├── ${pluginName} () => ${mockedValue}`);
24
24
  return {
25
+ context: false,
25
26
  name: pluginName,
26
27
  register: {
27
28
  register: defaultRegister,
@@ -46,10 +47,12 @@ const registerDynamicMocks = (ocJsonLocation, mocks, logger) => Object.entries(m
46
47
  }
47
48
  const register = pluginMock.register || defaultRegister;
48
49
  const execute = pluginMock.execute || pluginMock;
50
+ const context = pluginMock.context || false;
49
51
  logger.ok(`├── ${pluginName} () => [Function]`);
50
52
  return {
51
53
  name: pluginName,
52
- register: { execute, register }
54
+ register: { execute, register },
55
+ context
53
56
  };
54
57
  })
55
58
  .filter((pluginMock) => !!pluginMock);
@@ -1,3 +1,4 @@
1
+ import * as oc from '../../index';
1
2
  import type { Local } from '../domain/local';
2
3
  import type { Logger } from '../logger';
3
4
  declare const dev: ({ local, logger }: {
@@ -65,7 +66,7 @@ declare const dev: ({ local, logger }: {
65
66
  error: Error;
66
67
  };
67
68
  }[T]) => void) => void;
68
- register: <T = any>(plugin: Omit<import("../../types").Plugin<T>, "callback">, callback?: ((...args: any[]) => void) | undefined) => void;
69
+ register: <T = any>(plugin: oc.Plugin<T>, callback?: ((...args: any[]) => void) | undefined) => void;
69
70
  start: (callback: (err: unknown, data?: {
70
71
  app: import("express").Express;
71
72
  server: import("http").Server;
@@ -133,7 +134,7 @@ declare const dev: ({ local, logger }: {
133
134
  error: Error;
134
135
  };
135
136
  }[T]) => void) => void;
136
- register: <T = any>(plugin: Omit<import("../../types").Plugin<T>, "callback">, callback?: ((...args: any[]) => void) | undefined) => void;
137
+ register: <T = any>(plugin: oc.Plugin<T>, callback?: ((...args: any[]) => void) | undefined) => void;
137
138
  start: (callback: (err: unknown, data?: {
138
139
  app: import("express").Express;
139
140
  server: import("http").Server;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oc-client",
3
3
  "description": "The OpenComponents client-side javascript client",
4
- "version": "0.50.18",
4
+ "version": "0.50.20",
5
5
  "repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
6
6
  "author": "Matteo Figus <matteofigus@gmail.com>",
7
7
  "oc": {
@@ -22,14 +22,14 @@
22
22
  ],
23
23
  "dataProvider": {
24
24
  "type": "node.js",
25
- "hashKey": "1fab05a3cc6389fa989186ef0423cd1954c254f5",
25
+ "hashKey": "6c04684995c79105e102a2b34156a266d131f858",
26
26
  "src": "server.js",
27
27
  "size": 613
28
28
  }
29
29
  },
30
- "version": "0.50.18",
30
+ "version": "0.50.20",
31
31
  "packaged": true,
32
- "date": 1755150772949
32
+ "date": 1755405773468
33
33
  },
34
34
  "devDependencies": {
35
35
  "oc-template-es6-compiler": "^1.0.1"
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=(t,s)=>{const{staticPath:e,templates:a}=t;return s(null,{staticPath:e,templates:a})},o=(t,s)=>{r(t,(e,a)=>{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.18"}),c=t.staticPath.indexOf("http")===0?t.staticPath:"https:"+t.staticPath;return s(null,Object.assign({},{component:{key:"8b7545cba94f7c029b9d46108bfe8e4e6040ea09",src:c+"template.js",props:n}}))})};exports.data=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=(t,s)=>{const{staticPath:e,templates:a}=t;return s(null,{staticPath:e,templates:a})},o=(t,s)=>{r(t,(e,a)=>{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.20"}),c=t.staticPath.indexOf("http")===0?t.staticPath:"https:"+t.staticPath;return s(null,Object.assign({},{component:{key:"8b7545cba94f7c029b9d46108bfe8e4e6040ea09",src:c+"template.js",props:n}}))})};exports.data=o;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oc-client",
3
3
  "description": "The OpenComponents client-side javascript client",
4
- "version": "0.50.18",
4
+ "version": "0.50.20",
5
5
  "repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
6
6
  "author": "Matteo Figus <matteofigus@gmail.com>",
7
7
  "oc": {
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { default as Client } from 'oc-client';
2
2
  export { default as cli } from './cli/programmatic-api';
3
3
  export { default as Registry, RegistryOptions } from './registry';
4
+ export type { Plugin, PluginContext } from './types';
@@ -1,7 +1,7 @@
1
1
  import { compileSync } from 'oc-client-browser';
2
2
  import type { Config } from '../../types';
3
3
  type CompileOptions = Omit<Exclude<Parameters<typeof compileSync>[0], undefined>, 'templates'>;
4
- export interface RegistryOptions<T = any> extends Partial<Omit<Config<T>, 'beforePublish' | 'discovery'>> {
4
+ export interface RegistryOptions<T = any> extends Partial<Omit<Config<T>, 'beforePublish' | 'discovery' | 'plugins'>> {
5
5
  /**
6
6
  * Configuration object to enable/disable the HTML discovery page and the API
7
7
  *
@@ -1,3 +1,2 @@
1
- type PluginFunctions = Record<string, (...args: unknown[]) => void>;
2
- export declare function init(pluginsToRegister: unknown[]): Promise<PluginFunctions>;
3
- export {};
1
+ import type { Plugins } from '../../types';
2
+ export declare function init(pluginsToRegister: unknown[]): Promise<Plugins>;
@@ -74,10 +74,11 @@ async function init(pluginsToRegister) {
74
74
  pluginCallback(err);
75
75
  throw err;
76
76
  });
77
- // Overriding toString so implementation details of plugins do not
78
- // leak to OC consumers
79
- plugin.register.execute.toString = () => plugin.description || '';
80
- registered[plugin.name] = plugin.register.execute;
77
+ registered[plugin.name] = {
78
+ handler: plugin.register.execute,
79
+ description: plugin.description || '',
80
+ context: plugin.context || false
81
+ };
81
82
  pluginCallback();
82
83
  };
83
84
  const terminator = async () => {
@@ -52,7 +52,7 @@ export default function registry<T = any>(inputOptions: RegistryOptions<T>): {
52
52
  error: Error;
53
53
  };
54
54
  }[T_1]) => void) => void;
55
- register: <T_1 = any>(plugin: Omit<Plugin<T_1>, "callback">, callback?: (...args: any[]) => void) => void;
55
+ register: <T_1 = any>(plugin: Plugin<T_1>, callback?: (...args: any[]) => void) => void;
56
56
  start: (callback: (err: unknown, data?: {
57
57
  app: express.Express;
58
58
  server: http.Server;
@@ -69,9 +69,9 @@ function registry(inputOptions) {
69
69
  };
70
70
  const start = async (callback) => {
71
71
  const ok = (msg) => console.log(safe_1.default.green(msg));
72
- (0, router_1.create)(app, options, repository);
73
72
  try {
74
73
  options.plugins = await pluginsInitialiser.init(plugins);
74
+ (0, router_1.create)(app, options, repository);
75
75
  const componentsInfo = await repository.init();
76
76
  await (0, app_start_1.default)(repository, options);
77
77
  server = node_http_1.default.createServer(app);
@@ -41,10 +41,9 @@ const bind = (app, options) => {
41
41
  app.use(discovery_handler_1.default);
42
42
  if (options.verbosity) {
43
43
  app.use((0, morgan_1.default)('dev', {
44
- skip: (req) => {
44
+ skip: (req, res) => {
45
45
  // Hide logging development console calls
46
- return (req.method === 'POST' &&
47
- req.url.startsWith('/~actions/$$__oc__server___console__$$'));
46
+ return req.url.startsWith(`${res.conf.prefix}~actions/$$__oc__server___console__$$`);
48
47
  }
49
48
  }));
50
49
  }
@@ -62,12 +62,49 @@ const get_component_retrieving_info_1 = __importDefault(require("./get-component
62
62
  exports.stream = Symbol('stream');
63
63
  const noop = () => { };
64
64
  const noopConsole = Object.fromEntries(Object.keys(console).map((key) => [key, noop]));
65
+ /**
66
+ * Converts the plugins to a function that returns a record of plugins with the context applied
67
+ * Caches the plugins without context and applies the context to the plugins that need it
68
+ * to avoid creating a new function for each component if possible
69
+ * @param plugins - The plugins to convert
70
+ * @returns A function that returns a record of plugins with the context applied
71
+ */
72
+ function pluginConverter(plugins = {}) {
73
+ const pluginsMap = {
74
+ withoutContext: {},
75
+ withContext: {},
76
+ needsContext: false
77
+ };
78
+ for (const [name, { handler, context }] of Object.entries(plugins)) {
79
+ if (context) {
80
+ pluginsMap.withContext[name] = handler;
81
+ pluginsMap.needsContext = true;
82
+ }
83
+ else {
84
+ pluginsMap.withoutContext[name] = handler;
85
+ }
86
+ }
87
+ return (ctx) => {
88
+ if (!pluginsMap.needsContext) {
89
+ return pluginsMap.withoutContext;
90
+ }
91
+ const pluginsWithContextApplied = {};
92
+ for (const [name, handler] of Object.entries(pluginsMap.withContext)) {
93
+ pluginsWithContextApplied[name] = handler(ctx);
94
+ }
95
+ return {
96
+ ...pluginsMap.withoutContext,
97
+ ...pluginsWithContextApplied
98
+ };
99
+ };
100
+ }
65
101
  function getComponent(conf, repository) {
66
102
  const client = (0, oc_client_1.default)({ templates: conf.templates });
67
103
  const cache = new nice_cache_1.default({
68
104
  verbose: !!conf.verbosity,
69
105
  refreshInterval: conf.refreshInterval
70
106
  });
107
+ const convertPlugins = pluginConverter(conf.plugins);
71
108
  const getEnv = async (component) => {
72
109
  const cacheKey = `${component.name}/${component.version}/.env`;
73
110
  const cached = cache.get('file-contents', cacheKey);
@@ -376,7 +413,10 @@ function getComponent(conf, repository) {
376
413
  baseUrl: conf.baseUrl,
377
414
  env: { ...conf.env, ...env },
378
415
  params,
379
- plugins: conf.plugins,
416
+ plugins: convertPlugins({
417
+ name: component.name,
418
+ version: component.version
419
+ }),
380
420
  renderComponent: (0, universalify_1.fromPromise)(nestedRenderer.renderComponent),
381
421
  renderComponents: (0, universalify_1.fromPromise)(nestedRenderer.renderComponents),
382
422
  requestHeaders: options.headers,
@@ -4,9 +4,9 @@ exports.default = plugins;
4
4
  function plugins(conf) {
5
5
  return (_req, res) => {
6
6
  if (res.conf.discovery.ui) {
7
- const plugins = Object.entries(conf.plugins).map(([pluginName, pluginFn]) => ({
7
+ const plugins = Object.entries(conf.plugins).map(([pluginName, plugin]) => ({
8
8
  name: pluginName,
9
- description: pluginFn.toString()
9
+ description: plugin.description
10
10
  }));
11
11
  res.status(200).json(plugins);
12
12
  }
@@ -19,8 +19,8 @@ function indexView(vm) {
19
19
  const scripts = `<script>
20
20
  var q = "${encodeURIComponent(vm.q)}", componentsList = ${JSON.stringify(vm.componentsList)};
21
21
  ${index_1.default}</script>`;
22
- return ((0, jsx_runtime_1.jsxs)(layout_1.default, { scripts: scripts, href: vm.href, title: vm.title, children: [(0, jsx_runtime_1.jsx)(property_1.default, { display: "Base url", value: vm.href, linked: true }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Version", value: vm.ocVersion }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Components", value: `${vm.components.length} (${getCount('experimental')} experimental, ${getCount('deprecated')} deprecated)` }), !isLocal ? ((0, jsx_runtime_1.jsx)(property_1.default, { display: "Components releases", value: vm.componentsReleases })) : (''), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Registry type", value: isLocal ? 'Local dev registry' : 'On-line registry' }), (0, jsx_runtime_1.jsxs)("h2", { id: "menuList", children: [(0, jsx_runtime_1.jsx)("a", { href: "#components-list", class: "tab-link", children: "Components" }), !isLocal ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-history", class: "tab-link", children: "History" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-templates", class: "tab-link", children: "Available templates" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-dependencies", class: "tab-link", children: "Available dependencies" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-plugins", class: "tab-link", children: "Available plugins" })] })) : ('')] }), (0, jsx_runtime_1.jsx)(components_list_1.default, { type: vm.type, components: vm.components, stateCounts: vm.stateCounts }), (0, jsx_runtime_1.jsx)(components_history_1.default, {}), (0, jsx_runtime_1.jsx)(components_templates_1.default, { templates: vm.templates }), (0, jsx_runtime_1.jsx)(components_dependencies_1.default, { availableDependencies: vm.availableDependencies }), (0, jsx_runtime_1.jsx)(components_plugins_1.default, { availablePlugins: Object.fromEntries(Object.entries(vm.availablePlugins).map(([name, fn]) => [
22
+ return ((0, jsx_runtime_1.jsxs)(layout_1.default, { scripts: scripts, href: vm.href, title: vm.title, children: [(0, jsx_runtime_1.jsx)(property_1.default, { display: "Base url", value: vm.href, linked: true }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Version", value: vm.ocVersion }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Components", value: `${vm.components.length} (${getCount('experimental')} experimental, ${getCount('deprecated')} deprecated)` }), !isLocal ? ((0, jsx_runtime_1.jsx)(property_1.default, { display: "Components releases", value: vm.componentsReleases })) : (''), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Registry type", value: isLocal ? 'Local dev registry' : 'On-line registry' }), (0, jsx_runtime_1.jsxs)("h2", { id: "menuList", children: [(0, jsx_runtime_1.jsx)("a", { href: "#components-list", class: "tab-link", children: "Components" }), !isLocal ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-history", class: "tab-link", children: "History" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-templates", class: "tab-link", children: "Available templates" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-dependencies", class: "tab-link", children: "Available dependencies" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-plugins", class: "tab-link", children: "Available plugins" })] })) : ('')] }), (0, jsx_runtime_1.jsx)(components_list_1.default, { type: vm.type, components: vm.components, stateCounts: vm.stateCounts }), (0, jsx_runtime_1.jsx)(components_history_1.default, {}), (0, jsx_runtime_1.jsx)(components_templates_1.default, { templates: vm.templates }), (0, jsx_runtime_1.jsx)(components_dependencies_1.default, { availableDependencies: vm.availableDependencies }), (0, jsx_runtime_1.jsx)(components_plugins_1.default, { availablePlugins: Object.fromEntries(Object.entries(vm.availablePlugins).map(([name, { description }]) => [
23
23
  name,
24
- fn.toString()
24
+ description
25
25
  ])) })] }));
26
26
  }
@@ -111,5 +111,5 @@ function Info(vm) {
111
111
  </script>
112
112
  ${statsAvailable ? statsJs(vm.component.name, vm.componentDetail) : ''}
113
113
  `;
114
- return ((0, jsx_runtime_1.jsxs)(layout_1.default, { scripts: scripts, href: href, title: vm.title, children: [(0, jsx_runtime_1.jsx)("a", { class: "back", href: href, children: "<< All components" }), (0, jsx_runtime_1.jsxs)("h2", { children: [component.name, " \u00A0", (0, jsx_runtime_1.jsx)(component_versions_1.default, { versions: component.allVersions, selectedVersion: component.version })] }), (0, jsx_runtime_1.jsxs)("p", { class: "w-100", children: [component.description, " ", componentState()] }), statsAvailable ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h3", { children: "Stats" }), (0, jsx_runtime_1.jsx)("canvas", { id: "stats", width: "400", height: "200" })] })) : (''), (0, jsx_runtime_1.jsx)("h3", { children: "Component Info" }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Repository", value: repositoryUrl || 'not available', linked: !!repositoryUrl }), (0, jsx_runtime_1.jsx)(component_author_1.default, { name: vm.parsedAuthor.name, email: vm.parsedAuthor.email, url: vm.parsedAuthor.url }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Publish date", value: publishDate }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Publish agent", value: publishAgent }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Template", value: template }), (0, jsx_runtime_1.jsx)(ShowArray, { title: "Node.js dependencies", arr: dependencies }), (0, jsx_runtime_1.jsx)(ShowArray, { title: "Plugin dependencies", arr: component.oc.plugins }), component.oc.files.template.size ? ((0, jsx_runtime_1.jsx)(property_1.default, { display: "Template size", value: `${Math.round(component.oc.files.template.size / 1024)} kb` })) : (''), (0, jsx_runtime_1.jsx)(component_parameters_1.default, { parameters: component.oc.parameters }), (0, jsx_runtime_1.jsx)("h3", { children: "Code" }), (0, jsx_runtime_1.jsxs)("p", { children: ["You can edit the following area and then", (0, jsx_runtime_1.jsxs)("a", { href: "#refresh", class: "refresh-preview", children: [' ', "refresh", ' '] }), "to apply the change into the preview window."] }), (0, jsx_runtime_1.jsx)("div", { class: "field", children: (0, jsx_runtime_1.jsx)("p", { children: "Component's href:" }) }), (0, jsx_runtime_1.jsx)("textarea", { class: "w-100", id: "href", placeholder: "Insert component href here", readonly: true, children: componentHref }), (0, jsx_runtime_1.jsx)("div", { class: "field", children: (0, jsx_runtime_1.jsx)("p", { children: "Accept-Language header:" }) }), (0, jsx_runtime_1.jsx)("input", { class: "w-100", id: "lang", type: "text", value: "*", readonly: true }), (0, jsx_runtime_1.jsxs)("h3", { children: ["Preview ", '( ', (0, jsx_runtime_1.jsx)("a", { class: "refresh-preview", href: "#refresh", children: "Refresh" }), ' | ', (0, jsx_runtime_1.jsx)("a", { class: "open-preview", href: "#open", children: "Open" }), ' )'] }), (0, jsx_runtime_1.jsx)("iframe", { class: "preview", src: `~preview/${sandBoxDefaultQs}`, title: "Component Preview" })] }));
114
+ return ((0, jsx_runtime_1.jsxs)(layout_1.default, { scripts: scripts, href: href, title: vm.title, children: [(0, jsx_runtime_1.jsx)("a", { class: "back", href: href, children: "<< All components" }), (0, jsx_runtime_1.jsxs)("h2", { children: [component.name, " \u00A0", (0, jsx_runtime_1.jsx)(component_versions_1.default, { versions: component.allVersions, selectedVersion: component.version })] }), (0, jsx_runtime_1.jsxs)("p", { class: "w-100", children: [component.description, " ", componentState()] }), statsAvailable ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h3", { children: "Stats" }), (0, jsx_runtime_1.jsx)("canvas", { id: "stats", width: "400", height: "200" })] })) : (''), (0, jsx_runtime_1.jsx)("h3", { children: "Component Info" }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Repository", value: repositoryUrl || 'not available', linked: !!repositoryUrl }), (0, jsx_runtime_1.jsx)(component_author_1.default, { name: vm.parsedAuthor.name, email: vm.parsedAuthor.email, url: vm.parsedAuthor.url }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Publish date", value: publishDate }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Publish agent", value: publishAgent }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Template", value: template }), (0, jsx_runtime_1.jsx)(ShowArray, { title: "Node.js dependencies", arr: dependencies }), (0, jsx_runtime_1.jsx)(ShowArray, { title: "Plugin dependencies", arr: component.oc.plugins }), component.oc.files.template.size ? ((0, jsx_runtime_1.jsx)(property_1.default, { display: "Template size", value: `${Math.round(component.oc.files.template.size / 1024)} kb` })) : (''), (0, jsx_runtime_1.jsx)(component_parameters_1.default, { parameters: component.oc.parameters }), (0, jsx_runtime_1.jsx)("h3", { children: "Code" }), (0, jsx_runtime_1.jsxs)("p", { children: ["You can edit the following area and then", (0, jsx_runtime_1.jsxs)("a", { href: "#refresh", class: "refresh-preview", children: [' ', "refresh", ' '] }), "to apply the change into the preview window."] }), (0, jsx_runtime_1.jsx)("div", { class: "field", children: (0, jsx_runtime_1.jsx)("p", { children: "Component's href:" }) }), (0, jsx_runtime_1.jsx)("textarea", { class: "w-100", id: "href", placeholder: "Insert component href here", children: componentHref }), (0, jsx_runtime_1.jsx)("div", { class: "field", children: (0, jsx_runtime_1.jsx)("p", { children: "Accept-Language header:" }) }), (0, jsx_runtime_1.jsx)("input", { class: "w-100", id: "lang", type: "text", value: "*", readonly: true }), (0, jsx_runtime_1.jsxs)("h3", { children: ["Preview ", '( ', (0, jsx_runtime_1.jsx)("a", { class: "refresh-preview", href: "#refresh", children: "Refresh" }), ' | ', (0, jsx_runtime_1.jsx)("a", { class: "open-preview", href: "#open", children: "Open" }), ' )'] }), (0, jsx_runtime_1.jsx)("iframe", { class: "preview", src: `~preview/${sandBoxDefaultQs}`, title: "Component Preview" })] }));
115
115
  }
package/dist/types.d.ts CHANGED
@@ -100,7 +100,7 @@ export interface VM {
100
100
  version: string;
101
101
  link: string;
102
102
  }>;
103
- availablePlugins: Record<string, (...args: unknown[]) => void>;
103
+ availablePlugins: Plugins;
104
104
  components: ParsedComponent[];
105
105
  componentsList: ComponentList[];
106
106
  componentsReleases: number;
@@ -272,7 +272,7 @@ export interface Config<T = any> {
272
272
  * Collection of plugins initialised for this registry instance.
273
273
  * Populated via `registry.register(...)`.
274
274
  */
275
- plugins: Record<string, (...args: unknown[]) => void>;
275
+ plugins: Plugins;
276
276
  /**
277
277
  * Seconds between each poll of the storage adapter for changes.
278
278
  *
@@ -382,16 +382,65 @@ export interface Template {
382
382
  getInfo: () => TemplateInfo;
383
383
  render: (options: any, cb: (err: Error | null, data: string) => void) => void;
384
384
  }
385
- export interface Plugin<T = any> {
386
- callback?: (error?: unknown) => void;
385
+ interface BasePLugin<T = any> {
387
386
  description?: string;
388
387
  name: string;
389
388
  options?: T;
389
+ register: {
390
+ register: (options: T, dependencies: any, next: (error?: Error) => void) => void;
391
+ dependencies?: string[];
392
+ };
393
+ }
394
+ /**
395
+ * The context object passed to the plugin's execute function
396
+ */
397
+ export type PluginContext = {
398
+ /**
399
+ * The name of the component calling the plugin
400
+ */
401
+ name: string;
402
+ /**
403
+ * The version of the component calling the plugin
404
+ */
405
+ version: string;
406
+ };
407
+ export type Plugin<T = any> = BasePLugin<T> & ({
408
+ /**
409
+ * When false or undefined, the plugin's execute function will be called directly.
410
+ * The execute function should accept any parameters and return any value.
411
+ */
412
+ context?: false | undefined;
390
413
  register: {
391
414
  register: (options: T, dependencies: any, next: (error?: Error) => void) => void;
392
415
  execute: (...args: any[]) => any;
393
416
  dependencies?: string[];
394
417
  };
418
+ } | {
419
+ /**
420
+ * When true, the plugin's execute function will be called with a context object containing
421
+ * the component name and version. It should return a function that accepts parameters and returns any value.
422
+ * @example
423
+ * ```ts
424
+ * {
425
+ * register: {
426
+ * execute: (...args: any[]) => any
427
+ * }
428
+ * }
429
+ * ```
430
+ */
431
+ context: true;
432
+ register: {
433
+ register: (options: T, dependencies: any, next: (error?: Error) => void) => void;
434
+ execute: (context: PluginContext) => (params: any) => any;
435
+ dependencies?: string[];
436
+ };
437
+ });
438
+ export interface Plugins {
439
+ [pluginName: string]: {
440
+ handler: (...args: unknown[]) => void;
441
+ description: string;
442
+ context: boolean;
443
+ };
395
444
  }
396
445
  declare global {
397
446
  namespace Express {
package/logintervals.md CHANGED
@@ -1 +1 @@
1
- [{"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.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.18",
3
+ "version": "0.50.20",
4
4
  "description": "A framework for developing and distributing html components",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",