@asyncapi/react-component 2.6.5 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/browser/index.js +1 -1
  2. package/browser/standalone/index.js +1 -1
  3. package/browser/standalone/without-parser.js +1 -1
  4. package/browser/without-parser.js +1 -1
  5. package/lib/cjs/components/PluginSlotRenderer.js +21 -0
  6. package/lib/cjs/components/PluginSlotRenderer.js.map +1 -0
  7. package/lib/cjs/constants.js +2 -1
  8. package/lib/cjs/constants.js.map +1 -1
  9. package/lib/cjs/containers/AsyncApi/AsyncApi.js +2 -2
  10. package/lib/cjs/containers/AsyncApi/AsyncApi.js.map +1 -1
  11. package/lib/cjs/containers/AsyncApi/Layout.js +15 -13
  12. package/lib/cjs/containers/AsyncApi/Layout.js.map +1 -1
  13. package/lib/cjs/containers/AsyncApi/Standalone.js +99 -3
  14. package/lib/cjs/containers/AsyncApi/Standalone.js.map +1 -1
  15. package/lib/cjs/containers/Info/Info.js +9 -1
  16. package/lib/cjs/containers/Info/Info.js.map +1 -1
  17. package/lib/cjs/containers/Operations/Operation.js +8 -1
  18. package/lib/cjs/containers/Operations/Operation.js.map +1 -1
  19. package/lib/cjs/contexts/usePlugin.js +10 -0
  20. package/lib/cjs/contexts/usePlugin.js.map +1 -0
  21. package/lib/cjs/helpers/pluginManager.js +116 -0
  22. package/lib/cjs/helpers/pluginManager.js.map +1 -0
  23. package/lib/cjs/index.js +3 -1
  24. package/lib/cjs/index.js.map +1 -1
  25. package/lib/cjs/types.js +6 -1
  26. package/lib/cjs/types.js.map +1 -1
  27. package/lib/esm/components/PluginSlotRenderer.js +15 -0
  28. package/lib/esm/components/PluginSlotRenderer.js.map +1 -0
  29. package/lib/esm/constants.js +1 -0
  30. package/lib/esm/constants.js.map +1 -1
  31. package/lib/esm/containers/AsyncApi/AsyncApi.js +2 -2
  32. package/lib/esm/containers/AsyncApi/AsyncApi.js.map +1 -1
  33. package/lib/esm/containers/AsyncApi/Layout.js +15 -13
  34. package/lib/esm/containers/AsyncApi/Layout.js.map +1 -1
  35. package/lib/esm/containers/AsyncApi/Standalone.js +99 -3
  36. package/lib/esm/containers/AsyncApi/Standalone.js.map +1 -1
  37. package/lib/esm/containers/Info/Info.js +9 -1
  38. package/lib/esm/containers/Info/Info.js.map +1 -1
  39. package/lib/esm/containers/Operations/Operation.js +9 -2
  40. package/lib/esm/containers/Operations/Operation.js.map +1 -1
  41. package/lib/esm/contexts/usePlugin.js +6 -0
  42. package/lib/esm/contexts/usePlugin.js.map +1 -0
  43. package/lib/esm/helpers/pluginManager.js +113 -0
  44. package/lib/esm/helpers/pluginManager.js.map +1 -0
  45. package/lib/esm/index.js +1 -0
  46. package/lib/esm/index.js.map +1 -1
  47. package/lib/esm/types.js +5 -0
  48. package/lib/esm/types.js.map +1 -1
  49. package/lib/types/components/PluginSlotRenderer.d.ts +11 -0
  50. package/lib/types/components/PluginSlotRenderer.d.ts.map +1 -0
  51. package/lib/types/constants.d.ts +1 -0
  52. package/lib/types/constants.d.ts.map +1 -1
  53. package/lib/types/containers/AsyncApi/AsyncApi.d.ts +5 -1
  54. package/lib/types/containers/AsyncApi/AsyncApi.d.ts.map +1 -1
  55. package/lib/types/containers/AsyncApi/Layout.d.ts +2 -0
  56. package/lib/types/containers/AsyncApi/Layout.d.ts.map +1 -1
  57. package/lib/types/containers/AsyncApi/Standalone.d.ts +13 -1
  58. package/lib/types/containers/AsyncApi/Standalone.d.ts.map +1 -1
  59. package/lib/types/containers/Info/Info.d.ts.map +1 -1
  60. package/lib/types/containers/Operations/Operation.d.ts.map +1 -1
  61. package/lib/types/contexts/usePlugin.d.ts +5 -0
  62. package/lib/types/contexts/usePlugin.d.ts.map +1 -0
  63. package/lib/types/helpers/pluginManager.d.ts +26 -0
  64. package/lib/types/helpers/pluginManager.d.ts.map +1 -0
  65. package/lib/types/index.d.ts +1 -1
  66. package/lib/types/index.d.ts.map +1 -1
  67. package/lib/types/types.d.ts +38 -0
  68. package/lib/types/types.d.ts.map +1 -1
  69. package/package.json +5 -4
package/lib/esm/types.js CHANGED
@@ -8,4 +8,9 @@ export var PayloadType;
8
8
  PayloadType["REQUEST"] = "request";
9
9
  PayloadType["REPLY"] = "reply";
10
10
  })(PayloadType || (PayloadType = {}));
11
+ export var PluginSlot;
12
+ (function (PluginSlot) {
13
+ PluginSlot["OPERATION"] = "operation";
14
+ PluginSlot["INFO"] = "info";
15
+ })(PluginSlot || (PluginSlot = {}));
11
16
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CACvC,MAAmB;IAEnB,OAAQ,MAAkC,CAAC,GAAG,KAAK,SAAS,CAAC;AAC/D,CAAC;AAYD,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;AACjB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB","sourcesContent":["import { AsyncAPIDocumentInterface, BaseModel } from '@asyncapi/parser';\n\nexport type PropsSchema =\n | string\n | FetchingSchemaInterface\n | AsyncAPIDocumentInterface\n | object;\n\nexport type NullableAsyncApi = AsyncAPIDocumentInterface | null;\n\nexport interface AsyncApiState {\n validatedSchema: NullableAsyncApi;\n error?: ErrorObject;\n}\n\nexport function isFetchingSchemaInterface(\n schema: PropsSchema,\n): schema is FetchingSchemaInterface {\n return (schema as FetchingSchemaInterface).url !== undefined;\n}\n\nexport interface FetchingSchemaInterface {\n url: string;\n requestOptions?: RequestInit;\n}\n\nexport interface ParserReturn {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nexport enum PayloadType {\n SEND = 'send',\n RECEIVE = 'receive',\n REQUEST = 'request',\n REPLY = 'reply',\n}\n\nexport interface MessageExample {\n name?: string;\n summary?: string;\n example: unknown;\n}\n\nexport interface ValidationError {\n title: string;\n location?: {\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n };\n}\n\nexport interface ErrorObject {\n type: string;\n title: string;\n detail?: string;\n parsedJSON?: unknown;\n validationErrors?: ValidationError[];\n location?: {\n startLine: number;\n startColumn: number;\n startOffset: number;\n };\n refs?: {\n title: string;\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n }[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ExtensionComponentProps<V = any> {\n propertyName: string;\n propertyValue: V;\n document: AsyncAPIDocumentInterface;\n parent: BaseModel;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,yBAAyB,CACvC,MAAmB;IAEnB,OAAQ,MAAkC,CAAC,GAAG,KAAK,SAAS,CAAC;AAC/D,CAAC;AAYD,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;AACjB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAsDD,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,qCAAuB,CAAA;IACvB,2BAAa,CAAA;AACf,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB","sourcesContent":["import { AsyncAPIDocumentInterface, BaseModel } from '@asyncapi/parser';\n\nexport type PropsSchema =\n | string\n | FetchingSchemaInterface\n | AsyncAPIDocumentInterface\n | object;\n\nexport type NullableAsyncApi = AsyncAPIDocumentInterface | null;\n\nexport interface AsyncApiState {\n validatedSchema: NullableAsyncApi;\n error?: ErrorObject;\n}\n\nexport function isFetchingSchemaInterface(\n schema: PropsSchema,\n): schema is FetchingSchemaInterface {\n return (schema as FetchingSchemaInterface).url !== undefined;\n}\n\nexport interface FetchingSchemaInterface {\n url: string;\n requestOptions?: RequestInit;\n}\n\nexport interface ParserReturn {\n asyncapi?: AsyncAPIDocumentInterface;\n error?: ErrorObject;\n}\n\nexport enum PayloadType {\n SEND = 'send',\n RECEIVE = 'receive',\n REQUEST = 'request',\n REPLY = 'reply',\n}\n\nexport interface MessageExample {\n name?: string;\n summary?: string;\n example: unknown;\n}\n\nexport interface ValidationError {\n title: string;\n location?: {\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n };\n}\n\nexport interface ErrorObject {\n type: string;\n title: string;\n detail?: string;\n parsedJSON?: unknown;\n validationErrors?: ValidationError[];\n location?: {\n startLine: number;\n startColumn: number;\n startOffset: number;\n };\n refs?: {\n title: string;\n jsonPointer: string;\n startLine: number;\n startColumn: number;\n startOffset: number;\n endLine: number;\n endColumn: number;\n endOffset: number;\n }[];\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ExtensionComponentProps<V = any> {\n propertyName: string;\n propertyValue: V;\n document: AsyncAPIDocumentInterface;\n parent: BaseModel;\n}\n\n// Plugin interface\n\nexport enum PluginSlot {\n OPERATION = 'operation',\n INFO = 'info',\n}\n\nexport interface PluginContext {\n schema?: PropsSchema;\n}\n\nexport interface ComponentSlotProps {\n context: PluginContext;\n onClose?: () => void;\n}\n\nexport interface AsyncApiPlugin {\n name: string;\n version: string;\n description?: string;\n\n install(api: PluginAPI): void;\n}\n\nexport type PluginInstance =\n | AsyncApiPlugin\n | React.ComponentType<ComponentSlotProps>;\n\nexport type EventListener = (...args: unknown[]) => void;\n\nexport interface MessageBus {\n on(eventName: string, callback: (data: unknown) => void): void;\n off(eventName: string, callback: (data: unknown) => void): void;\n emit(eventName: string, data: unknown): void;\n listeners(eventName: string): EventListener[];\n eventNames(): string[];\n}\n\nexport interface PluginAPI {\n registerComponent(\n slot: PluginSlot,\n component: React.ComponentType<ComponentSlotProps>,\n options?: { priority?: number; label?: string },\n ): void;\n\n onSpecLoaded(callback: (spec: unknown) => void): void;\n\n getContext(): PluginContext;\n\n on(eventName: string, callback: (data: unknown) => void): void;\n off(eventName: string, callback: (data: unknown) => void): void;\n emit(eventName: string, data: unknown): void;\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { PluginManager } from '../helpers/pluginManager';
3
+ import { PluginContext, PluginSlot } from '../types';
4
+ interface SlotRendererProps {
5
+ slot: PluginSlot;
6
+ context: PluginContext;
7
+ pluginManager?: PluginManager;
8
+ }
9
+ declare const SlotRenderer: React.FC<SlotRendererProps>;
10
+ export { SlotRenderer };
11
+ //# sourceMappingURL=PluginSlotRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginSlotRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/PluginSlotRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAErD,UAAU,iBAAiB;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2B7C,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -66,4 +66,5 @@ export declare const EXPAND_ERROR_BUTTON_TEXT = "Expand";
66
66
  export declare const COLLAPSE_ERROR_BUTTON_TEXT = "Collapse";
67
67
  export declare const SECURITY_TEXT = "Security";
68
68
  export declare const URL_VARIABLES_TEXT = "URL Variables";
69
+ export declare const PLUGINEVENTS: string[];
69
70
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  import React, { Component } from 'react';
2
2
  import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
3
- import { ErrorObject, PropsSchema } from '../../types';
3
+ import { ErrorObject, PropsSchema, AsyncApiPlugin } from '../../types';
4
4
  import { ConfigInterface } from '../../config';
5
+ import { PluginManager } from '../../helpers/pluginManager';
5
6
  export interface AsyncApiProps {
6
7
  schema: PropsSchema;
7
8
  config?: Partial<ConfigInterface>;
9
+ plugins?: AsyncApiPlugin[];
10
+ onPluginEvent?: (eventName: string, data: unknown) => void;
11
+ onPluginManagerReady?: (pluginManager: PluginManager) => void;
8
12
  }
9
13
  interface AsyncAPIState {
10
14
  asyncapi?: AsyncAPIDocumentInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncApi.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/AsyncApi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,EAEL,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACnC;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,cAAM,iBAAkB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrE,KAAK,EAAE,aAAa,CAGlB;IAEI,iBAAiB;IAOjB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAUjD,MAAM;YAcQ,WAAW;CAwB1B;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"AsyncApi.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/AsyncApi.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,EAEL,WAAW,EACX,WAAW,EACX,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/D;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,cAAM,iBAAkB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrE,KAAK,EAAE,aAAa,CAGlB;IAEI,iBAAiB;IAOjB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAUjD,MAAM;YAkBQ,WAAW;CAwB1B;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
2
  import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
3
3
  import { ConfigInterface } from '../../config';
4
+ import { PluginManager } from '../../helpers/pluginManager';
4
5
  interface Props {
5
6
  asyncapi: AsyncAPIDocumentInterface;
6
7
  config: ConfigInterface;
8
+ pluginManager?: PluginManager;
7
9
  }
8
10
  declare const AsyncApiLayout: React.FunctionComponent<Props>;
9
11
  export default AsyncApiLayout;
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAU7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAI/C,UAAU,KAAK;IACb,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAkDlD,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAU7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,UAAU,KAAK;IACb,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAqDlD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,22 +1,34 @@
1
1
  import React, { Component } from 'react';
2
2
  import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
3
- import { ErrorObject, PropsSchema } from '../../types';
3
+ import { AsyncApiPlugin, ErrorObject, PropsSchema } from '../../types';
4
4
  import { ConfigInterface } from '../../config';
5
+ import { PluginManager } from '../../helpers/pluginManager';
5
6
  export interface AsyncApiProps {
6
7
  schema: PropsSchema;
7
8
  config?: Partial<ConfigInterface>;
9
+ plugins?: AsyncApiPlugin[];
10
+ onPluginEvent?: (eventName: string, data: unknown) => void;
11
+ onPluginManagerReady?: (pluginManager: PluginManager) => void;
8
12
  error?: ErrorObject;
9
13
  }
10
14
  interface AsyncAPIState {
11
15
  asyncapi?: AsyncAPIDocumentInterface;
12
16
  error?: ErrorObject;
17
+ pm?: PluginManager;
13
18
  }
14
19
  declare class AsyncApiComponent extends Component<AsyncApiProps, AsyncAPIState> {
20
+ private readonly registeredPlugins;
21
+ private readonly propsPlugins;
15
22
  state: AsyncAPIState;
16
23
  constructor(props: AsyncApiProps);
17
24
  componentDidMount(): void;
18
25
  componentDidUpdate(prevProps: AsyncApiProps): void;
19
26
  render(): false | React.JSX.Element | null | undefined;
27
+ private handler;
28
+ private setupEventListeners;
29
+ private cleanupEventListeners;
30
+ private registerPlugins;
31
+ private updatePlugins;
20
32
  private updateState;
21
33
  }
22
34
  export default AsyncApiComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"Standalone.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAC;AAK9D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,cAAM,iBAAkB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrE,KAAK,EAAE,aAAa,CAGlB;gBAEU,KAAK,EAAE,aAAa;IAShC,iBAAiB;IAMjB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAS3C,MAAM;IA0CN,OAAO,CAAC,WAAW;CAQpB;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"Standalone.d.ts","sourceRoot":"","sources":["../../../../src/containers/AsyncApi/Standalone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAC;AAI9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9D,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,EAAE,CAAC,EAAE,aAAa,CAAC;CACpB;AAED,cAAM,iBAAkB,SAAQ,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,KAAK,EAAE,aAAa,CAMlB;gBAEU,KAAK,EAAE,aAAa;IAShC,iBAAiB;IAYjB,kBAAkB,CAAC,SAAS,EAAE,aAAa;IAmB3C,MAAM;IAgDN,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,WAAW;CASpB;AAED,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Info.d.ts","sourceRoot":"","sources":["../../../../src/containers/Info/Info.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,iBAmIxB,CAAC"}
1
+ {"version":3,"file":"Info.d.ts","sourceRoot":"","sources":["../../../../src/containers/Info/Info.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,iBA6IxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Operation.d.ts","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAexE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,UAAU,KAAK;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAwIpD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAsExD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAiI7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA+FpE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAiDpE,CAAC"}
1
+ {"version":3,"file":"Operation.d.ts","sourceRoot":"","sources":["../../../../src/containers/Operations/Operation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAexE,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAKtD,UAAU,KAAK;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAuIpD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAgFxD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAiI7D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CA+FpE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAiDpE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { PluginManager } from '../helpers/pluginManager';
3
+ export declare const PluginContext: import("react").Context<PluginManager | undefined>;
4
+ export declare function usePlugin(): PluginManager | undefined;
5
+ //# sourceMappingURL=usePlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePlugin.d.ts","sourceRoot":"","sources":["../../../src/contexts/usePlugin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,eAAO,MAAM,aAAa,oDAEzB,CAAC;AAEF,wBAAgB,SAAS,8BAExB"}
@@ -0,0 +1,26 @@
1
+ /// <reference types="react" />
2
+ import { AsyncApiPlugin, ComponentSlotProps, EventListener, MessageBus, PluginContext, PluginSlot } from '../types';
3
+ declare class PluginManager implements MessageBus {
4
+ private readonly plugins;
5
+ private readonly slotComponents;
6
+ private readonly eventListeners;
7
+ private context;
8
+ constructor(initialContext: PluginContext);
9
+ register(plugin: AsyncApiPlugin): void;
10
+ unregister(pluginName: string): void;
11
+ private createPluginAPI;
12
+ on(eventName: string, callback: (data: unknown) => void): void;
13
+ off(eventName: string, callback: (data: unknown) => void): void;
14
+ emit(eventName: string, data: unknown): void;
15
+ listeners(eventName: string): EventListener[];
16
+ eventNames(): string[];
17
+ getComponentsForSlot(slot: PluginSlot): React.ComponentType<ComponentSlotProps>[];
18
+ updateContext(updates: PluginContext): void;
19
+ getPlugin(name: string): AsyncApiPlugin | undefined;
20
+ listPlugins(): {
21
+ name: string;
22
+ version: string;
23
+ }[];
24
+ }
25
+ export { PluginManager };
26
+ //# sourceMappingURL=pluginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/pluginManager.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,UAAU,EAEV,aAAa,EACb,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,cAAM,aAAc,YAAW,UAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAQ3B;IACJ,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IACxE,OAAO,CAAC,OAAO,CAAgB;gBAEnB,cAAc,EAAE,aAAa;IAIzC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAWtC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBpC,OAAO,CAAC,eAAe;IAsCvB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAO9D,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAUxD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAOnD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE;IAK7C,UAAU,IAAI,MAAM,EAAE;IAItB,oBAAoB,CAClB,IAAI,EAAE,UAAU,GACf,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE;IAI5C,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAI3C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAInD,WAAW,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;CAMnD;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -2,7 +2,7 @@ import AsyncApiComponent from './containers/AsyncApi/AsyncApi';
2
2
  import AsyncApiComponentWP from './containers/AsyncApi/Standalone';
3
3
  export { AsyncApiProps } from './containers/AsyncApi/AsyncApi';
4
4
  export { ConfigInterface } from './config/config';
5
- export { FetchingSchemaInterface, ExtensionComponentProps } from './types';
5
+ export { FetchingSchemaInterface, ExtensionComponentProps, AsyncApiPlugin, PluginAPI, PluginSlot, PluginContext, } from './types';
6
6
  import { hljs } from './helpers';
7
7
  export { AsyncApiComponentWP, hljs };
8
8
  export default AsyncApiComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AACrC,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,cAAc,EACd,SAAS,EACT,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AACrC,eAAe,iBAAiB,CAAC"}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { AsyncAPIDocumentInterface, BaseModel } from '@asyncapi/parser';
2
3
  export type PropsSchema = string | FetchingSchemaInterface | AsyncAPIDocumentInterface | object;
3
4
  export type NullableAsyncApi = AsyncAPIDocumentInterface | null;
@@ -65,4 +66,41 @@ export interface ExtensionComponentProps<V = any> {
65
66
  document: AsyncAPIDocumentInterface;
66
67
  parent: BaseModel;
67
68
  }
69
+ export declare enum PluginSlot {
70
+ OPERATION = "operation",
71
+ INFO = "info"
72
+ }
73
+ export interface PluginContext {
74
+ schema?: PropsSchema;
75
+ }
76
+ export interface ComponentSlotProps {
77
+ context: PluginContext;
78
+ onClose?: () => void;
79
+ }
80
+ export interface AsyncApiPlugin {
81
+ name: string;
82
+ version: string;
83
+ description?: string;
84
+ install(api: PluginAPI): void;
85
+ }
86
+ export type PluginInstance = AsyncApiPlugin | React.ComponentType<ComponentSlotProps>;
87
+ export type EventListener = (...args: unknown[]) => void;
88
+ export interface MessageBus {
89
+ on(eventName: string, callback: (data: unknown) => void): void;
90
+ off(eventName: string, callback: (data: unknown) => void): void;
91
+ emit(eventName: string, data: unknown): void;
92
+ listeners(eventName: string): EventListener[];
93
+ eventNames(): string[];
94
+ }
95
+ export interface PluginAPI {
96
+ registerComponent(slot: PluginSlot, component: React.ComponentType<ComponentSlotProps>, options?: {
97
+ priority?: number;
98
+ label?: string;
99
+ }): void;
100
+ onSpecLoaded(callback: (spec: unknown) => void): void;
101
+ getContext(): PluginContext;
102
+ on(eventName: string, callback: (data: unknown) => void): void;
103
+ off(eventName: string, callback: (data: unknown) => void): void;
104
+ emit(eventName: string, data: unknown): void;
105
+ }
68
106
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,uBAAuB,GACvB,yBAAyB,GACzB,MAAM,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,IAAI,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,GAClB,MAAM,IAAI,uBAAuB,CAEnC;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACL;AAGD,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,uBAAuB,GACvB,yBAAyB,GACzB,MAAM,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,yBAAyB,GAAG,IAAI,CAAC;AAEhE,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,GAClB,MAAM,IAAI,uBAAuB,CAEnC;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACL;AAGD,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,SAAS,CAAC;CACnB;AAID,oBAAY,UAAU;IACpB,SAAS,cAAc;IACvB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/D,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,CAAC;IAC9C,UAAU,IAAI,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,iBAAiB,CACf,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAClD,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9C,IAAI,CAAC;IAER,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAEtD,UAAU,IAAI,aAAa,CAAC;IAE5B,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/D,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asyncapi/react-component",
3
- "version": "2.6.5",
3
+ "version": "3.0.0",
4
4
  "private": false,
5
5
  "description": "A React component for AsyncAPI specification.",
6
6
  "repository": {
@@ -84,7 +84,7 @@
84
84
  "react-dom": ">=18.0.0"
85
85
  },
86
86
  "devDependencies": {
87
- "@cypress/webpack-preprocessor": "^5.9.0",
87
+ "@cypress/webpack-preprocessor": "^7.0.2",
88
88
  "@tailwindcss/typography": "^0.4.0",
89
89
  "@testing-library/jest-dom": "^5.17.0",
90
90
  "@testing-library/react": "^15.0.4",
@@ -92,13 +92,14 @@
92
92
  "@types/dompurify": "^3.0.5",
93
93
  "@types/jest": "^26.0.23",
94
94
  "@types/marked": "^4.0.1",
95
- "@types/node": "^12.7.2",
95
+ "@types/node": "^18.0.0",
96
96
  "@types/react": "^18.2.79",
97
97
  "@types/react-dom": "^18.2.25",
98
+ "@types/testing-library__jest-dom": "^5.14.9",
98
99
  "autoprefixer": "^10.2.5",
99
100
  "cross-env": "^7.0.3",
100
101
  "cssnano": "^4.1.11",
101
- "cypress": "^7.4.0",
102
+ "cypress": "^13.17.0",
102
103
  "jest": "^26.0.0",
103
104
  "node-polyfill-webpack-plugin": "^2.0.1",
104
105
  "postcss": "^8.2.10",