@myop/sdk 0.3.34 → 0.3.37

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 (47) hide show
  1. package/dist/bundled-declarations.d.ts +25 -1
  2. package/dist/cjs/{_IframeSDK.c7926c56.js → _IframeSDK.119b841c.js} +31 -15
  3. package/dist/cjs/_IframeSDK.119b841c.js.map +7 -0
  4. package/dist/cjs/_IframeSDK.4c1677d2.min.js +1 -0
  5. package/dist/cjs/{_MyopHelpers.08d1cf5d.js → _MyopHelpers.cc216538.js} +17 -1
  6. package/dist/cjs/_MyopHelpers.cc216538.js.map +7 -0
  7. package/dist/cjs/_MyopHelpers.eff18534.min.js +1 -0
  8. package/dist/cjs/{_WebComponentSDK.501a71f9.js → _WebComponentSDK.68c26204.js} +31 -15
  9. package/dist/cjs/_WebComponentSDK.68c26204.js.map +7 -0
  10. package/dist/cjs/_WebComponentSDK.78fd3813.min.js +1 -0
  11. package/dist/cjs/_hostSDK.a52dd73c.min.js +1 -0
  12. package/dist/cjs/{_hostSDK.cdbc1f60.js → _hostSDK.cb624992.js} +31 -15
  13. package/dist/cjs/_hostSDK.cb624992.js.map +7 -0
  14. package/dist/cjs/myop_sdk.js +14 -14
  15. package/dist/cjs/myop_sdk.js.map +1 -1
  16. package/dist/cjs/myop_sdk.min.js +1 -1
  17. package/dist/cjs-bundled/myop_sdk.bundled.js +38 -17
  18. package/dist/cjs-bundled/myop_sdk.bundled.js.map +3 -3
  19. package/dist/cjs-bundled/myop_sdk.bundled.min.js +1 -1
  20. package/dist/module/Iframe/index.js +32 -16
  21. package/dist/module/Iframe/index.js.map +2 -2
  22. package/dist/module/SDK.js +38 -17
  23. package/dist/module/SDK.js.map +3 -3
  24. package/dist/module/common/index.d.ts +5 -0
  25. package/dist/module/common/index.js +1 -1
  26. package/dist/module/common/index.js.map +2 -2
  27. package/dist/module/embeddedSDK.js +1 -1
  28. package/dist/module/helpers/CloudRepository.d.ts +5 -0
  29. package/dist/module/helpers/cloudRepositoryHelpers.d.ts +10 -0
  30. package/dist/module/helpers/index.js +17 -2
  31. package/dist/module/helpers/index.js.map +2 -2
  32. package/dist/module/host/components/IMyopComponent.d.ts +3 -0
  33. package/dist/module/host/embeddedSDK.js +1 -1
  34. package/dist/module/host/index.js +32 -16
  35. package/dist/module/host/index.js.map +2 -2
  36. package/dist/module/host/loaders/HTMLComponentLoader.d.ts +2 -1
  37. package/dist/module/webcomponent/index.js +32 -16
  38. package/dist/module/webcomponent/index.js.map +2 -2
  39. package/package.json +1 -1
  40. package/dist/cjs/_IframeSDK.c2225e19.min.js +0 -1
  41. package/dist/cjs/_IframeSDK.c7926c56.js.map +0 -7
  42. package/dist/cjs/_MyopHelpers.08d1cf5d.js.map +0 -7
  43. package/dist/cjs/_MyopHelpers.59521d8f.min.js +0 -1
  44. package/dist/cjs/_WebComponentSDK.0caec562.min.js +0 -1
  45. package/dist/cjs/_WebComponentSDK.501a71f9.js.map +0 -7
  46. package/dist/cjs/_hostSDK.02edf3e2.min.js +0 -1
  47. package/dist/cjs/_hostSDK.cdbc1f60.js.map +0 -7
@@ -370,6 +370,11 @@ declare module "@myop/sdk/common" {
370
370
  id: string;
371
371
  name: string;
372
372
  description: string;
373
+ /**
374
+ * The component's runtime tags: only tags named `ui:...` (e.g. `ui:beta`), as set in the
375
+ * dashboard. Every other tag stays private on the server. Empty when there are none.
376
+ */
377
+ uiTags?: string[];
373
378
  props: IPropConfig[];
374
379
  refs: IRefConfig[];
375
380
  skins: ISkinConfig[];
@@ -1196,6 +1201,8 @@ declare module "@myop/sdk/host/components/IMyopComponent" {
1196
1201
  markedForDisposed: boolean;
1197
1202
  setInitiated: () => void;
1198
1203
  componentDefinition: IComponentDefinitionConfig;
1204
+ /** Runtime tags: only tags named `ui:...` (e.g. `ui:beta`). `[]` when there are none. */
1205
+ readonly uiTags: string[];
1199
1206
  container: HTMLElement;
1200
1207
  element?: HTMLElement;
1201
1208
  send: (msg: BaseMyopMessage) => CleanupHandler;
@@ -1239,6 +1246,7 @@ declare module "@myop/sdk/host/components/IMyopComponent" {
1239
1246
  messageHandlers: Record<string, messageHandler<any>[]>;
1240
1247
  element?: HTMLElement;
1241
1248
  protected constructor(componentDefinition: IComponentDefinitionConfig, container: HTMLElement, options?: loaderOptions);
1249
+ get uiTags(): string[];
1242
1250
  _markedForDisposed: boolean;
1243
1251
  get markedForDisposed(): boolean;
1244
1252
  set markedForDisposed(value: boolean);
@@ -1710,7 +1718,8 @@ declare module "@myop/sdk/host/loaders/HTMLComponentLoader" {
1710
1718
  */
1711
1719
  private extractWebComponentScript;
1712
1720
  /**
1713
- * Execute the web component script on the host document
1721
+ * Execute the web component script on the host document.
1722
+ * Returns the custom element tag name this script registered.
1714
1723
  */
1715
1724
  private executeWebComponentScript;
1716
1725
  /**
@@ -1859,6 +1868,11 @@ declare module "@myop/sdk/helpers/CloudRepository" {
1859
1868
  * skipping the WEBVIEW_READY → fetch → inject round trip entirely.
1860
1869
  */
1861
1870
  getResolvedConfig(componentId: string, env?: string, preview?: boolean): IComponentConfig | null;
1871
+ /**
1872
+ * The `ui:` tags of an already-resolved component (`[]` if it has none or is not
1873
+ * resolved yet). Synchronous, no request: tags arrive with the component itself.
1874
+ */
1875
+ getComponentTags(componentId: string, env?: string, preview?: boolean): string[];
1862
1876
  /**
1863
1877
  * Resolve which (env, preview) pair — and therefore which cache key — a call
1864
1878
  * for `componentId` refers to.
@@ -1923,6 +1937,16 @@ declare module "@myop/sdk/helpers/cloudRepositoryHelpers" {
1923
1937
  export const setCloudRepository: (repository: CloudRepository) => void;
1924
1938
  export const setEnvironment: (env: string) => void;
1925
1939
  export const getResolvedConfig: (componentId: string, env?: string, preview?: boolean) => IComponentConfig;
1940
+ /**
1941
+ * The runtime tags of a loaded/preloaded component: only tags named `ui:...` (e.g.
1942
+ * `ui:beta`). Returns `[]` when it has none or has not been fetched yet.
1943
+ *
1944
+ * ```ts
1945
+ * await preloadComponents([id]);
1946
+ * getComponentTags(id); // ['ui:beta']
1947
+ * ```
1948
+ */
1949
+ export const getComponentTags: (componentId: string, env?: string, preview?: boolean) => string[];
1926
1950
  export const preloadComponents: (ids: string[], env?: string, preview?: boolean) => Promise<PromiseSettledResult<IComponentConfig>[]>;
1927
1951
  /**
1928
1952
  * Seed already-resolved component configs into the SDK cache, with no network
@@ -1016,6 +1016,10 @@ var BaseMyopComponent = class {
1016
1016
  }
1017
1017
  });
1018
1018
  }
1019
+ get uiTags() {
1020
+ var _a;
1021
+ return ((_a = this.componentDefinition) == null ? void 0 : _a.uiTags) || [];
1022
+ }
1019
1023
  get markedForDisposed() {
1020
1024
  return this._markedForDisposed;
1021
1025
  }
@@ -2142,7 +2146,7 @@ var WebcomponentLoader = class extends BaseMyopLoader {
2142
2146
  };
2143
2147
 
2144
2148
  // version:myop-sdk-version
2145
- var myop_sdk_version_default = "0.3.34";
2149
+ var myop_sdk_version_default = "0.3.37";
2146
2150
 
2147
2151
  // src/webcomponent/messageHandlers/BaseWebComponentMessageHandler.ts
2148
2152
  var BaseWebComponentMessageHandler = class extends BaseContextMessageHandler {
@@ -2474,7 +2478,7 @@ var HAS_EMBEDDED_SDK = false;
2474
2478
  // src/host/loaders/HTMLComponentLoader.ts
2475
2479
  var MYOP_WEB_COMPONENT_MARKER = "<!-- myop-web-component -->";
2476
2480
  var MYOP_WEB_COMPONENT_SCRIPT_ID = "myop-web-component";
2477
- var extractedWebComponentScripts = /* @__PURE__ */ new Set();
2481
+ var extractedWebComponentScripts = /* @__PURE__ */ new Map();
2478
2482
  var seen2 = [];
2479
2483
  var sdk;
2480
2484
  var getInitiatedSdk = async () => {
@@ -2715,19 +2719,25 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
2715
2719
  return (script == null ? void 0 : script.textContent) || null;
2716
2720
  }
2717
2721
  /**
2718
- * Execute the web component script on the host document
2722
+ * Execute the web component script on the host document.
2723
+ * Returns the custom element tag name this script registered.
2719
2724
  */
2720
2725
  executeWebComponentScript(scriptContent, scriptId) {
2721
- if (extractedWebComponentScripts.has(scriptId)) {
2722
- console.log("[MyopWebComponent] Script already executed for ".concat(scriptId, ", skipping"));
2723
- return;
2726
+ const cachedTagName = extractedWebComponentScripts.get(scriptId);
2727
+ if (cachedTagName) {
2728
+ console.log("[MyopWebComponent] Script already executed for ".concat(scriptId, ", reusing <").concat(cachedTagName, ">"));
2729
+ return cachedTagName;
2724
2730
  }
2725
2731
  const script = document.createElement("script");
2726
2732
  script.textContent = scriptContent;
2727
2733
  script.id = "myop-extracted-".concat(scriptId);
2728
2734
  document.head.appendChild(script);
2729
- extractedWebComponentScripts.add(scriptId);
2730
- console.log("[MyopWebComponent] Executed web component script: ".concat(scriptId));
2735
+ const tagName = window.__MYOP_TAG_NAME__;
2736
+ if (tagName) {
2737
+ extractedWebComponentScripts.set(scriptId, tagName);
2738
+ }
2739
+ console.log("[MyopWebComponent] Executed web component script: ".concat(scriptId, " -> <").concat(tagName, ">"));
2740
+ return tagName;
2731
2741
  }
2732
2742
  /**
2733
2743
  * Load a Myop Web Component (extracted and run on host document)
@@ -2738,15 +2748,10 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
2738
2748
  throw new Error('[MyopWebComponent] No <script id="myop-web-component"> found in HTML');
2739
2749
  }
2740
2750
  const scriptId = "".concat(componentDefinition.id, "-").concat(skin.id);
2741
- const previousTagName = window.__MYOP_TAG_NAME__;
2742
- this.executeWebComponentScript(scriptContent, scriptId);
2743
- const tagName = window.__MYOP_TAG_NAME__;
2751
+ const tagName = this.executeWebComponentScript(scriptContent, scriptId);
2744
2752
  if (!tagName) {
2745
2753
  throw new Error("[MyopWebComponent] Script did not set window.__MYOP_TAG_NAME__");
2746
2754
  }
2747
- if (previousTagName && previousTagName !== tagName) {
2748
- console.warn("[MyopWebComponent] __MYOP_TAG_NAME__ changed from ".concat(previousTagName, " to ").concat(tagName));
2749
- }
2750
2755
  const domId = "myop-comp-".concat(uuidv4());
2751
2756
  const element = document.createElement(tagName);
2752
2757
  element.id = domId;
@@ -2825,7 +2830,10 @@ var convertV2VariantToComponentConfig = (config) => {
2825
2830
  loader: config.consume_variant[0].loader
2826
2831
  }
2827
2832
  ],
2828
- defaultSkin: 0
2833
+ defaultSkin: 0,
2834
+ // Only `ui:` tags ever reach the client; the server filters, absent = none.
2835
+ // @ts-ignore
2836
+ uiTags: Array.isArray(config.uiTags) ? config.uiTags : []
2829
2837
  },
2830
2838
  name: config.name
2831
2839
  };
@@ -3020,6 +3028,14 @@ var _CloudRepository = class _CloudRepository {
3020
3028
  const { cacheKey } = this.resolveParams(componentId, env, preview);
3021
3029
  return ((_a = this.variants[cacheKey]) == null ? void 0 : _a.resolved) || null;
3022
3030
  }
3031
+ /**
3032
+ * The `ui:` tags of an already-resolved component (`[]` if it has none or is not
3033
+ * resolved yet). Synchronous, no request: tags arrive with the component itself.
3034
+ */
3035
+ getComponentTags(componentId, env, preview) {
3036
+ var _a, _b;
3037
+ return ((_b = (_a = this.getResolvedConfig(componentId, env, preview)) == null ? void 0 : _a.type) == null ? void 0 : _b.uiTags) || [];
3038
+ }
3023
3039
  /**
3024
3040
  * Resolve which (env, preview) pair — and therefore which cache key — a call
3025
3041
  * for `componentId` refers to.