@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":"RichTextRuleTypes.cjs.js","sources":["../../../src/types/RichTextRuleTypes.ts"],"sourcesContent":["import { Scripting } from './TextStyleTypes';\n\n/**\n * Defines a text flow and all style rules that are applied to it.\n */\nexport interface StructuredTextTextFlowDefinition {\n id: string;\n styleRules: StructuredTextStyleRule[];\n}\n\n/**\n * Supported style kinds for structured text rules.\n */\nexport enum StructuredTextStyleKind {\n paragraph = 'paragraph',\n character = 'character',\n lineBreak = 'lineBreak',\n inlineStyle = 'inlineStyle',\n}\n\n/**\n * A style rule for rich text parsing.\n */\nexport type StructuredTextStyleRule =\n | ParagraphTextStyleRule\n | CharacterTextStyleRule\n | LineBreakTextStyleRule\n | InlineStyleTextStyleRule;\n\nexport interface ParagraphTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n paragraphStyleName: string;\n styleKind: StructuredTextStyleKind.paragraph;\n}\n\nexport interface CharacterTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n characterStyleName: string;\n styleKind: StructuredTextStyleKind.character;\n}\n\nexport interface LineBreakTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n styleKind: StructuredTextStyleKind.lineBreak;\n}\n\n\n/**\n * A style rule that applies inline character styling directly to matched\n * elements without requiring a named style.\n */\nexport interface InlineStyleTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n inlineStyleDefinition: StructuredTextInlineStyleDefinition;\n styleKind: StructuredTextStyleKind.inlineStyle;\n}\n\n/**\n * Defines inline character style properties applied by inline style rules.\n *\n * Every property is optional. If a property is left `undefined`, it is not\n * overridden by the rule.\n */\nexport interface StructuredTextInlineStyleDefinition {\n underline?: boolean;\n lineThrough?: boolean;\n subSuperScript?: Scripting;\n}\n\n/**\n * Matcher for structured text nodes.\n */\nexport interface StructuredTextNodeMatcher {\n tag?: string;\n attributeMatchers: StructuredTextAttributeMatcher[];\n caseSensitive: boolean;\n}\n\n/**\n * Supported operators for matching attributes.\n */\nexport enum StructuredTextAttributeMatchOperator {\n exists = 'exists',\n missing = 'missing',\n equals = 'equals',\n notEquals = 'notEquals',\n contains = 'contains',\n startsWith = 'startsWith',\n endsWith = 'endsWith',\n}\n\n/**\n * Matcher used to evaluate a node attribute.\n */\nexport type StructuredTextAttributeMatcher =\n | ExistsStructuredTextAttributeMatcher\n | MissingStructuredTextAttributeMatcher\n | EqualsStructuredTextAttributeMatcher\n | NotEqualsStructuredTextAttributeMatcher\n | ContainsStructuredTextAttributeMatcher\n | StartsWithStructuredTextAttributeMatcher\n | EndsWithStructuredTextAttributeMatcher;\n\nexport interface ExistsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n matchOperator: StructuredTextAttributeMatchOperator.exists;\n}\n\nexport interface MissingStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n matchOperator: StructuredTextAttributeMatchOperator.missing;\n}\n\nexport interface EqualsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.equals;\n}\n\nexport interface NotEqualsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.notEquals;\n}\n\nexport interface ContainsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.contains;\n}\n\nexport interface StartsWithStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.startsWith;\n}\n\nexport interface EndsWithStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.endsWith;\n}\n"],"names":["StructuredTextStyleKind","StructuredTextAttributeMatchOperator"],"mappings":";;AAaO,IAAK,4CAAAA,6BAAL;AACHA,2BAAA,WAAA,IAAY;AACZA,2BAAA,WAAA,IAAY;AACZA,2BAAA,WAAA,IAAY;AACZA,2BAAA,aAAA,IAAc;AAJN,SAAAA;AAAA,GAAA,2BAAA,CAAA,CAAA;AAoEL,IAAK,yDAAAC,0CAAL;AACHA,wCAAA,QAAA,IAAS;AACTA,wCAAA,SAAA,IAAU;AACVA,wCAAA,QAAA,IAAS;AACTA,wCAAA,WAAA,IAAY;AACZA,wCAAA,UAAA,IAAW;AACXA,wCAAA,YAAA,IAAa;AACbA,wCAAA,UAAA,IAAW;AAPH,SAAAA;AAAA,GAAA,wCAAA,CAAA,CAAA;;;"}
1
+ {"version":3,"file":"RichTextRuleTypes.cjs.js","sources":["../../../src/types/RichTextRuleTypes.ts"],"sourcesContent":["import { Scripting } from './TextStyleTypes';\n\n/**\n * Defines a text flow and all style rules that are applied to it.\n */\nexport interface StructuredTextTextFlowDefinition {\n id: string;\n styleRules: StructuredTextStyleRule[];\n}\n\n/**\n * Supported style kinds for structured text rules.\n */\nexport enum StructuredTextStyleKind {\n paragraph = 'paragraph',\n character = 'character',\n lineBreak = 'lineBreak',\n inlineStyle = 'inlineStyle',\n}\n\n/**\n * A style rule for rich text parsing.\n */\nexport type StructuredTextStyleRule =\n | ParagraphTextStyleRule\n | CharacterTextStyleRule\n | LineBreakTextStyleRule\n | InlineStyleTextStyleRule;\n\nexport interface ParagraphTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n paragraphStyleName: string;\n styleKind: StructuredTextStyleKind.paragraph;\n}\n\nexport interface CharacterTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n characterStyleName: string;\n styleKind: StructuredTextStyleKind.character;\n}\n\nexport interface LineBreakTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n styleKind: StructuredTextStyleKind.lineBreak;\n}\n\n/**\n * A style rule that applies inline character styling directly to matched\n * elements without requiring a named style.\n */\nexport interface InlineStyleTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n inlineStyleDefinition: StructuredTextInlineStyleDefinition;\n styleKind: StructuredTextStyleKind.inlineStyle;\n}\n\n/**\n * Defines inline character style properties applied by inline style rules.\n *\n * Every property is optional. If a property is left `undefined`, it is not\n * overridden by the rule.\n */\nexport interface StructuredTextInlineStyleDefinition {\n underline?: boolean;\n lineThrough?: boolean;\n subSuperScript?: Scripting;\n}\n\n/**\n * Matcher for structured text nodes.\n */\nexport interface StructuredTextNodeMatcher {\n tag?: string;\n attributeMatchers: StructuredTextAttributeMatcher[];\n caseSensitive: boolean;\n}\n\n/**\n * Supported operators for matching attributes.\n */\nexport enum StructuredTextAttributeMatchOperator {\n exists = 'exists',\n missing = 'missing',\n equals = 'equals',\n notEquals = 'notEquals',\n contains = 'contains',\n startsWith = 'startsWith',\n endsWith = 'endsWith',\n}\n\n/**\n * Matcher used to evaluate a node attribute.\n */\nexport type StructuredTextAttributeMatcher =\n | ExistsStructuredTextAttributeMatcher\n | MissingStructuredTextAttributeMatcher\n | EqualsStructuredTextAttributeMatcher\n | NotEqualsStructuredTextAttributeMatcher\n | ContainsStructuredTextAttributeMatcher\n | StartsWithStructuredTextAttributeMatcher\n | EndsWithStructuredTextAttributeMatcher;\n\nexport interface ExistsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n matchOperator: StructuredTextAttributeMatchOperator.exists;\n}\n\nexport interface MissingStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n matchOperator: StructuredTextAttributeMatchOperator.missing;\n}\n\nexport interface EqualsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.equals;\n}\n\nexport interface NotEqualsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.notEquals;\n}\n\nexport interface ContainsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.contains;\n}\n\nexport interface StartsWithStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.startsWith;\n}\n\nexport interface EndsWithStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.endsWith;\n}\n"],"names":["StructuredTextStyleKind","StructuredTextAttributeMatchOperator"],"mappings":";;AAaO,IAAK,4CAAAA,6BAAL;AACHA,2BAAA,WAAA,IAAY;AACZA,2BAAA,WAAA,IAAY;AACZA,2BAAA,WAAA,IAAY;AACZA,2BAAA,aAAA,IAAc;AAJN,SAAAA;AAAA,GAAA,2BAAA,CAAA,CAAA;AAmEL,IAAK,yDAAAC,0CAAL;AACHA,wCAAA,QAAA,IAAS;AACTA,wCAAA,SAAA,IAAU;AACVA,wCAAA,QAAA,IAAS;AACTA,wCAAA,WAAA,IAAY;AACZA,wCAAA,UAAA,IAAW;AACXA,wCAAA,YAAA,IAAa;AACbA,wCAAA,UAAA,IAAW;AAPH,SAAAA;AAAA,GAAA,wCAAA,CAAA,CAAA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextRuleTypes.es.js","sources":["../../../src/types/RichTextRuleTypes.ts"],"sourcesContent":["import { Scripting } from './TextStyleTypes';\n\n/**\n * Defines a text flow and all style rules that are applied to it.\n */\nexport interface StructuredTextTextFlowDefinition {\n id: string;\n styleRules: StructuredTextStyleRule[];\n}\n\n/**\n * Supported style kinds for structured text rules.\n */\nexport enum StructuredTextStyleKind {\n paragraph = 'paragraph',\n character = 'character',\n lineBreak = 'lineBreak',\n inlineStyle = 'inlineStyle',\n}\n\n/**\n * A style rule for rich text parsing.\n */\nexport type StructuredTextStyleRule =\n | ParagraphTextStyleRule\n | CharacterTextStyleRule\n | LineBreakTextStyleRule\n | InlineStyleTextStyleRule;\n\nexport interface ParagraphTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n paragraphStyleName: string;\n styleKind: StructuredTextStyleKind.paragraph;\n}\n\nexport interface CharacterTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n characterStyleName: string;\n styleKind: StructuredTextStyleKind.character;\n}\n\nexport interface LineBreakTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n styleKind: StructuredTextStyleKind.lineBreak;\n}\n\n\n/**\n * A style rule that applies inline character styling directly to matched\n * elements without requiring a named style.\n */\nexport interface InlineStyleTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n inlineStyleDefinition: StructuredTextInlineStyleDefinition;\n styleKind: StructuredTextStyleKind.inlineStyle;\n}\n\n/**\n * Defines inline character style properties applied by inline style rules.\n *\n * Every property is optional. If a property is left `undefined`, it is not\n * overridden by the rule.\n */\nexport interface StructuredTextInlineStyleDefinition {\n underline?: boolean;\n lineThrough?: boolean;\n subSuperScript?: Scripting;\n}\n\n/**\n * Matcher for structured text nodes.\n */\nexport interface StructuredTextNodeMatcher {\n tag?: string;\n attributeMatchers: StructuredTextAttributeMatcher[];\n caseSensitive: boolean;\n}\n\n/**\n * Supported operators for matching attributes.\n */\nexport enum StructuredTextAttributeMatchOperator {\n exists = 'exists',\n missing = 'missing',\n equals = 'equals',\n notEquals = 'notEquals',\n contains = 'contains',\n startsWith = 'startsWith',\n endsWith = 'endsWith',\n}\n\n/**\n * Matcher used to evaluate a node attribute.\n */\nexport type StructuredTextAttributeMatcher =\n | ExistsStructuredTextAttributeMatcher\n | MissingStructuredTextAttributeMatcher\n | EqualsStructuredTextAttributeMatcher\n | NotEqualsStructuredTextAttributeMatcher\n | ContainsStructuredTextAttributeMatcher\n | StartsWithStructuredTextAttributeMatcher\n | EndsWithStructuredTextAttributeMatcher;\n\nexport interface ExistsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n matchOperator: StructuredTextAttributeMatchOperator.exists;\n}\n\nexport interface MissingStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n matchOperator: StructuredTextAttributeMatchOperator.missing;\n}\n\nexport interface EqualsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.equals;\n}\n\nexport interface NotEqualsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.notEquals;\n}\n\nexport interface ContainsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.contains;\n}\n\nexport interface StartsWithStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.startsWith;\n}\n\nexport interface EndsWithStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.endsWith;\n}\n"],"names":["StructuredTextStyleKind","StructuredTextAttributeMatchOperator"],"mappings":"AAaO,IAAK,4CAAAA,6BAAL;AACHA,2BAAA,WAAA,IAAY;AACZA,2BAAA,WAAA,IAAY;AACZA,2BAAA,WAAA,IAAY;AACZA,2BAAA,aAAA,IAAc;AAJN,SAAAA;AAAA,GAAA,2BAAA,CAAA,CAAA;AAoEL,IAAK,yDAAAC,0CAAL;AACHA,wCAAA,QAAA,IAAS;AACTA,wCAAA,SAAA,IAAU;AACVA,wCAAA,QAAA,IAAS;AACTA,wCAAA,WAAA,IAAY;AACZA,wCAAA,UAAA,IAAW;AACXA,wCAAA,YAAA,IAAa;AACbA,wCAAA,UAAA,IAAW;AAPH,SAAAA;AAAA,GAAA,wCAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"RichTextRuleTypes.es.js","sources":["../../../src/types/RichTextRuleTypes.ts"],"sourcesContent":["import { Scripting } from './TextStyleTypes';\n\n/**\n * Defines a text flow and all style rules that are applied to it.\n */\nexport interface StructuredTextTextFlowDefinition {\n id: string;\n styleRules: StructuredTextStyleRule[];\n}\n\n/**\n * Supported style kinds for structured text rules.\n */\nexport enum StructuredTextStyleKind {\n paragraph = 'paragraph',\n character = 'character',\n lineBreak = 'lineBreak',\n inlineStyle = 'inlineStyle',\n}\n\n/**\n * A style rule for rich text parsing.\n */\nexport type StructuredTextStyleRule =\n | ParagraphTextStyleRule\n | CharacterTextStyleRule\n | LineBreakTextStyleRule\n | InlineStyleTextStyleRule;\n\nexport interface ParagraphTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n paragraphStyleName: string;\n styleKind: StructuredTextStyleKind.paragraph;\n}\n\nexport interface CharacterTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n characterStyleName: string;\n styleKind: StructuredTextStyleKind.character;\n}\n\nexport interface LineBreakTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n styleKind: StructuredTextStyleKind.lineBreak;\n}\n\n/**\n * A style rule that applies inline character styling directly to matched\n * elements without requiring a named style.\n */\nexport interface InlineStyleTextStyleRule {\n matcher: StructuredTextNodeMatcher;\n inlineStyleDefinition: StructuredTextInlineStyleDefinition;\n styleKind: StructuredTextStyleKind.inlineStyle;\n}\n\n/**\n * Defines inline character style properties applied by inline style rules.\n *\n * Every property is optional. If a property is left `undefined`, it is not\n * overridden by the rule.\n */\nexport interface StructuredTextInlineStyleDefinition {\n underline?: boolean;\n lineThrough?: boolean;\n subSuperScript?: Scripting;\n}\n\n/**\n * Matcher for structured text nodes.\n */\nexport interface StructuredTextNodeMatcher {\n tag?: string;\n attributeMatchers: StructuredTextAttributeMatcher[];\n caseSensitive: boolean;\n}\n\n/**\n * Supported operators for matching attributes.\n */\nexport enum StructuredTextAttributeMatchOperator {\n exists = 'exists',\n missing = 'missing',\n equals = 'equals',\n notEquals = 'notEquals',\n contains = 'contains',\n startsWith = 'startsWith',\n endsWith = 'endsWith',\n}\n\n/**\n * Matcher used to evaluate a node attribute.\n */\nexport type StructuredTextAttributeMatcher =\n | ExistsStructuredTextAttributeMatcher\n | MissingStructuredTextAttributeMatcher\n | EqualsStructuredTextAttributeMatcher\n | NotEqualsStructuredTextAttributeMatcher\n | ContainsStructuredTextAttributeMatcher\n | StartsWithStructuredTextAttributeMatcher\n | EndsWithStructuredTextAttributeMatcher;\n\nexport interface ExistsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n matchOperator: StructuredTextAttributeMatchOperator.exists;\n}\n\nexport interface MissingStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n matchOperator: StructuredTextAttributeMatchOperator.missing;\n}\n\nexport interface EqualsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.equals;\n}\n\nexport interface NotEqualsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.notEquals;\n}\n\nexport interface ContainsStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.contains;\n}\n\nexport interface StartsWithStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.startsWith;\n}\n\nexport interface EndsWithStructuredTextAttributeMatcher {\n name: string;\n caseSensitive: boolean;\n value: string;\n matchOperator: StructuredTextAttributeMatchOperator.endsWith;\n}\n"],"names":["StructuredTextStyleKind","StructuredTextAttributeMatchOperator"],"mappings":"AAaO,IAAK,4CAAAA,6BAAL;AACHA,2BAAA,WAAA,IAAY;AACZA,2BAAA,WAAA,IAAY;AACZA,2BAAA,WAAA,IAAY;AACZA,2BAAA,aAAA,IAAc;AAJN,SAAAA;AAAA,GAAA,2BAAA,CAAA,CAAA;AAmEL,IAAK,yDAAAC,0CAAL;AACHA,wCAAA,QAAA,IAAS;AACTA,wCAAA,SAAA,IAAU;AACVA,wCAAA,QAAA,IAAS;AACTA,wCAAA,WAAA,IAAY;AACZA,wCAAA,UAAA,IAAW;AACXA,wCAAA,YAAA,IAAa;AACbA,wCAAA,UAAA,IAAW;AAPH,SAAAA;AAAA,GAAA,wCAAA,CAAA,CAAA;"}
@@ -4,6 +4,7 @@ var ShapeType = /* @__PURE__ */ ((ShapeType2) => {
4
4
  ShapeType2["ellipse"] = "ellipse";
5
5
  ShapeType2["rectangle"] = "rectangle";
6
6
  ShapeType2["polygon"] = "polygon";
7
+ ShapeType2["custom"] = "custom";
7
8
  return ShapeType2;
8
9
  })(ShapeType || {});
9
10
  var CornerRadiusType = /* @__PURE__ */ ((CornerRadiusType2) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ShapeTypes.cjs.js","sources":["../../../src/types/ShapeTypes.ts"],"sourcesContent":["import { ColorUsage } from './ColorStyleTypes';\n\nexport enum ShapeType {\n ellipse = 'ellipse',\n rectangle = 'rectangle',\n polygon = 'polygon',\n}\n\nexport interface ShapeProperties {\n enableFill?: boolean;\n fillColor?: ColorUsage;\n enableStroke?: boolean;\n strokeColor?: ColorUsage;\n strokeWeight?: number;\n allCornersSame?: boolean;\n}\n\nexport interface ShapeContainerProperties {\n enableStroke: boolean;\n strokeColor: ColorUsage;\n strokeWeight: number;\n allCornersSame: boolean;\n}\n\nexport interface CornerRadiusUpdateModel {\n radiusAll?: number;\n topLeft?: number;\n bottomLeft?: number;\n topRight?: number;\n bottomRight?: number;\n allCornersSame?: boolean;\n}\n\nexport interface CornerRadiusNone {\n type: string;\n}\n\nexport interface CornerRadiusAll {\n type: string;\n radius: number;\n}\n\nexport interface CornerRadiusOnly {\n type: string;\n topLeft: number;\n bottomLeft: number;\n topRight: number;\n bottomRight: number;\n}\n\nexport enum CornerRadiusType {\n all = 'all',\n only = 'only',\n none = 'none',\n}\n\nexport type CornerRadius = CornerRadiusNone | CornerRadiusAll | CornerRadiusOnly;\n\nexport type ShapeFrameRectSource = {\n type: ShapeType.rectangle;\n cornerRadius?: CornerRadius;\n};\n\nexport type ShapeFrameEllipseSource = {\n type: ShapeType.ellipse;\n};\n\nexport type ShapeFramePolygonSource = {\n type: ShapeType.polygon;\n sides?: number;\n cornerRadius?: CornerRadius;\n};\n\nexport type ShapeFrameSource = ShapeFrameRectSource | ShapeFrameEllipseSource | ShapeFramePolygonSource;\n"],"names":["ShapeType","CornerRadiusType"],"mappings":";;AAEO,IAAK,8BAAAA,eAAL;AACHA,aAAA,SAAA,IAAU;AACVA,aAAA,WAAA,IAAY;AACZA,aAAA,SAAA,IAAU;AAHF,SAAAA;AAAA,GAAA,aAAA,CAAA,CAAA;AAgDL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,KAAA,IAAM;AACNA,oBAAA,MAAA,IAAO;AACPA,oBAAA,MAAA,IAAO;AAHC,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;;;"}
1
+ {"version":3,"file":"ShapeTypes.cjs.js","sources":["../../../src/types/ShapeTypes.ts"],"sourcesContent":["import { ColorUsage } from './ColorStyleTypes';\n\nexport enum ShapeType {\n ellipse = 'ellipse',\n rectangle = 'rectangle',\n polygon = 'polygon',\n custom = 'custom',\n}\n\nexport interface ShapeProperties {\n enableFill?: boolean;\n fillColor?: ColorUsage;\n enableStroke?: boolean;\n strokeColor?: ColorUsage;\n strokeWeight?: number;\n allCornersSame?: boolean;\n}\n\nexport interface ShapeContainerProperties {\n enableStroke: boolean;\n strokeColor: ColorUsage;\n strokeWeight: number;\n allCornersSame: boolean;\n}\n\nexport interface CornerRadiusUpdateModel {\n radiusAll?: number;\n topLeft?: number;\n bottomLeft?: number;\n topRight?: number;\n bottomRight?: number;\n allCornersSame?: boolean;\n}\n\nexport interface CornerRadiusNone {\n type: string;\n}\n\nexport interface CornerRadiusAll {\n type: string;\n radius: number;\n}\n\nexport interface CornerRadiusOnly {\n type: string;\n topLeft: number;\n bottomLeft: number;\n topRight: number;\n bottomRight: number;\n}\n\nexport enum CornerRadiusType {\n all = 'all',\n only = 'only',\n none = 'none',\n}\n\nexport type CornerRadius = CornerRadiusNone | CornerRadiusAll | CornerRadiusOnly;\n\nexport type ShapeFrameRectSource = {\n type: ShapeType.rectangle;\n cornerRadius?: CornerRadius;\n};\n\nexport type ShapeFrameEllipseSource = {\n type: ShapeType.ellipse;\n};\n\nexport type ShapeFramePolygonSource = {\n type: ShapeType.polygon;\n sides?: number;\n cornerRadius?: CornerRadius;\n};\n\nexport type ShapeFrameCustomSource = {\n type: ShapeType.custom;\n /** \n * The shape path is in relative coordinates to the frame, \n * with the top left corner of the frame being (0, 0) and the \n * bottom right corner being (1, 1). The path should be a valid SVG path string. \n */\n path: string;\n};\n\nexport type ShapeFrameSource =\n | ShapeFrameRectSource\n | ShapeFrameEllipseSource\n | ShapeFramePolygonSource\n | ShapeFrameCustomSource;\n"],"names":["ShapeType","CornerRadiusType"],"mappings":";;AAEO,IAAK,8BAAAA,eAAL;AACHA,aAAA,SAAA,IAAU;AACVA,aAAA,WAAA,IAAY;AACZA,aAAA,SAAA,IAAU;AACVA,aAAA,QAAA,IAAS;AAJD,SAAAA;AAAA,GAAA,aAAA,CAAA,CAAA;AAiDL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,KAAA,IAAM;AACNA,oBAAA,MAAA,IAAO;AACPA,oBAAA,MAAA,IAAO;AAHC,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;;;"}
@@ -2,7 +2,8 @@ import { ColorUsage } from './ColorStyleTypes';
2
2
  export declare enum ShapeType {
3
3
  ellipse = "ellipse",
4
4
  rectangle = "rectangle",
5
- polygon = "polygon"
5
+ polygon = "polygon",
6
+ custom = "custom"
6
7
  }
7
8
  export interface ShapeProperties {
8
9
  enableFill?: boolean;
@@ -58,4 +59,13 @@ export type ShapeFramePolygonSource = {
58
59
  sides?: number;
59
60
  cornerRadius?: CornerRadius;
60
61
  };
61
- export type ShapeFrameSource = ShapeFrameRectSource | ShapeFrameEllipseSource | ShapeFramePolygonSource;
62
+ export type ShapeFrameCustomSource = {
63
+ type: ShapeType.custom;
64
+ /**
65
+ * The shape path is in relative coordinates to the frame,
66
+ * with the top left corner of the frame being (0, 0) and the
67
+ * bottom right corner being (1, 1). The path should be a valid SVG path string.
68
+ */
69
+ path: string;
70
+ };
71
+ export type ShapeFrameSource = ShapeFrameRectSource | ShapeFrameEllipseSource | ShapeFramePolygonSource | ShapeFrameCustomSource;
@@ -2,6 +2,7 @@ var ShapeType = /* @__PURE__ */ ((ShapeType2) => {
2
2
  ShapeType2["ellipse"] = "ellipse";
3
3
  ShapeType2["rectangle"] = "rectangle";
4
4
  ShapeType2["polygon"] = "polygon";
5
+ ShapeType2["custom"] = "custom";
5
6
  return ShapeType2;
6
7
  })(ShapeType || {});
7
8
  var CornerRadiusType = /* @__PURE__ */ ((CornerRadiusType2) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ShapeTypes.es.js","sources":["../../../src/types/ShapeTypes.ts"],"sourcesContent":["import { ColorUsage } from './ColorStyleTypes';\n\nexport enum ShapeType {\n ellipse = 'ellipse',\n rectangle = 'rectangle',\n polygon = 'polygon',\n}\n\nexport interface ShapeProperties {\n enableFill?: boolean;\n fillColor?: ColorUsage;\n enableStroke?: boolean;\n strokeColor?: ColorUsage;\n strokeWeight?: number;\n allCornersSame?: boolean;\n}\n\nexport interface ShapeContainerProperties {\n enableStroke: boolean;\n strokeColor: ColorUsage;\n strokeWeight: number;\n allCornersSame: boolean;\n}\n\nexport interface CornerRadiusUpdateModel {\n radiusAll?: number;\n topLeft?: number;\n bottomLeft?: number;\n topRight?: number;\n bottomRight?: number;\n allCornersSame?: boolean;\n}\n\nexport interface CornerRadiusNone {\n type: string;\n}\n\nexport interface CornerRadiusAll {\n type: string;\n radius: number;\n}\n\nexport interface CornerRadiusOnly {\n type: string;\n topLeft: number;\n bottomLeft: number;\n topRight: number;\n bottomRight: number;\n}\n\nexport enum CornerRadiusType {\n all = 'all',\n only = 'only',\n none = 'none',\n}\n\nexport type CornerRadius = CornerRadiusNone | CornerRadiusAll | CornerRadiusOnly;\n\nexport type ShapeFrameRectSource = {\n type: ShapeType.rectangle;\n cornerRadius?: CornerRadius;\n};\n\nexport type ShapeFrameEllipseSource = {\n type: ShapeType.ellipse;\n};\n\nexport type ShapeFramePolygonSource = {\n type: ShapeType.polygon;\n sides?: number;\n cornerRadius?: CornerRadius;\n};\n\nexport type ShapeFrameSource = ShapeFrameRectSource | ShapeFrameEllipseSource | ShapeFramePolygonSource;\n"],"names":["ShapeType","CornerRadiusType"],"mappings":"AAEO,IAAK,8BAAAA,eAAL;AACHA,aAAA,SAAA,IAAU;AACVA,aAAA,WAAA,IAAY;AACZA,aAAA,SAAA,IAAU;AAHF,SAAAA;AAAA,GAAA,aAAA,CAAA,CAAA;AAgDL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,KAAA,IAAM;AACNA,oBAAA,MAAA,IAAO;AACPA,oBAAA,MAAA,IAAO;AAHC,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"ShapeTypes.es.js","sources":["../../../src/types/ShapeTypes.ts"],"sourcesContent":["import { ColorUsage } from './ColorStyleTypes';\n\nexport enum ShapeType {\n ellipse = 'ellipse',\n rectangle = 'rectangle',\n polygon = 'polygon',\n custom = 'custom',\n}\n\nexport interface ShapeProperties {\n enableFill?: boolean;\n fillColor?: ColorUsage;\n enableStroke?: boolean;\n strokeColor?: ColorUsage;\n strokeWeight?: number;\n allCornersSame?: boolean;\n}\n\nexport interface ShapeContainerProperties {\n enableStroke: boolean;\n strokeColor: ColorUsage;\n strokeWeight: number;\n allCornersSame: boolean;\n}\n\nexport interface CornerRadiusUpdateModel {\n radiusAll?: number;\n topLeft?: number;\n bottomLeft?: number;\n topRight?: number;\n bottomRight?: number;\n allCornersSame?: boolean;\n}\n\nexport interface CornerRadiusNone {\n type: string;\n}\n\nexport interface CornerRadiusAll {\n type: string;\n radius: number;\n}\n\nexport interface CornerRadiusOnly {\n type: string;\n topLeft: number;\n bottomLeft: number;\n topRight: number;\n bottomRight: number;\n}\n\nexport enum CornerRadiusType {\n all = 'all',\n only = 'only',\n none = 'none',\n}\n\nexport type CornerRadius = CornerRadiusNone | CornerRadiusAll | CornerRadiusOnly;\n\nexport type ShapeFrameRectSource = {\n type: ShapeType.rectangle;\n cornerRadius?: CornerRadius;\n};\n\nexport type ShapeFrameEllipseSource = {\n type: ShapeType.ellipse;\n};\n\nexport type ShapeFramePolygonSource = {\n type: ShapeType.polygon;\n sides?: number;\n cornerRadius?: CornerRadius;\n};\n\nexport type ShapeFrameCustomSource = {\n type: ShapeType.custom;\n /** \n * The shape path is in relative coordinates to the frame, \n * with the top left corner of the frame being (0, 0) and the \n * bottom right corner being (1, 1). The path should be a valid SVG path string. \n */\n path: string;\n};\n\nexport type ShapeFrameSource =\n | ShapeFrameRectSource\n | ShapeFrameEllipseSource\n | ShapeFramePolygonSource\n | ShapeFrameCustomSource;\n"],"names":["ShapeType","CornerRadiusType"],"mappings":"AAEO,IAAK,8BAAAA,eAAL;AACHA,aAAA,SAAA,IAAU;AACVA,aAAA,WAAA,IAAY;AACZA,aAAA,SAAA,IAAU;AACVA,aAAA,QAAA,IAAS;AAJD,SAAAA;AAAA,GAAA,aAAA,CAAA,CAAA;AAiDL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,KAAA,IAAM;AACNA,oBAAA,MAAA,IAAO;AACPA,oBAAA,MAAA,IAAO;AAHC,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;"}
@@ -196,6 +196,10 @@ class ConfigHelper {
196
196
  onBrandKitMediaChanged: new EngineEvent.EngineEvent(
197
197
  () => clone.onBrandKitMediaChanged,
198
198
  clone.logging.logger
199
+ ),
200
+ onCanvasFramesManipulated: new EngineEvent.EngineEvent(
201
+ () => clone.onCanvasFramesManipulated,
202
+ clone.logging.logger
199
203
  )
200
204
  };
201
205
  return clone;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigHelper.cjs.js","sources":["../../../src/utils/ConfigHelper.ts"],"sourcesContent":["import { DocumentAction } from '../types/ActionTypes';\nimport { AnimationPlaybackType, FrameAnimationType } from '../types/AnimationTypes';\nimport { BarcodeFrameValidationResult } from '../types/BarcodeTypes';\nimport { CharacterStyle } from '../types/CharacterStyleTypes';\nimport { DocumentColor } from '../types/ColorStyleTypes';\nimport { ConfigType, Id, LogLevel, MaybePromise, RuntimeConfigType, SelectedLayoutFrame } from '../types/CommonTypes';\nimport { AuthCredentials, AuthRefreshRequest, ConnectorEvent, ConnectorInstance } from '../types/ConnectorTypes';\nimport { DocumentIssue, UndoState } from '../types/DocumentTypes';\nimport { EngineEditMode } from '../types/EngineEditModeTypes';\nimport { DocumentFontFamily } from '../types/FontTypes';\nimport { Frame, FrameLayoutType } from '../types/FrameTypes';\nimport { LayoutListItemType, LayoutPropertiesType, MeasurementUnit } from '../types/LayoutTypes';\nimport { Page, PageSize } from '../types/PageTypes';\nimport { ParagraphStyle } from '../types/ParagraphStyleTypes';\nimport { CornerRadiusUpdateModel } from '../types/ShapeTypes';\nimport { SelectedTextStyle } from '../types/TextStyleTypes';\nimport { Variable } from '../types/VariableTypes';\nimport { ViewMode } from '../types/ViewModeTypes';\nimport { Viewport } from '../types/ViewportTypes';\nimport { EngineCallbackHandler } from './EngineCallbackHandler';\nimport { EngineEvent } from './EngineEvent';\nimport { ToolType } from './Enums';\nimport { BrandKitMedia } from '../types/BrandKitTypes';\nimport { AsyncError } from '../exceptions';\n\nexport class ConfigHelper {\n /**\n * Creates a runtime configuration object from the provided configuration object.\n *\n * @param config The configuration object to create the runtime configuration object from.\n * @returns The runtime configuration object.\n */\n static createRuntimeConfig(config: ConfigType): RuntimeConfigType {\n // we need a reference to the clone object in the engineEvent, so we need to create the object in 2 steps\n const clone: RuntimeConfigType = { ...config } as RuntimeConfigType;\n clone.logging = {\n logLevel: config.logging?.logLevel || LogLevel.error,\n logger:\n config.logging?.logger ||\n ((level, cat, msg) => {\n if (!ConfigHelper.isLoggingEnabled(level, clone.logging?.logLevel ?? LogLevel.error)) {\n return;\n }\n\n switch (level) {\n case LogLevel.error:\n console.error(`[${cat}] [${level}] ${msg}`);\n break;\n case LogLevel.warn:\n console.warn(`[${cat}] [${level}] ${msg}`);\n break;\n default:\n console.log(`[${cat}] [${level}] ${msg}`);\n }\n }),\n };\n clone.handlers = {\n onAuthExpired: new EngineCallbackHandler<\n (authRefreshRequest: AuthRefreshRequest) => Promise<AuthCredentials | null>\n >(() => clone.onAuthExpired, clone.logging?.logger),\n onViewportRequested: new EngineCallbackHandler<() => Viewport | null>(\n () => clone.onViewportRequested,\n clone.logging?.logger,\n ),\n };\n clone.events = {\n onActionsChanged: new EngineEvent<(state: DocumentAction[]) => MaybePromise<void>>(\n () => clone.onActionsChanged,\n clone.logging?.logger,\n ),\n onStateChanged: new EngineEvent<() => MaybePromise<void>>(\n () => clone.onStateChanged,\n clone.logging?.logger,\n ),\n\n onDocumentLoaded: new EngineEvent<() => MaybePromise<void>>(\n () => clone.onDocumentLoaded,\n clone.logging?.logger,\n ),\n onSelectedFramesLayoutChanged: new EngineEvent<(states: FrameLayoutType[]) => MaybePromise<void>>(\n () => clone.onSelectedFramesLayoutChanged,\n clone.logging?.logger,\n ),\n onFramesLayoutChanged: new EngineEvent<(states: FrameLayoutType[]) => MaybePromise<void>>(\n () => clone.onFramesLayoutChanged,\n clone.logging?.logger,\n ),\n onSelectedFramesContentChanged: new EngineEvent<(state: Frame[]) => MaybePromise<void>>(\n () => clone.onSelectedFramesContentChanged,\n clone.logging?.logger,\n ),\n onPageSelectionChanged: new EngineEvent<(id: Id) => MaybePromise<void>>(\n () => clone.onPageSelectionChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutPropertiesChanged: new EngineEvent<(state: LayoutPropertiesType) => MaybePromise<void>>(\n () => clone.onSelectedLayoutPropertiesChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutUnitChanged: new EngineEvent<(unit: MeasurementUnit) => MaybePromise<void>>(\n () => clone.onSelectedLayoutUnitChanged,\n clone.logging?.logger,\n ),\n onScrubberPositionChanged: new EngineEvent<(state: AnimationPlaybackType) => MaybePromise<void>>(\n () => clone.onScrubberPositionChanged,\n clone.logging?.logger,\n ),\n onFrameAnimationsChanged: new EngineEvent<(animationState: FrameAnimationType[]) => MaybePromise<void>>(\n () => clone.onFrameAnimationsChanged,\n clone.logging?.logger,\n ),\n onVariableListChanged: new EngineEvent<(variableList: Variable[]) => MaybePromise<void>>(\n () => clone.onVariableListChanged,\n clone.logging?.logger,\n ),\n onSelectedToolChanged: new EngineEvent<(tool: ToolType) => MaybePromise<void>>(\n () => clone.onSelectedToolChanged,\n clone.logging?.logger,\n ),\n onUndoStackStateChanged: new EngineEvent<(undoStackState: UndoState) => MaybePromise<void>>(\n () => clone.onUndoStackStateChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutFramesChanged: new EngineEvent<(frames: SelectedLayoutFrame[]) => MaybePromise<void>>(\n () => clone.onSelectedLayoutFramesChanged,\n clone.logging?.logger,\n ),\n onSelectedTextStyleChanged: new EngineEvent<(styles: SelectedTextStyle) => MaybePromise<void>>(\n () => clone.onSelectedTextStyleChanged,\n clone.logging?.logger,\n ),\n onColorsChanged: new EngineEvent<(colors: DocumentColor[]) => MaybePromise<void>>(\n () => clone.onColorsChanged,\n clone.logging?.logger,\n ),\n onParagraphStylesChanged: new EngineEvent<(paragraphStyles: ParagraphStyle[]) => MaybePromise<void>>(\n () => clone.onParagraphStylesChanged,\n clone.logging?.logger,\n ),\n onCharacterStylesChanged: new EngineEvent<(characterStyles: CharacterStyle[]) => MaybePromise<void>>(\n () => clone.onCharacterStylesChanged,\n clone.logging?.logger,\n ),\n onFontFamiliesChanged: new EngineEvent<(fontFamilies: DocumentFontFamily[]) => MaybePromise<void>>(\n () => clone.onFontFamiliesChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutIdChanged: new EngineEvent<(layoutId: string) => MaybePromise<void>>(\n () => clone.onSelectedLayoutIdChanged,\n clone.logging?.logger,\n ),\n onLayoutsChanged: new EngineEvent<(layouts: LayoutListItemType[]) => MaybePromise<void>>(\n () => clone.onLayoutsChanged,\n clone.logging?.logger,\n ),\n onConnectorEvent: new EngineEvent<(event: ConnectorEvent) => MaybePromise<void>>(\n () => clone.onConnectorEvent,\n clone.logging?.logger,\n ),\n onConnectorsChanged: new EngineEvent<(connectors: ConnectorInstance[]) => MaybePromise<void>>(\n () => clone.onConnectorsChanged,\n clone.logging?.logger,\n ),\n onZoomChanged: new EngineEvent<(scaleFactor: number) => MaybePromise<void>>(\n () => clone.onZoomChanged,\n clone.logging?.logger,\n ),\n onSelectedPageIdChanged: new EngineEvent<(pageId: Id) => MaybePromise<void>>(\n () => clone.onSelectedPageIdChanged,\n clone.logging.logger,\n ),\n onPagesChanged: new EngineEvent<(pages: Page[]) => MaybePromise<void>>(\n () => clone.onPagesChanged,\n clone.logging.logger,\n ),\n onPageSnapshotInvalidated: new EngineEvent<(pageId: Id) => MaybePromise<void>>(\n () => clone.onPageSnapshotInvalidated,\n clone.logging.logger,\n ),\n onPageSizeChanged: new EngineEvent<(pageSize: PageSize) => MaybePromise<void>>(\n () => clone.onPageSizeChanged,\n clone.logging?.logger,\n ),\n onShapeCornerRadiusChanged: new EngineEvent<(cornerRadius: CornerRadiusUpdateModel) => MaybePromise<void>>(\n () => clone.onShapeCornerRadiusChanged,\n clone.logging?.logger,\n ),\n onCropActiveFrameIdChanged: new EngineEvent<(id?: Id) => MaybePromise<void>>(\n () => clone.onCropActiveFrameIdChanged,\n clone.logging?.logger,\n ),\n onAsyncError: new EngineEvent<(asyncError: AsyncError) => MaybePromise<void>>(\n () => clone.onAsyncError,\n clone.logging?.logger,\n ),\n onViewModeChanged: new EngineEvent<(tool: ViewMode) => MaybePromise<void>>(\n () => clone.onViewModeChanged,\n clone.logging?.logger,\n ),\n onBarcodeValidationChanged: new EngineEvent<\n (validationResults: BarcodeFrameValidationResult[]) => MaybePromise<void>\n >(() => clone.onBarcodeValidationChanged, clone.logging?.logger),\n onDataSourceIdChanged: new EngineEvent<(connectorId?: Id) => MaybePromise<void>>(\n () => clone.onDataSourceIdChanged,\n clone.logging.logger,\n ),\n onInjectedDataChanged: new EngineEvent<(variableId: Id) => MaybePromise<void>>(\n () => clone.onInjectedDataChanged,\n clone.logging.logger,\n ),\n onDocumentIssueListChanged: new EngineEvent<(documentIssues: DocumentIssue[]) => MaybePromise<void>>(\n () => clone.onDocumentIssueListChanged,\n clone.logging.logger,\n ),\n onCustomUndoDataChanged: new EngineEvent<(customData: Record<string, string>) => MaybePromise<void>>(\n () => clone.onCustomUndoDataChanged,\n clone.logging.logger,\n ),\n onEngineEditModeChanged: new EngineEvent<(engineEditMode: EngineEditMode) => MaybePromise<void>>(\n () => clone.onEngineEditModeChanged,\n clone.logging.logger,\n ),\n onBrandKitMediaChanged: new EngineEvent<(brandKitMedia: BrandKitMedia[]) => MaybePromise<void>>(\n () => clone.onBrandKitMediaChanged,\n clone.logging.logger,\n ),\n };\n return clone;\n }\n\n private static isLoggingEnabled(level: LogLevel, logLevel: LogLevel): boolean {\n if (logLevel == LogLevel.info) {\n return true;\n }\n if (logLevel == LogLevel.warn && (level == LogLevel.warn || level == LogLevel.error)) {\n return true;\n }\n return logLevel == LogLevel.error && level == LogLevel.error;\n }\n}\n"],"names":["LogLevel","_a","EngineCallbackHandler","EngineEvent"],"mappings":"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"}
1
+ {"version":3,"file":"ConfigHelper.cjs.js","sources":["../../../src/utils/ConfigHelper.ts"],"sourcesContent":["import { DocumentAction } from '../types/ActionTypes';\nimport { AnimationPlaybackType, FrameAnimationType } from '../types/AnimationTypes';\nimport { BarcodeFrameValidationResult } from '../types/BarcodeTypes';\nimport { CharacterStyle } from '../types/CharacterStyleTypes';\nimport { DocumentColor } from '../types/ColorStyleTypes';\nimport { ConfigType, Id, LogLevel, MaybePromise, RuntimeConfigType, SelectedLayoutFrame } from '../types/CommonTypes';\nimport { AuthCredentials, AuthRefreshRequest, ConnectorEvent, ConnectorInstance } from '../types/ConnectorTypes';\nimport { DocumentIssue, UndoState } from '../types/DocumentTypes';\nimport { EngineEditMode } from '../types/EngineEditModeTypes';\nimport { DocumentFontFamily } from '../types/FontTypes';\nimport { Frame, FrameLayoutType } from '../types/FrameTypes';\nimport { LayoutListItemType, LayoutPropertiesType, MeasurementUnit } from '../types/LayoutTypes';\nimport { Page, PageSize } from '../types/PageTypes';\nimport { ParagraphStyle } from '../types/ParagraphStyleTypes';\nimport { CornerRadiusUpdateModel } from '../types/ShapeTypes';\nimport { SelectedTextStyle } from '../types/TextStyleTypes';\nimport { Variable } from '../types/VariableTypes';\nimport { ViewMode } from '../types/ViewModeTypes';\nimport { Viewport } from '../types/ViewportTypes';\nimport { EngineCallbackHandler } from './EngineCallbackHandler';\nimport { EngineEvent } from './EngineEvent';\nimport { ToolType } from './Enums';\nimport { BrandKitMedia } from '../types/BrandKitTypes';\nimport { AsyncError } from '../exceptions';\n\nexport class ConfigHelper {\n /**\n * Creates a runtime configuration object from the provided configuration object.\n *\n * @param config The configuration object to create the runtime configuration object from.\n * @returns The runtime configuration object.\n */\n static createRuntimeConfig(config: ConfigType): RuntimeConfigType {\n // we need a reference to the clone object in the engineEvent, so we need to create the object in 2 steps\n const clone: RuntimeConfigType = { ...config } as RuntimeConfigType;\n clone.logging = {\n logLevel: config.logging?.logLevel || LogLevel.error,\n logger:\n config.logging?.logger ||\n ((level, cat, msg) => {\n if (!ConfigHelper.isLoggingEnabled(level, clone.logging?.logLevel ?? LogLevel.error)) {\n return;\n }\n\n switch (level) {\n case LogLevel.error:\n console.error(`[${cat}] [${level}] ${msg}`);\n break;\n case LogLevel.warn:\n console.warn(`[${cat}] [${level}] ${msg}`);\n break;\n default:\n console.log(`[${cat}] [${level}] ${msg}`);\n }\n }),\n };\n clone.handlers = {\n onAuthExpired: new EngineCallbackHandler<\n (authRefreshRequest: AuthRefreshRequest) => Promise<AuthCredentials | null>\n >(() => clone.onAuthExpired, clone.logging?.logger),\n onViewportRequested: new EngineCallbackHandler<() => Viewport | null>(\n () => clone.onViewportRequested,\n clone.logging?.logger,\n ),\n };\n clone.events = {\n onActionsChanged: new EngineEvent<(state: DocumentAction[]) => MaybePromise<void>>(\n () => clone.onActionsChanged,\n clone.logging?.logger,\n ),\n onStateChanged: new EngineEvent<() => MaybePromise<void>>(\n () => clone.onStateChanged,\n clone.logging?.logger,\n ),\n\n onDocumentLoaded: new EngineEvent<() => MaybePromise<void>>(\n () => clone.onDocumentLoaded,\n clone.logging?.logger,\n ),\n onSelectedFramesLayoutChanged: new EngineEvent<(states: FrameLayoutType[]) => MaybePromise<void>>(\n () => clone.onSelectedFramesLayoutChanged,\n clone.logging?.logger,\n ),\n onFramesLayoutChanged: new EngineEvent<(states: FrameLayoutType[]) => MaybePromise<void>>(\n () => clone.onFramesLayoutChanged,\n clone.logging?.logger,\n ),\n onSelectedFramesContentChanged: new EngineEvent<(state: Frame[]) => MaybePromise<void>>(\n () => clone.onSelectedFramesContentChanged,\n clone.logging?.logger,\n ),\n onPageSelectionChanged: new EngineEvent<(id: Id) => MaybePromise<void>>(\n () => clone.onPageSelectionChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutPropertiesChanged: new EngineEvent<(state: LayoutPropertiesType) => MaybePromise<void>>(\n () => clone.onSelectedLayoutPropertiesChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutUnitChanged: new EngineEvent<(unit: MeasurementUnit) => MaybePromise<void>>(\n () => clone.onSelectedLayoutUnitChanged,\n clone.logging?.logger,\n ),\n onScrubberPositionChanged: new EngineEvent<(state: AnimationPlaybackType) => MaybePromise<void>>(\n () => clone.onScrubberPositionChanged,\n clone.logging?.logger,\n ),\n onFrameAnimationsChanged: new EngineEvent<(animationState: FrameAnimationType[]) => MaybePromise<void>>(\n () => clone.onFrameAnimationsChanged,\n clone.logging?.logger,\n ),\n onVariableListChanged: new EngineEvent<(variableList: Variable[]) => MaybePromise<void>>(\n () => clone.onVariableListChanged,\n clone.logging?.logger,\n ),\n onSelectedToolChanged: new EngineEvent<(tool: ToolType) => MaybePromise<void>>(\n () => clone.onSelectedToolChanged,\n clone.logging?.logger,\n ),\n onUndoStackStateChanged: new EngineEvent<(undoStackState: UndoState) => MaybePromise<void>>(\n () => clone.onUndoStackStateChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutFramesChanged: new EngineEvent<(frames: SelectedLayoutFrame[]) => MaybePromise<void>>(\n () => clone.onSelectedLayoutFramesChanged,\n clone.logging?.logger,\n ),\n onSelectedTextStyleChanged: new EngineEvent<(styles: SelectedTextStyle) => MaybePromise<void>>(\n () => clone.onSelectedTextStyleChanged,\n clone.logging?.logger,\n ),\n onColorsChanged: new EngineEvent<(colors: DocumentColor[]) => MaybePromise<void>>(\n () => clone.onColorsChanged,\n clone.logging?.logger,\n ),\n onParagraphStylesChanged: new EngineEvent<(paragraphStyles: ParagraphStyle[]) => MaybePromise<void>>(\n () => clone.onParagraphStylesChanged,\n clone.logging?.logger,\n ),\n onCharacterStylesChanged: new EngineEvent<(characterStyles: CharacterStyle[]) => MaybePromise<void>>(\n () => clone.onCharacterStylesChanged,\n clone.logging?.logger,\n ),\n onFontFamiliesChanged: new EngineEvent<(fontFamilies: DocumentFontFamily[]) => MaybePromise<void>>(\n () => clone.onFontFamiliesChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutIdChanged: new EngineEvent<(layoutId: string) => MaybePromise<void>>(\n () => clone.onSelectedLayoutIdChanged,\n clone.logging?.logger,\n ),\n onLayoutsChanged: new EngineEvent<(layouts: LayoutListItemType[]) => MaybePromise<void>>(\n () => clone.onLayoutsChanged,\n clone.logging?.logger,\n ),\n onConnectorEvent: new EngineEvent<(event: ConnectorEvent) => MaybePromise<void>>(\n () => clone.onConnectorEvent,\n clone.logging?.logger,\n ),\n onConnectorsChanged: new EngineEvent<(connectors: ConnectorInstance[]) => MaybePromise<void>>(\n () => clone.onConnectorsChanged,\n clone.logging?.logger,\n ),\n onZoomChanged: new EngineEvent<(scaleFactor: number) => MaybePromise<void>>(\n () => clone.onZoomChanged,\n clone.logging?.logger,\n ),\n onSelectedPageIdChanged: new EngineEvent<(pageId: Id) => MaybePromise<void>>(\n () => clone.onSelectedPageIdChanged,\n clone.logging.logger,\n ),\n onPagesChanged: new EngineEvent<(pages: Page[]) => MaybePromise<void>>(\n () => clone.onPagesChanged,\n clone.logging.logger,\n ),\n onPageSnapshotInvalidated: new EngineEvent<(pageId: Id) => MaybePromise<void>>(\n () => clone.onPageSnapshotInvalidated,\n clone.logging.logger,\n ),\n onPageSizeChanged: new EngineEvent<(pageSize: PageSize) => MaybePromise<void>>(\n () => clone.onPageSizeChanged,\n clone.logging?.logger,\n ),\n onShapeCornerRadiusChanged: new EngineEvent<(cornerRadius: CornerRadiusUpdateModel) => MaybePromise<void>>(\n () => clone.onShapeCornerRadiusChanged,\n clone.logging?.logger,\n ),\n onCropActiveFrameIdChanged: new EngineEvent<(id?: Id) => MaybePromise<void>>(\n () => clone.onCropActiveFrameIdChanged,\n clone.logging?.logger,\n ),\n onAsyncError: new EngineEvent<(asyncError: AsyncError) => MaybePromise<void>>(\n () => clone.onAsyncError,\n clone.logging?.logger,\n ),\n onViewModeChanged: new EngineEvent<(tool: ViewMode) => MaybePromise<void>>(\n () => clone.onViewModeChanged,\n clone.logging?.logger,\n ),\n onBarcodeValidationChanged: new EngineEvent<\n (validationResults: BarcodeFrameValidationResult[]) => MaybePromise<void>\n >(() => clone.onBarcodeValidationChanged, clone.logging?.logger),\n onDataSourceIdChanged: new EngineEvent<(connectorId?: Id) => MaybePromise<void>>(\n () => clone.onDataSourceIdChanged,\n clone.logging.logger,\n ),\n onInjectedDataChanged: new EngineEvent<(variableId: Id) => MaybePromise<void>>(\n () => clone.onInjectedDataChanged,\n clone.logging.logger,\n ),\n onDocumentIssueListChanged: new EngineEvent<(documentIssues: DocumentIssue[]) => MaybePromise<void>>(\n () => clone.onDocumentIssueListChanged,\n clone.logging.logger,\n ),\n onCustomUndoDataChanged: new EngineEvent<(customData: Record<string, string>) => MaybePromise<void>>(\n () => clone.onCustomUndoDataChanged,\n clone.logging.logger,\n ),\n onEngineEditModeChanged: new EngineEvent<(engineEditMode: EngineEditMode) => MaybePromise<void>>(\n () => clone.onEngineEditModeChanged,\n clone.logging.logger,\n ),\n onBrandKitMediaChanged: new EngineEvent<(brandKitMedia: BrandKitMedia[]) => MaybePromise<void>>(\n () => clone.onBrandKitMediaChanged,\n clone.logging.logger,\n ),\n onCanvasFramesManipulated: new EngineEvent<(frameIds: Id[]) => MaybePromise<void>>(\n () => clone.onCanvasFramesManipulated,\n clone.logging.logger,\n ),\n };\n return clone;\n }\n\n private static isLoggingEnabled(level: LogLevel, logLevel: LogLevel): boolean {\n if (logLevel == LogLevel.info) {\n return true;\n }\n if (logLevel == LogLevel.warn && (level == LogLevel.warn || level == LogLevel.error)) {\n return true;\n }\n return logLevel == LogLevel.error && level == LogLevel.error;\n }\n}\n"],"names":["LogLevel","_a","EngineCallbackHandler","EngineEvent"],"mappings":"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"}
@@ -194,6 +194,10 @@ class ConfigHelper {
194
194
  onBrandKitMediaChanged: new EngineEvent(
195
195
  () => clone.onBrandKitMediaChanged,
196
196
  clone.logging.logger
197
+ ),
198
+ onCanvasFramesManipulated: new EngineEvent(
199
+ () => clone.onCanvasFramesManipulated,
200
+ clone.logging.logger
197
201
  )
198
202
  };
199
203
  return clone;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigHelper.es.js","sources":["../../../src/utils/ConfigHelper.ts"],"sourcesContent":["import { DocumentAction } from '../types/ActionTypes';\nimport { AnimationPlaybackType, FrameAnimationType } from '../types/AnimationTypes';\nimport { BarcodeFrameValidationResult } from '../types/BarcodeTypes';\nimport { CharacterStyle } from '../types/CharacterStyleTypes';\nimport { DocumentColor } from '../types/ColorStyleTypes';\nimport { ConfigType, Id, LogLevel, MaybePromise, RuntimeConfigType, SelectedLayoutFrame } from '../types/CommonTypes';\nimport { AuthCredentials, AuthRefreshRequest, ConnectorEvent, ConnectorInstance } from '../types/ConnectorTypes';\nimport { DocumentIssue, UndoState } from '../types/DocumentTypes';\nimport { EngineEditMode } from '../types/EngineEditModeTypes';\nimport { DocumentFontFamily } from '../types/FontTypes';\nimport { Frame, FrameLayoutType } from '../types/FrameTypes';\nimport { LayoutListItemType, LayoutPropertiesType, MeasurementUnit } from '../types/LayoutTypes';\nimport { Page, PageSize } from '../types/PageTypes';\nimport { ParagraphStyle } from '../types/ParagraphStyleTypes';\nimport { CornerRadiusUpdateModel } from '../types/ShapeTypes';\nimport { SelectedTextStyle } from '../types/TextStyleTypes';\nimport { Variable } from '../types/VariableTypes';\nimport { ViewMode } from '../types/ViewModeTypes';\nimport { Viewport } from '../types/ViewportTypes';\nimport { EngineCallbackHandler } from './EngineCallbackHandler';\nimport { EngineEvent } from './EngineEvent';\nimport { ToolType } from './Enums';\nimport { BrandKitMedia } from '../types/BrandKitTypes';\nimport { AsyncError } from '../exceptions';\n\nexport class ConfigHelper {\n /**\n * Creates a runtime configuration object from the provided configuration object.\n *\n * @param config The configuration object to create the runtime configuration object from.\n * @returns The runtime configuration object.\n */\n static createRuntimeConfig(config: ConfigType): RuntimeConfigType {\n // we need a reference to the clone object in the engineEvent, so we need to create the object in 2 steps\n const clone: RuntimeConfigType = { ...config } as RuntimeConfigType;\n clone.logging = {\n logLevel: config.logging?.logLevel || LogLevel.error,\n logger:\n config.logging?.logger ||\n ((level, cat, msg) => {\n if (!ConfigHelper.isLoggingEnabled(level, clone.logging?.logLevel ?? LogLevel.error)) {\n return;\n }\n\n switch (level) {\n case LogLevel.error:\n console.error(`[${cat}] [${level}] ${msg}`);\n break;\n case LogLevel.warn:\n console.warn(`[${cat}] [${level}] ${msg}`);\n break;\n default:\n console.log(`[${cat}] [${level}] ${msg}`);\n }\n }),\n };\n clone.handlers = {\n onAuthExpired: new EngineCallbackHandler<\n (authRefreshRequest: AuthRefreshRequest) => Promise<AuthCredentials | null>\n >(() => clone.onAuthExpired, clone.logging?.logger),\n onViewportRequested: new EngineCallbackHandler<() => Viewport | null>(\n () => clone.onViewportRequested,\n clone.logging?.logger,\n ),\n };\n clone.events = {\n onActionsChanged: new EngineEvent<(state: DocumentAction[]) => MaybePromise<void>>(\n () => clone.onActionsChanged,\n clone.logging?.logger,\n ),\n onStateChanged: new EngineEvent<() => MaybePromise<void>>(\n () => clone.onStateChanged,\n clone.logging?.logger,\n ),\n\n onDocumentLoaded: new EngineEvent<() => MaybePromise<void>>(\n () => clone.onDocumentLoaded,\n clone.logging?.logger,\n ),\n onSelectedFramesLayoutChanged: new EngineEvent<(states: FrameLayoutType[]) => MaybePromise<void>>(\n () => clone.onSelectedFramesLayoutChanged,\n clone.logging?.logger,\n ),\n onFramesLayoutChanged: new EngineEvent<(states: FrameLayoutType[]) => MaybePromise<void>>(\n () => clone.onFramesLayoutChanged,\n clone.logging?.logger,\n ),\n onSelectedFramesContentChanged: new EngineEvent<(state: Frame[]) => MaybePromise<void>>(\n () => clone.onSelectedFramesContentChanged,\n clone.logging?.logger,\n ),\n onPageSelectionChanged: new EngineEvent<(id: Id) => MaybePromise<void>>(\n () => clone.onPageSelectionChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutPropertiesChanged: new EngineEvent<(state: LayoutPropertiesType) => MaybePromise<void>>(\n () => clone.onSelectedLayoutPropertiesChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutUnitChanged: new EngineEvent<(unit: MeasurementUnit) => MaybePromise<void>>(\n () => clone.onSelectedLayoutUnitChanged,\n clone.logging?.logger,\n ),\n onScrubberPositionChanged: new EngineEvent<(state: AnimationPlaybackType) => MaybePromise<void>>(\n () => clone.onScrubberPositionChanged,\n clone.logging?.logger,\n ),\n onFrameAnimationsChanged: new EngineEvent<(animationState: FrameAnimationType[]) => MaybePromise<void>>(\n () => clone.onFrameAnimationsChanged,\n clone.logging?.logger,\n ),\n onVariableListChanged: new EngineEvent<(variableList: Variable[]) => MaybePromise<void>>(\n () => clone.onVariableListChanged,\n clone.logging?.logger,\n ),\n onSelectedToolChanged: new EngineEvent<(tool: ToolType) => MaybePromise<void>>(\n () => clone.onSelectedToolChanged,\n clone.logging?.logger,\n ),\n onUndoStackStateChanged: new EngineEvent<(undoStackState: UndoState) => MaybePromise<void>>(\n () => clone.onUndoStackStateChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutFramesChanged: new EngineEvent<(frames: SelectedLayoutFrame[]) => MaybePromise<void>>(\n () => clone.onSelectedLayoutFramesChanged,\n clone.logging?.logger,\n ),\n onSelectedTextStyleChanged: new EngineEvent<(styles: SelectedTextStyle) => MaybePromise<void>>(\n () => clone.onSelectedTextStyleChanged,\n clone.logging?.logger,\n ),\n onColorsChanged: new EngineEvent<(colors: DocumentColor[]) => MaybePromise<void>>(\n () => clone.onColorsChanged,\n clone.logging?.logger,\n ),\n onParagraphStylesChanged: new EngineEvent<(paragraphStyles: ParagraphStyle[]) => MaybePromise<void>>(\n () => clone.onParagraphStylesChanged,\n clone.logging?.logger,\n ),\n onCharacterStylesChanged: new EngineEvent<(characterStyles: CharacterStyle[]) => MaybePromise<void>>(\n () => clone.onCharacterStylesChanged,\n clone.logging?.logger,\n ),\n onFontFamiliesChanged: new EngineEvent<(fontFamilies: DocumentFontFamily[]) => MaybePromise<void>>(\n () => clone.onFontFamiliesChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutIdChanged: new EngineEvent<(layoutId: string) => MaybePromise<void>>(\n () => clone.onSelectedLayoutIdChanged,\n clone.logging?.logger,\n ),\n onLayoutsChanged: new EngineEvent<(layouts: LayoutListItemType[]) => MaybePromise<void>>(\n () => clone.onLayoutsChanged,\n clone.logging?.logger,\n ),\n onConnectorEvent: new EngineEvent<(event: ConnectorEvent) => MaybePromise<void>>(\n () => clone.onConnectorEvent,\n clone.logging?.logger,\n ),\n onConnectorsChanged: new EngineEvent<(connectors: ConnectorInstance[]) => MaybePromise<void>>(\n () => clone.onConnectorsChanged,\n clone.logging?.logger,\n ),\n onZoomChanged: new EngineEvent<(scaleFactor: number) => MaybePromise<void>>(\n () => clone.onZoomChanged,\n clone.logging?.logger,\n ),\n onSelectedPageIdChanged: new EngineEvent<(pageId: Id) => MaybePromise<void>>(\n () => clone.onSelectedPageIdChanged,\n clone.logging.logger,\n ),\n onPagesChanged: new EngineEvent<(pages: Page[]) => MaybePromise<void>>(\n () => clone.onPagesChanged,\n clone.logging.logger,\n ),\n onPageSnapshotInvalidated: new EngineEvent<(pageId: Id) => MaybePromise<void>>(\n () => clone.onPageSnapshotInvalidated,\n clone.logging.logger,\n ),\n onPageSizeChanged: new EngineEvent<(pageSize: PageSize) => MaybePromise<void>>(\n () => clone.onPageSizeChanged,\n clone.logging?.logger,\n ),\n onShapeCornerRadiusChanged: new EngineEvent<(cornerRadius: CornerRadiusUpdateModel) => MaybePromise<void>>(\n () => clone.onShapeCornerRadiusChanged,\n clone.logging?.logger,\n ),\n onCropActiveFrameIdChanged: new EngineEvent<(id?: Id) => MaybePromise<void>>(\n () => clone.onCropActiveFrameIdChanged,\n clone.logging?.logger,\n ),\n onAsyncError: new EngineEvent<(asyncError: AsyncError) => MaybePromise<void>>(\n () => clone.onAsyncError,\n clone.logging?.logger,\n ),\n onViewModeChanged: new EngineEvent<(tool: ViewMode) => MaybePromise<void>>(\n () => clone.onViewModeChanged,\n clone.logging?.logger,\n ),\n onBarcodeValidationChanged: new EngineEvent<\n (validationResults: BarcodeFrameValidationResult[]) => MaybePromise<void>\n >(() => clone.onBarcodeValidationChanged, clone.logging?.logger),\n onDataSourceIdChanged: new EngineEvent<(connectorId?: Id) => MaybePromise<void>>(\n () => clone.onDataSourceIdChanged,\n clone.logging.logger,\n ),\n onInjectedDataChanged: new EngineEvent<(variableId: Id) => MaybePromise<void>>(\n () => clone.onInjectedDataChanged,\n clone.logging.logger,\n ),\n onDocumentIssueListChanged: new EngineEvent<(documentIssues: DocumentIssue[]) => MaybePromise<void>>(\n () => clone.onDocumentIssueListChanged,\n clone.logging.logger,\n ),\n onCustomUndoDataChanged: new EngineEvent<(customData: Record<string, string>) => MaybePromise<void>>(\n () => clone.onCustomUndoDataChanged,\n clone.logging.logger,\n ),\n onEngineEditModeChanged: new EngineEvent<(engineEditMode: EngineEditMode) => MaybePromise<void>>(\n () => clone.onEngineEditModeChanged,\n clone.logging.logger,\n ),\n onBrandKitMediaChanged: new EngineEvent<(brandKitMedia: BrandKitMedia[]) => MaybePromise<void>>(\n () => clone.onBrandKitMediaChanged,\n clone.logging.logger,\n ),\n };\n return clone;\n }\n\n private static isLoggingEnabled(level: LogLevel, logLevel: LogLevel): boolean {\n if (logLevel == LogLevel.info) {\n return true;\n }\n if (logLevel == LogLevel.warn && (level == LogLevel.warn || level == LogLevel.error)) {\n return true;\n }\n return logLevel == LogLevel.error && level == LogLevel.error;\n }\n}\n"],"names":["_a"],"mappings":";;;AAyBO,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtB,OAAO,oBAAoB,QAAuC;;AAE9D,UAAM,QAA2B,EAAE,GAAG,OAAA;AACtC,UAAM,UAAU;AAAA,MACZ,YAAU,YAAO,YAAP,mBAAgB,aAAY,SAAS;AAAA,MAC/C,UACI,YAAO,YAAP,mBAAgB,YACf,CAAC,OAAO,KAAK,QAAQ;;AAClB,YAAI,CAAC,aAAa,iBAAiB,SAAOA,MAAA,MAAM,YAAN,gBAAAA,IAAe,aAAY,SAAS,KAAK,GAAG;AAClF;AAAA,QACJ;AAEA,gBAAQ,OAAA;AAAA,UACJ,KAAK,SAAS;AACV,oBAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,KAAK,GAAG,EAAE;AAC1C;AAAA,UACJ,KAAK,SAAS;AACV,oBAAQ,KAAK,IAAI,GAAG,MAAM,KAAK,KAAK,GAAG,EAAE;AACzC;AAAA,UACJ;AACI,oBAAQ,IAAI,IAAI,GAAG,MAAM,KAAK,KAAK,GAAG,EAAE;AAAA,QAAA;AAAA,MAEpD;AAAA,IAAA;AAER,UAAM,WAAW;AAAA,MACb,eAAe,IAAI,sBAEjB,MAAM,MAAM,gBAAe,WAAM,YAAN,mBAAe,MAAM;AAAA,MAClD,qBAAqB,IAAI;AAAA,QACrB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,IACnB;AAEJ,UAAM,SAAS;AAAA,MACX,kBAAkB,IAAI;AAAA,QAClB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,gBAAgB,IAAI;AAAA,QAChB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAGnB,kBAAkB,IAAI;AAAA,QAClB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,+BAA+B,IAAI;AAAA,QAC/B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,uBAAuB,IAAI;AAAA,QACvB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,gCAAgC,IAAI;AAAA,QAChC,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,wBAAwB,IAAI;AAAA,QACxB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,mCAAmC,IAAI;AAAA,QACnC,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,6BAA6B,IAAI;AAAA,QAC7B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,2BAA2B,IAAI;AAAA,QAC3B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,0BAA0B,IAAI;AAAA,QAC1B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,uBAAuB,IAAI;AAAA,QACvB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,uBAAuB,IAAI;AAAA,QACvB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,yBAAyB,IAAI;AAAA,QACzB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,+BAA+B,IAAI;AAAA,QAC/B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,4BAA4B,IAAI;AAAA,QAC5B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,iBAAiB,IAAI;AAAA,QACjB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,0BAA0B,IAAI;AAAA,QAC1B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,0BAA0B,IAAI;AAAA,QAC1B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,uBAAuB,IAAI;AAAA,QACvB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,2BAA2B,IAAI;AAAA,QAC3B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,kBAAkB,IAAI;AAAA,QAClB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,kBAAkB,IAAI;AAAA,QAClB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,qBAAqB,IAAI;AAAA,QACrB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,eAAe,IAAI;AAAA,QACf,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,yBAAyB,IAAI;AAAA,QACzB,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,MAElB,gBAAgB,IAAI;AAAA,QAChB,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,MAElB,2BAA2B,IAAI;AAAA,QAC3B,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,MAElB,mBAAmB,IAAI;AAAA,QACnB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,4BAA4B,IAAI;AAAA,QAC5B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,4BAA4B,IAAI;AAAA,QAC5B,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,cAAc,IAAI;AAAA,QACd,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,mBAAmB,IAAI;AAAA,QACnB,MAAM,MAAM;AAAA,SACZ,WAAM,YAAN,mBAAe;AAAA,MAAA;AAAA,MAEnB,4BAA4B,IAAI,YAE9B,MAAM,MAAM,6BAA4B,WAAM,YAAN,mBAAe,MAAM;AAAA,MAC/D,uBAAuB,IAAI;AAAA,QACvB,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,MAElB,uBAAuB,IAAI;AAAA,QACvB,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,MAElB,4BAA4B,IAAI;AAAA,QAC5B,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,MAElB,yBAAyB,IAAI;AAAA,QACzB,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,MAElB,yBAAyB,IAAI;AAAA,QACzB,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,MAElB,wBAAwB,IAAI;AAAA,QACxB,MAAM,MAAM;AAAA,QACZ,MAAM,QAAQ;AAAA,MAAA;AAAA,IAClB;AAEJ,WAAO;AAAA,EACX;AAAA,EAEA,OAAe,iBAAiB,OAAiB,UAA6B;AAC1E,QAAI,YAAY,SAAS,MAAM;AAC3B,aAAO;AAAA,IACX;AACA,QAAI,YAAY,SAAS,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,QAAQ;AAClF,aAAO;AAAA,IACX;AACA,WAAO,YAAY,SAAS,SAAS,SAAS,SAAS;AAAA,EAC3D;AACJ;"}
1
+ {"version":3,"file":"ConfigHelper.es.js","sources":["../../../src/utils/ConfigHelper.ts"],"sourcesContent":["import { DocumentAction } from '../types/ActionTypes';\nimport { AnimationPlaybackType, FrameAnimationType } from '../types/AnimationTypes';\nimport { BarcodeFrameValidationResult } from '../types/BarcodeTypes';\nimport { CharacterStyle } from '../types/CharacterStyleTypes';\nimport { DocumentColor } from '../types/ColorStyleTypes';\nimport { ConfigType, Id, LogLevel, MaybePromise, RuntimeConfigType, SelectedLayoutFrame } from '../types/CommonTypes';\nimport { AuthCredentials, AuthRefreshRequest, ConnectorEvent, ConnectorInstance } from '../types/ConnectorTypes';\nimport { DocumentIssue, UndoState } from '../types/DocumentTypes';\nimport { EngineEditMode } from '../types/EngineEditModeTypes';\nimport { DocumentFontFamily } from '../types/FontTypes';\nimport { Frame, FrameLayoutType } from '../types/FrameTypes';\nimport { LayoutListItemType, LayoutPropertiesType, MeasurementUnit } from '../types/LayoutTypes';\nimport { Page, PageSize } from '../types/PageTypes';\nimport { ParagraphStyle } from '../types/ParagraphStyleTypes';\nimport { CornerRadiusUpdateModel } from '../types/ShapeTypes';\nimport { SelectedTextStyle } from '../types/TextStyleTypes';\nimport { Variable } from '../types/VariableTypes';\nimport { ViewMode } from '../types/ViewModeTypes';\nimport { Viewport } from '../types/ViewportTypes';\nimport { EngineCallbackHandler } from './EngineCallbackHandler';\nimport { EngineEvent } from './EngineEvent';\nimport { ToolType } from './Enums';\nimport { BrandKitMedia } from '../types/BrandKitTypes';\nimport { AsyncError } from '../exceptions';\n\nexport class ConfigHelper {\n /**\n * Creates a runtime configuration object from the provided configuration object.\n *\n * @param config The configuration object to create the runtime configuration object from.\n * @returns The runtime configuration object.\n */\n static createRuntimeConfig(config: ConfigType): RuntimeConfigType {\n // we need a reference to the clone object in the engineEvent, so we need to create the object in 2 steps\n const clone: RuntimeConfigType = { ...config } as RuntimeConfigType;\n clone.logging = {\n logLevel: config.logging?.logLevel || LogLevel.error,\n logger:\n config.logging?.logger ||\n ((level, cat, msg) => {\n if (!ConfigHelper.isLoggingEnabled(level, clone.logging?.logLevel ?? LogLevel.error)) {\n return;\n }\n\n switch (level) {\n case LogLevel.error:\n console.error(`[${cat}] [${level}] ${msg}`);\n break;\n case LogLevel.warn:\n console.warn(`[${cat}] [${level}] ${msg}`);\n break;\n default:\n console.log(`[${cat}] [${level}] ${msg}`);\n }\n }),\n };\n clone.handlers = {\n onAuthExpired: new EngineCallbackHandler<\n (authRefreshRequest: AuthRefreshRequest) => Promise<AuthCredentials | null>\n >(() => clone.onAuthExpired, clone.logging?.logger),\n onViewportRequested: new EngineCallbackHandler<() => Viewport | null>(\n () => clone.onViewportRequested,\n clone.logging?.logger,\n ),\n };\n clone.events = {\n onActionsChanged: new EngineEvent<(state: DocumentAction[]) => MaybePromise<void>>(\n () => clone.onActionsChanged,\n clone.logging?.logger,\n ),\n onStateChanged: new EngineEvent<() => MaybePromise<void>>(\n () => clone.onStateChanged,\n clone.logging?.logger,\n ),\n\n onDocumentLoaded: new EngineEvent<() => MaybePromise<void>>(\n () => clone.onDocumentLoaded,\n clone.logging?.logger,\n ),\n onSelectedFramesLayoutChanged: new EngineEvent<(states: FrameLayoutType[]) => MaybePromise<void>>(\n () => clone.onSelectedFramesLayoutChanged,\n clone.logging?.logger,\n ),\n onFramesLayoutChanged: new EngineEvent<(states: FrameLayoutType[]) => MaybePromise<void>>(\n () => clone.onFramesLayoutChanged,\n clone.logging?.logger,\n ),\n onSelectedFramesContentChanged: new EngineEvent<(state: Frame[]) => MaybePromise<void>>(\n () => clone.onSelectedFramesContentChanged,\n clone.logging?.logger,\n ),\n onPageSelectionChanged: new EngineEvent<(id: Id) => MaybePromise<void>>(\n () => clone.onPageSelectionChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutPropertiesChanged: new EngineEvent<(state: LayoutPropertiesType) => MaybePromise<void>>(\n () => clone.onSelectedLayoutPropertiesChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutUnitChanged: new EngineEvent<(unit: MeasurementUnit) => MaybePromise<void>>(\n () => clone.onSelectedLayoutUnitChanged,\n clone.logging?.logger,\n ),\n onScrubberPositionChanged: new EngineEvent<(state: AnimationPlaybackType) => MaybePromise<void>>(\n () => clone.onScrubberPositionChanged,\n clone.logging?.logger,\n ),\n onFrameAnimationsChanged: new EngineEvent<(animationState: FrameAnimationType[]) => MaybePromise<void>>(\n () => clone.onFrameAnimationsChanged,\n clone.logging?.logger,\n ),\n onVariableListChanged: new EngineEvent<(variableList: Variable[]) => MaybePromise<void>>(\n () => clone.onVariableListChanged,\n clone.logging?.logger,\n ),\n onSelectedToolChanged: new EngineEvent<(tool: ToolType) => MaybePromise<void>>(\n () => clone.onSelectedToolChanged,\n clone.logging?.logger,\n ),\n onUndoStackStateChanged: new EngineEvent<(undoStackState: UndoState) => MaybePromise<void>>(\n () => clone.onUndoStackStateChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutFramesChanged: new EngineEvent<(frames: SelectedLayoutFrame[]) => MaybePromise<void>>(\n () => clone.onSelectedLayoutFramesChanged,\n clone.logging?.logger,\n ),\n onSelectedTextStyleChanged: new EngineEvent<(styles: SelectedTextStyle) => MaybePromise<void>>(\n () => clone.onSelectedTextStyleChanged,\n clone.logging?.logger,\n ),\n onColorsChanged: new EngineEvent<(colors: DocumentColor[]) => MaybePromise<void>>(\n () => clone.onColorsChanged,\n clone.logging?.logger,\n ),\n onParagraphStylesChanged: new EngineEvent<(paragraphStyles: ParagraphStyle[]) => MaybePromise<void>>(\n () => clone.onParagraphStylesChanged,\n clone.logging?.logger,\n ),\n onCharacterStylesChanged: new EngineEvent<(characterStyles: CharacterStyle[]) => MaybePromise<void>>(\n () => clone.onCharacterStylesChanged,\n clone.logging?.logger,\n ),\n onFontFamiliesChanged: new EngineEvent<(fontFamilies: DocumentFontFamily[]) => MaybePromise<void>>(\n () => clone.onFontFamiliesChanged,\n clone.logging?.logger,\n ),\n onSelectedLayoutIdChanged: new EngineEvent<(layoutId: string) => MaybePromise<void>>(\n () => clone.onSelectedLayoutIdChanged,\n clone.logging?.logger,\n ),\n onLayoutsChanged: new EngineEvent<(layouts: LayoutListItemType[]) => MaybePromise<void>>(\n () => clone.onLayoutsChanged,\n clone.logging?.logger,\n ),\n onConnectorEvent: new EngineEvent<(event: ConnectorEvent) => MaybePromise<void>>(\n () => clone.onConnectorEvent,\n clone.logging?.logger,\n ),\n onConnectorsChanged: new EngineEvent<(connectors: ConnectorInstance[]) => MaybePromise<void>>(\n () => clone.onConnectorsChanged,\n clone.logging?.logger,\n ),\n onZoomChanged: new EngineEvent<(scaleFactor: number) => MaybePromise<void>>(\n () => clone.onZoomChanged,\n clone.logging?.logger,\n ),\n onSelectedPageIdChanged: new EngineEvent<(pageId: Id) => MaybePromise<void>>(\n () => clone.onSelectedPageIdChanged,\n clone.logging.logger,\n ),\n onPagesChanged: new EngineEvent<(pages: Page[]) => MaybePromise<void>>(\n () => clone.onPagesChanged,\n clone.logging.logger,\n ),\n onPageSnapshotInvalidated: new EngineEvent<(pageId: Id) => MaybePromise<void>>(\n () => clone.onPageSnapshotInvalidated,\n clone.logging.logger,\n ),\n onPageSizeChanged: new EngineEvent<(pageSize: PageSize) => MaybePromise<void>>(\n () => clone.onPageSizeChanged,\n clone.logging?.logger,\n ),\n onShapeCornerRadiusChanged: new EngineEvent<(cornerRadius: CornerRadiusUpdateModel) => MaybePromise<void>>(\n () => clone.onShapeCornerRadiusChanged,\n clone.logging?.logger,\n ),\n onCropActiveFrameIdChanged: new EngineEvent<(id?: Id) => MaybePromise<void>>(\n () => clone.onCropActiveFrameIdChanged,\n clone.logging?.logger,\n ),\n onAsyncError: new EngineEvent<(asyncError: AsyncError) => MaybePromise<void>>(\n () => clone.onAsyncError,\n clone.logging?.logger,\n ),\n onViewModeChanged: new EngineEvent<(tool: ViewMode) => MaybePromise<void>>(\n () => clone.onViewModeChanged,\n clone.logging?.logger,\n ),\n onBarcodeValidationChanged: new EngineEvent<\n (validationResults: BarcodeFrameValidationResult[]) => MaybePromise<void>\n >(() => clone.onBarcodeValidationChanged, clone.logging?.logger),\n onDataSourceIdChanged: new EngineEvent<(connectorId?: Id) => MaybePromise<void>>(\n () => clone.onDataSourceIdChanged,\n clone.logging.logger,\n ),\n onInjectedDataChanged: new EngineEvent<(variableId: Id) => MaybePromise<void>>(\n () => clone.onInjectedDataChanged,\n clone.logging.logger,\n ),\n onDocumentIssueListChanged: new EngineEvent<(documentIssues: DocumentIssue[]) => MaybePromise<void>>(\n () => clone.onDocumentIssueListChanged,\n clone.logging.logger,\n ),\n onCustomUndoDataChanged: new EngineEvent<(customData: Record<string, string>) => MaybePromise<void>>(\n () => clone.onCustomUndoDataChanged,\n clone.logging.logger,\n ),\n onEngineEditModeChanged: new EngineEvent<(engineEditMode: EngineEditMode) => MaybePromise<void>>(\n () => clone.onEngineEditModeChanged,\n clone.logging.logger,\n ),\n onBrandKitMediaChanged: new EngineEvent<(brandKitMedia: BrandKitMedia[]) => MaybePromise<void>>(\n () => clone.onBrandKitMediaChanged,\n clone.logging.logger,\n ),\n onCanvasFramesManipulated: new EngineEvent<(frameIds: Id[]) => MaybePromise<void>>(\n () => clone.onCanvasFramesManipulated,\n clone.logging.logger,\n ),\n };\n return clone;\n }\n\n private static isLoggingEnabled(level: LogLevel, logLevel: LogLevel): boolean {\n if (logLevel == LogLevel.info) {\n return true;\n }\n if (logLevel == LogLevel.warn && (level == LogLevel.warn || level == LogLevel.error)) {\n return true;\n }\n return logLevel == LogLevel.error && level == LogLevel.error;\n }\n}\n"],"names":["_a"],"mappings":"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"}
@@ -5,6 +5,9 @@ class EngineEventTrigger {
5
5
  constructor(logger) {
6
6
  this.logger = logger;
7
7
  }
8
+ getLogCategory() {
9
+ return CommonTypes.LogCategory.event;
10
+ }
8
11
  createEventHandlerFn(callbackFn, errorBehavior) {
9
12
  const wrapper = (...args) => {
10
13
  try {
@@ -22,7 +25,7 @@ class EngineEventTrigger {
22
25
  handleError(error, errorBehavior, fnName) {
23
26
  var _a;
24
27
  if (errorBehavior === CommonTypes.CallbackErrorBehavior.log) {
25
- (_a = this.logger) == null ? void 0 : _a.call(this, CommonTypes.LogLevel.error, CommonTypes.LogCategory.event, `Error in callback ${fnName}: ${error}`);
28
+ (_a = this.logger) == null ? void 0 : _a.call(this, CommonTypes.LogLevel.error, this.getLogCategory(), `Error in callback ${fnName}: ${error}`);
26
29
  } else {
27
30
  throw error;
28
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EngineEventTrigger.cjs.js","sources":["../../../src/utils/EngineEventTrigger.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CallbackErrorBehavior, LogCategory, LoggerFunction, LogLevel } from '../types/CommonTypes';\nexport abstract class EngineEventTrigger<T extends (...args: any[]) => any> {\n constructor(protected logger?: LoggerFunction) {}\n\n abstract trigger(...args: Parameters<T>): ReturnType<T>;\n\n protected createEventHandlerFn(callbackFn: T, errorBehavior: CallbackErrorBehavior): T {\n const wrapper: any = (...args: Parameters<T>) => {\n try {\n const result = callbackFn(...args);\n // If the callback returns a promise, we need to await it\n if (result instanceof Promise) {\n return result.catch((error) => this.handleError(error, errorBehavior, callbackFn.name));\n }\n return result;\n } catch (error) {\n this.handleError(error, errorBehavior, callbackFn.name);\n }\n };\n return wrapper;\n }\n\n private handleError(error: unknown, errorBehavior: CallbackErrorBehavior, fnName: string) {\n if (errorBehavior === CallbackErrorBehavior.log) {\n this.logger?.(LogLevel.error, LogCategory.event, `Error in callback ${fnName}: ${error}`);\n } else {\n throw error;\n }\n }\n}\n"],"names":["CallbackErrorBehavior","LogLevel","LogCategory"],"mappings":";;;AAEO,MAAe,mBAAsD;AAAA,EACxE,YAAsB,QAAyB;AAAzB,SAAA,SAAA;AAAA,EAA0B;AAAA,EAItC,qBAAqB,YAAe,eAAyC;AACnF,UAAM,UAAe,IAAI,SAAwB;AAC7C,UAAI;AACA,cAAM,SAAS,WAAW,GAAG,IAAI;AAEjC,YAAI,kBAAkB,SAAS;AAC3B,iBAAO,OAAO,MAAM,CAAC,UAAU,KAAK,YAAY,OAAO,eAAe,WAAW,IAAI,CAAC;AAAA,QAC1F;AACA,eAAO;AAAA,MACX,SAAS,OAAO;AACZ,aAAK,YAAY,OAAO,eAAe,WAAW,IAAI;AAAA,MAC1D;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEQ,YAAY,OAAgB,eAAsC,QAAgB;;AACtF,QAAI,kBAAkBA,YAAAA,sBAAsB,KAAK;AAC7C,iBAAK,WAAL,8BAAcC,qBAAS,OAAOC,YAAAA,YAAY,OAAO,qBAAqB,MAAM,KAAK,KAAK;AAAA,IAC1F,OAAO;AACH,YAAM;AAAA,IACV;AAAA,EACJ;AACJ;;"}
1
+ {"version":3,"file":"EngineEventTrigger.cjs.js","sources":["../../../src/utils/EngineEventTrigger.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CallbackErrorBehavior, LogCategory, LoggerFunction, LogLevel } from '../types/CommonTypes';\nexport abstract class EngineEventTrigger<T extends (...args: any[]) => any> {\n constructor(protected logger?: LoggerFunction) {}\n\n abstract trigger(...args: Parameters<T>): ReturnType<T>;\n\n protected getLogCategory(): LogCategory {\n return LogCategory.event;\n }\n\n protected createEventHandlerFn(callbackFn: T, errorBehavior: CallbackErrorBehavior): T {\n const wrapper: any = (...args: Parameters<T>) => {\n try {\n const result = callbackFn(...args);\n // If the callback returns a promise, we need to await it\n if (result instanceof Promise) {\n return result.catch((error) => this.handleError(error, errorBehavior, callbackFn.name));\n }\n return result;\n } catch (error) {\n this.handleError(error, errorBehavior, callbackFn.name);\n }\n };\n return wrapper;\n }\n\n private handleError(error: unknown, errorBehavior: CallbackErrorBehavior, fnName: string) {\n if (errorBehavior === CallbackErrorBehavior.log) {\n this.logger?.(LogLevel.error, this.getLogCategory(), `Error in callback ${fnName}: ${error}`);\n } else {\n throw error;\n }\n }\n}\n"],"names":["LogCategory","CallbackErrorBehavior","LogLevel"],"mappings":";;;AAEO,MAAe,mBAAsD;AAAA,EACxE,YAAsB,QAAyB;AAAzB,SAAA,SAAA;AAAA,EAA0B;AAAA,EAItC,iBAA8B;AACpC,WAAOA,YAAAA,YAAY;AAAA,EACvB;AAAA,EAEU,qBAAqB,YAAe,eAAyC;AACnF,UAAM,UAAe,IAAI,SAAwB;AAC7C,UAAI;AACA,cAAM,SAAS,WAAW,GAAG,IAAI;AAEjC,YAAI,kBAAkB,SAAS;AAC3B,iBAAO,OAAO,MAAM,CAAC,UAAU,KAAK,YAAY,OAAO,eAAe,WAAW,IAAI,CAAC;AAAA,QAC1F;AACA,eAAO;AAAA,MACX,SAAS,OAAO;AACZ,aAAK,YAAY,OAAO,eAAe,WAAW,IAAI;AAAA,MAC1D;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEQ,YAAY,OAAgB,eAAsC,QAAgB;;AACtF,QAAI,kBAAkBC,YAAAA,sBAAsB,KAAK;AAC7C,iBAAK,WAAL,8BAAcC,qBAAS,OAAO,KAAK,kBAAkB,qBAAqB,MAAM,KAAK,KAAK;AAAA,IAC9F,OAAO;AACH,YAAM;AAAA,IACV;AAAA,EACJ;AACJ;;"}
@@ -1,8 +1,9 @@
1
- import { CallbackErrorBehavior, LoggerFunction } from '../types/CommonTypes';
1
+ import { CallbackErrorBehavior, LogCategory, LoggerFunction } from '../types/CommonTypes';
2
2
  export declare abstract class EngineEventTrigger<T extends (...args: any[]) => any> {
3
3
  protected logger?: LoggerFunction | undefined;
4
4
  constructor(logger?: LoggerFunction | undefined);
5
5
  abstract trigger(...args: Parameters<T>): ReturnType<T>;
6
+ protected getLogCategory(): LogCategory;
6
7
  protected createEventHandlerFn(callbackFn: T, errorBehavior: CallbackErrorBehavior): T;
7
8
  private handleError;
8
9
  }
@@ -1,8 +1,11 @@
1
- import { CallbackErrorBehavior, LogLevel, LogCategory } from "../types/CommonTypes.es.js";
1
+ import { LogCategory, CallbackErrorBehavior, LogLevel } from "../types/CommonTypes.es.js";
2
2
  class EngineEventTrigger {
3
3
  constructor(logger) {
4
4
  this.logger = logger;
5
5
  }
6
+ getLogCategory() {
7
+ return LogCategory.event;
8
+ }
6
9
  createEventHandlerFn(callbackFn, errorBehavior) {
7
10
  const wrapper = (...args) => {
8
11
  try {
@@ -20,7 +23,7 @@ class EngineEventTrigger {
20
23
  handleError(error, errorBehavior, fnName) {
21
24
  var _a;
22
25
  if (errorBehavior === CallbackErrorBehavior.log) {
23
- (_a = this.logger) == null ? void 0 : _a.call(this, LogLevel.error, LogCategory.event, `Error in callback ${fnName}: ${error}`);
26
+ (_a = this.logger) == null ? void 0 : _a.call(this, LogLevel.error, this.getLogCategory(), `Error in callback ${fnName}: ${error}`);
24
27
  } else {
25
28
  throw error;
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EngineEventTrigger.es.js","sources":["../../../src/utils/EngineEventTrigger.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CallbackErrorBehavior, LogCategory, LoggerFunction, LogLevel } from '../types/CommonTypes';\nexport abstract class EngineEventTrigger<T extends (...args: any[]) => any> {\n constructor(protected logger?: LoggerFunction) {}\n\n abstract trigger(...args: Parameters<T>): ReturnType<T>;\n\n protected createEventHandlerFn(callbackFn: T, errorBehavior: CallbackErrorBehavior): T {\n const wrapper: any = (...args: Parameters<T>) => {\n try {\n const result = callbackFn(...args);\n // If the callback returns a promise, we need to await it\n if (result instanceof Promise) {\n return result.catch((error) => this.handleError(error, errorBehavior, callbackFn.name));\n }\n return result;\n } catch (error) {\n this.handleError(error, errorBehavior, callbackFn.name);\n }\n };\n return wrapper;\n }\n\n private handleError(error: unknown, errorBehavior: CallbackErrorBehavior, fnName: string) {\n if (errorBehavior === CallbackErrorBehavior.log) {\n this.logger?.(LogLevel.error, LogCategory.event, `Error in callback ${fnName}: ${error}`);\n } else {\n throw error;\n }\n }\n}\n"],"names":[],"mappings":";AAEO,MAAe,mBAAsD;AAAA,EACxE,YAAsB,QAAyB;AAAzB,SAAA,SAAA;AAAA,EAA0B;AAAA,EAItC,qBAAqB,YAAe,eAAyC;AACnF,UAAM,UAAe,IAAI,SAAwB;AAC7C,UAAI;AACA,cAAM,SAAS,WAAW,GAAG,IAAI;AAEjC,YAAI,kBAAkB,SAAS;AAC3B,iBAAO,OAAO,MAAM,CAAC,UAAU,KAAK,YAAY,OAAO,eAAe,WAAW,IAAI,CAAC;AAAA,QAC1F;AACA,eAAO;AAAA,MACX,SAAS,OAAO;AACZ,aAAK,YAAY,OAAO,eAAe,WAAW,IAAI;AAAA,MAC1D;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEQ,YAAY,OAAgB,eAAsC,QAAgB;;AACtF,QAAI,kBAAkB,sBAAsB,KAAK;AAC7C,iBAAK,WAAL,8BAAc,SAAS,OAAO,YAAY,OAAO,qBAAqB,MAAM,KAAK,KAAK;AAAA,IAC1F,OAAO;AACH,YAAM;AAAA,IACV;AAAA,EACJ;AACJ;"}
1
+ {"version":3,"file":"EngineEventTrigger.es.js","sources":["../../../src/utils/EngineEventTrigger.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { CallbackErrorBehavior, LogCategory, LoggerFunction, LogLevel } from '../types/CommonTypes';\nexport abstract class EngineEventTrigger<T extends (...args: any[]) => any> {\n constructor(protected logger?: LoggerFunction) {}\n\n abstract trigger(...args: Parameters<T>): ReturnType<T>;\n\n protected getLogCategory(): LogCategory {\n return LogCategory.event;\n }\n\n protected createEventHandlerFn(callbackFn: T, errorBehavior: CallbackErrorBehavior): T {\n const wrapper: any = (...args: Parameters<T>) => {\n try {\n const result = callbackFn(...args);\n // If the callback returns a promise, we need to await it\n if (result instanceof Promise) {\n return result.catch((error) => this.handleError(error, errorBehavior, callbackFn.name));\n }\n return result;\n } catch (error) {\n this.handleError(error, errorBehavior, callbackFn.name);\n }\n };\n return wrapper;\n }\n\n private handleError(error: unknown, errorBehavior: CallbackErrorBehavior, fnName: string) {\n if (errorBehavior === CallbackErrorBehavior.log) {\n this.logger?.(LogLevel.error, this.getLogCategory(), `Error in callback ${fnName}: ${error}`);\n } else {\n throw error;\n }\n }\n}\n"],"names":[],"mappings":";AAEO,MAAe,mBAAsD;AAAA,EACxE,YAAsB,QAAyB;AAAzB,SAAA,SAAA;AAAA,EAA0B;AAAA,EAItC,iBAA8B;AACpC,WAAO,YAAY;AAAA,EACvB;AAAA,EAEU,qBAAqB,YAAe,eAAyC;AACnF,UAAM,UAAe,IAAI,SAAwB;AAC7C,UAAI;AACA,cAAM,SAAS,WAAW,GAAG,IAAI;AAEjC,YAAI,kBAAkB,SAAS;AAC3B,iBAAO,OAAO,MAAM,CAAC,UAAU,KAAK,YAAY,OAAO,eAAe,WAAW,IAAI,CAAC;AAAA,QAC1F;AACA,eAAO;AAAA,MACX,SAAS,OAAO;AACZ,aAAK,YAAY,OAAO,eAAe,WAAW,IAAI;AAAA,MAC1D;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEQ,YAAY,OAAgB,eAAsC,QAAgB;;AACtF,QAAI,kBAAkB,sBAAsB,KAAK;AAC7C,iBAAK,WAAL,8BAAc,SAAS,OAAO,KAAK,kBAAkB,qBAAqB,MAAM,KAAK,KAAK;AAAA,IAC9F,OAAO;AACH,YAAM;AAAA,IACV;AAAA,EACJ;AACJ;"}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const CommonTypes = require("../types/CommonTypes.cjs.js");
4
+ const NOOP_UNSUBSCRIBER = () => void 0;
5
+ class MethodListenerRegistry {
6
+ constructor() {
7
+ this.listeners = /* @__PURE__ */ new Map();
8
+ }
9
+ add(path, listener) {
10
+ if (typeof listener !== "function") {
11
+ return NOOP_UNSUBSCRIBER;
12
+ }
13
+ const subscriptions = this.listeners.get(path) ?? /* @__PURE__ */ new Set();
14
+ subscriptions.add(listener);
15
+ this.listeners.set(path, subscriptions);
16
+ return () => {
17
+ this.remove(path, listener);
18
+ };
19
+ }
20
+ remove(path, listener) {
21
+ const subscriptions = this.listeners.get(path);
22
+ if (!subscriptions) {
23
+ return;
24
+ }
25
+ subscriptions.delete(listener);
26
+ if (subscriptions.size === 0) {
27
+ this.listeners.delete(path);
28
+ }
29
+ }
30
+ getListeners(path) {
31
+ return [...this.listeners.get(path) ?? []];
32
+ }
33
+ }
34
+ const isThenable = (value) => {
35
+ if (!value || typeof value !== "object") {
36
+ return false;
37
+ }
38
+ return typeof value.then === "function";
39
+ };
40
+ const isInstrumentableObject = (value) => {
41
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
42
+ return false;
43
+ }
44
+ return true;
45
+ };
46
+ const reportListenerError = (path, error, logger) => {
47
+ logger == null ? void 0 : logger(CommonTypes.LogLevel.error, CommonTypes.LogCategory.sdk, `Error in method listener for ${path}: ${String(error)}`);
48
+ };
49
+ const notifyListeners = (path, event, listenerRegistry, sdkEvents, logger) => {
50
+ for (const callback of listenerRegistry.getListeners(path)) {
51
+ try {
52
+ callback(event);
53
+ } catch (error) {
54
+ reportListenerError(path, error, logger);
55
+ }
56
+ }
57
+ try {
58
+ if (event.phase === "invoke") {
59
+ sdkEvents.onMethodInvoked.trigger(event);
60
+ } else {
61
+ sdkEvents.onMethodCompleted.trigger(event);
62
+ }
63
+ } catch (error) {
64
+ reportListenerError(path, error, logger);
65
+ }
66
+ };
67
+ function wrapWithInvocationObserver(target, basePath, listenerRegistry, sdkEvents, logger) {
68
+ const methodWrappers = /* @__PURE__ */ new Map();
69
+ const nestedControllers = /* @__PURE__ */ new Map();
70
+ return new Proxy(target, {
71
+ get(targetController, propKey, receiver) {
72
+ const value = Reflect.get(targetController, propKey, receiver);
73
+ if (typeof propKey === "symbol") {
74
+ return value;
75
+ }
76
+ if (typeof value === "function") {
77
+ if (methodWrappers.has(propKey)) {
78
+ return methodWrappers.get(propKey);
79
+ }
80
+ const methodPath = `${basePath}.${String(propKey)}`;
81
+ const controllerName = basePath.split(".")[0] || basePath;
82
+ const methodName = String(propKey);
83
+ const wrappedMethod = ((...args) => {
84
+ const invokeEvent = {
85
+ phase: "invoke",
86
+ path: methodPath,
87
+ controller: controllerName,
88
+ method: methodName,
89
+ args: [...args]
90
+ };
91
+ notifyListeners(methodPath, invokeEvent, listenerRegistry, sdkEvents, logger);
92
+ try {
93
+ const result = value.apply(targetController, args);
94
+ if (isThenable(result)) {
95
+ return result.then((resolvedValue) => {
96
+ const completeEvent2 = {
97
+ phase: "complete",
98
+ path: methodPath,
99
+ controller: controllerName,
100
+ method: methodName,
101
+ args: [...args],
102
+ success: true,
103
+ result: resolvedValue
104
+ };
105
+ notifyListeners(methodPath, completeEvent2, listenerRegistry, sdkEvents, logger);
106
+ return resolvedValue;
107
+ }).catch((error) => {
108
+ const completeEvent2 = {
109
+ phase: "complete",
110
+ path: methodPath,
111
+ controller: controllerName,
112
+ method: methodName,
113
+ args: [...args],
114
+ success: false,
115
+ error
116
+ };
117
+ notifyListeners(methodPath, completeEvent2, listenerRegistry, sdkEvents, logger);
118
+ throw error;
119
+ });
120
+ }
121
+ const completeEvent = {
122
+ phase: "complete",
123
+ path: methodPath,
124
+ controller: controllerName,
125
+ method: methodName,
126
+ args: [...args],
127
+ success: true,
128
+ result
129
+ };
130
+ notifyListeners(methodPath, completeEvent, listenerRegistry, sdkEvents, logger);
131
+ return result;
132
+ } catch (error) {
133
+ const completeEvent = {
134
+ phase: "complete",
135
+ path: methodPath,
136
+ controller: controllerName,
137
+ method: methodName,
138
+ args: [...args],
139
+ success: false,
140
+ error
141
+ };
142
+ notifyListeners(methodPath, completeEvent, listenerRegistry, sdkEvents, logger);
143
+ throw error;
144
+ }
145
+ });
146
+ wrappedMethod.addEventListener = (listener) => {
147
+ return listenerRegistry.add(methodPath, listener);
148
+ };
149
+ wrappedMethod.removeEventListener = (listener) => {
150
+ listenerRegistry.remove(methodPath, listener);
151
+ };
152
+ methodWrappers.set(propKey, wrappedMethod);
153
+ return wrappedMethod;
154
+ }
155
+ if (isInstrumentableObject(value)) {
156
+ if (nestedControllers.has(propKey)) {
157
+ return nestedControllers.get(propKey);
158
+ }
159
+ const nestedPath = `${basePath}.${String(propKey)}`;
160
+ const wrappedNestedController = wrapWithInvocationObserver(
161
+ value,
162
+ nestedPath,
163
+ listenerRegistry,
164
+ sdkEvents,
165
+ logger
166
+ );
167
+ nestedControllers.set(propKey, wrappedNestedController);
168
+ return wrappedNestedController;
169
+ }
170
+ return value;
171
+ }
172
+ });
173
+ }
174
+ exports.MethodListenerRegistry = MethodListenerRegistry;
175
+ exports.wrapWithInvocationObserver = wrapWithInvocationObserver;
176
+ //# sourceMappingURL=MethodInstrumentation.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodInstrumentation.cjs.js","sources":["../../../src/utils/MethodInstrumentation.ts"],"sourcesContent":["import { LogCategory, LoggerFunction, LogLevel } from '../types/CommonTypes';\nimport {\n Instrumented,\n MethodCompleteEvent,\n MethodInvocationEvent,\n MethodInvocationListener,\n MethodInvokeEvent,\n MethodListenable,\n Unsubscriber,\n} from '../types/MethodInvocationTypes';\nimport { SdkEvents } from './SdkEvents';\n\nconst NOOP_UNSUBSCRIBER: Unsubscriber = () => undefined;\n\nexport class MethodListenerRegistry {\n private listeners = new Map<string, Set<MethodInvocationListener>>();\n\n add(path: string, listener: MethodInvocationListener): Unsubscriber {\n if (typeof listener !== 'function') {\n return NOOP_UNSUBSCRIBER;\n }\n\n const subscriptions = this.listeners.get(path) ?? new Set<MethodInvocationListener>();\n subscriptions.add(listener);\n this.listeners.set(path, subscriptions);\n\n return () => {\n this.remove(path, listener);\n };\n }\n\n remove(path: string, listener: MethodInvocationListener): void {\n const subscriptions = this.listeners.get(path);\n if (!subscriptions) {\n return;\n }\n\n subscriptions.delete(listener);\n\n if (subscriptions.size === 0) {\n this.listeners.delete(path);\n }\n }\n\n getListeners(path: string): MethodInvocationListener[] {\n return [...(this.listeners.get(path) ?? [])];\n }\n}\n\nconst isThenable = (value: unknown): value is Promise<unknown> => {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n return typeof (value as Promise<unknown>).then === 'function';\n};\n\nconst isInstrumentableObject = (value: unknown): value is Record<string, unknown> => {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return false;\n }\n\n return true;\n};\n\nconst reportListenerError = (path: string, error: unknown, logger?: LoggerFunction) => {\n logger?.(LogLevel.error, LogCategory.sdk, `Error in method listener for ${path}: ${String(error)}`);\n};\n\nconst notifyListeners = (\n path: string,\n event: MethodInvocationEvent,\n listenerRegistry: MethodListenerRegistry,\n sdkEvents: SdkEvents,\n logger?: LoggerFunction,\n) => {\n for (const callback of listenerRegistry.getListeners(path)) {\n try {\n callback(event);\n } catch (error) {\n reportListenerError(path, error, logger);\n }\n }\n\n try {\n if (event.phase === 'invoke') {\n sdkEvents.onMethodInvoked.trigger(event);\n } else {\n sdkEvents.onMethodCompleted.trigger(event);\n }\n } catch (error) {\n reportListenerError(path, error, logger);\n }\n};\n\nexport function wrapWithInvocationObserver<T extends object>(\n target: T,\n basePath: string,\n listenerRegistry: MethodListenerRegistry,\n sdkEvents: SdkEvents,\n logger?: LoggerFunction,\n): Instrumented<T> {\n const methodWrappers = new Map<PropertyKey, unknown>();\n const nestedControllers = new Map<PropertyKey, unknown>();\n\n return new Proxy(target, {\n get(targetController, propKey, receiver) {\n const value = Reflect.get(targetController, propKey, receiver);\n if (typeof propKey === 'symbol') {\n return value;\n }\n\n if (typeof value === 'function') {\n if (methodWrappers.has(propKey)) {\n return methodWrappers.get(propKey);\n }\n\n const methodPath = `${basePath}.${String(propKey)}`;\n const controllerName = basePath.split('.')[0] || basePath;\n const methodName = String(propKey);\n\n const wrappedMethod = ((...args: unknown[]) => {\n const invokeEvent: MethodInvokeEvent = {\n phase: 'invoke',\n path: methodPath,\n controller: controllerName,\n method: methodName,\n args: [...args],\n };\n notifyListeners(methodPath, invokeEvent, listenerRegistry, sdkEvents, logger);\n\n try {\n const result = value.apply(targetController, args);\n\n if (isThenable(result)) {\n return result\n .then((resolvedValue) => {\n const completeEvent: MethodCompleteEvent = {\n phase: 'complete',\n path: methodPath,\n controller: controllerName,\n method: methodName,\n args: [...args],\n success: true,\n result: resolvedValue,\n };\n notifyListeners(methodPath, completeEvent, listenerRegistry, sdkEvents, logger);\n return resolvedValue;\n })\n .catch((error) => {\n const completeEvent: MethodCompleteEvent = {\n phase: 'complete',\n path: methodPath,\n controller: controllerName,\n method: methodName,\n args: [...args],\n success: false,\n error,\n };\n notifyListeners(methodPath, completeEvent, listenerRegistry, sdkEvents, logger);\n throw error;\n });\n }\n\n const completeEvent: MethodCompleteEvent = {\n phase: 'complete',\n path: methodPath,\n controller: controllerName,\n method: methodName,\n args: [...args],\n success: true,\n result,\n };\n notifyListeners(methodPath, completeEvent, listenerRegistry, sdkEvents, logger);\n\n return result;\n } catch (error) {\n const completeEvent: MethodCompleteEvent = {\n phase: 'complete',\n path: methodPath,\n controller: controllerName,\n method: methodName,\n args: [...args],\n success: false,\n error,\n };\n notifyListeners(methodPath, completeEvent, listenerRegistry, sdkEvents, logger);\n throw error;\n }\n }) as MethodListenable<(...args: unknown[]) => unknown>;\n\n wrappedMethod.addEventListener = (listener: MethodInvocationListener) => {\n return listenerRegistry.add(methodPath, listener);\n };\n wrappedMethod.removeEventListener = (listener: MethodInvocationListener) => {\n listenerRegistry.remove(methodPath, listener);\n };\n\n methodWrappers.set(propKey, wrappedMethod);\n return wrappedMethod;\n }\n\n if (isInstrumentableObject(value)) {\n if (nestedControllers.has(propKey)) {\n return nestedControllers.get(propKey);\n }\n\n const nestedPath = `${basePath}.${String(propKey)}`;\n const wrappedNestedController = wrapWithInvocationObserver(\n value,\n nestedPath,\n listenerRegistry,\n sdkEvents,\n logger,\n );\n nestedControllers.set(propKey, wrappedNestedController);\n\n return wrappedNestedController;\n }\n\n return value;\n },\n }) as Instrumented<T>;\n}\n"],"names":["LogLevel","LogCategory","completeEvent"],"mappings":"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"}