@fyul/embed-sdk 2.2.0 → 2.3.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 (173) hide show
  1. package/dist/cjs/helpers/messageLogger.d.ts +1 -0
  2. package/dist/cjs/helpers/messageLogger.js +2 -0
  3. package/dist/cjs/index.d.ts +3 -19
  4. package/dist/cjs/index.js +21 -86
  5. package/dist/cjs/modules/baseModule.d.ts +3 -0
  6. package/dist/cjs/modules/baseModule.js +5 -1
  7. package/dist/cjs/modules/catalog/catalogModule.d.ts +1 -0
  8. package/dist/cjs/modules/catalog/catalogModule.js +4 -0
  9. package/dist/cjs/modules/edm/broadcastEvents/baseEdmBroadcastEvent.d.ts +5 -0
  10. package/dist/cjs/modules/edm/broadcastEvents/baseEdmBroadcastEvent.js +10 -0
  11. package/dist/cjs/modules/edm/broadcastEvents/onDesignStatusUpdate.d.ts +5 -0
  12. package/dist/cjs/modules/edm/broadcastEvents/onDesignStatusUpdate.js +10 -0
  13. package/dist/cjs/modules/edm/broadcastEvents/onErrorUpdate.d.ts +5 -0
  14. package/dist/cjs/modules/edm/broadcastEvents/onErrorUpdate.js +10 -0
  15. package/dist/cjs/modules/edm/broadcastEvents/onFilePickerRequested.d.ts +5 -0
  16. package/dist/cjs/modules/edm/broadcastEvents/onFilePickerRequested.js +10 -0
  17. package/dist/cjs/modules/edm/broadcastEvents/onPricingStatusUpdate.d.ts +5 -0
  18. package/dist/cjs/modules/edm/broadcastEvents/onPricingStatusUpdate.js +10 -0
  19. package/dist/cjs/modules/edm/broadcastEvents/onStepStatusUpdate.d.ts +5 -0
  20. package/dist/cjs/modules/edm/broadcastEvents/onStepStatusUpdate.js +10 -0
  21. package/dist/cjs/modules/edm/edmBroadcastModule.d.ts +12 -0
  22. package/dist/cjs/modules/edm/edmBroadcastModule.js +35 -0
  23. package/dist/cjs/modules/edm/edmModule.d.ts +13 -0
  24. package/dist/cjs/modules/edm/edmModule.js +33 -0
  25. package/dist/cjs/modules/edm/events.d.ts +48 -0
  26. package/dist/cjs/modules/edm/events.js +36 -0
  27. package/dist/cjs/modules/edm/types/data.types.d.ts +204 -0
  28. package/dist/cjs/modules/edm/types/data.types.js +8 -0
  29. package/dist/cjs/modules/edm/types/event/actionEvent.types.d.ts +8 -0
  30. package/dist/cjs/modules/edm/types/event/actionEvent.types.js +2 -0
  31. package/dist/cjs/modules/edm/types/event/actionEventPayload.types.d.ts +15 -0
  32. package/dist/cjs/modules/edm/types/event/actionEventPayload.types.js +2 -0
  33. package/dist/cjs/modules/edm/types/event/broadcastEvent.types.d.ts +12 -0
  34. package/dist/cjs/modules/edm/types/event/broadcastEvent.types.js +2 -0
  35. package/dist/cjs/modules/edm/types/event/broadcastEventPayload.types.d.ts +9 -0
  36. package/dist/cjs/modules/edm/types/event/broadcastEventPayload.types.js +2 -0
  37. package/dist/cjs/modules/edm/types/event/resultEvent.types.d.ts +8 -0
  38. package/dist/cjs/modules/edm/types/event/resultEvent.types.js +2 -0
  39. package/dist/cjs/modules/edm/types/event/resultEventPayload.types.d.ts +17 -0
  40. package/dist/cjs/modules/edm/types/event/resultEventPayload.types.js +2 -0
  41. package/dist/cjs/modules/edm/types/index.d.ts +6 -0
  42. package/dist/cjs/modules/edm/types/index.js +25 -0
  43. package/dist/cjs/modules/eventTypes.d.ts +4 -2
  44. package/dist/cjs/modules/eventTypes.js +5 -0
  45. package/dist/cjs/modules/events.d.ts +40 -0
  46. package/dist/cjs/modules/events.js +9 -1
  47. package/dist/cjs/modules/mockup-generation/mockupGenerationModule.d.ts +1 -0
  48. package/dist/cjs/modules/mockup-generation/mockupGenerationModule.js +4 -0
  49. package/dist/cjs/modules/moduleNames.d.ts +7 -0
  50. package/dist/cjs/modules/moduleNames.js +10 -0
  51. package/dist/cjs/modules/modules.d.ts +11 -6
  52. package/dist/cjs/modules/modules.js +16 -11
  53. package/dist/cjs/modules/product-publish/productPublishModule.d.ts +1 -0
  54. package/dist/cjs/modules/product-publish/productPublishModule.js +4 -0
  55. package/dist/cjs/modules/product-publish/types/event/resultEventPayload.types.d.ts +5 -0
  56. package/dist/cjs/modules/sdk/sdkModule.d.ts +1 -0
  57. package/dist/cjs/modules/sdk/sdkModule.js +4 -0
  58. package/dist/cjs/services/broadcastEventDispatcher.d.ts +8 -0
  59. package/dist/cjs/services/broadcastEventDispatcher.js +24 -0
  60. package/dist/cjs/services/edm.d.ts +23 -0
  61. package/dist/cjs/services/edm.js +102 -0
  62. package/dist/cjs/services/embed.d.ts +19 -0
  63. package/dist/cjs/services/embed.js +83 -0
  64. package/dist/cjs/services/embedCommunicator.d.ts +10 -4
  65. package/dist/cjs/services/embedCommunicator.js +42 -10
  66. package/dist/cjs/services/iFrameManager.d.ts +3 -1
  67. package/dist/cjs/services/iFrameManager.js +6 -9
  68. package/dist/cjs/services/moduleLoaderService.d.ts +1 -2
  69. package/dist/cjs/services/moduleLoaderService.js +2 -1
  70. package/dist/cjs/types/event/action/actionEvent.types.d.ts +2 -1
  71. package/dist/cjs/types/event/action/actionEventPayload.types.d.ts +2 -1
  72. package/dist/cjs/types/event/broadcast/broadcastEvent.types.d.ts +8 -0
  73. package/dist/cjs/types/event/broadcast/broadcastEvent.types.js +2 -0
  74. package/dist/cjs/types/event/broadcast/broadcastEventHandler.d.ts +5 -0
  75. package/dist/cjs/types/event/broadcast/broadcastEventHandler.js +2 -0
  76. package/dist/cjs/types/event/broadcast/broadcastEventMap.d.ts +12 -0
  77. package/dist/cjs/types/event/broadcast/broadcastEventMap.js +16 -0
  78. package/dist/cjs/types/event/broadcast/broadcastEventPayload.types.d.ts +2 -0
  79. package/dist/cjs/types/event/broadcast/broadcastEventPayload.types.js +2 -0
  80. package/dist/cjs/types/event/event.types.d.ts +3 -2
  81. package/dist/cjs/types/event/eventPayload.types.d.ts +2 -1
  82. package/dist/cjs/types/event/result/resultEvent.types.d.ts +2 -1
  83. package/dist/cjs/types/event/result/resultEventPayload.types.d.ts +2 -1
  84. package/dist/cjs/types/module/module.types.d.ts +16 -0
  85. package/dist/cjs/version.d.ts +1 -1
  86. package/dist/cjs/version.js +1 -1
  87. package/dist/esm/helpers/messageLogger.d.ts +1 -0
  88. package/dist/esm/helpers/messageLogger.js +2 -0
  89. package/dist/esm/index.d.ts +3 -19
  90. package/dist/esm/index.js +3 -69
  91. package/dist/esm/modules/baseModule.d.ts +3 -0
  92. package/dist/esm/modules/baseModule.js +5 -1
  93. package/dist/esm/modules/catalog/catalogModule.d.ts +1 -0
  94. package/dist/esm/modules/catalog/catalogModule.js +4 -0
  95. package/dist/esm/modules/edm/broadcastEvents/baseEdmBroadcastEvent.d.ts +5 -0
  96. package/dist/esm/modules/edm/broadcastEvents/baseEdmBroadcastEvent.js +6 -0
  97. package/dist/esm/modules/edm/broadcastEvents/onDesignStatusUpdate.d.ts +5 -0
  98. package/dist/esm/modules/edm/broadcastEvents/onDesignStatusUpdate.js +6 -0
  99. package/dist/esm/modules/edm/broadcastEvents/onErrorUpdate.d.ts +5 -0
  100. package/dist/esm/modules/edm/broadcastEvents/onErrorUpdate.js +6 -0
  101. package/dist/esm/modules/edm/broadcastEvents/onFilePickerRequested.d.ts +5 -0
  102. package/dist/esm/modules/edm/broadcastEvents/onFilePickerRequested.js +6 -0
  103. package/dist/esm/modules/edm/broadcastEvents/onPricingStatusUpdate.d.ts +5 -0
  104. package/dist/esm/modules/edm/broadcastEvents/onPricingStatusUpdate.js +6 -0
  105. package/dist/esm/modules/edm/broadcastEvents/onStepStatusUpdate.d.ts +5 -0
  106. package/dist/esm/modules/edm/broadcastEvents/onStepStatusUpdate.js +6 -0
  107. package/dist/esm/modules/edm/edmBroadcastModule.d.ts +12 -0
  108. package/dist/esm/modules/edm/edmBroadcastModule.js +31 -0
  109. package/dist/esm/modules/edm/edmModule.d.ts +13 -0
  110. package/dist/esm/modules/edm/edmModule.js +29 -0
  111. package/dist/esm/modules/edm/events.d.ts +48 -0
  112. package/dist/esm/modules/edm/events.js +33 -0
  113. package/dist/esm/modules/edm/types/data.types.d.ts +204 -0
  114. package/dist/esm/modules/edm/types/data.types.js +5 -0
  115. package/dist/esm/modules/edm/types/event/actionEvent.types.d.ts +8 -0
  116. package/dist/esm/modules/edm/types/event/actionEvent.types.js +1 -0
  117. package/dist/esm/modules/edm/types/event/actionEventPayload.types.d.ts +15 -0
  118. package/dist/esm/modules/edm/types/event/actionEventPayload.types.js +1 -0
  119. package/dist/esm/modules/edm/types/event/broadcastEvent.types.d.ts +12 -0
  120. package/dist/esm/modules/edm/types/event/broadcastEvent.types.js +1 -0
  121. package/dist/esm/modules/edm/types/event/broadcastEventPayload.types.d.ts +9 -0
  122. package/dist/esm/modules/edm/types/event/broadcastEventPayload.types.js +1 -0
  123. package/dist/esm/modules/edm/types/event/resultEvent.types.d.ts +8 -0
  124. package/dist/esm/modules/edm/types/event/resultEvent.types.js +1 -0
  125. package/dist/esm/modules/edm/types/event/resultEventPayload.types.d.ts +17 -0
  126. package/dist/esm/modules/edm/types/event/resultEventPayload.types.js +1 -0
  127. package/dist/esm/modules/edm/types/index.d.ts +6 -0
  128. package/dist/esm/modules/edm/types/index.js +9 -0
  129. package/dist/esm/modules/eventTypes.d.ts +4 -2
  130. package/dist/esm/modules/eventTypes.js +4 -0
  131. package/dist/esm/modules/events.d.ts +40 -0
  132. package/dist/esm/modules/events.js +8 -0
  133. package/dist/esm/modules/mockup-generation/mockupGenerationModule.d.ts +1 -0
  134. package/dist/esm/modules/mockup-generation/mockupGenerationModule.js +4 -0
  135. package/dist/esm/modules/moduleNames.d.ts +7 -0
  136. package/dist/esm/modules/moduleNames.js +7 -0
  137. package/dist/esm/modules/modules.d.ts +11 -6
  138. package/dist/esm/modules/modules.js +11 -6
  139. package/dist/esm/modules/product-publish/productPublishModule.d.ts +1 -0
  140. package/dist/esm/modules/product-publish/productPublishModule.js +4 -0
  141. package/dist/esm/modules/product-publish/types/event/resultEventPayload.types.d.ts +5 -0
  142. package/dist/esm/modules/sdk/sdkModule.d.ts +1 -0
  143. package/dist/esm/modules/sdk/sdkModule.js +4 -0
  144. package/dist/esm/services/broadcastEventDispatcher.d.ts +8 -0
  145. package/dist/esm/services/broadcastEventDispatcher.js +20 -0
  146. package/dist/esm/services/edm.d.ts +23 -0
  147. package/dist/esm/services/edm.js +98 -0
  148. package/dist/esm/services/embed.d.ts +19 -0
  149. package/dist/esm/services/embed.js +79 -0
  150. package/dist/esm/services/embedCommunicator.d.ts +10 -4
  151. package/dist/esm/services/embedCommunicator.js +43 -11
  152. package/dist/esm/services/iFrameManager.d.ts +3 -1
  153. package/dist/esm/services/iFrameManager.js +6 -9
  154. package/dist/esm/services/moduleLoaderService.d.ts +1 -2
  155. package/dist/esm/services/moduleLoaderService.js +3 -2
  156. package/dist/esm/types/event/action/actionEvent.types.d.ts +2 -1
  157. package/dist/esm/types/event/action/actionEventPayload.types.d.ts +2 -1
  158. package/dist/esm/types/event/broadcast/broadcastEvent.types.d.ts +8 -0
  159. package/dist/esm/types/event/broadcast/broadcastEvent.types.js +1 -0
  160. package/dist/esm/types/event/broadcast/broadcastEventHandler.d.ts +5 -0
  161. package/dist/esm/types/event/broadcast/broadcastEventHandler.js +1 -0
  162. package/dist/esm/types/event/broadcast/broadcastEventMap.d.ts +12 -0
  163. package/dist/esm/types/event/broadcast/broadcastEventMap.js +13 -0
  164. package/dist/esm/types/event/broadcast/broadcastEventPayload.types.d.ts +2 -0
  165. package/dist/esm/types/event/broadcast/broadcastEventPayload.types.js +1 -0
  166. package/dist/esm/types/event/event.types.d.ts +3 -2
  167. package/dist/esm/types/event/eventPayload.types.d.ts +2 -1
  168. package/dist/esm/types/event/result/resultEvent.types.d.ts +2 -1
  169. package/dist/esm/types/event/result/resultEventPayload.types.d.ts +2 -1
  170. package/dist/esm/types/module/module.types.d.ts +16 -0
  171. package/dist/esm/version.d.ts +1 -1
  172. package/dist/esm/version.js +1 -1
  173. package/package.json +1 -1
@@ -1,10 +1,11 @@
1
1
  import { ResultEvent as CatalogResultEvent } from '../../../modules/catalog/types/event/resultEvent.types';
2
2
  import { ResultEvent as MockupGenerationResultEvent } from '../../../modules/mockup-generation/types/event/resultEvent.types';
3
3
  import { ResultEvent as ProductPublishResultEvent } from '../../../modules/product-publish/types/event/resultEvent.types';
4
+ import { ResultEvent as EdmResultPayload } from '../../../modules/edm/types/event/resultEvent.types';
4
5
  import { ResultEventPayload } from './resultEventPayload.types';
5
6
  import { EVENT_TYPES } from '../../../modules/eventTypes';
6
7
  import { Event } from '../../../types/event/event.types';
7
8
  import { ALL_RESULT_EVENTS } from '../../../modules/events';
8
9
  export type ResultEventName = (typeof ALL_RESULT_EVENTS)[keyof typeof ALL_RESULT_EVENTS];
9
10
  export type BaseResultEvent<TName extends ResultEventName, TPayload extends ResultEventPayload> = Event<TName, typeof EVENT_TYPES.RESULT, TPayload>;
10
- export type ResultEvent = MockupGenerationResultEvent | CatalogResultEvent | ProductPublishResultEvent;
11
+ export type ResultEvent = MockupGenerationResultEvent | CatalogResultEvent | ProductPublishResultEvent | EdmResultPayload;
@@ -1,7 +1,8 @@
1
1
  import type { CatalogResultPayload } from '../../../modules/catalog/types';
2
2
  import type { MockupGenerationResultPayload } from '../../../modules/mockup-generation/types';
3
3
  import type { ProductPublishResultPayload } from '../../../modules/product-publish/types';
4
- export type ResultEventPayload = MockupGenerationResultPayload | CatalogResultPayload | ProductPublishResultPayload;
4
+ import type { EdmResultPayload } from '../../../modules/edm/types/event/resultEventPayload.types';
5
+ export type ResultEventPayload = MockupGenerationResultPayload | CatalogResultPayload | ProductPublishResultPayload | EdmResultPayload;
5
6
  export type HandledResponse<T, K extends Error> = {
6
7
  data: T;
7
8
  error: null;
@@ -4,6 +4,8 @@ import { SdkModuleConfigData } from '../../modules/sdk/types';
4
4
  import { GetCatalogCategoriesResultPayload, GetCatalogProductsByIdsPayload, GetCatalogProductsPayload, GetCatalogProductsResultPayload, GetSingleCatalogProductPayload, GetSingleCatalogProductResultPayload } from '../../modules/catalog/types';
5
5
  import { NotificationEventPayload } from '../../types/event/notification/notificationEventPayload.types';
6
6
  import { GetProductPublishPayload, ProductPublishData } from '../../modules/product-publish/types';
7
+ import { OnDesignStatusEventPayload, OnErrorEventPayload, OnFilePickerRequestedEventPayload, OnPricingStatusUpdateEventPayload, OnStepStatusUpdateEventPayload } from '../../modules/edm/types/event/broadcastEventPayload.types';
8
+ import { AddImagePayload, AddImageResultPayload, InitializeEdmPayload, NavigateStepPayload, NavigateStepResultPayload, SaveDesignResultPayload, SetStylePayload, SetStyleResultPayload } from '../../modules/edm/types';
7
9
  /** This file ensures that Iframe and SDK has the same source of truth for return values */
8
10
  export type ModuleName = (typeof MODULE_NAMES)[keyof typeof MODULE_NAMES];
9
11
  export interface ISdkModule {
@@ -22,3 +24,17 @@ export interface IMockupGenerationModule {
22
24
  export interface IProductPublishModule {
23
25
  productPublish(data: GetProductPublishPayload): ProductPublishData;
24
26
  }
27
+ export interface IEdmModule {
28
+ setup(config?: InitializeEdmPayload): NotificationEventPayload | void;
29
+ saveDesign(): SaveDesignResultPayload;
30
+ addImage(payload: AddImagePayload): AddImageResultPayload;
31
+ setStyle(payload: SetStylePayload): SetStyleResultPayload;
32
+ navigateStep(payload: NavigateStepPayload): NavigateStepResultPayload;
33
+ }
34
+ export interface IEdmBroadcastModule {
35
+ onDesignStatusUpdate(event: OnDesignStatusEventPayload): void;
36
+ onFilePickerRequested(event: OnFilePickerRequestedEventPayload): void;
37
+ onPricingStatusUpdate(event: OnPricingStatusUpdateEventPayload): void;
38
+ onStepStatusUpdate(event: OnStepStatusUpdateEventPayload): void;
39
+ onErrorUpdate(event: OnErrorEventPayload): void;
40
+ }
@@ -1 +1 @@
1
- export declare const VERSION: "2.2.0";
1
+ export declare const VERSION: "2.3.0";
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // AUTO-GENERATED
5
- exports.VERSION = '2.2.0';
5
+ exports.VERSION = '2.3.0';
@@ -7,6 +7,7 @@ export declare const LOG_TYPES: {
7
7
  export declare const SOURCES: {
8
8
  readonly HOST: "Host";
9
9
  readonly SDK: "SDK";
10
+ readonly EDM: "EDM";
10
11
  };
11
12
  export interface MessageLoggerState {
12
13
  isLoggerEnabled: boolean;
@@ -7,6 +7,7 @@ export const LOG_TYPES = {
7
7
  export const SOURCES = {
8
8
  HOST: 'Host',
9
9
  SDK: 'SDK',
10
+ EDM: 'EDM',
10
11
  };
11
12
  export const messageLoggerState = {
12
13
  isLoggerEnabled: true,
@@ -26,6 +27,7 @@ function getSourceStyle(source) {
26
27
  border-radius: 12px;
27
28
  font-weight: bold;
28
29
  `;
30
+ case SOURCES.EDM:
29
31
  case SOURCES.SDK:
30
32
  return `
31
33
  background: #3a82f6;
@@ -1,22 +1,5 @@
1
- import { SdkConfig } from './modules/sdk/types';
2
- import { CatalogService } from './modules/catalog/catalogService';
3
- import { MockupService } from './modules/mockup-generation/mockupService';
4
- import { ProductPublishService } from './modules/product-publish/productPublishService';
5
- export declare class Embed {
6
- private config?;
7
- static BASE_URL: string;
8
- private nonce;
9
- private iFrameManager;
10
- private communicator;
11
- private moduleLoader;
12
- private initialized;
13
- readonly catalog: CatalogService;
14
- readonly mockup: MockupService;
15
- readonly publish: ProductPublishService;
16
- constructor(nonce: string, config?: SdkConfig | undefined);
17
- init(): Promise<void>;
18
- destroy(): void;
19
- }
1
+ export { Embed } from './services/embed';
2
+ export { EDM } from './services/edm';
20
3
  export * from './types/event/event.types';
21
4
  export * from './types/event/eventPayload.types';
22
5
  export * from './types/event/action/actionEvent.types';
@@ -31,6 +14,7 @@ export * as CatalogModule from './modules/catalog/types';
31
14
  export * as MockupGenerationModule from './modules/mockup-generation/types';
32
15
  export * as ProductPublishModule from './modules/product-publish/types';
33
16
  export * as SdkModule from './modules/sdk/types';
17
+ export * as EdmModule from './modules/edm/types';
34
18
  export { ALL_EVENTS } from './modules/events';
35
19
  export { MODULE_NAMES } from './modules/modules';
36
20
  export { EVENT_TYPES } from './modules/eventTypes';
package/dist/esm/index.js CHANGED
@@ -1,72 +1,5 @@
1
- import { iFrameManager } from './services/iFrameManager';
2
- import { EmbedCommunicator } from './services/embedCommunicator';
3
- import { ModuleLoaderService } from './services/moduleLoaderService';
4
- import { MODULE_NAMES } from './modules/modules';
5
- import { CatalogService } from './modules/catalog/catalogService';
6
- import { MockupService } from './modules/mockup-generation/mockupService';
7
- import { ProductPublishService } from './modules/product-publish/productPublishService';
8
- import { VERSION } from './version';
9
- import { setLoggerState, logEmbedMessage, SOURCES, LOG_TYPES, } from './helpers/messageLogger';
10
- export class Embed {
11
- config;
12
- static BASE_URL = 'https://www.printful.com/embed-sdk';
13
- nonce;
14
- iFrameManager = null;
15
- communicator = EmbedCommunicator.getInstance();
16
- moduleLoader = ModuleLoaderService.getInstance();
17
- initialized = false;
18
- // Service composition
19
- catalog;
20
- mockup;
21
- publish;
22
- constructor(nonce, config) {
23
- this.config = config;
24
- this.nonce = nonce;
25
- setLoggerState(config?.debug ?? false, SOURCES.SDK);
26
- // Initialize services
27
- this.catalog = new CatalogService();
28
- this.mockup = new MockupService();
29
- this.publish = new ProductPublishService();
30
- }
31
- async init() {
32
- if (this.initialized) {
33
- logEmbedMessage({
34
- message: 'Embed SDK already initialized',
35
- logType: LOG_TYPES.WARN,
36
- });
37
- return;
38
- }
39
- // Client mode: Create iframe and setup communication
40
- this.iFrameManager = new iFrameManager({
41
- baseUrl: Embed.BASE_URL,
42
- nonce: this.nonce,
43
- });
44
- await this.iFrameManager.create();
45
- // Setup communicator with iframe manager
46
- this.communicator.setIFrameManager(this.iFrameManager);
47
- this.communicator.setupListener();
48
- // Get SDK module and setup
49
- const sdkModule = this.moduleLoader.getModule(MODULE_NAMES.SDK);
50
- const notification = await sdkModule.setup({
51
- ...this.config,
52
- clientVersion: VERSION,
53
- });
54
- logEmbedMessage({
55
- message: ['SDK (Main) module setup notification', notification],
56
- logType: LOG_TYPES.LOG,
57
- });
58
- this.initialized = true;
59
- }
60
- destroy() {
61
- if (this.iFrameManager) {
62
- this.iFrameManager.destroy();
63
- this.iFrameManager = null;
64
- }
65
- this.communicator.cleanup();
66
- this.moduleLoader.clearCache();
67
- this.initialized = false;
68
- }
69
- }
1
+ export { Embed } from './services/embed';
2
+ export { EDM } from './services/edm';
70
3
  /* EXPORTS */
71
4
  // TODO: properly foldered exports?
72
5
  // Common types
@@ -85,6 +18,7 @@ export * as CatalogModule from './modules/catalog/types';
85
18
  export * as MockupGenerationModule from './modules/mockup-generation/types';
86
19
  export * as ProductPublishModule from './modules/product-publish/types';
87
20
  export * as SdkModule from './modules/sdk/types';
21
+ export * as EdmModule from './modules/edm/types';
88
22
  // Constants
89
23
  export { ALL_EVENTS } from './modules/events';
90
24
  export { MODULE_NAMES } from './modules/modules';
@@ -2,6 +2,9 @@ import { ActionEventName } from '../types/event/action/actionEvent.types';
2
2
  import { ActionEventPayload } from '../types/event/action/actionEventPayload.types';
3
3
  import { ResultEventPayload } from '../types/event/result/resultEventPayload.types';
4
4
  import { NotificationEventPayload } from '../types/event/notification/notificationEventPayload.types';
5
+ import type { MODULE_NAMES } from '../modules/moduleNames';
5
6
  export declare abstract class BaseModule {
7
+ protected moduleType: typeof MODULE_NAMES.SDK | typeof MODULE_NAMES.EDM;
8
+ constructor(moduleType: typeof MODULE_NAMES.SDK | typeof MODULE_NAMES.EDM);
6
9
  protected sendRequest<T extends ResultEventPayload | NotificationEventPayload>(eventName: ActionEventName, eventPayload?: ActionEventPayload): Promise<T>;
7
10
  }
@@ -1,6 +1,10 @@
1
1
  import { EmbedCommunicator } from '../services/embedCommunicator';
2
2
  export class BaseModule {
3
+ moduleType;
4
+ constructor(moduleType) {
5
+ this.moduleType = moduleType;
6
+ }
3
7
  async sendRequest(eventName, eventPayload) {
4
- return await EmbedCommunicator.getInstance().sendCorrelatedRequest(eventName, eventPayload);
8
+ return await EmbedCommunicator.getInstance().sendCorrelatedRequest(eventName, this.moduleType, eventPayload);
5
9
  }
6
10
  }
@@ -3,6 +3,7 @@ import { BaseModule } from '../../modules/baseModule';
3
3
  import { GetCatalogCategoriesResultPayload, GetCatalogProductsByIdsPayload, GetCatalogProductsPayload, GetCatalogProductsResultPayload, GetSingleCatalogProductPayload, GetSingleCatalogProductResultPayload } from './types';
4
4
  import { WithHandledResponses } from '../../helpers/typeHelper.types';
5
5
  export declare class CatalogModule extends BaseModule implements WithHandledResponses<ICatalogModule> {
6
+ constructor();
6
7
  getProducts(data: GetCatalogProductsPayload): Promise<import("../..").HandledResponse<GetCatalogProductsResultPayload, Error>>;
7
8
  getProductsByIds(data: GetCatalogProductsByIdsPayload): Promise<import("../..").HandledResponse<GetCatalogProductsResultPayload, Error>>;
8
9
  getProduct(data: GetSingleCatalogProductPayload): Promise<import("../..").HandledResponse<GetSingleCatalogProductResultPayload, Error>>;
@@ -1,7 +1,11 @@
1
1
  import { BaseModule } from '../../modules/baseModule';
2
2
  import { EVENTS_ACTION, } from './types';
3
3
  import { handleResponse } from '../../helpers/responseHandler';
4
+ import { MODULE_NAMES } from '../../modules/modules';
4
5
  export class CatalogModule extends BaseModule {
6
+ constructor() {
7
+ super(MODULE_NAMES.SDK);
8
+ }
5
9
  async getProducts(data) {
6
10
  const response = await this.sendRequest(EVENTS_ACTION.GET_CATALOG_PRODUCTS, data).catch((e) => e);
7
11
  return handleResponse(response, 'Failed to get catalog products');
@@ -0,0 +1,5 @@
1
+ import { BroadcastEventPayload } from '../../../modules/edm/types/event/broadcastEventPayload.types';
2
+ export declare abstract class BaseEdmBroadcastEvent {
3
+ abstract handle(event: BroadcastEventPayload): void;
4
+ get broadcastHandler(): import("../edmBroadcastModule").EdmBroadcastModule;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { EDM } from '../../../services/edm';
2
+ export class BaseEdmBroadcastEvent {
3
+ get broadcastHandler() {
4
+ return EDM.getBroadCastEventHandler();
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import { OnDesignStatusEventPayload } from '../../../modules/edm/types/event/broadcastEventPayload.types';
2
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
3
+ export declare class OnDesignStatusUpdate extends BaseEdmBroadcastEvent {
4
+ handle(event: OnDesignStatusEventPayload): void;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
2
+ export class OnDesignStatusUpdate extends BaseEdmBroadcastEvent {
3
+ handle(event) {
4
+ this.broadcastHandler.onDesignStatusUpdate(event);
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import { OnErrorEventPayload } from '../../../modules/edm/types/event/broadcastEventPayload.types';
2
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
3
+ export declare class OnErrorUpdate extends BaseEdmBroadcastEvent {
4
+ handle(event: OnErrorEventPayload): void;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
2
+ export class OnErrorUpdate extends BaseEdmBroadcastEvent {
3
+ handle(event) {
4
+ this.broadcastHandler.onErrorUpdate(event);
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import { OnFilePickerRequestedEventPayload } from '../../../modules/edm/types/event/broadcastEventPayload.types';
2
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
3
+ export declare class OnFilePickerRequested extends BaseEdmBroadcastEvent {
4
+ handle(event: OnFilePickerRequestedEventPayload): void;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
2
+ export class OnFilePickerRequested extends BaseEdmBroadcastEvent {
3
+ handle(event) {
4
+ this.broadcastHandler.onFilePickerRequested(event);
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import { OnPricingStatusUpdateEventPayload } from '../../../modules/edm/types/event/broadcastEventPayload.types';
2
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
3
+ export declare class OnPricingStatusUpdate extends BaseEdmBroadcastEvent {
4
+ handle(event: OnPricingStatusUpdateEventPayload): void;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
2
+ export class OnPricingStatusUpdate extends BaseEdmBroadcastEvent {
3
+ handle(event) {
4
+ this.broadcastHandler.onPricingStatusUpdate(event);
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import { OnStepStatusUpdateEventPayload } from '../../../modules/edm/types/event/broadcastEventPayload.types';
2
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
3
+ export declare class OnStepStatusUpdate extends BaseEdmBroadcastEvent {
4
+ handle(event: OnStepStatusUpdateEventPayload): void;
5
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseEdmBroadcastEvent } from '../../../modules/edm/broadcastEvents/baseEdmBroadcastEvent';
2
+ export class OnStepStatusUpdate extends BaseEdmBroadcastEvent {
3
+ handle(event) {
4
+ this.broadcastHandler.onStepStatusUpdate(event);
5
+ }
6
+ }
@@ -0,0 +1,12 @@
1
+ import { IEdmBroadcastModule } from '../../types/module/module.types';
2
+ import { BroadcastListeners } from '../../modules/edm/types/event/broadcastEvent.types';
3
+ import { OnDesignStatusEventPayload, OnErrorEventPayload, OnFilePickerRequestedEventPayload, OnPricingStatusUpdateEventPayload, OnStepStatusUpdateEventPayload } from '../../modules/edm/types/event/broadcastEventPayload.types';
4
+ export declare class EdmBroadcastModule implements IEdmBroadcastModule {
5
+ protected listeners?: Partial<BroadcastListeners>;
6
+ constructor(listeners?: Partial<BroadcastListeners>);
7
+ onDesignStatusUpdate(event: OnDesignStatusEventPayload): void;
8
+ onFilePickerRequested(event: OnFilePickerRequestedEventPayload): void;
9
+ onPricingStatusUpdate(event: OnPricingStatusUpdateEventPayload): void;
10
+ onStepStatusUpdate(event: OnStepStatusUpdateEventPayload): void;
11
+ onErrorUpdate(event: OnErrorEventPayload): void;
12
+ }
@@ -0,0 +1,31 @@
1
+ export class EdmBroadcastModule {
2
+ listeners;
3
+ constructor(listeners) {
4
+ this.listeners = listeners;
5
+ }
6
+ onDesignStatusUpdate(event) {
7
+ if (this.listeners?.onDesignStatusUpdate) {
8
+ this.listeners.onDesignStatusUpdate(event);
9
+ }
10
+ }
11
+ onFilePickerRequested(event) {
12
+ if (this.listeners?.onFilePickerRequested) {
13
+ this.listeners.onFilePickerRequested(event);
14
+ }
15
+ }
16
+ onPricingStatusUpdate(event) {
17
+ if (this.listeners?.onPricingStatusUpdate) {
18
+ this.listeners.onPricingStatusUpdate(event);
19
+ }
20
+ }
21
+ onStepStatusUpdate(event) {
22
+ if (this.listeners?.onStepStatusUpdate) {
23
+ this.listeners.onStepStatusUpdate(event);
24
+ }
25
+ }
26
+ onErrorUpdate(event) {
27
+ if (this.listeners?.onError) {
28
+ this.listeners.onError(event);
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,13 @@
1
+ import { IEdmModule } from '../../types/module/module.types';
2
+ import { BaseModule } from '../../modules/baseModule';
3
+ import { InitializeEdmPayload, SaveDesignResultPayload, AddImageResultPayload, SetStyleResultPayload, AddImagePayload, SetStylePayload, NavigateStepPayload, NavigateStepResultPayload } from './types';
4
+ import { NotificationEventPayload } from '../../types/event/notification/notificationEventPayload.types';
5
+ import { WithHandledResponses } from '../../helpers/typeHelper.types';
6
+ export declare class EdmModule extends BaseModule implements WithHandledResponses<IEdmModule> {
7
+ constructor();
8
+ setup(payload?: InitializeEdmPayload): Promise<NotificationEventPayload>;
9
+ saveDesign(): Promise<import("../..").HandledResponse<SaveDesignResultPayload, Error>>;
10
+ addImage(payload: AddImagePayload): Promise<import("../..").HandledResponse<AddImageResultPayload, Error>>;
11
+ setStyle(payload: SetStylePayload): Promise<import("../..").HandledResponse<SetStyleResultPayload, Error>>;
12
+ navigateStep(payload: NavigateStepPayload): Promise<import("../..").HandledResponse<NavigateStepResultPayload, Error>>;
13
+ }
@@ -0,0 +1,29 @@
1
+ import { BaseModule } from '../../modules/baseModule';
2
+ import { EVENTS_ACTION } from './events';
3
+ import { handleResponse } from '../../helpers/responseHandler';
4
+ import { MODULE_NAMES } from '../../modules/modules';
5
+ export class EdmModule extends BaseModule {
6
+ constructor() {
7
+ super(MODULE_NAMES.EDM);
8
+ }
9
+ // @ts-expect-error setup does not return data
10
+ async setup(payload) {
11
+ return await this.sendRequest(EVENTS_ACTION.INITIALIZE_EDM, payload);
12
+ }
13
+ async saveDesign() {
14
+ const response = await this.sendRequest(EVENTS_ACTION.SAVE_DESIGN, {}).catch((e) => e);
15
+ return handleResponse(response, 'Failed to save design');
16
+ }
17
+ async addImage(payload) {
18
+ const response = await this.sendRequest(EVENTS_ACTION.ADD_IMAGE, payload).catch((e) => e);
19
+ return handleResponse(response, 'Failed to add image');
20
+ }
21
+ async setStyle(payload) {
22
+ const response = await this.sendRequest(EVENTS_ACTION.SET_STYLE, payload).catch((e) => e);
23
+ return handleResponse(response, 'Failed to set style');
24
+ }
25
+ async navigateStep(payload) {
26
+ const response = await this.sendRequest(EVENTS_ACTION.NAVIGATE_STEP, payload).catch((e) => e);
27
+ return handleResponse(response, 'Failed to navigate step');
28
+ }
29
+ }
@@ -0,0 +1,48 @@
1
+ export declare const EVENTS_ACTION: {
2
+ readonly INITIALIZE_EDM: "actionInitializeEdm";
3
+ readonly SAVE_DESIGN: "actionSaveDesign";
4
+ readonly ADD_IMAGE: "actionAddImage";
5
+ readonly SET_STYLE: "actionSetStyle";
6
+ readonly NAVIGATE_STEP: "actionNavigateStep";
7
+ };
8
+ export declare const EVENTS_NOTIFICATION: {
9
+ readonly EDM_INITIALIZATION_SUCCESS: "notificationEdmInitializationSuccess";
10
+ readonly SAVE_DESIGN_FAILURE: "actionSaveDesignFailure";
11
+ readonly ADD_IMAGE_FAILURE: "actionAddImageFailure";
12
+ readonly SET_STYLE_FAILURE: "actionSetStyleFailure";
13
+ readonly NAVIGATE_STEP_FAILURE: "actionNavigateStepFailure";
14
+ };
15
+ export declare const EVENTS_RESULT: {
16
+ readonly SAVE_DESIGN_RESULT: "resultSaveDesign";
17
+ readonly ADD_IMAGE_RESULT: "resultAddImage";
18
+ readonly SET_STYLE_RESULT: "resultSetStyle";
19
+ readonly NAVIGATE_STEP_RESULT: "resultNavigateStep";
20
+ };
21
+ export declare const EVENT_BROADCAST: {
22
+ readonly ON_DESIGN_STATUS_UPDATE: "onDesignStatusUpdate";
23
+ readonly ON_PRICING_STATUS_UPDATE: "onPricingStatusUpdate";
24
+ readonly ON_FILE_PICKER_REQUESTED: "onFilePickerRequested";
25
+ readonly ON_STEP_STATUS_UPDATE: "onStepStatusUpdate";
26
+ readonly ON_INTERNAL_ERROR: "onError";
27
+ };
28
+ export declare const EVENTS: {
29
+ readonly ON_DESIGN_STATUS_UPDATE: "onDesignStatusUpdate";
30
+ readonly ON_PRICING_STATUS_UPDATE: "onPricingStatusUpdate";
31
+ readonly ON_FILE_PICKER_REQUESTED: "onFilePickerRequested";
32
+ readonly ON_STEP_STATUS_UPDATE: "onStepStatusUpdate";
33
+ readonly ON_INTERNAL_ERROR: "onError";
34
+ readonly SAVE_DESIGN_RESULT: "resultSaveDesign";
35
+ readonly ADD_IMAGE_RESULT: "resultAddImage";
36
+ readonly SET_STYLE_RESULT: "resultSetStyle";
37
+ readonly NAVIGATE_STEP_RESULT: "resultNavigateStep";
38
+ readonly EDM_INITIALIZATION_SUCCESS: "notificationEdmInitializationSuccess";
39
+ readonly SAVE_DESIGN_FAILURE: "actionSaveDesignFailure";
40
+ readonly ADD_IMAGE_FAILURE: "actionAddImageFailure";
41
+ readonly SET_STYLE_FAILURE: "actionSetStyleFailure";
42
+ readonly NAVIGATE_STEP_FAILURE: "actionNavigateStepFailure";
43
+ readonly INITIALIZE_EDM: "actionInitializeEdm";
44
+ readonly SAVE_DESIGN: "actionSaveDesign";
45
+ readonly ADD_IMAGE: "actionAddImage";
46
+ readonly SET_STYLE: "actionSetStyle";
47
+ readonly NAVIGATE_STEP: "actionNavigateStep";
48
+ };
@@ -0,0 +1,33 @@
1
+ export const EVENTS_ACTION = {
2
+ INITIALIZE_EDM: 'actionInitializeEdm',
3
+ SAVE_DESIGN: 'actionSaveDesign',
4
+ ADD_IMAGE: 'actionAddImage',
5
+ SET_STYLE: 'actionSetStyle',
6
+ NAVIGATE_STEP: 'actionNavigateStep',
7
+ };
8
+ export const EVENTS_NOTIFICATION = {
9
+ EDM_INITIALIZATION_SUCCESS: 'notificationEdmInitializationSuccess',
10
+ SAVE_DESIGN_FAILURE: 'actionSaveDesignFailure',
11
+ ADD_IMAGE_FAILURE: 'actionAddImageFailure',
12
+ SET_STYLE_FAILURE: 'actionSetStyleFailure',
13
+ NAVIGATE_STEP_FAILURE: 'actionNavigateStepFailure',
14
+ };
15
+ export const EVENTS_RESULT = {
16
+ SAVE_DESIGN_RESULT: 'resultSaveDesign',
17
+ ADD_IMAGE_RESULT: 'resultAddImage',
18
+ SET_STYLE_RESULT: 'resultSetStyle',
19
+ NAVIGATE_STEP_RESULT: 'resultNavigateStep',
20
+ };
21
+ export const EVENT_BROADCAST = {
22
+ ON_DESIGN_STATUS_UPDATE: 'onDesignStatusUpdate',
23
+ ON_PRICING_STATUS_UPDATE: 'onPricingStatusUpdate',
24
+ ON_FILE_PICKER_REQUESTED: 'onFilePickerRequested',
25
+ ON_STEP_STATUS_UPDATE: 'onStepStatusUpdate',
26
+ ON_INTERNAL_ERROR: 'onError',
27
+ };
28
+ export const EVENTS = {
29
+ ...EVENTS_ACTION,
30
+ ...EVENTS_NOTIFICATION,
31
+ ...EVENTS_RESULT,
32
+ ...EVENT_BROADCAST,
33
+ };