@adobe/exc-app 1.5.11 → 1.5.12-beta

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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @adobe/exc-app Changelog
2
2
 
3
+ ## 1.5.11 (2026-05-14)
4
+
5
+ - [Feature] Add `appContext` to `openChat` — `OpenChatProps` now accepts `appContext?: JSONValue` to pass structured context directly to the AI panel without requiring an `APP_CONTEXT` interframe request; adds new `JSONValue` type ([ac33f834](https://github.com/Adobe-dxue/unified-shell/commit/ac33f8346aaaa8cf90a2c77d6e255df3cce09b16))
6
+ - [Type Change] Refactor `LeftNavConfig` into a discriminated union — adds `LeftNavDisabledConfig` (`{enabled: false}`) and `LeftNavEnabledConfig` interfaces; pass `{enabled: false}` to `useLeftNavButton` to remove a previously registered button (EXC-47389) ([33f32482](https://github.com/Adobe-dxue/unified-shell/commit/33f324823e482f29ddcca26d5059cb52e8efe521))
7
+ - [Type Change] Add `gqlPreview` to `BaseNetworkConfig` — shell propagates the `gql_preview` URL param to nested SPA iframes via `RuntimeConfiguration`; fixes cross-origin failure when nested frames tried to read `win.top.location` directly ([6887b342](https://github.com/Adobe-dxue/unified-shell/commit/6887b3429efcb29b9b45b684facf746422b8961b), [767a7ee1](https://github.com/Adobe-dxue/unified-shell/commit/767a7ee172192706988acbaab78601b069774ad3))
8
+ - [Type Change] Add `LABS` (`cxLabs`) to `AppIds` — moves AEP Labs to the CX product line (EXC-47665) ([5b487131](https://github.com/Adobe-dxue/unified-shell/commit/5b4871313f3fb35aaa7e1b80c432c3827e358d64))
9
+ - [Bug fix] Fix lost metrics on iframe navigation — bumps `@exc/metrics-runtime` to 1.0.6; unflushed metrics are now handed off to the parent frame's transport on `pagehide` so they survive iframe destruction during app-to-app navigation (EXC-47193) ([d6097d70](https://github.com/Adobe-dxue/unified-shell/commit/d6097d708622d89fb8780b15228ac2986cbff823))
10
+ - [Improvement] Set up error filter after metrics configure — calls `setUpErrorFilter` post-configuration to catch and suppress errors thrown by solution apps (EXC-46335) ([83e5ed55](https://github.com/Adobe-dxue/unified-shell/commit/83e5ed551e3eaf1295dd50dbead0561602c39630))
11
+
3
12
  ## 1.5.10 (2026-04-09)
4
13
 
5
14
  - [Feature] Spotlight mode for AI Assistant — adds `SPOTLIGHT_MODE` to `InterFrameActionType` and new `SpotlightModeOptions` interface with `enabled`, `spotlightConfig`, `onHover`, and `onClick` callbacks (NXUI-1425) ([562b4bda](https://github.com/Adobe-dxue/unified-shell/commit/562b4bda12351ba615905b96d22258a30a20f2e3))
@@ -0,0 +1 @@
1
+ window.hierarchyData = "data:application/octet-stream;base64,H4sIAAAAAAAAE52WS3ObMBSF/4vWCkWAhMXOzfQ1TfNydhkvFLg2NFgwktw2k/F/72CSjLBJLLFhAZx7vnskzdUzUk1jNMruOSZJGGEepTiJUjxjDDOSYEJCikkYMUxCyjFh4QwTmlJM0iheYqRgVUNuqkZqlD0j3j2k2ADK0HytADYgzU94umr7XzB6rGSBsogyjLaqRhmqpAG1EjnoT+JVoYMRcVCaTY0wymuhNcqQ0cVZV+3srUL3sazqQoFE2T0hyx1GhIwhTedxh9lhlESx5X4u8hKuhRIbMKBOmefd38GBxjeDJOLLPUd6yLEwjZoEcyD0J4p7In5EBGYSjy1zWxZGEsv8O9TtOXTf5211rZoWlKngFEH5pgreKeCbDIv3a8Vi/h7cRCS3UGaMWb7flGjLm4ubLainE7YSzN9GPQa2xLf3Gdv3PmN271/+GZAFFBNYxqRuMfDBUfksNFz2Nc8buarWjv5HOt9AeMwxpwyThLAuGT7YFV/B5KUXkKVwzIGObAcvy4HGzbQbNJbrZat9jqRsdXAo8R4aYRztx0YYR0MSN3PXPqm9nNdiDT6NtmINwZHIu9WIJP2EDKkFc9GI4q7agP4FRlW5E8uhxn9UJy8oSTKG4sXguATRYAi8pOkRvKNNEtr7aC5F/WSqXPenYqtEd5s44Xq7labawEASjFfyDj4J6bLHtPfAJWgDxbxtnQ78KN9BCde0iH3+xwpPYRl96QZEUzuXRVNvO/GVWoD6U+3T/IhGl1DXwZHKe5Uo7++ylJOPaF6n3jSqV7VjMiyc2SxdzR9y1Vw9/IbcuBEMNd6pMNLvXUboyK1hCtE7WsdE0sFt/65pH4TXldLsFcGI0DuaNEqXPVI6huQJ4tL/bvcfiEFlREwOAAA="
@@ -0,0 +1,18 @@
1
+ (function() {
2
+ addIcons();
3
+ function addIcons() {
4
+ if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons);
5
+ const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg"));
6
+ svg.innerHTML = `<g id="icon-1" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-2" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">N</text></g><g id="icon-8" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">E</text></g><g id="icon-16" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-32" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">V</text></g><g id="icon-64" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-128" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-256" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">I</text></g><g id="icon-512" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-1024" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-2048" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-method)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">M</text></g><g id="icon-4096" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">F</text></g><g id="icon-8192" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-16384" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-constructor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">C</text></g><g id="icon-32768" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-property)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">P</text></g><g id="icon-65536" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-131072" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-262144" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-524288" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-1048576" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-accessor)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">A</text></g><g id="icon-2097152" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">T</text></g><g id="icon-4194304" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-reference)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><text fill="var(--color-icon-text)" x="50%" y="50%" dominant-baseline="central" text-anchor="middle">R</text></g><g id="icon-8388608" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="6,5 6,19 18,19, 18,10 13,5"></polygon><line x1="9" y1="9" x2="13" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-folder" class="tsd-no-select"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-icon-text)" fill="none" stroke-width="1.5"><polygon points="5,5 10,5 12,8 19,8 19,18 5,18"></polygon></g></g><g id="icon-chevronDown" class="tsd-no-select"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-icon-text)"></path></g><g id="icon-chevronSmall" class="tsd-no-select"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-icon-text)"></path></g><g id="icon-checkbox" class="tsd-no-select"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu" class="tsd-no-select"><rect x="1" y="3" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-icon-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-icon-text)"></rect></g><g id="icon-search" class="tsd-no-select"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-icon-text)"></path></g><g id="icon-anchor" class="tsd-no-select"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g><g id="icon-alertNote" class="tsd-no-select"><path fill="var(--color-alert-note)" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g><g id="icon-alertTip" class="tsd-no-select"><path fill="var(--color-alert-tip)" d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></g><g id="icon-alertImportant" class="tsd-no-select"><path fill="var(--color-alert-important)" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertWarning" class="tsd-no-select"><path fill="var(--color-alert-warning)" d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></g><g id="icon-alertCaution" class="tsd-no-select"><path fill="var(--color-alert-caution)" d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></g>`;
7
+ svg.style.display = "none";
8
+ if (location.protocol === "file:") updateUseElements();
9
+ }
10
+
11
+ function updateUseElements() {
12
+ document.querySelectorAll("use").forEach(el => {
13
+ if (el.getAttribute("href").includes("#icon-")) {
14
+ el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#"));
15
+ }
16
+ });
17
+ }
18
+ })()
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse"};
3
+ "use strict";(()=>{var De=Object.create;var ae=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Fe=Object.getOwnPropertyNames;var Ne=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var Ve=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Fe(e))!Be.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Ae(e,i))||r.enumerable});return t};var qe=(t,e,n)=>(n=t!=null?De(Ne(t)):{},je(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var he=Ve((ue,de)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var l=r.charAt(o),c=o-a;if(l.match(t.tokenizer.separator)||o==i){if(c>0){var d=t.utils.clone(n)||{};d.position=[a,c],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
4
+ `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,l=0,c=0,d=0;c<s&&d<o;)a=r[c],l=i[d],a<l?c+=2:a>l?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,l="^("+s+")?"+o+s+"("+o+")?$",c="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,m=new RegExp(a),f=new RegExp(c),L=new RegExp(l),v=new RegExp(d),w=/^(.+?)(ss|i)es$/,p=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,b=/.$/,k=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),V=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,q=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,F=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,$=/^(.+?)(s|t)(ion)$/,Q=/^(.+?)e$/,z=/ll$/,W=new RegExp("^"+s+i+"[^aeiouwxy]$"),N=function(u){var g,P,T,h,x,O,R;if(u.length<3)return u;if(T=u.substr(0,1),T=="y"&&(u=T.toUpperCase()+u.substr(1)),h=w,x=p,h.test(u)?u=u.replace(h,"$1$2"):x.test(u)&&(u=u.replace(x,"$1$2")),h=y,x=S,h.test(u)){var E=h.exec(u);h=m,h.test(E[1])&&(h=b,u=u.replace(h,""))}else if(x.test(u)){var E=x.exec(u);g=E[1],x=v,x.test(g)&&(u=g,x=k,O=_,R=V,x.test(u)?u=u+"e":O.test(u)?(h=b,u=u.replace(h,"")):R.test(u)&&(u=u+"e"))}if(h=A,h.test(u)){var E=h.exec(u);g=E[1],u=g+"i"}if(h=j,h.test(u)){var E=h.exec(u);g=E[1],P=E[2],h=m,h.test(g)&&(u=g+e[P])}if(h=q,h.test(u)){var E=h.exec(u);g=E[1],P=E[2],h=m,h.test(g)&&(u=g+n[P])}if(h=F,x=$,h.test(u)){var E=h.exec(u);g=E[1],h=f,h.test(g)&&(u=g)}else if(x.test(u)){var E=x.exec(u);g=E[1]+E[2],x=f,x.test(g)&&(u=g)}if(h=Q,h.test(u)){var E=h.exec(u);g=E[1],h=f,x=L,O=W,(h.test(g)||x.test(g)&&!O.test(g))&&(u=g)}return h=z,x=f,h.test(u)&&x.test(u)&&(h=b,u=u.replace(h,"")),T=="y"&&(u=T.toLowerCase()+u.substr(1)),u};return function(M){return M.update(N)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),f;m in s.node.edges?f=s.node.edges[m]:(f=new t.TokenSet,s.node.edges[m]=f),s.str.length==1&&(f.final=!0),i.push({node:f,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var l=new t.TokenSet;l.final=a,n.edges[o]=l,n=l}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),l=a.length,c=0;c<o;c++)for(var d=s[c],m=0;m<l;m++){var f=a[m];if(f==d||d=="*"){var L=r.node.edges[f],v=r.qNode.edges[d],w=L.final&&v.final,p=void 0;f in r.output.edges?(p=r.output.edges[f],p.final=p.final||w):(p=new t.TokenSet,p.final=w,r.output.edges[f]=p),i.push({qNode:v,output:p,node:L})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(n,n);for(var l=0;l<n.clauses.length;l++){var c=n.clauses[l],d=null,m=t.Set.empty;c.usePipeline?d=this.pipeline.runString(c.term,{fields:c.fields}):d=[c.term];for(var f=0;f<d.length;f++){var L=d[f];c.term=L;var v=t.TokenSet.fromClause(c),w=this.tokenSet.intersect(v).toArray();if(w.length===0&&c.presence===t.Query.presence.REQUIRED){for(var p=0;p<c.fields.length;p++){var y=c.fields[p];o[y]=t.Set.empty}break}for(var S=0;S<w.length;S++)for(var b=w[S],k=this.invertedIndex[b],_=k._index,p=0;p<c.fields.length;p++){var y=c.fields[p],V=k[y],A=Object.keys(V),j=b+"/"+y,q=new t.Set(A);if(c.presence==t.Query.presence.REQUIRED&&(m=m.union(q),o[y]===void 0&&(o[y]=t.Set.complete)),c.presence==t.Query.presence.PROHIBITED){a[y]===void 0&&(a[y]=t.Set.empty),a[y]=a[y].union(q);continue}if(i[y].upsert(_,c.boost,function(Re,He){return Re+He}),!s[j]){for(var F=0;F<A.length;F++){var $=A[F],Q=new t.FieldRef($,y),z=V[$],W;(W=r[Q])===void 0?r[Q]=new t.MatchData(b,y,z):W.add(b,y,z)}s[j]=!0}}}if(c.presence===t.Query.presence.REQUIRED)for(var p=0;p<c.fields.length;p++){var y=c.fields[p];o[y]=o[y].intersect(m)}}for(var N=t.Set.complete,M=t.Set.empty,l=0;l<this.fields.length;l++){var y=this.fields[l];o[y]&&(N=N.intersect(o[y])),a[y]&&(M=M.union(a[y]))}var u=Object.keys(r),g=[],P=Object.create(null);if(n.isNegated()){u=Object.keys(this.fieldVectors);for(var l=0;l<u.length;l++){var Q=u[l],T=t.FieldRef.fromString(Q);r[Q]=new t.MatchData}}for(var l=0;l<u.length;l++){var T=t.FieldRef.fromString(u[l]),h=T.docRef;if(N.contains(h)&&!M.contains(h)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),R;if((R=P[h])!==void 0)R.score+=O,R.matchData.combine(r[T]);else{var E={ref:h,score:O,matchData:r[T]};P[h]=E,g.push(E)}}}return g.sort(function(_e,Me){return Me.score-_e.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var c=0;c<i.length;c++){var d=i[c],m=d[0],f=d[1];r[m]=new t.Vector(f)}for(var c=0;c<o.length;c++){var d=o[c],L=d[0],v=d[1];a.insert(L),s[L]=v}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=l,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],c=this.tokenizer(l,{fields:[o]}),d=this.pipeline.run(c),m=new t.FieldRef(r,o),f=Object.create(null);this.fieldTermFrequencies[m]=f,this.fieldLengths[m]=0,this.fieldLengths[m]+=d.length;for(var L=0;L<d.length;L++){var v=d[L];if(f[v]==null&&(f[v]=0),f[v]+=1,this.invertedIndex[v]==null){var w=Object.create(null);w._index=this.termIndex,this.termIndex+=1;for(var p=0;p<i.length;p++)w[i[p]]=Object.create(null);this.invertedIndex[v]=w}this.invertedIndex[v][o][r]==null&&(this.invertedIndex[v][o][r]=Object.create(null));for(var y=0;y<this.metadataWhitelist.length;y++){var S=this.metadataWhitelist[y],b=v.metadata[S];this.invertedIndex[v][o][r][S]==null&&(this.invertedIndex[v][o][r][S]=[]),this.invertedIndex[v][o][r][S].push(b)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var c=l[s];r[c]=r[c]/i[c]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,l=this.fieldLengths[o],c=new t.Vector,d=this.fieldTermFrequencies[o],m=Object.keys(d),f=m.length,L=this._fields[a].boost||1,v=this._documents[o.docRef].boost||1,w=0;w<f;w++){var p=m[w],y=d[p],S=this.invertedIndex[p]._index,b,k,_;i[p]===void 0?(b=t.idf(this.invertedIndex[p],this.documentCount),i[p]=b):b=i[p],k=b*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+y),k*=L,k*=v,_=Math.round(k*1e3)/1e3,c.insert(S,_)}e[o]=c}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var c=0;c<l.length;c++){var d=l[c];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ue=="object"?de.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse"};var le=[];function J(t,e){le.push({selector:e,constructor:t})}var U=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!$e(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function $e(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ce=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ye=qe(he(),1);async function fe(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=ye.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function ge(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{fe(e,t)}),fe(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{ne(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),ze(t,i,r,e)}function ze(t,e,n,r){n.addEventListener("input",ce(()=>{We(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Ue(e,t):i.key=="ArrowUp"?(pe(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(pe(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),ne(t))})}function ne(t){t.classList.remove("has-focus")}function We(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;o<s.length;o++){let a=s[o],l=r.data.rows[Number(a.ref)],c=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(c*=1+1/(1+Math.abs(l.name.length-i.length))),a.score*=c}if(s.length===0){let o=document.createElement("li");o.classList.add("no-results");let a=document.createElement("span");a.textContent="No results found",o.appendChild(a),e.appendChild(o)}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let l=r.data.rows[Number(s[o].ref)],c=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${l.kind}"></use></svg>`,d=me(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=`<span class="parent">
5
+ ${me(l.parent,i)}.</span>${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let f=document.createElement("a");f.href=r.base+l.url,f.innerHTML=c+d,m.append(f),f.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function pe(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Ue(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),ne(e)}}function me(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`<b>${te(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var Je={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function te(t){return t.replace(/[&<>"'"]/g,e=>Je[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var H="mousedown",xe="mousemove",B="mouseup",G={x:0,y:0},ve=!1,re=!1,Ge=!1,D=!1,Ee=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Ee?"is-mobile":"not-mobile");Ee&&"ontouchstart"in document.documentElement&&(Ge=!0,H="touchstart",xe="touchmove",B="touchend");document.addEventListener(H,t=>{re=!0,D=!1;let e=H=="touchstart"?t.targetTouches[0]:t;G.y=e.pageY||0,G.x=e.pageX||0});document.addEventListener(xe,t=>{if(re&&!D){let e=H=="touchstart"?t.targetTouches[0]:t,n=G.x-(e.pageX||0),r=G.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{re=!1});document.addEventListener("click",t=>{ve&&(t.preventDefault(),t.stopImmediatePropagation(),ve=!1)});var X=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(H,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ie;try{ie=localStorage}catch{ie={getItem(){return null},setItem(){}}}var C=ie;var we=document.head.appendChild(document.createElement("style"));we.dataset.for="filters";var Y=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),we.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
6
+ `,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var se=new Map,oe=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},Z=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(se.has(i))s=se.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new oe(i,a),se.set(i,s)}s.add(this.el)}};function be(t){let e=C.getItem("tsd-theme")||"os";t.value=e,Le(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),Le(t.value)})}function Le(t){document.documentElement.dataset.theme=t}var K;function ke(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Se),Se())}async function Se(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=document.documentElement.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Ce(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ce(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',Te(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let c of t.children)Ce(c,l,i)}else Te(t,r,t.class)}function Te(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${t.kind}"></use></svg>`),r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span"));r.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-folder"></use></svg>',r.appendChild(document.createElement("span")).textContent=t.text}}var ee=document.documentElement.dataset.base;ee.endsWith("/")||(ee+="/");function Qe(){document.querySelector(".tsd-full-hierarchy")?Xe():document.querySelector(".tsd-hierarchy")&&Ye()}function Xe(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=et(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ye(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ie),Ie())}async function Ie(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let n=await(await fetch(window.hierarchyData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=+t.dataset.refl,s=await new Response(r).json(),o=t.querySelector("ul"),a=document.createElement("ul");if(a.classList.add("tsd-hierarchy"),Ze(a,s,i),o.querySelectorAll("li").length==a.querySelectorAll("li").length)return;let l=document.createElement("span");l.classList.add("tsd-hierarchy-toggle"),l.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",l),l.insertAdjacentText("beforebegin",", "),l.addEventListener("click",()=>{l.textContent===window.translations.hierarchy_expand?(o.insertAdjacentElement("afterend",a),o.remove(),l.textContent=window.translations.hierarchy_collapse):(a.insertAdjacentElement("afterend",o),a.remove(),l.textContent=window.translations.hierarchy_expand)})}function Ze(t,e,n){let r=e.roots.filter(i=>Ke(e,i,n));for(let i of r)t.appendChild(Pe(e,i,n))}function Pe(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=ee+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=ee+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=Pe(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function Ke(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function et(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='<use href="#icon-chevronDown"></use>',t}J(X,"a[data-toggle]");J(Z,".tsd-accordion");J(Y,".tsd-filter-item input[type=checkbox]");var Oe=document.getElementById("tsd-theme");Oe&&be(Oe);var tt=new U;Object.defineProperty(window,"app",{value:tt});ge();ke();Qe();})();
7
+ /*! Bundled license information:
8
+
9
+ lunr/lunr.js:
10
+ (**
11
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
12
+ * Copyright (C) 2020 Oliver Nightingale
13
+ * @license MIT
14
+ *)
15
+ (*!
16
+ * lunr.utils
17
+ * Copyright (C) 2020 Oliver Nightingale
18
+ *)
19
+ (*!
20
+ * lunr.Set
21
+ * Copyright (C) 2020 Oliver Nightingale
22
+ *)
23
+ (*!
24
+ * lunr.tokenizer
25
+ * Copyright (C) 2020 Oliver Nightingale
26
+ *)
27
+ (*!
28
+ * lunr.Pipeline
29
+ * Copyright (C) 2020 Oliver Nightingale
30
+ *)
31
+ (*!
32
+ * lunr.Vector
33
+ * Copyright (C) 2020 Oliver Nightingale
34
+ *)
35
+ (*!
36
+ * lunr.stemmer
37
+ * Copyright (C) 2020 Oliver Nightingale
38
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
39
+ *)
40
+ (*!
41
+ * lunr.stopWordFilter
42
+ * Copyright (C) 2020 Oliver Nightingale
43
+ *)
44
+ (*!
45
+ * lunr.trimmer
46
+ * Copyright (C) 2020 Oliver Nightingale
47
+ *)
48
+ (*!
49
+ * lunr.TokenSet
50
+ * Copyright (C) 2020 Oliver Nightingale
51
+ *)
52
+ (*!
53
+ * lunr.Index
54
+ * Copyright (C) 2020 Oliver Nightingale
55
+ *)
56
+ (*!
57
+ * lunr.Builder
58
+ * Copyright (C) 2020 Oliver Nightingale
59
+ *)
60
+ */
@@ -0,0 +1 @@
1
+ window.navigationData = "data:application/octet-stream;base64,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"
@@ -0,0 +1 @@
1
+ window.searchData = "data:application/octet-stream;base64,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";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/exc-app",
3
- "version": "1.5.11",
3
+ "version": "1.5.12-beta",
4
4
  "main": "index.js",
5
5
  "source": "index.ts",
6
6
  "scripts": {
package/src/Global.d.ts CHANGED
@@ -40,6 +40,7 @@ import { SidenavApi } from '../sidenav';
40
40
  import { TopbarApi } from '../topbar';
41
41
  import { UserApi } from '../user';
42
42
  import { UserProfileApi } from '../userprofile';
43
+ import { WebMcpApi } from '../webmcp';
43
44
  export interface CommonModules {
44
45
  readonly internal: InternalApi;
45
46
  readonly metrics: MetricsApi;
@@ -72,6 +73,7 @@ export interface Modules extends CommonModules {
72
73
  readonly topbar: TopbarApi;
73
74
  readonly user: () => UserApi;
74
75
  readonly userProfile: UserProfileApi;
76
+ readonly webmcp: () => WebMcpApi;
75
77
  }
76
78
  export type Writeable<T> = {
77
79
  -readonly [P in keyof T]: T[P];
package/src/Global.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Global.js","sourceRoot":"","sources":["Global.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AA+F5E,0BAMC;AASD,0BAoBC;AA/CD,IAAI,aAAa,GAAG,oBAAoC,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,IAAI,iBAAiC,CAAC;AAA9F,QAAA,gBAAgB,oBAA8E;AAEpG,MAAM,MAAM,GAAG,CAAC,MAAM,MAAgB,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,GAAc,CAAC,oBAAoB,CAAC,CAAC;AAAjH,QAAA,MAAM,UAA2G;AAE9H;;;;;GAKG;AACH,SAAgB,OAAO,CAA0B,UAAa;IAC5D,MAAM,GAAG,GAAG,IAAA,cAAM,GAAE,CAAC;IACrB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,+CAA+C,UAAU,SAAS,aAAuB,IAAI,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,OAAO,CAA0B,OAAU,EAAE,UAA0C;IACrG,MAAM,GAAG,GAAG,EAAgB,CAAC;IAC7B,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACrC,OAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAS,CAAC,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC,CAAQ,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE;gBACtC,GAAG,EAAE,GAAG,EAAE;oBACR,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC;gBACD,GAAG,EAAE,KAAK,CAAC,EAAE;oBACX,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;gBACxC,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kBAAgB,MAAiB,CAAC"}
1
+ {"version":3,"file":"Global.js","sourceRoot":"","sources":["Global.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAiG5E,0BAMC;AASD,0BAoBC;AA/CD,IAAI,aAAa,GAAG,oBAAoC,CAAC;AAElD,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,GAAG,GAAG,IAAI,iBAAiC,CAAC;AAA9F,QAAA,gBAAgB,oBAA8E;AAEpG,MAAM,MAAM,GAAG,CAAC,MAAM,MAAgB,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,GAAc,CAAC,oBAAoB,CAAC,CAAC;AAAjH,QAAA,MAAM,UAA2G;AAE9H;;;;;GAKG;AACH,SAAgB,OAAO,CAA0B,UAAa;IAC5D,MAAM,GAAG,GAAG,IAAA,cAAM,GAAE,CAAC;IACrB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,+CAA+C,UAAU,SAAS,aAAuB,IAAI,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,OAAO,CAA0B,OAAU,EAAE,UAA0C;IACrG,MAAM,GAAG,GAAG,EAAgB,CAAC;IAC7B,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;gBACrC,OAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAS,CAAC,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC,CAAQ,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE;gBACtC,GAAG,EAAE,GAAG,EAAE;oBACR,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC;gBACD,GAAG,EAAE,KAAK,CAAC,EAAE;oBACX,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;gBACxC,CAAC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kBAAgB,MAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ /*************************************************************************
16
+ * Copyright 2026 Adobe
17
+ * All Rights Reserved.
18
+ *
19
+ * NOTICE: Adobe permits you to use, modify, and distribute this file in
20
+ * accordance with the terms of the Adobe license agreement accompanying
21
+ * it. If you have received this file from a source other than Adobe,
22
+ * then your use, modification, or distribution of it requires the prior
23
+ * written permission of Adobe.
24
+ **************************************************************************/
25
+ const Global_1 = require("../src/Global");
26
+ const webmcp_1 = __importDefault(require("../webmcp"));
27
+ describe('webmcp', () => {
28
+ const definition = {
29
+ description: 'Returns the title of the current page.',
30
+ execute: () => __awaiter(void 0, void 0, void 0, function* () { return ({ title: 'Test' }); }),
31
+ inputSchema: {
32
+ properties: {},
33
+ type: 'object'
34
+ },
35
+ name: 'getPageTitle'
36
+ };
37
+ const serializableToolDefinition = {
38
+ description: definition.description,
39
+ inputSchema: definition.inputSchema,
40
+ name: definition.name
41
+ };
42
+ const webmcpMock = {
43
+ executeTool: (_name, _args) => Promise.resolve({}), // eslint-disable-line @typescript-eslint/no-unused-vars
44
+ getTools: () => Promise.resolve([serializableToolDefinition]),
45
+ off: (_event, _handler) => { }, // eslint-disable-line @typescript-eslint/no-unused-vars
46
+ on: (_event, _handler) => { }, // eslint-disable-line @typescript-eslint/no-unused-vars
47
+ registerTool: (_definition) => { }, // eslint-disable-line @typescript-eslint/no-unused-vars
48
+ unregisterTool: (_name, _component) => { } // eslint-disable-line @typescript-eslint/no-unused-vars
49
+ };
50
+ beforeEach(() => {
51
+ jest.clearAllMocks();
52
+ const emr = (0, Global_1.getEMR)();
53
+ emr.webmcp = () => webmcpMock;
54
+ jest.spyOn(emr, 'webmcp');
55
+ });
56
+ it('registerTool() delegates to the implementation', () => {
57
+ const spy = jest.spyOn(webmcpMock, 'registerTool');
58
+ webmcp_1.default.registerTool(definition);
59
+ expect(spy).toHaveBeenCalledTimes(1);
60
+ expect(spy).toHaveBeenCalledWith(definition);
61
+ });
62
+ it('unregisterTool() delegates to the implementation', () => {
63
+ const spy = jest.spyOn(webmcpMock, 'unregisterTool');
64
+ webmcp_1.default.unregisterTool('getPageTitle');
65
+ expect(spy).toHaveBeenCalledTimes(1);
66
+ expect(spy).toHaveBeenCalledWith('getPageTitle', undefined);
67
+ });
68
+ it('unregisterTool() delegates with component', () => {
69
+ const spy = jest.spyOn(webmcpMock, 'unregisterTool');
70
+ webmcp_1.default.unregisterTool('getContext', 'damPanel');
71
+ expect(spy).toHaveBeenCalledTimes(1);
72
+ expect(spy).toHaveBeenCalledWith('getContext', 'damPanel');
73
+ });
74
+ it('executeTool() delegates with name only', () => {
75
+ const spy = jest.spyOn(webmcpMock, 'executeTool');
76
+ webmcp_1.default.executeTool('getPageTitle');
77
+ expect(spy).toHaveBeenCalledTimes(1);
78
+ expect(spy).toHaveBeenCalledWith('getPageTitle', undefined);
79
+ });
80
+ it('executeTool() delegates with args', () => {
81
+ const spy = jest.spyOn(webmcpMock, 'executeTool');
82
+ const args = { foo: 'bar' };
83
+ webmcp_1.default.executeTool('getPageTitle', args);
84
+ expect(spy).toHaveBeenCalledTimes(1);
85
+ expect(spy).toHaveBeenCalledWith('getPageTitle', args);
86
+ });
87
+ it('executeTool() returns the underlying promise', () => __awaiter(void 0, void 0, void 0, function* () {
88
+ jest.spyOn(webmcpMock, 'executeTool').mockResolvedValue({ title: 'Page' });
89
+ const result = yield webmcp_1.default.executeTool('getPageTitle');
90
+ expect(result).toEqual({ title: 'Page' });
91
+ }));
92
+ it('getTools() delegates to the implementation', () => __awaiter(void 0, void 0, void 0, function* () {
93
+ jest.spyOn(webmcpMock, 'getTools').mockResolvedValue([serializableToolDefinition]);
94
+ const tools = yield webmcp_1.default.getTools();
95
+ expect(webmcpMock.getTools).toHaveBeenCalledTimes(1);
96
+ expect(tools).toEqual([serializableToolDefinition]);
97
+ }));
98
+ it('on() delegates to the implementation', () => {
99
+ const spy = jest.spyOn(webmcpMock, 'on');
100
+ const handler = jest.fn();
101
+ webmcp_1.default.on('change:tools', handler);
102
+ expect(spy).toHaveBeenCalledTimes(1);
103
+ expect(spy).toHaveBeenCalledWith('change:tools', handler);
104
+ });
105
+ it('off() delegates to the implementation', () => {
106
+ const spy = jest.spyOn(webmcpMock, 'off');
107
+ const handler = jest.fn();
108
+ webmcp_1.default.off('change:tools', handler);
109
+ expect(spy).toHaveBeenCalledTimes(1);
110
+ expect(spy).toHaveBeenCalledWith('change:tools', handler);
111
+ });
112
+ });
113
+ //# sourceMappingURL=webmcp.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webmcp.test.js","sourceRoot":"","sources":["webmcp.test.ts"],"names":[],"mappings":"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"}
package/version.d.ts CHANGED
@@ -8,5 +8,5 @@
8
8
  * then your use, modification, or distribution of it requires the prior
9
9
  * written permission of Adobe.
10
10
  **************************************************************************/
11
- declare const EXC_APP_VERSION = "1.5.11";
11
+ declare const EXC_APP_VERSION = "1.5.12-beta";
12
12
  export default EXC_APP_VERSION;
package/version.js CHANGED
@@ -10,6 +10,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  * then your use, modification, or distribution of it requires the prior
11
11
  * written permission of Adobe.
12
12
  **************************************************************************/
13
- const EXC_APP_VERSION = '1.5.11';
13
+ const EXC_APP_VERSION = '1.5.12-beta';
14
14
  exports.default = EXC_APP_VERSION;
15
15
  //# sourceMappingURL=version.js.map
package/version.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["version.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;4EAS4E;AAC5E,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["version.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;4EAS4E;AAC5E,MAAM,eAAe,GAAG,aAAa,CAAC;AAEtC,kBAAe,eAAe,CAAC"}
package/webmcp.d.ts ADDED
@@ -0,0 +1,176 @@
1
+ /*************************************************************************
2
+ * Copyright 2026 Adobe
3
+ * All Rights Reserved.
4
+ *
5
+ * NOTICE: Adobe permits you to use, modify, and distribute this file in
6
+ * accordance with the terms of the Adobe license agreement accompanying
7
+ * it. If you have received this file from a source other than Adobe,
8
+ * then your use, modification, or distribution of it requires the prior
9
+ * written permission of Adobe.
10
+ **************************************************************************/
11
+ /** Property definition within a JSON Schema. */
12
+ export interface InputSchemaProperty {
13
+ description?: string;
14
+ enum?: string[];
15
+ items?: InputSchemaProperty;
16
+ properties?: Record<string, InputSchemaProperty>;
17
+ required?: string[];
18
+ type: string;
19
+ }
20
+ /** JSON Schema for a tool's input parameters. */
21
+ export interface InputSchema {
22
+ properties?: Record<string, InputSchemaProperty>;
23
+ required?: string[];
24
+ type: 'object';
25
+ }
26
+ export declare const TOOLS_CHANGE_EVENT = "change:tools";
27
+ /**
28
+ * Describes a tool that AO2's LLM can invoke. The serializable fields are sent
29
+ * as A2A metadata alongside each user message; the LLM uses `description` and
30
+ * `inputSchema` to decide when and how to call the tool.
31
+ *
32
+ * `execute` runs only in the APP iframe and must not cross postMessage.
33
+ */
34
+ export interface ToolDefinition {
35
+ /**
36
+ * Tool name. Unique within `(component, frame)`. When `component` is set,
37
+ * Core composes the LLM-visible identifier as `${component}_${name}`;
38
+ * otherwise the AO2-visible name is just `name`.
39
+ */
40
+ name: string;
41
+ /** Component registering the tool. Used for additional context and tool name deduplication. */
42
+ component?: string;
43
+ /** Human-readable description. The LLM uses this to decide when to call the tool. */
44
+ description: string;
45
+ /** Invoked locally when the tool runs; stripped before postMessage to Core. */
46
+ execute: (parameters: Record<string, any>) => Promise<any>;
47
+ /** JSON Schema describing the tool's input parameters. */
48
+ inputSchema: InputSchema;
49
+ }
50
+ /**
51
+ * Serializable subset of {@link ToolDefinition}: everything except `execute`,
52
+ * which is stripped before the definition is sent across postMessage.
53
+ */
54
+ export type SerializableToolDefinition = Omit<ToolDefinition, 'execute'>;
55
+ /**
56
+ * Alias for {@link ToolDefinition.execute}. Handlers stay in the APP iframe
57
+ * and are never sent across postMessage.
58
+ */
59
+ export type ToolHandler = ToolDefinition['execute'];
60
+ /**
61
+ * Handler for the `change:tools` event. Receives the full, deduped list
62
+ * of tools currently registered across every frame.
63
+ */
64
+ export type ToolsChangedHandler = (tools: SerializableToolDefinition[]) => void;
65
+ /**
66
+ * Solution-facing API for registering browser-side tools
67
+ * that AO2 can invoke via the WebMCP protocol.
68
+ */
69
+ export interface WebMcpApi {
70
+ /**
71
+ * Execute a registered tool by name.
72
+ *
73
+ * If the tool is registered in the current frame, its handler is
74
+ * called directly with no postMessage overhead. Otherwise the call
75
+ * is routed through Core to whichever frame owns the tool.
76
+ *
77
+ * ***Example:***
78
+ *
79
+ * ```typescript
80
+ * const result = await webmcp.executeTool('lookupUI', { type: 'button' });
81
+ * ```
82
+ *
83
+ * @param name - The tool name to execute
84
+ * @param parameters - Parameters to pass to the tool handler
85
+ * @returns The tool handler's return value
86
+ */
87
+ executeTool: (name: string, parameters?: Record<string, any>) => Promise<any>;
88
+ /**
89
+ * Get all tools registered across all frames (fetched from Core's registry).
90
+ *
91
+ * Returns a promise that resolves with tool definitions in flat format
92
+ * (`{ name, description, inputSchema }`), ready to forward to AO2 via `tools/list`.
93
+ *
94
+ * ***Example:***
95
+ *
96
+ * ```typescript
97
+ * const tools = await webmcp.getTools();
98
+ * // [{ name, description, inputSchema }, ...]
99
+ * console.log(tools);
100
+ * ```
101
+ *
102
+ * @returns A promise resolving to an array of serializable tool definitions
103
+ */
104
+ getTools: () => Promise<SerializableToolDefinition[]>;
105
+ /**
106
+ * Unsubscribe a previously registered event handler.
107
+ * Pass the same handler reference that was passed to `on`.
108
+ *
109
+ * @param event - Event name to remove the handler from
110
+ * @param handler - The handler reference to remove
111
+ */
112
+ off: (event: typeof TOOLS_CHANGE_EVENT, handler: ToolsChangedHandler) => void;
113
+ /**
114
+ * Subscribe to WebMCP events.
115
+ *
116
+ * Currently supported events:
117
+ * - `change:tools`: fires whenever the tool registry changes (a tool is
118
+ * registered or unregistered in any frame, or a frame unloads). The
119
+ * handler receives the full, deduped list of tools currently registered
120
+ * across every frame.
121
+ *
122
+ * The event fires for every change, including those triggered by the
123
+ * current frame's own `registerTool` / `unregisterTool` calls.
124
+ *
125
+ * ***Example:***
126
+ *
127
+ * ```typescript
128
+ * const onChange = (tools) => console.log('tools now:', tools);
129
+ * webmcp.on('change:tools', onChange);
130
+ * // ...later
131
+ * webmcp.off('change:tools', onChange);
132
+ * ```
133
+ *
134
+ * @param event - Event name to listen for
135
+ * @param handler - Callback invoked when the event fires
136
+ */
137
+ on: (event: typeof TOOLS_CHANGE_EVENT, handler: ToolsChangedHandler) => void;
138
+ /**
139
+ * Register a tool: serializable fields are sent to Core for A2A metadata;
140
+ * `execute` is kept local and stripped from the postMessage payload.
141
+ *
142
+ * ***Example:***
143
+ *
144
+ * ```typescript
145
+ * webmcp.registerTool({
146
+ * name: 'getPageInfo',
147
+ * description: 'Returns information about the current page',
148
+ * inputSchema: { type: 'object', properties: {} },
149
+ * execute: async () => ({ title: document.title, url: window.location.href })
150
+ * });
151
+ * ```
152
+ *
153
+ * @param definition - Tool definition including `execute`
154
+ */
155
+ registerTool: (definition: ToolDefinition) => void;
156
+ /**
157
+ * Remove a previously registered tool.
158
+ *
159
+ * Removes the handler locally and notifies Core to remove
160
+ * the definition from the A2A metadata. Pass the same `component`
161
+ * value that was used during registration (if any).
162
+ *
163
+ * ***Example:***
164
+ *
165
+ * ```typescript
166
+ * webmcp.unregisterTool('getPageInfo');
167
+ * webmcp.unregisterTool('getContext', 'damPanel');
168
+ * ```
169
+ *
170
+ * @param name - The tool name to unregister
171
+ * @param component - Optional component the tool was registered under
172
+ */
173
+ unregisterTool: (name: string, component?: string) => void;
174
+ }
175
+ declare const webmcp: WebMcpApi;
176
+ export default webmcp;
package/webmcp.js ADDED
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /*************************************************************************
3
+ * Copyright 2026 Adobe
4
+ * All Rights Reserved.
5
+ *
6
+ * NOTICE: Adobe permits you to use, modify, and distribute this file in
7
+ * accordance with the terms of the Adobe license agreement accompanying
8
+ * it. If you have received this file from a source other than Adobe,
9
+ * then your use, modification, or distribution of it requires the prior
10
+ * written permission of Adobe.
11
+ **************************************************************************/
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.TOOLS_CHANGE_EVENT = void 0;
14
+ /**
15
+ * Solution-facing API for WebMCP tool registration.
16
+ *
17
+ * Solutions import this module to register browser-side tools that AO2
18
+ * can invoke. The tool handler functions execute locally in the APP iframe;
19
+ * only the serializable definition crosses postMessage to Core.
20
+ *
21
+ * ***Import:***
22
+ *
23
+ * ```typescript
24
+ * import webmcp from '@adobe/exc-app/webmcp';
25
+ * ```
26
+ *
27
+ * ***Default export:***
28
+ *
29
+ * [webmcpApi](../interfaces/webmcp.webmcpapi.md#interface-webmcpapi)
30
+ *
31
+ * ***Usage:***
32
+ *
33
+ * ```typescript
34
+ * // Register a custom tool
35
+ * webmcp.registerTool({
36
+ * name: 'getSelectedAssets',
37
+ * description: 'Returns the currently selected assets in the DAM',
38
+ * inputSchema: {
39
+ * type: 'object',
40
+ * properties: {
41
+ * includeMetadata: {
42
+ * type: 'boolean',
43
+ * description: 'Whether to include full metadata'
44
+ * }
45
+ * }
46
+ * },
47
+ * execute: async (parameters) => {
48
+ * const assets = await myApp.getSelectedAssets(parameters.includeMetadata);
49
+ * return { assets };
50
+ * }
51
+ * });
52
+ *
53
+ * // Unregister a tool
54
+ * webmcp.unregisterTool('getSelectedAssets');
55
+ * ```
56
+ * @packageDocumentation
57
+ * @module webmcp
58
+ */
59
+ const Global_1 = require("./src/Global");
60
+ exports.TOOLS_CHANGE_EVENT = 'change:tools';
61
+ const webmcp = {
62
+ executeTool: (name, parameters) => {
63
+ return (0, Global_1.getImpl)('webmcp')().executeTool(name, parameters);
64
+ },
65
+ getTools: () => {
66
+ return (0, Global_1.getImpl)('webmcp')().getTools();
67
+ },
68
+ off: (event, handler) => {
69
+ return (0, Global_1.getImpl)('webmcp')().off(event, handler);
70
+ },
71
+ on: (event, handler) => {
72
+ return (0, Global_1.getImpl)('webmcp')().on(event, handler);
73
+ },
74
+ registerTool: (definition) => {
75
+ return (0, Global_1.getImpl)('webmcp')().registerTool(definition);
76
+ },
77
+ unregisterTool: (name, component) => {
78
+ return (0, Global_1.getImpl)('webmcp')().unregisterTool(name, component);
79
+ }
80
+ };
81
+ exports.default = webmcp;
82
+ //# sourceMappingURL=webmcp.js.map
package/webmcp.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webmcp.js","sourceRoot":"","sources":["webmcp.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,yCAAqC;AAmBxB,QAAA,kBAAkB,GAAG,cAAc,CAAC;AAgKjD,MAAM,MAAM,GAAG;IACb,WAAW,EAAE,CAAC,IAAY,EAAE,UAAgC,EAAE,EAAE;QAC9D,OAAO,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IACD,QAAQ,EAAE,GAAG,EAAE;QACb,OAAO,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAA2C,CAAC;IACjF,CAAC;IACD,GAAG,EAAE,CAAC,KAAgC,EAAE,OAA4B,EAAE,EAAE;QACtE,OAAO,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,EAAE,EAAE,CAAC,KAAgC,EAAE,OAA4B,EAAE,EAAE;QACrE,OAAO,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,YAAY,EAAE,CAAC,UAA0B,EAAE,EAAE;QAC3C,OAAO,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IACD,cAAc,EAAE,CAAC,IAAY,EAAE,SAAkB,EAAE,EAAE;QACnD,OAAO,IAAA,gBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;CACW,CAAC;AAEf,kBAAe,MAAM,CAAC"}