@kizenapps/engine 1.7.4 → 1.8.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 (42) hide show
  1. package/README.md +74 -0
  2. package/dist/{automation-Bpg6VoKc.d.ts → automation-Dr26TnMo.d.ts} +2 -1
  3. package/dist/{blocks-DuJJdwgj.d.ts → blocks-C0e9BCrR.d.ts} +1 -1
  4. package/dist/{chunk-JALBO44J.js → chunk-5M2LFHMD.js} +3 -3
  5. package/dist/{chunk-JALBO44J.js.map → chunk-5M2LFHMD.js.map} +1 -1
  6. package/dist/{chunk-6X5XT5VZ.js → chunk-A3JR3VXF.js} +3 -3
  7. package/dist/{chunk-6X5XT5VZ.js.map → chunk-A3JR3VXF.js.map} +1 -1
  8. package/dist/{chunk-UPSXKOXC.js → chunk-ANZLHJL2.js} +3 -3
  9. package/dist/{chunk-UPSXKOXC.js.map → chunk-ANZLHJL2.js.map} +1 -1
  10. package/dist/{chunk-6FNI3N3L.js → chunk-DW7EWU2Z.js} +3 -3
  11. package/dist/{chunk-6FNI3N3L.js.map → chunk-DW7EWU2Z.js.map} +1 -1
  12. package/dist/{chunk-57E3SSWE.js → chunk-IFLQXUV7.js} +114 -13
  13. package/dist/chunk-IFLQXUV7.js.map +1 -0
  14. package/dist/{chunk-ML32XZC5.js → chunk-KVE4CAUJ.js} +3 -3
  15. package/dist/{chunk-ML32XZC5.js.map → chunk-KVE4CAUJ.js.map} +1 -1
  16. package/dist/{chunk-W6ODIN3B.js → chunk-MY4MXCGX.js} +4 -4
  17. package/dist/{chunk-W6ODIN3B.js.map → chunk-MY4MXCGX.js.map} +1 -1
  18. package/dist/{chunk-XR6WJWT4.js → chunk-QYGHOK5P.js} +3 -3
  19. package/dist/{chunk-XR6WJWT4.js.map → chunk-QYGHOK5P.js.map} +1 -1
  20. package/dist/{chunk-DFMGBECP.js → chunk-Y32HBIQ2.js} +8 -7
  21. package/dist/chunk-Y32HBIQ2.js.map +1 -0
  22. package/dist/communication.js +2 -2
  23. package/dist/contexts/base.d.ts +1 -1
  24. package/dist/contexts/base.js +4 -4
  25. package/dist/contexts/floatingFrame.js +5 -5
  26. package/dist/contexts/recordDetail.js +5 -5
  27. package/dist/index.d.ts +8 -4
  28. package/dist/index.js +4 -4
  29. package/dist/react.d.ts +6 -4
  30. package/dist/react.js +15 -6
  31. package/dist/react.js.map +1 -1
  32. package/dist/types.d.ts +3 -3
  33. package/dist/util.d.ts +2 -2
  34. package/dist/util.js +6 -6
  35. package/dist/{values-B_vFQrTp.d.ts → values-DCW2Il72.d.ts} +1 -1
  36. package/dist/workers/calendarSource.worker.js +6 -6
  37. package/dist/workers/floatingFrame.worker.js +7 -7
  38. package/dist/workers/generic.worker.js +6 -6
  39. package/dist/workers/recordDetail.worker.js +7 -7
  40. package/package.json +1 -1
  41. package/dist/chunk-57E3SSWE.js.map +0 -1
  42. package/dist/chunk-DFMGBECP.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { getPartialLocation, generateUUIDV4 } from './chunk-ML32XZC5.js';
2
- import { getAllNestedInputsFromConfig, buildIframeURLWithProxy, getParentFrameAllowParam, deserializeConsoleArg, KizenRequestError, filterSandboxList, filterAllowList } from './chunk-JALBO44J.js';
3
- import { IFRAME_PREFIX, ACTIONS, RESPONSES, COMMUNICATIONS, thirdPartyGlobalNames, getScriptIntegrationType, thirdPartySetupScripts, thirdPartyReadyPredicates } from './chunk-6FNI3N3L.js';
1
+ import { getPartialLocation, generateUUIDV4 } from './chunk-KVE4CAUJ.js';
2
+ import { getAllNestedInputsFromConfig, buildIframeURLWithProxy, getParentFrameAllowParam, deserializeConsoleArg, KizenRequestError, filterSandboxList, filterAllowList } from './chunk-5M2LFHMD.js';
3
+ import { IFRAME_PREFIX, ACTIONS, RESPONSES, COMMUNICATIONS, thirdPartyGlobalNames, getScriptIntegrationType, thirdPartySetupScripts, thirdPartyReadyPredicates } from './chunk-DW7EWU2Z.js';
4
4
  import { __commonJS, __toESM } from './chunk-5WRI5ZAA.js';
5
5
  import DOMPurify from 'dompurify';
6
6
 
@@ -1796,10 +1796,66 @@ var getPluginSafeHTML = (html, pluginApiName, options) => {
1796
1796
  }
1797
1797
  };
1798
1798
 
1799
+ // src/communication/storage.ts
1800
+ var STORAGE_KEY_PREFIX = "kizen-app-context";
1801
+ var SESSION_DATA_PARAM = "session_data_key";
1802
+ var getStorageKey = () => `${STORAGE_KEY_PREFIX}-${generateUUIDV4()}`;
1803
+ var getStorageKeyFromUrl = (url) => {
1804
+ try {
1805
+ const key = new URL(url, window.location.origin).searchParams.get(SESSION_DATA_PARAM);
1806
+ return key?.startsWith(`${STORAGE_KEY_PREFIX}-`) ? key : null;
1807
+ } catch {
1808
+ return null;
1809
+ }
1810
+ };
1811
+ var storeNavigationContext = (context) => {
1812
+ const storageKey = getStorageKey();
1813
+ sessionStorage.setItem(storageKey, JSON.stringify(context));
1814
+ return storageKey;
1815
+ };
1816
+ var transformNavigationUrl = (url, key) => {
1817
+ const urlObj = new URL(url, window.location.origin);
1818
+ urlObj.searchParams.set(SESSION_DATA_PARAM, key);
1819
+ return `${urlObj.pathname}${urlObj.search}${urlObj.hash}`;
1820
+ };
1821
+ var readNavigationContext = (url) => {
1822
+ const storageKey = getStorageKeyFromUrl(url);
1823
+ if (!storageKey) {
1824
+ return void 0;
1825
+ }
1826
+ try {
1827
+ const contextString = sessionStorage.getItem(storageKey);
1828
+ if (!contextString) {
1829
+ return void 0;
1830
+ }
1831
+ return JSON.parse(contextString);
1832
+ } catch {
1833
+ return void 0;
1834
+ }
1835
+ };
1836
+ var clearNavigationContext = (url) => {
1837
+ const storageKey = getStorageKeyFromUrl(url);
1838
+ if (storageKey) {
1839
+ sessionStorage.removeItem(storageKey);
1840
+ }
1841
+ };
1842
+ var consumeNavigationContext = (url) => {
1843
+ const context = readNavigationContext(url);
1844
+ clearNavigationContext(url);
1845
+ return context;
1846
+ };
1847
+
1799
1848
  // src/WorkerManager.ts
1800
1849
  var isRelative = (url) => {
1801
1850
  return url.startsWith("/");
1802
1851
  };
1852
+ var isSameOrigin = (url) => {
1853
+ try {
1854
+ return new URL(url, window.location.origin).origin === window.location.origin;
1855
+ } catch {
1856
+ return false;
1857
+ }
1858
+ };
1803
1859
  var refreshTimeout = 3e4;
1804
1860
  var refreshInterval = 100;
1805
1861
  var WorkerManager = class {
@@ -1948,7 +2004,8 @@ var WorkerManager = class {
1948
2004
  this.handleOpenWindow(
1949
2005
  consideredEvent.url,
1950
2006
  consideredEvent.target,
1951
- consideredEvent.features
2007
+ consideredEvent.features,
2008
+ consideredEvent.context
1952
2009
  );
1953
2010
  return;
1954
2011
  }
@@ -2460,12 +2517,56 @@ var WorkerManager = class {
2460
2517
  });
2461
2518
  }
2462
2519
  };
2463
- handleOpenWindow = (url, target, features) => {
2464
- if (!isRelative(url) || target === "_blank" || !this.pushHistory) {
2465
- window.open(url, target, features);
2466
- } else {
2467
- this.pushHistory(url);
2520
+ applyNavigationContext = (url, context) => {
2521
+ let storageKey;
2522
+ try {
2523
+ storageKey = storeNavigationContext(context);
2524
+ } catch {
2525
+ this.onError?.({
2526
+ message: "Failed to store context in sessionStorage."
2527
+ });
2528
+ return url;
2529
+ }
2530
+ try {
2531
+ return transformNavigationUrl(url, storageKey);
2532
+ } catch {
2533
+ try {
2534
+ sessionStorage.removeItem(storageKey);
2535
+ } catch {
2536
+ }
2537
+ this.onError?.({
2538
+ message: "Failed to append the context key to the navigation URL."
2539
+ });
2540
+ return url;
2541
+ }
2542
+ };
2543
+ handleOpenWindow = (url, target, features, context) => {
2544
+ const { pushHistory } = this;
2545
+ if (isRelative(url) && target !== "_blank") {
2546
+ const finalUrl = context ? this.applyNavigationContext(url, context) : url;
2547
+ if (pushHistory) {
2548
+ pushHistory(finalUrl);
2549
+ } else {
2550
+ window.open(finalUrl, target, features);
2551
+ }
2552
+ return;
2553
+ }
2554
+ if (isRelative(url) && target === "_blank" && context && isSameOrigin(url)) {
2555
+ let storageKey;
2556
+ try {
2557
+ storageKey = storeNavigationContext(context);
2558
+ } catch {
2559
+ this.onError?.({
2560
+ message: "Failed to store context in sessionStorage."
2561
+ });
2562
+ window.open(url, target, features);
2563
+ return;
2564
+ }
2565
+ window.open(transformNavigationUrl(url, storageKey), "_blank");
2566
+ sessionStorage.removeItem(storageKey);
2567
+ return;
2468
2568
  }
2569
+ window.open(url, target, features);
2469
2570
  };
2470
2571
  handleAuthorize = (serviceName, config = {}) => {
2471
2572
  const params = new URLSearchParams();
@@ -2682,8 +2783,8 @@ var modalSize = {
2682
2783
  };
2683
2784
 
2684
2785
  // src/index.ts
2685
- var version = "1.7.4";
2786
+ var version = "1.8.0";
2686
2787
 
2687
- export { forceQualifiedUrl, getDisabledValue, getEnabledState, getHash, getLinkValue, getPluginSafeHTML, getQrCodeValue, getStableHash, isFlagEnabled, mergeConfig, modalSize, pluginMapper, reduceEnabledResults, replaceConfigValues, runExpression, runObjectExpression, runOptionExpression, runScript, runStringExpression, version };
2688
- //# sourceMappingURL=chunk-57E3SSWE.js.map
2689
- //# sourceMappingURL=chunk-57E3SSWE.js.map
2788
+ export { clearNavigationContext, consumeNavigationContext, forceQualifiedUrl, getDisabledValue, getEnabledState, getHash, getLinkValue, getPluginSafeHTML, getQrCodeValue, getStableHash, isFlagEnabled, mergeConfig, modalSize, pluginMapper, readNavigationContext, reduceEnabledResults, replaceConfigValues, runExpression, runObjectExpression, runOptionExpression, runScript, runStringExpression, version };
2789
+ //# sourceMappingURL=chunk-IFLQXUV7.js.map
2790
+ //# sourceMappingURL=chunk-IFLQXUV7.js.map