@chili-publish/studio-sdk 1.44.1 → 1.46.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 (113) hide show
  1. package/_bundles/main.js +2 -2
  2. package/_bundles/main.js.map +1 -1
  3. package/lib/src/controllers/BrandKitController.cjs.js +13 -64
  4. package/lib/src/controllers/BrandKitController.cjs.js.map +1 -1
  5. package/lib/src/controllers/BrandKitController.d.ts +22 -30
  6. package/lib/src/controllers/BrandKitController.es.js +13 -64
  7. package/lib/src/controllers/BrandKitController.es.js.map +1 -1
  8. package/lib/src/controllers/ComponentController.cjs.js +4 -0
  9. package/lib/src/controllers/ComponentController.cjs.js.map +1 -1
  10. package/lib/src/controllers/ComponentController.d.ts +7 -1
  11. package/lib/src/controllers/ComponentController.es.js +4 -0
  12. package/lib/src/controllers/ComponentController.es.js.map +1 -1
  13. package/lib/src/controllers/ConnectorController.cjs.js.map +1 -1
  14. package/lib/src/controllers/ConnectorController.d.ts +5 -5
  15. package/lib/src/controllers/ConnectorController.es.js.map +1 -1
  16. package/lib/src/controllers/SubscriberController.cjs.js +3 -0
  17. package/lib/src/controllers/SubscriberController.cjs.js.map +1 -1
  18. package/lib/src/controllers/SubscriberController.d.ts +7 -0
  19. package/lib/src/controllers/SubscriberController.es.js +3 -0
  20. package/lib/src/controllers/SubscriberController.es.js.map +1 -1
  21. package/lib/src/exceptions/AsyncExceptions.cjs.js.map +1 -1
  22. package/lib/src/exceptions/AsyncExceptions.d.ts +1 -0
  23. package/lib/src/exceptions/AsyncExceptions.es.js.map +1 -1
  24. package/lib/src/exceptions/Helpers.cjs.js.map +1 -1
  25. package/lib/src/exceptions/Helpers.es.js.map +1 -1
  26. package/lib/src/index.cjs.js +3 -2
  27. package/lib/src/index.cjs.js.map +1 -1
  28. package/lib/src/index.d.ts +2 -1
  29. package/lib/src/index.es.js +2 -1
  30. package/lib/src/interactions/Connector.cjs.js +2 -1
  31. package/lib/src/interactions/Connector.cjs.js.map +1 -1
  32. package/lib/src/interactions/Connector.d.ts +1 -0
  33. package/lib/src/interactions/Connector.es.js +2 -1
  34. package/lib/src/interactions/Connector.es.js.map +1 -1
  35. package/lib/src/next/NextInitiator.cjs.js +0 -2
  36. package/lib/src/next/NextInitiator.cjs.js.map +1 -1
  37. package/lib/src/next/NextInitiator.d.ts +0 -2
  38. package/lib/src/next/NextInitiator.es.js +0 -2
  39. package/lib/src/next/NextInitiator.es.js.map +1 -1
  40. package/lib/src/next/index.d.ts +0 -1
  41. package/lib/src/sdk/editor-engine.json.cjs.js +1 -1
  42. package/lib/src/sdk/editor-engine.json.es.js +1 -1
  43. package/lib/src/sdk/package.json.cjs.js +1 -1
  44. package/lib/src/sdk/package.json.es.js +1 -1
  45. package/lib/src/sdk.cjs.js +118 -79
  46. package/lib/src/sdk.cjs.js.map +1 -1
  47. package/lib/src/sdk.d.ts +52 -34
  48. package/lib/src/sdk.es.js +118 -79
  49. package/lib/src/sdk.es.js.map +1 -1
  50. package/lib/src/types/BrandKitTypes.d.ts +70 -108
  51. package/lib/src/types/ColorStyleTypes.cjs.js +10 -0
  52. package/lib/src/types/ColorStyleTypes.cjs.js.map +1 -1
  53. package/lib/src/types/ColorStyleTypes.es.js +10 -0
  54. package/lib/src/types/ColorStyleTypes.es.js.map +1 -1
  55. package/lib/src/types/CommonTypes.cjs.js +1 -0
  56. package/lib/src/types/CommonTypes.cjs.js.map +1 -1
  57. package/lib/src/types/CommonTypes.d.ts +12 -1
  58. package/lib/src/types/CommonTypes.es.js +1 -0
  59. package/lib/src/types/CommonTypes.es.js.map +1 -1
  60. package/lib/src/types/ComponentGridTypes.cjs.js.map +1 -1
  61. package/lib/src/types/ComponentGridTypes.es.js.map +1 -1
  62. package/lib/src/types/ConnectorTypes.cjs.js +6 -2
  63. package/lib/src/types/ConnectorTypes.cjs.js.map +1 -1
  64. package/lib/src/types/ConnectorTypes.d.ts +10 -1
  65. package/lib/src/types/ConnectorTypes.es.js +6 -2
  66. package/lib/src/types/ConnectorTypes.es.js.map +1 -1
  67. package/lib/src/types/FrameTypes.cjs.js.map +1 -1
  68. package/lib/src/types/FrameTypes.d.ts +2 -4
  69. package/lib/src/types/FrameTypes.es.js.map +1 -1
  70. package/lib/src/types/MethodInvocationTypes.d.ts +27 -0
  71. package/lib/src/types/RichTextRuleTypes.cjs.js.map +1 -1
  72. package/lib/src/types/RichTextRuleTypes.es.js.map +1 -1
  73. package/lib/src/types/ShapeTypes.cjs.js +1 -0
  74. package/lib/src/types/ShapeTypes.cjs.js.map +1 -1
  75. package/lib/src/types/ShapeTypes.d.ts +12 -2
  76. package/lib/src/types/ShapeTypes.es.js +1 -0
  77. package/lib/src/types/ShapeTypes.es.js.map +1 -1
  78. package/lib/src/utils/ConfigHelper.cjs.js +4 -0
  79. package/lib/src/utils/ConfigHelper.cjs.js.map +1 -1
  80. package/lib/src/utils/ConfigHelper.es.js +4 -0
  81. package/lib/src/utils/ConfigHelper.es.js.map +1 -1
  82. package/lib/src/utils/EngineEventTrigger.cjs.js +4 -1
  83. package/lib/src/utils/EngineEventTrigger.cjs.js.map +1 -1
  84. package/lib/src/utils/EngineEventTrigger.d.ts +2 -1
  85. package/lib/src/utils/EngineEventTrigger.es.js +5 -2
  86. package/lib/src/utils/EngineEventTrigger.es.js.map +1 -1
  87. package/lib/src/utils/MethodInstrumentation.cjs.js +176 -0
  88. package/lib/src/utils/MethodInstrumentation.cjs.js.map +1 -0
  89. package/lib/src/utils/MethodInstrumentation.d.ts +10 -0
  90. package/lib/src/utils/MethodInstrumentation.es.js +176 -0
  91. package/lib/src/utils/MethodInstrumentation.es.js.map +1 -0
  92. package/lib/src/utils/SdkEvent.cjs.js +29 -0
  93. package/lib/src/utils/SdkEvent.cjs.js.map +1 -0
  94. package/lib/src/utils/SdkEvent.d.ts +13 -0
  95. package/lib/src/utils/SdkEvent.es.js +29 -0
  96. package/lib/src/utils/SdkEvent.es.js.map +1 -0
  97. package/lib/src/utils/SdkEvents.cjs.js +11 -0
  98. package/lib/src/utils/SdkEvents.cjs.js.map +1 -0
  99. package/lib/src/utils/SdkEvents.d.ts +19 -0
  100. package/lib/src/utils/SdkEvents.es.js +11 -0
  101. package/lib/src/utils/SdkEvents.es.js.map +1 -0
  102. package/package.json +1 -1
  103. package/lib/src/next/controllers/BrandKitController.cjs.js +0 -34
  104. package/lib/src/next/controllers/BrandKitController.cjs.js.map +0 -1
  105. package/lib/src/next/controllers/BrandKitController.d.ts +0 -24
  106. package/lib/src/next/controllers/BrandKitController.es.js +0 -34
  107. package/lib/src/next/controllers/BrandKitController.es.js.map +0 -1
  108. package/lib/src/next/types/BrandKitTypes.d.ts +0 -52
  109. package/lib/src/utils/BrandKitAdapter.cjs.js +0 -42
  110. package/lib/src/utils/BrandKitAdapter.cjs.js.map +0 -1
  111. package/lib/src/utils/BrandKitAdapter.d.ts +0 -9
  112. package/lib/src/utils/BrandKitAdapter.es.js +0 -42
  113. package/lib/src/utils/BrandKitAdapter.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.cjs.js","sources":["../../src/sdk.ts"],"sourcesContent":["import { Connection } from 'penpal';\nimport engineInfo from '../editor-engine.json';\nimport packageInfo from '../package.json';\nimport Connect from './interactions/Connector';\nimport { defaultStudioOptions, WellKnownConfigurationKeys } from './types/ConfigurationTypes';\n\nimport type { ConfigType, EditorAPI, RuntimeConfigType } from './types/CommonTypes';\nimport { DocumentType } from './types/DocumentTypes';\n\nimport { ActionController } from './controllers/ActionController';\nimport { AnimationController } from './controllers/AnimationController';\nimport { BarcodeController } from './controllers/BarcodeController';\nimport { BrandKitController } from './controllers/BrandKitController';\nimport { CanvasController } from './controllers/CanvasController';\nimport { CharacterStyleController } from './controllers/CharacterStyleController';\nimport { ClipboardController } from './controllers/ClipboardController';\nimport { ColorConversionController } from './controllers/ColorConversionController';\nimport { ColorStyleController } from './controllers/ColorStyleController';\nimport { ConfigurationController } from './controllers/ConfigurationController';\nimport { ConnectorController } from './controllers/ConnectorController';\nimport { DataConnectorController } from './controllers/DataConnectorController';\nimport { DataSourceController } from './controllers/DataSourceController';\nimport { DebugController } from './controllers/DebugController';\nimport { DocumentController } from './controllers/DocumentController';\nimport { ExperimentController } from './controllers/ExperimentController';\nimport { FontConnectorController } from './controllers/FontConnectorController';\nimport { FontController } from './controllers/FontController';\nimport { FrameController } from './controllers/FrameController';\nimport { InfoController } from './controllers/InfoController';\nimport { LayoutController } from './controllers/LayoutController';\nimport { MediaConnectorController } from './controllers/MediaConnectorController';\nimport { PageController } from './controllers/PageController';\nimport { ParagraphStyleController } from './controllers/ParagraphStyleController';\nimport { ShapeController } from './controllers/ShapeController';\nimport { SubscriberController } from './controllers/SubscriberController';\nimport { TextStyleController } from './controllers/TextStyleController';\nimport { ToolController } from './controllers/ToolController';\nimport { UndoManagerController } from './controllers/UndoManagerController';\nimport { UtilsController } from './controllers/UtilsController';\nimport { VariableController } from './controllers/VariableController';\nimport { NextSubscribers } from './next';\nimport { NextInitiator } from './next/NextInitiator';\nimport { ConfigHelper } from './utils/ConfigHelper';\nimport { DataItemMappingTools } from './utils/DataItemMappingTools';\nimport { LocalConfigurationDecorator } from './utils/LocalConfigurationDecorator';\nimport { GradientStyleController } from './controllers/GradientStyleController';\nimport { ComponentConnectorController } from './controllers/ComponentConnectorController';\nimport { ComponentController } from './controllers/ComponentController';\nimport { ComponentGridController } from './controllers/ComponentGridController';\n\ndeclare const __ENGINE_DOMAIN__: string;\nconst ENGINE_DOMAIN = typeof __ENGINE_DOMAIN__ !== 'undefined' ? __ENGINE_DOMAIN__ : 'studio-cdn.chiligrafx.com';\nconst FIXED_EDITOR_LINK = `https://${ENGINE_DOMAIN}/editor/${engineInfo.current}/web`;\n\nlet connection: Connection;\n\nexport class SDK {\n config: RuntimeConfigType;\n connection: Connection;\n\n /**\n * @ignore\n */\n editorAPI: EditorAPI;\n\n action: ActionController;\n layout: LayoutController;\n frame: FrameController;\n shape: ShapeController;\n barcode: BarcodeController;\n /** @experimental */\n component: ComponentController;\n connector: ConnectorController;\n mediaConnector: MediaConnectorController;\n fontConnector: FontConnectorController;\n /**\n * @experimental This controller is still experimental and might change in future releases.\n */\n componentConnector: ComponentConnectorController;\n dataConnector: DataConnectorController;\n dataSource: DataSourceController;\n animation: AnimationController;\n document: DocumentController;\n configuration: ConfigurationController;\n variable: VariableController;\n utils: UtilsController;\n tool: ToolController;\n page: PageController;\n debug: DebugController;\n undoManager: UndoManagerController;\n textSelection: TextStyleController;\n paragraphStyle: ParagraphStyleController;\n characterStyle: CharacterStyleController;\n colorStyle: ColorStyleController;\n gradientStyle: GradientStyleController;\n font: FontController;\n experiment: ExperimentController;\n canvas: CanvasController;\n colorConversion: ColorConversionController;\n info: InfoController;\n clipboard: ClipboardController;\n brandKit: BrandKitController;\n componentGrid: ComponentGridController;\n next: NextInitiator;\n\n private subscriber: SubscriberController;\n private enabledNextSubscribers: NextSubscribers | undefined;\n private localConfig = new Map<string, string>();\n private dataItemMappingTools = new DataItemMappingTools();\n\n /**\n * The SDK should be configured clientside and it exposes all controllers to work with in other applications\n * @param config The configuration object where the SDK and editor can get configured\n */\n constructor(config: ConfigType) {\n this.config = ConfigHelper.createRuntimeConfig(config);\n\n this.connection = connection;\n this.editorAPI = connection?.promise.then((child) => {\n return child;\n }) as unknown as EditorAPI;\n\n this.action = new ActionController(this.editorAPI);\n this.layout = new LayoutController(this.editorAPI);\n this.frame = new FrameController(this.editorAPI);\n this.shape = new ShapeController(this.editorAPI);\n this.barcode = new BarcodeController(this.editorAPI);\n this.component = new ComponentController(this.editorAPI);\n this.undoManager = new UndoManagerController(this.editorAPI, this);\n this.connector = new ConnectorController(this.editorAPI, this.localConfig);\n this.mediaConnector = new MediaConnectorController(this.editorAPI);\n this.fontConnector = new FontConnectorController(this.editorAPI);\n this.componentConnector = new ComponentConnectorController(this.editorAPI);\n this.dataConnector = new DataConnectorController(this.editorAPI, this.dataItemMappingTools);\n this.dataSource = new DataSourceController(this.editorAPI, this.dataItemMappingTools);\n this.animation = new AnimationController(this.editorAPI);\n this.document = new DocumentController(this.editorAPI);\n\n this.configuration = new LocalConfigurationDecorator(this.editorAPI, this.localConfig);\n this.variable = new VariableController(this.editorAPI, this.dataItemMappingTools);\n this.utils = new UtilsController(this.editorAPI, this.localConfig);\n this.subscriber = new SubscriberController(this.config, this.localConfig);\n this.tool = new ToolController(this.editorAPI);\n this.page = new PageController(this.editorAPI);\n this.debug = new DebugController(this.editorAPI);\n // To be renamed textSelection > textStyle\n this.textSelection = new TextStyleController(this.editorAPI);\n this.colorStyle = new ColorStyleController(this.editorAPI);\n this.gradientStyle = new GradientStyleController(this.editorAPI);\n this.paragraphStyle = new ParagraphStyleController(this.editorAPI);\n this.characterStyle = new CharacterStyleController(this.editorAPI);\n this.font = new FontController(this.editorAPI);\n this.experiment = new ExperimentController(this.editorAPI);\n this.canvas = new CanvasController(this.editorAPI);\n this.colorConversion = new ColorConversionController(this.editorAPI);\n this.info = new InfoController();\n this.clipboard = new ClipboardController(this.editorAPI);\n this.next = new NextInitiator(this.config, this.connection, this.editorAPI);\n this.enabledNextSubscribers = this.config.enableNextSubscribers;\n this.brandKit = new BrandKitController(this.editorAPI, this);\n this.componentGrid = new ComponentGridController(this.editorAPI);\n }\n\n /**\n * This method will initiate the editor, running this will result in the editor restarting\n * It will generate an iframe in the document\n */\n loadEditor = () => {\n Connect(\n this.config.editorLink || FIXED_EDITOR_LINK,\n {\n onActionsChanged: this.subscriber.onActionsChanged,\n onStateChanged: this.subscriber.onStateChanged,\n onAuthExpired: this.subscriber.onAuthExpired,\n onViewportRequested: this.subscriber.onViewportRequested,\n onDocumentLoaded: this.subscriber.onDocumentLoaded,\n onSelectedFramesContentChanged: this.subscriber.onSelectedFramesContentChanged,\n onSelectedFramesLayoutChanged: this.subscriber.onSelectedFramesLayoutChanged,\n onFramesLayoutChanged: this.subscriber.onFramesLayoutChanged,\n onSelectedLayoutPropertiesChanged: this.subscriber.onSelectedLayoutPropertiesChanged,\n onSelectedLayoutUnitChanged: this.subscriber.onSelectedLayoutUnitChanged,\n onPageSelectionChanged: this.subscriber.onPageSelectionChanged,\n onScrubberPositionChanged: this.subscriber.onAnimationPlaybackChanged,\n onFrameAnimationsChanged: this.subscriber.onAnimationChanged,\n onVariableListChanged: (state) => {\n if (this.enabledNextSubscribers?.onVariableListChanged) {\n this.next.subscriber.onVariableListChanged(state);\n } else {\n this.subscriber.onVariableListChanged(state);\n }\n },\n onSelectedToolChanged: this.subscriber.onSelectedToolChanged,\n onUndoStateChanged: this.subscriber.onUndoStateChanged,\n onSelectedLayoutFramesChanged: this.subscriber.onSelectedLayoutFramesChanged,\n onSelectedTextStyleChanged: this.subscriber.onSelectedTextStyleChanged,\n onColorsChanged: this.subscriber.onColorsChanged,\n onParagraphStylesChanged: this.subscriber.onParagraphStylesChanged,\n onCharacterStylesChanged: this.subscriber.onCharacterStylesChanged,\n onFontFamiliesChanged: this.subscriber.onFontFamiliesChanged,\n onSelectedLayoutIdChanged: this.subscriber.onSelectedLayoutIdChanged,\n onLayoutsChanged: this.subscriber.onLayoutsChanged,\n onConnectorEvent: this.subscriber.onConnectorEvent,\n onConnectorsChanged: (state) => {\n if (this.enabledNextSubscribers?.onConnectorsChanged) {\n this.next.subscriber.onConnectorsChanged(state);\n } else {\n this.subscriber.onConnectorsChanged(state);\n }\n },\n onZoomChanged: this.subscriber.onZoomChanged,\n onSelectedPageIdChanged: this.subscriber.onSelectedPageIdChanged,\n onPagesChanged: this.subscriber.onPagesChanged,\n onPageSnapshotInvalidated: this.subscriber.onPageSnapshotInvalidated,\n onPageSizeChanged: (state) => {\n if (this.enabledNextSubscribers?.onPageSizeChanged) {\n this.next.subscriber.onPageSizeChanged(state);\n } else {\n this.subscriber.onPageSizeChanged(state);\n }\n },\n onShapeCornerRadiusChanged: this.subscriber.onShapeCornerRadiusChanged,\n onCropActiveFrameIdChanged: this.subscriber.onCropActiveFrameIdChanged,\n onAsyncError: this.subscriber.onAsyncError,\n onViewModeChanged: this.subscriber.onViewModeChanged,\n onBarcodeValidationChanged: this.subscriber.onBarcodeValidationChanged,\n onDataSourceIdChanged: this.subscriber.onDataSourceIdChanged,\n onInjectedDataChanged: this.subscriber.onInjectedDataChanged,\n onDocumentIssueListChanged: this.subscriber.onDocumentIssueListChanged,\n onCustomUndoDataChanged: this.subscriber.onCustomUndoDataChanged,\n onEngineEditModeChanged: this.subscriber.onEngineEditModeChanged,\n onBrandKitMediaChanged: this.subscriber.onBrandKitMediaChanged,\n },\n this.setConnection,\n this.config.editorId,\n this.config.studioStyling,\n (error) => {\n this.config.onConnectionError?.(error);\n },\n );\n this.editorAPI = connection?.promise.then((editorAPI) => {\n return editorAPI;\n }) as unknown as EditorAPI;\n\n this.action = new ActionController(this.editorAPI);\n this.layout = new LayoutController(this.editorAPI);\n this.frame = new FrameController(this.editorAPI);\n this.barcode = new BarcodeController(this.editorAPI);\n this.component = new ComponentController(this.editorAPI);\n this.animation = new AnimationController(this.editorAPI);\n this.document = new DocumentController(this.editorAPI);\n this.configuration = new LocalConfigurationDecorator(this.editorAPI, this.localConfig);\n this.utils = new UtilsController(this.editorAPI, this.localConfig);\n this.tool = new ToolController(this.editorAPI);\n this.page = new PageController(this.editorAPI);\n this.debug = new DebugController(this.editorAPI);\n this.undoManager = new UndoManagerController(this.editorAPI, this);\n this.textSelection = new TextStyleController(this.editorAPI);\n this.colorStyle = new ColorStyleController(this.editorAPI);\n this.gradientStyle = new GradientStyleController(this.editorAPI);\n this.paragraphStyle = new ParagraphStyleController(this.editorAPI);\n this.characterStyle = new CharacterStyleController(this.editorAPI);\n this.mediaConnector = new MediaConnectorController(this.editorAPI);\n this.fontConnector = new FontConnectorController(this.editorAPI);\n this.componentConnector = new ComponentConnectorController(this.editorAPI);\n this.dataConnector = new DataConnectorController(this.editorAPI, this.dataItemMappingTools);\n this.dataSource = new DataSourceController(this.editorAPI, this.dataItemMappingTools);\n this.connector = new ConnectorController(this.editorAPI, this.localConfig);\n this.variable = new VariableController(this.editorAPI, this.dataItemMappingTools);\n this.font = new FontController(this.editorAPI);\n this.experiment = new ExperimentController(this.editorAPI);\n this.canvas = new CanvasController(this.editorAPI);\n this.shape = new ShapeController(this.editorAPI);\n this.colorConversion = new ColorConversionController(this.editorAPI);\n this.info = new InfoController();\n this.clipboard = new ClipboardController(this.editorAPI);\n this.brandKit = new BrandKitController(this.editorAPI, this);\n this.componentGrid = new ComponentGridController(this.editorAPI);\n this.next = new NextInitiator(this.config, this.connection, this.editorAPI);\n\n // as soon as the editor loads, provide it with the SDK version\n // used to make it start. This enables engine compatibility checks\n // on the Flutter side\n this.configuration.setValue(WellKnownConfigurationKeys.GraFxStudioSdkVersion, packageInfo.version);\n\n // Makes the engine aware which document type it should render, if this call\n // isn't made, the engine will fall back to the type specified in the document.\n //\n // Loading a template JSON and setting the engine to `project` will cause\n // the document JSON structure to be converted to a project on save.\n // Using `getCurrentDocumentState` will also output the converted document.\n this.configuration.setValue(\n WellKnownConfigurationKeys.GraFxStudioDocumentType,\n this.config.documentType || DocumentType.template,\n );\n\n // Update the engine with the specified options from the config or fall back to the defaults.\n this.configuration.updateStudioOptions(this.config.studioOptions || defaultStudioOptions);\n\n // Whether the engine should cache query calls. This is disabled by default.\n this.configuration.setValue(\n WellKnownConfigurationKeys.QueryCallCacheEnabled,\n this.config.enableQueryCallCache?.toString() || 'false',\n );\n };\n\n setConnection = (newConnection: Connection) => {\n connection = newConnection;\n };\n}\n\nexport default SDK;\n"],"names":["engineInfo","DataItemMappingTools","Connect","_a","ActionController","LayoutController","FrameController","BarcodeController","ComponentController","AnimationController","DocumentController","LocalConfigurationDecorator","UtilsController","ToolController","PageController","DebugController","UndoManagerController","TextStyleController","ColorStyleController","GradientStyleController","ParagraphStyleController","CharacterStyleController","MediaConnectorController","FontConnectorController","ComponentConnectorController","DataConnectorController","DataSourceController","ConnectorController","VariableController","FontController","ExperimentController","CanvasController","ShapeController","ColorConversionController","InfoController","ClipboardController","BrandKitController","ComponentGridController","NextInitiator","WellKnownConfigurationKeys","packageInfo","DocumentType","defaultStudioOptions","ConfigHelper","SubscriberController"],"mappings":"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"}
1
+ {"version":3,"file":"sdk.cjs.js","sources":["../../src/sdk.ts"],"sourcesContent":["import { Connection } from 'penpal';\nimport engineInfo from '../editor-engine.json';\nimport packageInfo from '../package.json';\nimport Connect from './interactions/Connector';\nimport { defaultStudioOptions, WellKnownConfigurationKeys } from './types/ConfigurationTypes';\n\nimport type { ConfigType, EditorAPI, RuntimeConfigType } from './types/CommonTypes';\nimport { Instrumented } from './types/MethodInvocationTypes';\nimport { DocumentType } from './types/DocumentTypes';\n\nimport { ActionController } from './controllers/ActionController';\nimport { AnimationController } from './controllers/AnimationController';\nimport { BarcodeController } from './controllers/BarcodeController';\nimport { BrandKitController } from './controllers/BrandKitController';\nimport { CanvasController } from './controllers/CanvasController';\nimport { CharacterStyleController } from './controllers/CharacterStyleController';\nimport { ClipboardController } from './controllers/ClipboardController';\nimport { ColorConversionController } from './controllers/ColorConversionController';\nimport { ColorStyleController } from './controllers/ColorStyleController';\nimport { ConfigurationController } from './controllers/ConfigurationController';\nimport { ConnectorController } from './controllers/ConnectorController';\nimport { DataConnectorController } from './controllers/DataConnectorController';\nimport { DataSourceController } from './controllers/DataSourceController';\nimport { DebugController } from './controllers/DebugController';\nimport { DocumentController } from './controllers/DocumentController';\nimport { ExperimentController } from './controllers/ExperimentController';\nimport { FontConnectorController } from './controllers/FontConnectorController';\nimport { FontController } from './controllers/FontController';\nimport { FrameController } from './controllers/FrameController';\nimport { InfoController } from './controllers/InfoController';\nimport { LayoutController } from './controllers/LayoutController';\nimport { MediaConnectorController } from './controllers/MediaConnectorController';\nimport { PageController } from './controllers/PageController';\nimport { ParagraphStyleController } from './controllers/ParagraphStyleController';\nimport { ShapeController } from './controllers/ShapeController';\nimport { SubscriberController } from './controllers/SubscriberController';\nimport { TextStyleController } from './controllers/TextStyleController';\nimport { ToolController } from './controllers/ToolController';\nimport { UndoManagerController } from './controllers/UndoManagerController';\nimport { UtilsController } from './controllers/UtilsController';\nimport { VariableController } from './controllers/VariableController';\nimport { NextSubscribers } from './next';\nimport { NextInitiator } from './next/NextInitiator';\nimport { ConfigHelper } from './utils/ConfigHelper';\nimport { DataItemMappingTools } from './utils/DataItemMappingTools';\nimport { LocalConfigurationDecorator } from './utils/LocalConfigurationDecorator';\nimport { GradientStyleController } from './controllers/GradientStyleController';\nimport { ComponentConnectorController } from './controllers/ComponentConnectorController';\nimport { ComponentController } from './controllers/ComponentController';\nimport { ComponentGridController } from './controllers/ComponentGridController';\nimport { MethodListenerRegistry, wrapWithInvocationObserver } from './utils/MethodInstrumentation';\nimport { SdkEvents } from './utils/SdkEvents';\n\ndeclare const __ENGINE_DOMAIN__: string;\nconst ENGINE_DOMAIN = typeof __ENGINE_DOMAIN__ !== 'undefined' ? __ENGINE_DOMAIN__ : 'studio-cdn.chiligrafx.com';\nconst FIXED_EDITOR_LINK = `https://${ENGINE_DOMAIN}/editor/${engineInfo.current}/web`;\n\nlet connection: Connection;\n\n// Marks a freshly created controller as \"needs instrumentation\" without requiring\n// its property name to be tracked anywhere. `applyMethodInstrumentation` later scans\n// the SDK instance for properties carrying this marker and wraps them automatically,\n// so a controller can never be silently skipped just because a list wasn't updated.\nconst PENDING_INSTRUMENTATION = Symbol('pendingInstrumentation');\n\nconst markForInstrumentation = (controller: object): void => {\n Object.defineProperty(controller, PENDING_INSTRUMENTATION, {\n value: true,\n enumerable: false,\n configurable: true,\n });\n};\n\nconst isPendingInstrumentation = (value: unknown): value is object => {\n return typeof value === 'object' && value !== null && (value as Record<symbol, unknown>)[PENDING_INSTRUMENTATION] === true;\n};\n\nexport class SDK {\n config: RuntimeConfigType;\n connection: Connection;\n\n /**\n * @ignore\n */\n editorAPI: EditorAPI;\n /**\n * SDK method invocation events.\n *\n * Use this to observe which SDK controller method was called and with which parameters/result.\n * These are SDK-level events (SDK -> consumer), separate from engine subscriber events (`config.events`).\n */\n sdkEvents: SdkEvents;\n\n action: Instrumented<ActionController>;\n layout: Instrumented<LayoutController>;\n frame: Instrumented<FrameController>;\n shape: Instrumented<ShapeController>;\n barcode: Instrumented<BarcodeController>;\n /** @experimental */\n component: Instrumented<ComponentController>;\n connector: Instrumented<ConnectorController>;\n mediaConnector: Instrumented<MediaConnectorController>;\n fontConnector: Instrumented<FontConnectorController>;\n /**\n * @experimental This controller is still experimental and might change in future releases.\n */\n componentConnector: Instrumented<ComponentConnectorController>;\n dataConnector: Instrumented<DataConnectorController>;\n dataSource: Instrumented<DataSourceController>;\n animation: Instrumented<AnimationController>;\n document: Instrumented<DocumentController>;\n configuration: Instrumented<ConfigurationController>;\n variable: Instrumented<VariableController>;\n utils: Instrumented<UtilsController>;\n tool: Instrumented<ToolController>;\n page: Instrumented<PageController>;\n debug: Instrumented<DebugController>;\n undoManager: Instrumented<UndoManagerController>;\n textSelection: Instrumented<TextStyleController>;\n paragraphStyle: Instrumented<ParagraphStyleController>;\n characterStyle: Instrumented<CharacterStyleController>;\n colorStyle: Instrumented<ColorStyleController>;\n gradientStyle: Instrumented<GradientStyleController>;\n font: Instrumented<FontController>;\n experiment: Instrumented<ExperimentController>;\n canvas: Instrumented<CanvasController>;\n colorConversion: Instrumented<ColorConversionController>;\n info: Instrumented<InfoController>;\n clipboard: Instrumented<ClipboardController>;\n brandKit: Instrumented<BrandKitController>;\n componentGrid: Instrumented<ComponentGridController>;\n\n next: NextInitiator;\n\n private subscriber: SubscriberController;\n private enabledNextSubscribers: NextSubscribers | undefined;\n private localConfig = new Map<string, string>();\n private dataItemMappingTools = new DataItemMappingTools();\n private methodListeners = new MethodListenerRegistry();\n\n /**\n * The SDK should be configured clientside and it exposes all controllers to work with in other applications\n * @param config The configuration object where the SDK and editor can get configured\n */\n constructor(config: ConfigType) {\n this.config = ConfigHelper.createRuntimeConfig(config);\n this.sdkEvents = new SdkEvents(this.config.logging?.logger);\n\n this.connection = connection;\n this.editorAPI = connection?.promise.then((child: unknown) => {\n return child;\n }) as unknown as EditorAPI;\n\n this.action = this.toInstrumented(new ActionController(this.editorAPI));\n this.layout = this.toInstrumented(new LayoutController(this.editorAPI));\n this.frame = this.toInstrumented(new FrameController(this.editorAPI));\n this.shape = this.toInstrumented(new ShapeController(this.editorAPI));\n this.barcode = this.toInstrumented(new BarcodeController(this.editorAPI));\n this.component = this.toInstrumented(new ComponentController(this.editorAPI));\n this.undoManager = this.toInstrumented(new UndoManagerController(this.editorAPI, this));\n this.connector = this.toInstrumented(new ConnectorController(this.editorAPI, this.localConfig));\n this.mediaConnector = this.toInstrumented(new MediaConnectorController(this.editorAPI));\n this.fontConnector = this.toInstrumented(new FontConnectorController(this.editorAPI));\n this.componentConnector = this.toInstrumented(new ComponentConnectorController(this.editorAPI));\n this.dataConnector = this.toInstrumented(new DataConnectorController(this.editorAPI, this.dataItemMappingTools));\n this.dataSource = this.toInstrumented(new DataSourceController(this.editorAPI, this.dataItemMappingTools));\n this.animation = this.toInstrumented(new AnimationController(this.editorAPI));\n this.document = this.toInstrumented(new DocumentController(this.editorAPI));\n\n this.configuration = this.toInstrumented(new LocalConfigurationDecorator(this.editorAPI, this.localConfig));\n this.variable = this.toInstrumented(new VariableController(this.editorAPI, this.dataItemMappingTools));\n this.utils = this.toInstrumented(new UtilsController(this.editorAPI, this.localConfig));\n this.subscriber = new SubscriberController(this.config, this.localConfig);\n this.tool = this.toInstrumented(new ToolController(this.editorAPI));\n this.page = this.toInstrumented(new PageController(this.editorAPI));\n this.debug = this.toInstrumented(new DebugController(this.editorAPI));\n // To be renamed textSelection > textStyle\n this.textSelection = this.toInstrumented(new TextStyleController(this.editorAPI));\n this.colorStyle = this.toInstrumented(new ColorStyleController(this.editorAPI));\n this.gradientStyle = this.toInstrumented(new GradientStyleController(this.editorAPI));\n this.paragraphStyle = this.toInstrumented(new ParagraphStyleController(this.editorAPI));\n this.characterStyle = this.toInstrumented(new CharacterStyleController(this.editorAPI));\n this.font = this.toInstrumented(new FontController(this.editorAPI));\n this.experiment = this.toInstrumented(new ExperimentController(this.editorAPI));\n this.canvas = this.toInstrumented(new CanvasController(this.editorAPI));\n this.colorConversion = this.toInstrumented(new ColorConversionController(this.editorAPI));\n this.info = this.toInstrumented(new InfoController());\n this.clipboard = this.toInstrumented(new ClipboardController(this.editorAPI));\n this.next = new NextInitiator(this.config, this.connection, this.editorAPI);\n this.enabledNextSubscribers = this.config.enableNextSubscribers;\n this.brandKit = this.toInstrumented(new BrandKitController(this.editorAPI, this));\n this.componentGrid = this.toInstrumented(new ComponentGridController(this.editorAPI));\n\n this.applyMethodInstrumentation();\n }\n\n /**\n * This method will initiate the editor, running this will result in the editor restarting\n * It will generate an iframe in the document\n */\n loadEditor = () => {\n Connect(\n this.config.editorLink || FIXED_EDITOR_LINK,\n {\n onActionsChanged: this.subscriber.onActionsChanged,\n onStateChanged: this.subscriber.onStateChanged,\n onAuthExpired: this.subscriber.onAuthExpired,\n onViewportRequested: this.subscriber.onViewportRequested,\n onDocumentLoaded: this.subscriber.onDocumentLoaded,\n onSelectedFramesContentChanged: this.subscriber.onSelectedFramesContentChanged,\n onSelectedFramesLayoutChanged: this.subscriber.onSelectedFramesLayoutChanged,\n onFramesLayoutChanged: this.subscriber.onFramesLayoutChanged,\n onSelectedLayoutPropertiesChanged: this.subscriber.onSelectedLayoutPropertiesChanged,\n onSelectedLayoutUnitChanged: this.subscriber.onSelectedLayoutUnitChanged,\n onPageSelectionChanged: this.subscriber.onPageSelectionChanged,\n onScrubberPositionChanged: this.subscriber.onAnimationPlaybackChanged,\n onFrameAnimationsChanged: this.subscriber.onAnimationChanged,\n onVariableListChanged: (state) => {\n if (this.enabledNextSubscribers?.onVariableListChanged) {\n this.next.subscriber.onVariableListChanged(state);\n } else {\n this.subscriber.onVariableListChanged(state);\n }\n },\n onSelectedToolChanged: this.subscriber.onSelectedToolChanged,\n onUndoStateChanged: this.subscriber.onUndoStateChanged,\n onSelectedLayoutFramesChanged: this.subscriber.onSelectedLayoutFramesChanged,\n onSelectedTextStyleChanged: this.subscriber.onSelectedTextStyleChanged,\n onColorsChanged: this.subscriber.onColorsChanged,\n onParagraphStylesChanged: this.subscriber.onParagraphStylesChanged,\n onCharacterStylesChanged: this.subscriber.onCharacterStylesChanged,\n onFontFamiliesChanged: this.subscriber.onFontFamiliesChanged,\n onSelectedLayoutIdChanged: this.subscriber.onSelectedLayoutIdChanged,\n onLayoutsChanged: this.subscriber.onLayoutsChanged,\n onConnectorEvent: this.subscriber.onConnectorEvent,\n onConnectorsChanged: (state) => {\n if (this.enabledNextSubscribers?.onConnectorsChanged) {\n this.next.subscriber.onConnectorsChanged(state);\n } else {\n this.subscriber.onConnectorsChanged(state);\n }\n },\n onZoomChanged: this.subscriber.onZoomChanged,\n onSelectedPageIdChanged: this.subscriber.onSelectedPageIdChanged,\n onPagesChanged: this.subscriber.onPagesChanged,\n onPageSnapshotInvalidated: this.subscriber.onPageSnapshotInvalidated,\n onPageSizeChanged: (state) => {\n if (this.enabledNextSubscribers?.onPageSizeChanged) {\n this.next.subscriber.onPageSizeChanged(state);\n } else {\n this.subscriber.onPageSizeChanged(state);\n }\n },\n onShapeCornerRadiusChanged: this.subscriber.onShapeCornerRadiusChanged,\n onCropActiveFrameIdChanged: this.subscriber.onCropActiveFrameIdChanged,\n onAsyncError: this.subscriber.onAsyncError,\n onViewModeChanged: this.subscriber.onViewModeChanged,\n onBarcodeValidationChanged: this.subscriber.onBarcodeValidationChanged,\n onDataSourceIdChanged: this.subscriber.onDataSourceIdChanged,\n onInjectedDataChanged: this.subscriber.onInjectedDataChanged,\n onDocumentIssueListChanged: this.subscriber.onDocumentIssueListChanged,\n onCustomUndoDataChanged: this.subscriber.onCustomUndoDataChanged,\n onEngineEditModeChanged: this.subscriber.onEngineEditModeChanged,\n onBrandKitMediaChanged: this.subscriber.onBrandKitMediaChanged,\n onCanvasFramesManipulated: this.subscriber.onCanvasFramesManipulated,\n },\n this.setConnection,\n this.config.editorId,\n this.config.studioStyling,\n (error) => {\n this.config.onConnectionError?.(error);\n },\n );\n this.editorAPI = connection?.promise.then((editorAPI: unknown) => {\n return editorAPI;\n }) as unknown as EditorAPI;\n\n this.action = this.toInstrumented(new ActionController(this.editorAPI));\n this.layout = this.toInstrumented(new LayoutController(this.editorAPI));\n this.frame = this.toInstrumented(new FrameController(this.editorAPI));\n this.barcode = this.toInstrumented(new BarcodeController(this.editorAPI));\n this.component = this.toInstrumented(new ComponentController(this.editorAPI));\n this.animation = this.toInstrumented(new AnimationController(this.editorAPI));\n this.document = this.toInstrumented(new DocumentController(this.editorAPI));\n this.configuration = this.toInstrumented(new LocalConfigurationDecorator(this.editorAPI, this.localConfig));\n this.utils = this.toInstrumented(new UtilsController(this.editorAPI, this.localConfig));\n this.tool = this.toInstrumented(new ToolController(this.editorAPI));\n this.page = this.toInstrumented(new PageController(this.editorAPI));\n this.debug = this.toInstrumented(new DebugController(this.editorAPI));\n this.undoManager = this.toInstrumented(new UndoManagerController(this.editorAPI, this));\n this.textSelection = this.toInstrumented(new TextStyleController(this.editorAPI));\n this.colorStyle = this.toInstrumented(new ColorStyleController(this.editorAPI));\n this.gradientStyle = this.toInstrumented(new GradientStyleController(this.editorAPI));\n this.paragraphStyle = this.toInstrumented(new ParagraphStyleController(this.editorAPI));\n this.characterStyle = this.toInstrumented(new CharacterStyleController(this.editorAPI));\n this.mediaConnector = this.toInstrumented(new MediaConnectorController(this.editorAPI));\n this.fontConnector = this.toInstrumented(new FontConnectorController(this.editorAPI));\n this.componentConnector = this.toInstrumented(new ComponentConnectorController(this.editorAPI));\n this.dataConnector = this.toInstrumented(new DataConnectorController(this.editorAPI, this.dataItemMappingTools));\n this.dataSource = this.toInstrumented(new DataSourceController(this.editorAPI, this.dataItemMappingTools));\n this.connector = this.toInstrumented(new ConnectorController(this.editorAPI, this.localConfig));\n this.variable = this.toInstrumented(new VariableController(this.editorAPI, this.dataItemMappingTools));\n this.font = this.toInstrumented(new FontController(this.editorAPI));\n this.experiment = this.toInstrumented(new ExperimentController(this.editorAPI));\n this.canvas = this.toInstrumented(new CanvasController(this.editorAPI));\n this.shape = this.toInstrumented(new ShapeController(this.editorAPI));\n this.colorConversion = this.toInstrumented(new ColorConversionController(this.editorAPI));\n this.info = this.toInstrumented(new InfoController());\n this.clipboard = this.toInstrumented(new ClipboardController(this.editorAPI));\n this.brandKit = this.toInstrumented(new BrandKitController(this.editorAPI, this));\n this.componentGrid = this.toInstrumented(new ComponentGridController(this.editorAPI));\n this.next = new NextInitiator(this.config, this.connection, this.editorAPI);\n\n this.applyMethodInstrumentation();\n\n // as soon as the editor loads, provide it with the SDK version\n // used to make it start. This enables engine compatibility checks\n // on the Flutter side\n this.configuration.setValue(WellKnownConfigurationKeys.GraFxStudioSdkVersion, packageInfo.version);\n\n // Makes the engine aware which document type it should render, if this call\n // isn't made, the engine will fall back to the type specified in the document.\n //\n // Loading a template JSON and setting the engine to `project` will cause\n // the document JSON structure to be converted to a project on save.\n // Using `getCurrentDocumentState` will also output the converted document.\n this.configuration.setValue(\n WellKnownConfigurationKeys.GraFxStudioDocumentType,\n this.config.documentType || DocumentType.template,\n );\n\n // Update the engine with the specified options from the config or fall back to the defaults.\n this.configuration.updateStudioOptions(this.config.studioOptions || defaultStudioOptions);\n\n // Whether the engine should cache query calls. This is disabled by default.\n this.configuration.setValue(\n WellKnownConfigurationKeys.QueryCallCacheEnabled,\n this.config.enableQueryCallCache?.toString() || 'false',\n );\n };\n\n setConnection = (newConnection: Connection) => {\n connection = newConnection;\n };\n\n private toInstrumented = <T extends object>(controller: T): Instrumented<T> => {\n markForInstrumentation(controller);\n return controller as unknown as Instrumented<T>;\n };\n\n /**\n * Wraps every controller previously handed to `toInstrumented` with the invocation\n * observer, discovering them by their marker rather than a manually maintained\n * list of property names. Any property assigned via `toInstrumented` is picked up\n * automatically, using its own property key as the controller name.\n */\n private applyMethodInstrumentation = () => {\n const sdkProperties = this as unknown as Record<string, unknown>;\n for (const propertyName of Object.keys(sdkProperties)) {\n const value = sdkProperties[propertyName];\n if (isPendingInstrumentation(value)) {\n sdkProperties[propertyName] = wrapWithInvocationObserver(\n value,\n propertyName,\n this.methodListeners,\n this.sdkEvents,\n this.config.logging?.logger,\n );\n }\n }\n };\n}\n\nexport default SDK;\n"],"names":["engineInfo","DataItemMappingTools","MethodListenerRegistry","Connect","_a","ActionController","LayoutController","FrameController","BarcodeController","ComponentController","AnimationController","DocumentController","LocalConfigurationDecorator","UtilsController","ToolController","PageController","DebugController","UndoManagerController","TextStyleController","ColorStyleController","GradientStyleController","ParagraphStyleController","CharacterStyleController","MediaConnectorController","FontConnectorController","ComponentConnectorController","DataConnectorController","DataSourceController","ConnectorController","VariableController","FontController","ExperimentController","CanvasController","ShapeController","ColorConversionController","InfoController","ClipboardController","BrandKitController","ComponentGridController","NextInitiator","WellKnownConfigurationKeys","packageInfo","DocumentType","defaultStudioOptions","wrapWithInvocationObserver","ConfigHelper","SdkEvents","SubscriberController"],"mappings":"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"}
package/lib/src/sdk.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Connection } from 'penpal';
2
2
  import { ConfigType, EditorAPI, RuntimeConfigType } from './types/CommonTypes';
3
+ import { Instrumented } from './types/MethodInvocationTypes';
3
4
  import { ActionController } from './controllers/ActionController';
4
5
  import { AnimationController } from './controllers/AnimationController';
5
6
  import { BarcodeController } from './controllers/BarcodeController';
@@ -35,6 +36,7 @@ import { GradientStyleController } from './controllers/GradientStyleController';
35
36
  import { ComponentConnectorController } from './controllers/ComponentConnectorController';
36
37
  import { ComponentController } from './controllers/ComponentController';
37
38
  import { ComponentGridController } from './controllers/ComponentGridController';
39
+ import { SdkEvents } from './utils/SdkEvents';
38
40
  export declare class SDK {
39
41
  config: RuntimeConfigType;
40
42
  connection: Connection;
@@ -42,49 +44,57 @@ export declare class SDK {
42
44
  * @ignore
43
45
  */
44
46
  editorAPI: EditorAPI;
45
- action: ActionController;
46
- layout: LayoutController;
47
- frame: FrameController;
48
- shape: ShapeController;
49
- barcode: BarcodeController;
47
+ /**
48
+ * SDK method invocation events.
49
+ *
50
+ * Use this to observe which SDK controller method was called and with which parameters/result.
51
+ * These are SDK-level events (SDK -> consumer), separate from engine subscriber events (`config.events`).
52
+ */
53
+ sdkEvents: SdkEvents;
54
+ action: Instrumented<ActionController>;
55
+ layout: Instrumented<LayoutController>;
56
+ frame: Instrumented<FrameController>;
57
+ shape: Instrumented<ShapeController>;
58
+ barcode: Instrumented<BarcodeController>;
50
59
  /** @experimental */
51
- component: ComponentController;
52
- connector: ConnectorController;
53
- mediaConnector: MediaConnectorController;
54
- fontConnector: FontConnectorController;
60
+ component: Instrumented<ComponentController>;
61
+ connector: Instrumented<ConnectorController>;
62
+ mediaConnector: Instrumented<MediaConnectorController>;
63
+ fontConnector: Instrumented<FontConnectorController>;
55
64
  /**
56
65
  * @experimental This controller is still experimental and might change in future releases.
57
66
  */
58
- componentConnector: ComponentConnectorController;
59
- dataConnector: DataConnectorController;
60
- dataSource: DataSourceController;
61
- animation: AnimationController;
62
- document: DocumentController;
63
- configuration: ConfigurationController;
64
- variable: VariableController;
65
- utils: UtilsController;
66
- tool: ToolController;
67
- page: PageController;
68
- debug: DebugController;
69
- undoManager: UndoManagerController;
70
- textSelection: TextStyleController;
71
- paragraphStyle: ParagraphStyleController;
72
- characterStyle: CharacterStyleController;
73
- colorStyle: ColorStyleController;
74
- gradientStyle: GradientStyleController;
75
- font: FontController;
76
- experiment: ExperimentController;
77
- canvas: CanvasController;
78
- colorConversion: ColorConversionController;
79
- info: InfoController;
80
- clipboard: ClipboardController;
81
- brandKit: BrandKitController;
82
- componentGrid: ComponentGridController;
67
+ componentConnector: Instrumented<ComponentConnectorController>;
68
+ dataConnector: Instrumented<DataConnectorController>;
69
+ dataSource: Instrumented<DataSourceController>;
70
+ animation: Instrumented<AnimationController>;
71
+ document: Instrumented<DocumentController>;
72
+ configuration: Instrumented<ConfigurationController>;
73
+ variable: Instrumented<VariableController>;
74
+ utils: Instrumented<UtilsController>;
75
+ tool: Instrumented<ToolController>;
76
+ page: Instrumented<PageController>;
77
+ debug: Instrumented<DebugController>;
78
+ undoManager: Instrumented<UndoManagerController>;
79
+ textSelection: Instrumented<TextStyleController>;
80
+ paragraphStyle: Instrumented<ParagraphStyleController>;
81
+ characterStyle: Instrumented<CharacterStyleController>;
82
+ colorStyle: Instrumented<ColorStyleController>;
83
+ gradientStyle: Instrumented<GradientStyleController>;
84
+ font: Instrumented<FontController>;
85
+ experiment: Instrumented<ExperimentController>;
86
+ canvas: Instrumented<CanvasController>;
87
+ colorConversion: Instrumented<ColorConversionController>;
88
+ info: Instrumented<InfoController>;
89
+ clipboard: Instrumented<ClipboardController>;
90
+ brandKit: Instrumented<BrandKitController>;
91
+ componentGrid: Instrumented<ComponentGridController>;
83
92
  next: NextInitiator;
84
93
  private subscriber;
85
94
  private enabledNextSubscribers;
86
95
  private localConfig;
87
96
  private dataItemMappingTools;
97
+ private methodListeners;
88
98
  /**
89
99
  * The SDK should be configured clientside and it exposes all controllers to work with in other applications
90
100
  * @param config The configuration object where the SDK and editor can get configured
@@ -96,5 +106,13 @@ export declare class SDK {
96
106
  */
97
107
  loadEditor: () => void;
98
108
  setConnection: (newConnection: Connection) => void;
109
+ private toInstrumented;
110
+ /**
111
+ * Wraps every controller previously handed to `toInstrumented` with the invocation
112
+ * observer, discovering them by their marker rather than a manually maintained
113
+ * list of property names. Any property assigned via `toInstrumented` is picked up
114
+ * automatically, using its own property key as the controller name.
115
+ */
116
+ private applyMethodInstrumentation;
99
117
  }
100
118
  export default SDK;
package/lib/src/sdk.es.js CHANGED
@@ -41,19 +41,34 @@ import { GradientStyleController } from "./controllers/GradientStyleController.e
41
41
  import { ComponentConnectorController } from "./controllers/ComponentConnectorController.es.js";
42
42
  import { ComponentController } from "./controllers/ComponentController.es.js";
43
43
  import { ComponentGridController } from "./controllers/ComponentGridController.es.js";
44
+ import { MethodListenerRegistry, wrapWithInvocationObserver } from "./utils/MethodInstrumentation.es.js";
45
+ import { SdkEvents } from "./utils/SdkEvents.es.js";
44
46
  const ENGINE_DOMAIN = "studio-cdn.chiligrafx.com";
45
47
  const FIXED_EDITOR_LINK = `https://${ENGINE_DOMAIN}/editor/${engineInfo.current}/web`;
46
48
  let connection;
49
+ const PENDING_INSTRUMENTATION = Symbol("pendingInstrumentation");
50
+ const markForInstrumentation = (controller) => {
51
+ Object.defineProperty(controller, PENDING_INSTRUMENTATION, {
52
+ value: true,
53
+ enumerable: false,
54
+ configurable: true
55
+ });
56
+ };
57
+ const isPendingInstrumentation = (value) => {
58
+ return typeof value === "object" && value !== null && value[PENDING_INSTRUMENTATION] === true;
59
+ };
47
60
  class SDK {
48
61
  /**
49
62
  * The SDK should be configured clientside and it exposes all controllers to work with in other applications
50
63
  * @param config The configuration object where the SDK and editor can get configured
51
64
  */
52
65
  constructor(config) {
66
+ var _a;
53
67
  this.localConfig = /* @__PURE__ */ new Map();
54
68
  this.dataItemMappingTools = new DataItemMappingTools();
69
+ this.methodListeners = new MethodListenerRegistry();
55
70
  this.loadEditor = () => {
56
- var _a;
71
+ var _a2;
57
72
  Connect(
58
73
  this.config.editorLink || FIXED_EDITOR_LINK,
59
74
  {
@@ -71,8 +86,8 @@ class SDK {
71
86
  onScrubberPositionChanged: this.subscriber.onAnimationPlaybackChanged,
72
87
  onFrameAnimationsChanged: this.subscriber.onAnimationChanged,
73
88
  onVariableListChanged: (state) => {
74
- var _a2;
75
- if ((_a2 = this.enabledNextSubscribers) == null ? void 0 : _a2.onVariableListChanged) {
89
+ var _a3;
90
+ if ((_a3 = this.enabledNextSubscribers) == null ? void 0 : _a3.onVariableListChanged) {
76
91
  this.next.subscriber.onVariableListChanged(state);
77
92
  } else {
78
93
  this.subscriber.onVariableListChanged(state);
@@ -90,8 +105,8 @@ class SDK {
90
105
  onLayoutsChanged: this.subscriber.onLayoutsChanged,
91
106
  onConnectorEvent: this.subscriber.onConnectorEvent,
92
107
  onConnectorsChanged: (state) => {
93
- var _a2;
94
- if ((_a2 = this.enabledNextSubscribers) == null ? void 0 : _a2.onConnectorsChanged) {
108
+ var _a3;
109
+ if ((_a3 = this.enabledNextSubscribers) == null ? void 0 : _a3.onConnectorsChanged) {
95
110
  this.next.subscriber.onConnectorsChanged(state);
96
111
  } else {
97
112
  this.subscriber.onConnectorsChanged(state);
@@ -102,8 +117,8 @@ class SDK {
102
117
  onPagesChanged: this.subscriber.onPagesChanged,
103
118
  onPageSnapshotInvalidated: this.subscriber.onPageSnapshotInvalidated,
104
119
  onPageSizeChanged: (state) => {
105
- var _a2;
106
- if ((_a2 = this.enabledNextSubscribers) == null ? void 0 : _a2.onPageSizeChanged) {
120
+ var _a3;
121
+ if ((_a3 = this.enabledNextSubscribers) == null ? void 0 : _a3.onPageSizeChanged) {
107
122
  this.next.subscriber.onPageSizeChanged(state);
108
123
  } else {
109
124
  this.subscriber.onPageSizeChanged(state);
@@ -119,54 +134,56 @@ class SDK {
119
134
  onDocumentIssueListChanged: this.subscriber.onDocumentIssueListChanged,
120
135
  onCustomUndoDataChanged: this.subscriber.onCustomUndoDataChanged,
121
136
  onEngineEditModeChanged: this.subscriber.onEngineEditModeChanged,
122
- onBrandKitMediaChanged: this.subscriber.onBrandKitMediaChanged
137
+ onBrandKitMediaChanged: this.subscriber.onBrandKitMediaChanged,
138
+ onCanvasFramesManipulated: this.subscriber.onCanvasFramesManipulated
123
139
  },
124
140
  this.setConnection,
125
141
  this.config.editorId,
126
142
  this.config.studioStyling,
127
143
  (error) => {
128
- var _a2, _b;
129
- (_b = (_a2 = this.config).onConnectionError) == null ? void 0 : _b.call(_a2, error);
144
+ var _a3, _b;
145
+ (_b = (_a3 = this.config).onConnectionError) == null ? void 0 : _b.call(_a3, error);
130
146
  }
131
147
  );
132
148
  this.editorAPI = connection == null ? void 0 : connection.promise.then((editorAPI) => {
133
149
  return editorAPI;
134
150
  });
135
- this.action = new ActionController(this.editorAPI);
136
- this.layout = new LayoutController(this.editorAPI);
137
- this.frame = new FrameController(this.editorAPI);
138
- this.barcode = new BarcodeController(this.editorAPI);
139
- this.component = new ComponentController(this.editorAPI);
140
- this.animation = new AnimationController(this.editorAPI);
141
- this.document = new DocumentController(this.editorAPI);
142
- this.configuration = new LocalConfigurationDecorator(this.editorAPI, this.localConfig);
143
- this.utils = new UtilsController(this.editorAPI, this.localConfig);
144
- this.tool = new ToolController(this.editorAPI);
145
- this.page = new PageController(this.editorAPI);
146
- this.debug = new DebugController(this.editorAPI);
147
- this.undoManager = new UndoManagerController(this.editorAPI, this);
148
- this.textSelection = new TextStyleController(this.editorAPI);
149
- this.colorStyle = new ColorStyleController(this.editorAPI);
150
- this.gradientStyle = new GradientStyleController(this.editorAPI);
151
- this.paragraphStyle = new ParagraphStyleController(this.editorAPI);
152
- this.characterStyle = new CharacterStyleController(this.editorAPI);
153
- this.mediaConnector = new MediaConnectorController(this.editorAPI);
154
- this.fontConnector = new FontConnectorController(this.editorAPI);
155
- this.componentConnector = new ComponentConnectorController(this.editorAPI);
156
- this.dataConnector = new DataConnectorController(this.editorAPI, this.dataItemMappingTools);
157
- this.dataSource = new DataSourceController(this.editorAPI, this.dataItemMappingTools);
158
- this.connector = new ConnectorController(this.editorAPI, this.localConfig);
159
- this.variable = new VariableController(this.editorAPI, this.dataItemMappingTools);
160
- this.font = new FontController(this.editorAPI);
161
- this.experiment = new ExperimentController(this.editorAPI);
162
- this.canvas = new CanvasController(this.editorAPI);
163
- this.shape = new ShapeController(this.editorAPI);
164
- this.colorConversion = new ColorConversionController(this.editorAPI);
165
- this.info = new InfoController();
166
- this.clipboard = new ClipboardController(this.editorAPI);
167
- this.brandKit = new BrandKitController(this.editorAPI, this);
168
- this.componentGrid = new ComponentGridController(this.editorAPI);
151
+ this.action = this.toInstrumented(new ActionController(this.editorAPI));
152
+ this.layout = this.toInstrumented(new LayoutController(this.editorAPI));
153
+ this.frame = this.toInstrumented(new FrameController(this.editorAPI));
154
+ this.barcode = this.toInstrumented(new BarcodeController(this.editorAPI));
155
+ this.component = this.toInstrumented(new ComponentController(this.editorAPI));
156
+ this.animation = this.toInstrumented(new AnimationController(this.editorAPI));
157
+ this.document = this.toInstrumented(new DocumentController(this.editorAPI));
158
+ this.configuration = this.toInstrumented(new LocalConfigurationDecorator(this.editorAPI, this.localConfig));
159
+ this.utils = this.toInstrumented(new UtilsController(this.editorAPI, this.localConfig));
160
+ this.tool = this.toInstrumented(new ToolController(this.editorAPI));
161
+ this.page = this.toInstrumented(new PageController(this.editorAPI));
162
+ this.debug = this.toInstrumented(new DebugController(this.editorAPI));
163
+ this.undoManager = this.toInstrumented(new UndoManagerController(this.editorAPI, this));
164
+ this.textSelection = this.toInstrumented(new TextStyleController(this.editorAPI));
165
+ this.colorStyle = this.toInstrumented(new ColorStyleController(this.editorAPI));
166
+ this.gradientStyle = this.toInstrumented(new GradientStyleController(this.editorAPI));
167
+ this.paragraphStyle = this.toInstrumented(new ParagraphStyleController(this.editorAPI));
168
+ this.characterStyle = this.toInstrumented(new CharacterStyleController(this.editorAPI));
169
+ this.mediaConnector = this.toInstrumented(new MediaConnectorController(this.editorAPI));
170
+ this.fontConnector = this.toInstrumented(new FontConnectorController(this.editorAPI));
171
+ this.componentConnector = this.toInstrumented(new ComponentConnectorController(this.editorAPI));
172
+ this.dataConnector = this.toInstrumented(new DataConnectorController(this.editorAPI, this.dataItemMappingTools));
173
+ this.dataSource = this.toInstrumented(new DataSourceController(this.editorAPI, this.dataItemMappingTools));
174
+ this.connector = this.toInstrumented(new ConnectorController(this.editorAPI, this.localConfig));
175
+ this.variable = this.toInstrumented(new VariableController(this.editorAPI, this.dataItemMappingTools));
176
+ this.font = this.toInstrumented(new FontController(this.editorAPI));
177
+ this.experiment = this.toInstrumented(new ExperimentController(this.editorAPI));
178
+ this.canvas = this.toInstrumented(new CanvasController(this.editorAPI));
179
+ this.shape = this.toInstrumented(new ShapeController(this.editorAPI));
180
+ this.colorConversion = this.toInstrumented(new ColorConversionController(this.editorAPI));
181
+ this.info = this.toInstrumented(new InfoController());
182
+ this.clipboard = this.toInstrumented(new ClipboardController(this.editorAPI));
183
+ this.brandKit = this.toInstrumented(new BrandKitController(this.editorAPI, this));
184
+ this.componentGrid = this.toInstrumented(new ComponentGridController(this.editorAPI));
169
185
  this.next = new NextInitiator(this.config, this.connection, this.editorAPI);
186
+ this.applyMethodInstrumentation();
170
187
  this.configuration.setValue(WellKnownConfigurationKeys.GraFxStudioSdkVersion, packageInfo.version);
171
188
  this.configuration.setValue(
172
189
  WellKnownConfigurationKeys.GraFxStudioDocumentType,
@@ -175,54 +192,76 @@ class SDK {
175
192
  this.configuration.updateStudioOptions(this.config.studioOptions || defaultStudioOptions);
176
193
  this.configuration.setValue(
177
194
  WellKnownConfigurationKeys.QueryCallCacheEnabled,
178
- ((_a = this.config.enableQueryCallCache) == null ? void 0 : _a.toString()) || "false"
195
+ ((_a2 = this.config.enableQueryCallCache) == null ? void 0 : _a2.toString()) || "false"
179
196
  );
180
197
  };
181
198
  this.setConnection = (newConnection) => {
182
199
  connection = newConnection;
183
200
  };
201
+ this.toInstrumented = (controller) => {
202
+ markForInstrumentation(controller);
203
+ return controller;
204
+ };
205
+ this.applyMethodInstrumentation = () => {
206
+ var _a2;
207
+ const sdkProperties = this;
208
+ for (const propertyName of Object.keys(sdkProperties)) {
209
+ const value = sdkProperties[propertyName];
210
+ if (isPendingInstrumentation(value)) {
211
+ sdkProperties[propertyName] = wrapWithInvocationObserver(
212
+ value,
213
+ propertyName,
214
+ this.methodListeners,
215
+ this.sdkEvents,
216
+ (_a2 = this.config.logging) == null ? void 0 : _a2.logger
217
+ );
218
+ }
219
+ }
220
+ };
184
221
  this.config = ConfigHelper.createRuntimeConfig(config);
222
+ this.sdkEvents = new SdkEvents((_a = this.config.logging) == null ? void 0 : _a.logger);
185
223
  this.connection = connection;
186
224
  this.editorAPI = connection == null ? void 0 : connection.promise.then((child) => {
187
225
  return child;
188
226
  });
189
- this.action = new ActionController(this.editorAPI);
190
- this.layout = new LayoutController(this.editorAPI);
191
- this.frame = new FrameController(this.editorAPI);
192
- this.shape = new ShapeController(this.editorAPI);
193
- this.barcode = new BarcodeController(this.editorAPI);
194
- this.component = new ComponentController(this.editorAPI);
195
- this.undoManager = new UndoManagerController(this.editorAPI, this);
196
- this.connector = new ConnectorController(this.editorAPI, this.localConfig);
197
- this.mediaConnector = new MediaConnectorController(this.editorAPI);
198
- this.fontConnector = new FontConnectorController(this.editorAPI);
199
- this.componentConnector = new ComponentConnectorController(this.editorAPI);
200
- this.dataConnector = new DataConnectorController(this.editorAPI, this.dataItemMappingTools);
201
- this.dataSource = new DataSourceController(this.editorAPI, this.dataItemMappingTools);
202
- this.animation = new AnimationController(this.editorAPI);
203
- this.document = new DocumentController(this.editorAPI);
204
- this.configuration = new LocalConfigurationDecorator(this.editorAPI, this.localConfig);
205
- this.variable = new VariableController(this.editorAPI, this.dataItemMappingTools);
206
- this.utils = new UtilsController(this.editorAPI, this.localConfig);
227
+ this.action = this.toInstrumented(new ActionController(this.editorAPI));
228
+ this.layout = this.toInstrumented(new LayoutController(this.editorAPI));
229
+ this.frame = this.toInstrumented(new FrameController(this.editorAPI));
230
+ this.shape = this.toInstrumented(new ShapeController(this.editorAPI));
231
+ this.barcode = this.toInstrumented(new BarcodeController(this.editorAPI));
232
+ this.component = this.toInstrumented(new ComponentController(this.editorAPI));
233
+ this.undoManager = this.toInstrumented(new UndoManagerController(this.editorAPI, this));
234
+ this.connector = this.toInstrumented(new ConnectorController(this.editorAPI, this.localConfig));
235
+ this.mediaConnector = this.toInstrumented(new MediaConnectorController(this.editorAPI));
236
+ this.fontConnector = this.toInstrumented(new FontConnectorController(this.editorAPI));
237
+ this.componentConnector = this.toInstrumented(new ComponentConnectorController(this.editorAPI));
238
+ this.dataConnector = this.toInstrumented(new DataConnectorController(this.editorAPI, this.dataItemMappingTools));
239
+ this.dataSource = this.toInstrumented(new DataSourceController(this.editorAPI, this.dataItemMappingTools));
240
+ this.animation = this.toInstrumented(new AnimationController(this.editorAPI));
241
+ this.document = this.toInstrumented(new DocumentController(this.editorAPI));
242
+ this.configuration = this.toInstrumented(new LocalConfigurationDecorator(this.editorAPI, this.localConfig));
243
+ this.variable = this.toInstrumented(new VariableController(this.editorAPI, this.dataItemMappingTools));
244
+ this.utils = this.toInstrumented(new UtilsController(this.editorAPI, this.localConfig));
207
245
  this.subscriber = new SubscriberController(this.config, this.localConfig);
208
- this.tool = new ToolController(this.editorAPI);
209
- this.page = new PageController(this.editorAPI);
210
- this.debug = new DebugController(this.editorAPI);
211
- this.textSelection = new TextStyleController(this.editorAPI);
212
- this.colorStyle = new ColorStyleController(this.editorAPI);
213
- this.gradientStyle = new GradientStyleController(this.editorAPI);
214
- this.paragraphStyle = new ParagraphStyleController(this.editorAPI);
215
- this.characterStyle = new CharacterStyleController(this.editorAPI);
216
- this.font = new FontController(this.editorAPI);
217
- this.experiment = new ExperimentController(this.editorAPI);
218
- this.canvas = new CanvasController(this.editorAPI);
219
- this.colorConversion = new ColorConversionController(this.editorAPI);
220
- this.info = new InfoController();
221
- this.clipboard = new ClipboardController(this.editorAPI);
246
+ this.tool = this.toInstrumented(new ToolController(this.editorAPI));
247
+ this.page = this.toInstrumented(new PageController(this.editorAPI));
248
+ this.debug = this.toInstrumented(new DebugController(this.editorAPI));
249
+ this.textSelection = this.toInstrumented(new TextStyleController(this.editorAPI));
250
+ this.colorStyle = this.toInstrumented(new ColorStyleController(this.editorAPI));
251
+ this.gradientStyle = this.toInstrumented(new GradientStyleController(this.editorAPI));
252
+ this.paragraphStyle = this.toInstrumented(new ParagraphStyleController(this.editorAPI));
253
+ this.characterStyle = this.toInstrumented(new CharacterStyleController(this.editorAPI));
254
+ this.font = this.toInstrumented(new FontController(this.editorAPI));
255
+ this.experiment = this.toInstrumented(new ExperimentController(this.editorAPI));
256
+ this.canvas = this.toInstrumented(new CanvasController(this.editorAPI));
257
+ this.colorConversion = this.toInstrumented(new ColorConversionController(this.editorAPI));
258
+ this.info = this.toInstrumented(new InfoController());
259
+ this.clipboard = this.toInstrumented(new ClipboardController(this.editorAPI));
222
260
  this.next = new NextInitiator(this.config, this.connection, this.editorAPI);
223
261
  this.enabledNextSubscribers = this.config.enableNextSubscribers;
224
- this.brandKit = new BrandKitController(this.editorAPI, this);
225
- this.componentGrid = new ComponentGridController(this.editorAPI);
262
+ this.brandKit = this.toInstrumented(new BrandKitController(this.editorAPI, this));
263
+ this.componentGrid = this.toInstrumented(new ComponentGridController(this.editorAPI));
264
+ this.applyMethodInstrumentation();
226
265
  }
227
266
  }
228
267
  export {