@myop/sdk 0.3.33 → 0.3.36
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.
- package/dist/bundled-declarations.d.ts +66 -3
- package/dist/cjs/{_IframeSDK.e5b2bc49.js → _IframeSDK.3283252f.js} +76 -34
- package/dist/cjs/{_IframeSDK.e5b2bc49.js.map → _IframeSDK.3283252f.js.map} +2 -2
- package/dist/cjs/_IframeSDK.652f4774.min.js +1 -0
- package/dist/cjs/{_MyopHelpers.95610381.js → _MyopHelpers.08d1cf5d.js} +68 -20
- package/dist/cjs/{_MyopHelpers.95610381.js.map → _MyopHelpers.08d1cf5d.js.map} +2 -2
- package/dist/cjs/_MyopHelpers.59521d8f.min.js +1 -0
- package/dist/cjs/_WebComponentSDK.8fe7c9bf.min.js +1 -0
- package/dist/cjs/{_WebComponentSDK.a7e660ab.js → _WebComponentSDK.e84be6ea.js} +76 -34
- package/dist/cjs/{_WebComponentSDK.a7e660ab.js.map → _WebComponentSDK.e84be6ea.js.map} +2 -2
- package/dist/cjs/_hostSDK.de2d767e.min.js +1 -0
- package/dist/cjs/{_hostSDK.1905850e.js → _hostSDK.fa5b3ccf.js} +76 -34
- package/dist/cjs/{_hostSDK.1905850e.js.map → _hostSDK.fa5b3ccf.js.map} +2 -2
- package/dist/cjs/myop_sdk.js +14 -14
- package/dist/cjs/myop_sdk.js.map +1 -1
- package/dist/cjs/myop_sdk.min.js +1 -1
- package/dist/cjs-bundled/myop_sdk.bundled.js +85 -36
- package/dist/cjs-bundled/myop_sdk.bundled.js.map +2 -2
- package/dist/cjs-bundled/myop_sdk.bundled.min.js +1 -1
- package/dist/module/Iframe/index.js +79 -35
- package/dist/module/Iframe/index.js.map +2 -2
- package/dist/module/SDK.js +87 -36
- package/dist/module/SDK.js.map +2 -2
- package/dist/module/embeddedSDK.js +1 -1
- package/dist/module/helpers/CloudRepository.d.ts +43 -0
- package/dist/module/helpers/cloudRepositoryHelpers.d.ts +21 -2
- package/dist/module/helpers/index.js +70 -21
- package/dist/module/helpers/index.js.map +2 -2
- package/dist/module/host/embeddedSDK.js +1 -1
- package/dist/module/host/index.js +79 -35
- package/dist/module/host/index.js.map +2 -2
- package/dist/module/host/loaders/HTMLComponentLoader.d.ts +2 -1
- package/dist/module/webcomponent/index.js +79 -35
- package/dist/module/webcomponent/index.js.map +2 -2
- package/package.json +1 -1
- package/dist/cjs/_IframeSDK.c7a53057.min.js +0 -1
- package/dist/cjs/_MyopHelpers.ca1b3a3c.min.js +0 -1
- package/dist/cjs/_WebComponentSDK.3a72ed95.min.js +0 -1
- package/dist/cjs/_hostSDK.0529d5ed.min.js +0 -1
|
@@ -2139,7 +2139,7 @@ var WebcomponentLoader = class extends BaseMyopLoader {
|
|
|
2139
2139
|
};
|
|
2140
2140
|
|
|
2141
2141
|
// version:myop-sdk-version
|
|
2142
|
-
var myop_sdk_version_default = "0.3.
|
|
2142
|
+
var myop_sdk_version_default = "0.3.36";
|
|
2143
2143
|
|
|
2144
2144
|
// src/host/embeddedSDK.ts
|
|
2145
2145
|
var EMBEDDED_SDK_CONTENT = "";
|
|
@@ -2148,7 +2148,7 @@ var HAS_EMBEDDED_SDK = false;
|
|
|
2148
2148
|
// src/host/loaders/HTMLComponentLoader.ts
|
|
2149
2149
|
var MYOP_WEB_COMPONENT_MARKER = "<!-- myop-web-component -->";
|
|
2150
2150
|
var MYOP_WEB_COMPONENT_SCRIPT_ID = "myop-web-component";
|
|
2151
|
-
var extractedWebComponentScripts = /* @__PURE__ */ new
|
|
2151
|
+
var extractedWebComponentScripts = /* @__PURE__ */ new Map();
|
|
2152
2152
|
var seen2 = [];
|
|
2153
2153
|
var sdk;
|
|
2154
2154
|
var getInitiatedSdk = async () => {
|
|
@@ -2389,19 +2389,25 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
|
|
|
2389
2389
|
return (script == null ? void 0 : script.textContent) || null;
|
|
2390
2390
|
}
|
|
2391
2391
|
/**
|
|
2392
|
-
* Execute the web component script on the host document
|
|
2392
|
+
* Execute the web component script on the host document.
|
|
2393
|
+
* Returns the custom element tag name this script registered.
|
|
2393
2394
|
*/
|
|
2394
2395
|
executeWebComponentScript(scriptContent, scriptId) {
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2396
|
+
const cachedTagName = extractedWebComponentScripts.get(scriptId);
|
|
2397
|
+
if (cachedTagName) {
|
|
2398
|
+
console.log("[MyopWebComponent] Script already executed for ".concat(scriptId, ", reusing <").concat(cachedTagName, ">"));
|
|
2399
|
+
return cachedTagName;
|
|
2398
2400
|
}
|
|
2399
2401
|
const script = document.createElement("script");
|
|
2400
2402
|
script.textContent = scriptContent;
|
|
2401
2403
|
script.id = "myop-extracted-".concat(scriptId);
|
|
2402
2404
|
document.head.appendChild(script);
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
+
const tagName = window.__MYOP_TAG_NAME__;
|
|
2406
|
+
if (tagName) {
|
|
2407
|
+
extractedWebComponentScripts.set(scriptId, tagName);
|
|
2408
|
+
}
|
|
2409
|
+
console.log("[MyopWebComponent] Executed web component script: ".concat(scriptId, " -> <").concat(tagName, ">"));
|
|
2410
|
+
return tagName;
|
|
2405
2411
|
}
|
|
2406
2412
|
/**
|
|
2407
2413
|
* Load a Myop Web Component (extracted and run on host document)
|
|
@@ -2412,15 +2418,10 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
|
|
|
2412
2418
|
throw new Error('[MyopWebComponent] No <script id="myop-web-component"> found in HTML');
|
|
2413
2419
|
}
|
|
2414
2420
|
const scriptId = "".concat(componentDefinition.id, "-").concat(skin.id);
|
|
2415
|
-
const
|
|
2416
|
-
this.executeWebComponentScript(scriptContent, scriptId);
|
|
2417
|
-
const tagName = window.__MYOP_TAG_NAME__;
|
|
2421
|
+
const tagName = this.executeWebComponentScript(scriptContent, scriptId);
|
|
2418
2422
|
if (!tagName) {
|
|
2419
2423
|
throw new Error("[MyopWebComponent] Script did not set window.__MYOP_TAG_NAME__");
|
|
2420
2424
|
}
|
|
2421
|
-
if (previousTagName && previousTagName !== tagName) {
|
|
2422
|
-
console.warn("[MyopWebComponent] __MYOP_TAG_NAME__ changed from ".concat(previousTagName, " to ").concat(tagName));
|
|
2423
|
-
}
|
|
2424
2425
|
const domId = "myop-comp-".concat(uuidv4());
|
|
2425
2426
|
const element = document.createElement(tagName);
|
|
2426
2427
|
element.id = domId;
|
|
@@ -2596,24 +2597,33 @@ var _CloudRepository = class _CloudRepository {
|
|
|
2596
2597
|
getPreloadedParams(componentId) {
|
|
2597
2598
|
return this.preloadedComponents[componentId];
|
|
2598
2599
|
}
|
|
2600
|
+
/**
|
|
2601
|
+
* Resolve a component config: fetch it once, then serve it from this
|
|
2602
|
+
* repository's cache.
|
|
2603
|
+
*
|
|
2604
|
+
* This is the name to use. `fetchComponentV2` is the same method under its
|
|
2605
|
+
* versioned name and stays for backward compatibility — note that the
|
|
2606
|
+
* unversioned `fetchComponent` is a *deprecated v1* API and is NOT this.
|
|
2607
|
+
*
|
|
2608
|
+
* Completes the trio with {@link getResolvedConfig} (synchronous read of an
|
|
2609
|
+
* already-resolved config) and {@link hydrateComponent} (seed one you
|
|
2610
|
+
* already hold).
|
|
2611
|
+
*
|
|
2612
|
+
* Prefer the module-level `preloadComponents([id])` in app code; reach for
|
|
2613
|
+
* this when you need an isolated repository instance whose cache lifetime
|
|
2614
|
+
* you control — a server with its own TTL, for example.
|
|
2615
|
+
*/
|
|
2616
|
+
async resolveComponent(componentId, env, preview) {
|
|
2617
|
+
return this.fetchComponentV2(componentId, env, preview);
|
|
2618
|
+
}
|
|
2599
2619
|
/**
|
|
2600
2620
|
* Fetch a v2 component config
|
|
2601
2621
|
* If env/preview not specified and component was preloaded, uses preloaded params
|
|
2622
|
+
*
|
|
2623
|
+
* @see resolveComponent — the unversioned name for this method
|
|
2602
2624
|
*/
|
|
2603
2625
|
async fetchComponentV2(componentId, environmentIdentifier, preview) {
|
|
2604
|
-
const
|
|
2605
|
-
const hasExplicitParams = environmentIdentifier !== void 0 || preview !== void 0;
|
|
2606
|
-
let env;
|
|
2607
|
-
let usePreview;
|
|
2608
|
-
if (!hasExplicitParams && preloaded) {
|
|
2609
|
-
env = preloaded.env;
|
|
2610
|
-
usePreview = preloaded.preview;
|
|
2611
|
-
} else {
|
|
2612
|
-
env = environmentIdentifier || this._defaultEnv;
|
|
2613
|
-
const hasEffectiveEnv = environmentIdentifier || this._envExplicitlySet;
|
|
2614
|
-
usePreview = preview === true ? true : preview === false ? false : !hasEffectiveEnv;
|
|
2615
|
-
}
|
|
2616
|
-
const cacheKey = "".concat(componentId, ":").concat(env, ":").concat(usePreview ? "preview" : "live");
|
|
2626
|
+
const { env, usePreview, cacheKey } = this.resolveParams(componentId, environmentIdentifier, preview);
|
|
2617
2627
|
console.log("[CloudRepository] fetchComponentV2", {
|
|
2618
2628
|
componentId: componentId.slice(0, 8) + "...",
|
|
2619
2629
|
env,
|
|
@@ -2682,20 +2692,52 @@ var _CloudRepository = class _CloudRepository {
|
|
|
2682
2692
|
*/
|
|
2683
2693
|
getResolvedConfig(componentId, env, preview) {
|
|
2684
2694
|
var _a;
|
|
2695
|
+
const { cacheKey } = this.resolveParams(componentId, env, preview);
|
|
2696
|
+
return ((_a = this.variants[cacheKey]) == null ? void 0 : _a.resolved) || null;
|
|
2697
|
+
}
|
|
2698
|
+
/**
|
|
2699
|
+
* Resolve which (env, preview) pair — and therefore which cache key — a call
|
|
2700
|
+
* for `componentId` refers to.
|
|
2701
|
+
*
|
|
2702
|
+
* Single source of truth for fetchComponentV2, getResolvedConfig and
|
|
2703
|
+
* hydrateComponent, so a hydrated config always lands on the key a later
|
|
2704
|
+
* fetch will look under.
|
|
2705
|
+
*/
|
|
2706
|
+
resolveParams(componentId, environmentIdentifier, preview) {
|
|
2685
2707
|
const preloaded = this.preloadedComponents[componentId];
|
|
2686
|
-
const hasExplicitParams =
|
|
2687
|
-
let
|
|
2708
|
+
const hasExplicitParams = environmentIdentifier !== void 0 || preview !== void 0;
|
|
2709
|
+
let env;
|
|
2688
2710
|
let usePreview;
|
|
2689
2711
|
if (!hasExplicitParams && preloaded) {
|
|
2690
|
-
|
|
2712
|
+
env = preloaded.env;
|
|
2691
2713
|
usePreview = preloaded.preview;
|
|
2692
2714
|
} else {
|
|
2693
|
-
|
|
2694
|
-
const hasEffectiveEnv =
|
|
2715
|
+
env = environmentIdentifier || this._defaultEnv;
|
|
2716
|
+
const hasEffectiveEnv = environmentIdentifier || this._envExplicitlySet;
|
|
2695
2717
|
usePreview = preview === true ? true : preview === false ? false : !hasEffectiveEnv;
|
|
2696
2718
|
}
|
|
2697
|
-
|
|
2698
|
-
|
|
2719
|
+
return { env, usePreview, cacheKey: "".concat(componentId, ":").concat(env, ":").concat(usePreview ? "preview" : "live") };
|
|
2720
|
+
}
|
|
2721
|
+
/**
|
|
2722
|
+
* Seed an already-resolved component config into the cache, without any
|
|
2723
|
+
* network request.
|
|
2724
|
+
*
|
|
2725
|
+
* The counterpart to {@link fetchComponentV2}: use it when the config was
|
|
2726
|
+
* resolved somewhere else — most often on a server, then embedded in the
|
|
2727
|
+
* page — so the browser can render the component with no round trip.
|
|
2728
|
+
*
|
|
2729
|
+
* After hydrating, `fetchComponentV2`, `getResolvedConfig` and `isPreloaded`
|
|
2730
|
+
* all answer for this component from memory.
|
|
2731
|
+
*
|
|
2732
|
+
* Pass the same `env` / `preview` the config was resolved with; the defaults
|
|
2733
|
+
* match what a plain `fetchComponentV2(componentId)` would have used.
|
|
2734
|
+
*/
|
|
2735
|
+
hydrateComponent(componentId, config, env, preview) {
|
|
2736
|
+
const { env: resolvedEnv, usePreview, cacheKey } = this.resolveParams(componentId, env, preview);
|
|
2737
|
+
const promise = Promise.resolve(config);
|
|
2738
|
+
promise.resolved = config;
|
|
2739
|
+
this.variants[cacheKey] = promise;
|
|
2740
|
+
this.preloadedComponents[componentId] = { env: resolvedEnv, preview: usePreview };
|
|
2699
2741
|
}
|
|
2700
2742
|
// ============ V1 Methods (Legacy) ============
|
|
2701
2743
|
/**
|