@microsoft/teams-js 2.35.0 → 2.37.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 (45) hide show
  1. package/README.md +4 -4
  2. package/dist/esm/packages/teams-js/dts/internal/childCommunication.d.ts +1 -1
  3. package/dist/esm/packages/teams-js/dts/internal/communication.d.ts +1 -1
  4. package/dist/esm/packages/teams-js/dts/internal/globalVars.d.ts +1 -0
  5. package/dist/esm/packages/teams-js/dts/internal/{appIdValidation.d.ts → idValidation.d.ts} +12 -1
  6. package/dist/esm/packages/teams-js/dts/internal/messageObjects.d.ts +1 -0
  7. package/dist/esm/packages/teams-js/dts/internal/nestedAppAuthUtils.d.ts +3 -1
  8. package/dist/esm/packages/teams-js/dts/internal/telemetry.d.ts +3 -0
  9. package/dist/esm/packages/teams-js/dts/private/copilot/eligibility.d.ts +6 -4
  10. package/dist/esm/packages/teams-js/dts/private/externalAppCardActionsForDA.d.ts +75 -0
  11. package/dist/esm/packages/teams-js/dts/private/externalAppErrorHandling.d.ts +19 -0
  12. package/dist/esm/packages/teams-js/dts/private/index.d.ts +2 -0
  13. package/dist/esm/packages/teams-js/dts/private/nestedAppAuth/nestedAppAuthBridge.d.ts +32 -0
  14. package/dist/esm/packages/teams-js/dts/public/appId.d.ts +6 -11
  15. package/dist/esm/packages/teams-js/dts/public/featureFlags.d.ts +44 -0
  16. package/dist/esm/packages/teams-js/dts/public/index.d.ts +2 -0
  17. package/dist/esm/packages/teams-js/dts/public/nestedAppAuth.d.ts +56 -5
  18. package/dist/esm/packages/teams-js/dts/public/runtime.d.ts +3 -0
  19. package/dist/esm/packages/teams-js/dts/public/uuidObject.d.ts +15 -1
  20. package/dist/esm/packages/teams-js/dts/public/validatedSafeString.d.ts +25 -0
  21. package/dist/esm/packages/teams-js/src/index.js +1 -1
  22. package/dist/esm/packages/teams-js/src/internal/childCommunication.js +1 -1
  23. package/dist/esm/packages/teams-js/src/internal/communication.js +1 -1
  24. package/dist/esm/packages/teams-js/src/internal/globalVars.js +1 -1
  25. package/dist/esm/packages/teams-js/src/internal/idValidation.js +1 -0
  26. package/dist/esm/packages/teams-js/src/internal/nestedAppAuthUtils.js +1 -1
  27. package/dist/esm/packages/teams-js/src/private/constants.js +1 -0
  28. package/dist/esm/packages/teams-js/src/private/copilot/eligibility.js +1 -1
  29. package/dist/esm/packages/teams-js/src/private/externalAppAuthenticationForCEA.js +1 -1
  30. package/dist/esm/packages/teams-js/src/private/externalAppCardActionsForDA.js +1 -0
  31. package/dist/esm/packages/teams-js/src/private/externalAppErrorHandling.js +1 -0
  32. package/dist/esm/packages/teams-js/src/private/nestedAppAuth/nestedAppAuthBridge.js +1 -0
  33. package/dist/esm/packages/teams-js/src/public/appId.js +1 -1
  34. package/dist/esm/packages/teams-js/src/public/featureFlags.js +1 -0
  35. package/dist/esm/packages/teams-js/src/public/nestedAppAuth.js +1 -1
  36. package/dist/esm/packages/teams-js/src/public/runtime.js +1 -1
  37. package/dist/esm/packages/teams-js/src/public/uuidObject.js +1 -1
  38. package/dist/esm/packages/teams-js/src/public/validatedSafeString.js +1 -0
  39. package/dist/esm/packages/teams-js/src/public/version.js +1 -1
  40. package/dist/umd/MicrosoftTeams.js +777 -54
  41. package/dist/umd/MicrosoftTeams.js.map +1 -1
  42. package/dist/umd/MicrosoftTeams.min.js +1 -1
  43. package/dist/umd/MicrosoftTeams.min.js.map +1 -1
  44. package/package.json +1 -1
  45. package/dist/esm/packages/teams-js/src/internal/appIdValidation.js +0 -1
@@ -1 +1 @@
1
- import{__awaiter as e}from"../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{isSdkError as n,ErrorCode as t}from"../public/interfaces.js";import{latestRuntimeApiVersion as o}from"../public/runtime.js";import{isSerializable as r}from"../public/serializable.interface.js";import{UUID as i}from"../public/uuidObject.js";import{version as s}from"../public/version.js";import{uninitializeChildCommunication as a,shouldProcessChildMessage as c,handleIncomingMessageFromChild as d}from"./childCommunication.js";import{getMessageIdsAsLogString as u,flushMessageQueue as l}from"./communicationUtils.js";import{GlobalVars as g}from"./globalVars.js";import{callHandler as p}from"./handlers.js";import f from"./hostToAppTelemetry.js";import{serializeMessageRequest as m,deserializeMessageResponse as w}from"./messageObjects.js";import{tryPolyfillWithNestedAppAuthBridge as h}from"./nestedAppAuthUtils.js";import{getLogger as v,isFollowingApiVersionTagFormat as b}from"./telemetry.js";import{getCurrentTimestamp as W,ssrSafeWindow as M}from"./utils.js";import{validateOrigin as y}from"./validOrigins.js";const k=v("communication");class I{}class T{}function E(n,t){if(T.messageListener=n=>function(n){return e(this,void 0,void 0,(function*(){if(!n||!n.data||"object"!=typeof n.data)return void q("Unrecognized message format received by app, message being ignored. Message: %o",n);const e=n.source||n.originalEvent&&n.originalEvent.source,t=n.origin||n.originalEvent&&n.originalEvent.origin;return B(e,t).then((o=>{o?(!function(e,n){g.isFramelessWindow||I.parentWindow&&!I.parentWindow.closed&&e!==I.parentWindow||(I.parentWindow=e,I.parentOrigin=n);I.parentWindow&&I.parentWindow.closed&&(I.parentWindow=null,I.parentOrigin=null);l(I.parentWindow,I.parentOrigin,T.parentMessageQueue,"parent")}(e,t),e!==I.parentWindow?c(e,t)&&d(n,e,V,((e,n)=>T.callbacks.set(e,n))):Y(n)):q("Message being ignored by app because it is either coming from the current window or a different window with an invalid origin, message: %o, source: %o, origin: %o",n,e,t)}))}))}(n),I.currentWindow=I.currentWindow||M(),I.parentWindow=I.currentWindow.parent!==I.currentWindow.self?I.currentWindow.parent:I.currentWindow.opener,I.topWindow=I.currentWindow.top,(I.parentWindow||n)&&I.currentWindow.addEventListener("message",T.messageListener,!1),!I.parentWindow){const e=I.currentWindow;if(!e.nativeInterface)return Promise.reject(new Error("Initialization Failed. No Parent window found."));g.isFramelessWindow=!0,e.onNativeMessage=Y}try{return I.parentOrigin="*",S(t,"initialize",[s,o,n]).then((([e,n,t,o])=>(h(o,I.currentWindow,{onMessage:H,sendPostMessage:L}),{context:e,clientType:n,runtimeConfig:t,clientSupportedSDKVersion:o})))}finally{I.parentOrigin=null}}function j(){I.currentWindow&&I.currentWindow.removeEventListener("message",T.messageListener,!1),I.currentWindow=null,I.parentWindow=null,I.parentOrigin=null,T.parentMessageQueue=[],T.nextMessageId=0,T.callbacks.clear(),T.promiseCallbacks.clear(),T.portCallbacks.clear(),T.legacyMessageIdsToUuidMap={},f.clearMessages(),a()}function O(e,n,...t){return S(e,n,t).then((([e])=>e))}function R(e,n,...t){return S(e,n,t).then((([e,n])=>{if(!e)throw new Error(n)}))}function C(e,n,t,...o){return S(e,n,o).then((([e,n])=>{if(!e)throw new Error(n||t)}))}function P(e,n,...t){return S(e,n,t).then((([e,n])=>{if(e)throw e;return n}))}function S(e,n,t=void 0){if(!b(e))throw Error(`apiVersionTag: ${e} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`);return new Promise((o=>{const r=V(e,n,t);var i;o((i=r.uuid,new Promise((e=>{T.promiseCallbacks.set(i,e)}))))}))}function x(e){return e.map((e=>r(e)?e.serialize():e))}function N(o,r,i,s,a){var c;return e(this,void 0,void 0,(function*(){const e=x(r),[d]=yield S(s,o,e);if(a&&a(d)||!a&&n(d))throw new Error(`${d.errorCode}, message: ${null!==(c=d.message)&&void 0!==c?c:"None"}`);if(i.validate(d))return i.deserialize(d);throw new Error(`${t.INTERNAL_ERROR}, message: Invalid response from host - ${JSON.stringify(d)}`)}))}function A(o,r,i,s){var a;return e(this,void 0,void 0,(function*(){const e=x(r),[c]=yield S(i,o,e);if(s&&s(c)||!s&&n(c))throw new Error(`${c.errorCode}, message: ${null!==(a=c.message)&&void 0!==a?a:"None"}`);if(void 0!==c)throw new Error(`${t.INTERNAL_ERROR}, message: Invalid response from host`)}))}function U(e,n,t=void 0){if(!b(e))throw Error(`apiVersionTag: ${e} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`);const o=V(e,n,t);return r=o.uuid,new Promise(((e,n)=>{T.portCallbacks.set(r,((t,o)=>{t instanceof MessagePort?e(t):n(o&&o.length>0?o[0]:new Error("Host responded without port or error details."))}))}));var r}function $(e,n,t,o){let r;if(t instanceof Function?o=t:t instanceof Array&&(r=t),!b(e))throw Error(`apiVersionTag: ${e} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`);const i=V(e,n,r);o&&T.callbacks.set(i.uuid,o)}T.parentMessageQueue=[],T.topMessageQueue=[],T.nextMessageId=0,T.callbacks=new Map,T.promiseCallbacks=new Map,T.portCallbacks=new Map,T.legacyMessageIdsToUuidMap={};const z=k.extend("sendNestedAuthRequestToTopWindow");function L(e){const n=z,t=I.topWindow,o=function(e){const n=T.nextMessageId++,t=new i;return T.legacyMessageIdsToUuidMap[n]=t,{id:n,uuid:t,func:"nestedAppAuth.execute",timestamp:Date.now(),monotonicTimestamp:W(),args:[],data:e}}(e);return n("Message %s information: %o",u(o),{actionName:o.func}),F(t,o)}const _=k.extend("sendRequestToTargetWindowHelper");function F(e,n){const t=_,o=function(e){return e===I.topWindow&&Z()?"top":e===I.parentWindow?"parent":null}(e),r=m(n);if(g.isFramelessWindow)I.currentWindow&&I.currentWindow.nativeInterface&&(t("Sending message %s to %s via framelessPostMessage interface",u(r),o),I.currentWindow.nativeInterface.framelessPostMessage(JSON.stringify(r)));else{const i=function(e){return e===I.topWindow&&Z()?I.topOrigin:e===I.parentWindow?I.parentOrigin:null}(e);e&&i?(t("Sending message %s to %s via postMessage",u(r),o),e.postMessage(r,i)):(t("Adding message %s to %s message queue",u(r),o),ee(e).push(n))}return n}const Q=k.extend("sendMessageToParentHelper");function V(e,n,t,o){const r=Q,s=I.parentWindow,a=function(e,n,t,o){const r=T.nextMessageId++,s=new i;return T.legacyMessageIdsToUuidMap[r]=s,{id:r,uuid:s,func:n,timestamp:Date.now(),monotonicTimestamp:W(),args:t||[],apiVersionTag:e,isProxiedFromChild:null!=o&&o}}(e,n,t,o);return f.storeCallbackInformation(a.uuid,{name:n,calledAt:a.timestamp}),r("Message %s information: %o",u(a),{actionName:n,args:t}),F(s,a)}const q=k.extend("processIncomingMessage");const D=k.extend("processAuthBridgeMessage");function H(e,n){var t,o;const r=D;if(!e||!e.data||"object"!=typeof e.data)return void r("Unrecognized message format received by app, message being ignored. Message: %o",e);const{args:i}=e.data,[,s]=null!=i?i:[],a=(()=>{try{return JSON.parse(s)}catch(e){return null}})();if(!a||"object"!=typeof a||"NestedAppAuthResponse"!==a.messageType)return void r("Unrecognized data format received by app, message being ignored. Message: %o",e);const c=e.source||(null===(t=null==e?void 0:e.originalEvent)||void 0===t?void 0:t.source),d=e.origin||(null===(o=null==e?void 0:e.originalEvent)||void 0===o?void 0:o.origin);c?B(c,d)?(I.topWindow&&!I.topWindow.closed&&c!==I.topWindow||(I.topWindow=c,I.topOrigin=d),I.topWindow&&I.topWindow.closed&&(I.topWindow=null,I.topOrigin=null),l(I.topWindow,I.topOrigin,T.topMessageQueue,"top"),n(s)):r("Message being ignored by app because it is either coming from the current window or a different window with an invalid origin"):r("Message being ignored by app because it is coming for a target that is null")}const J=k.extend("shouldProcessIncomingMessage");function B(n,t){return e(this,void 0,void 0,(function*(){if(I.currentWindow&&n===I.currentWindow)return J("Should not process message because it is coming from the current window"),!1;if(I.currentWindow&&I.currentWindow.location&&t&&t===I.currentWindow.location.origin)return!0;{let e;try{e=new URL(t)}catch(e){return J("Message has an invalid origin of %s",t),!1}const n=yield y(e);return n||J("Message has an invalid origin of %s",t),n}}))}const K=k.extend("handleIncomingMessageFromParent");function G(e,n){if(n){const t=[...e].find((([e,t])=>e.toString()===n.toString()));if(t)return t[0]}}function X(e,n){const t=G(n,e.uuid);t&&n.delete(t),e.uuid?T.legacyMessageIdsToUuidMap={}:delete T.legacyMessageIdsToUuidMap[e.id]}function Y(e){const n=K,t=W();if("id"in e.data&&"number"==typeof e.data.id){const o=e.data,r=w(o),i=function(e){const n=K;if(!e.uuid)return T.legacyMessageIdsToUuidMap[e.id];{const n=e.uuid,t=G(T.callbacks,n);if(t)return t;const o=G(T.promiseCallbacks,n);if(o)return o;const r=G(T.portCallbacks,n);if(r)return r}n("Received message %s that failed to produce a callbackId",u(e))}(r);if(i){const o=T.callbacks.get(i);n("Received a response from parent for message %s",i.toString()),f.handlePerformanceMetrics(i,r,n,t),o&&(n("Invoking the registered callback for message %s with arguments %o",i.toString(),r.args),o.apply(null,[...r.args,r.isPartialResponse]),function(e){return!0===e.data.isPartialResponse}(e)||(n("Removing registered callback for message %s",i.toString()),X(r,T.callbacks)));const s=T.promiseCallbacks.get(i);s&&(n("Invoking the registered promise callback for message %s with arguments %o",i.toString(),r.args),s(r.args),n("Removing registered promise callback for message %s",i.toString()),X(r,T.promiseCallbacks));const a=T.portCallbacks.get(i);if(a){let t;n("Invoking the registered port callback for message %s with arguments %o",i.toString(),r.args),e.ports&&e.ports[0]instanceof MessagePort&&(t=e.ports[0]),a(t,r.args),n("Removing registered port callback for message %s",i.toString()),X(r,T.portCallbacks)}r.uuid&&(T.legacyMessageIdsToUuidMap={})}}else if("func"in e.data&&"string"==typeof e.data.func){const o=e.data;f.handleOneWayPerformanceMetrics(o,n,t),n('Received a message from parent %s, action: "%s"',u(o),o.func),p(o.func,o.args)}else n("Received an unknown message: %O",e)}function Z(){return I.topWindow!==I.parentWindow}function ee(e){return e===I.topWindow&&Z()?T.topMessageQueue:e===I.parentWindow?T.parentMessageQueue:[]}function ne(e,n){let t;t=I.currentWindow.setInterval((()=>{0===ee(e).length&&(clearInterval(t),n())}),100)}export{I as Communication,A as callFunctionInHost,N as callFunctionInHostAndHandleResponse,E as initializeCommunication,U as requestPortFromParentWithVersion,P as sendAndHandleSdkError,R as sendAndHandleStatusAndReason,C as sendAndHandleStatusAndReasonWithDefaultError,O as sendAndUnwrap,$ as sendMessageToParent,S as sendMessageToParentAsync,L as sendNestedAuthRequestToTopWindow,j as uninitializeCommunication,ne as waitForMessageQueue};
1
+ import{__awaiter as e}from"../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{isSdkError as n,ErrorCode as t}from"../public/interfaces.js";import{latestRuntimeApiVersion as o}from"../public/runtime.js";import{isSerializable as r}from"../public/serializable.interface.js";import{UUID as i}from"../public/uuidObject.js";import{version as s}from"../public/version.js";import{uninitializeChildCommunication as a,shouldProcessChildMessage as c,handleIncomingMessageFromChild as d}from"./childCommunication.js";import{getMessageIdsAsLogString as u,flushMessageQueue as l}from"./communicationUtils.js";import{GlobalVars as g}from"./globalVars.js";import{callHandler as p}from"./handlers.js";import f from"./hostToAppTelemetry.js";import{serializeMessageRequest as m,deserializeMessageResponse as w}from"./messageObjects.js";import{tryPolyfillWithNestedAppAuthBridge as h}from"./nestedAppAuthUtils.js";import{getLogger as v,isFollowingApiVersionTagFormat as b}from"./telemetry.js";import{getCurrentTimestamp as W,ssrSafeWindow as M}from"./utils.js";import{validateOrigin as y}from"./validOrigins.js";const k=v("communication");class I{}class T{}function E(n,t){if(T.messageListener=n=>function(n){return e(this,void 0,void 0,(function*(){if(!n||!n.data||"object"!=typeof n.data)return void J("Unrecognized message format received by app, message being ignored. Message: %o",n);const e=n.source||n.originalEvent&&n.originalEvent.source,t=n.origin||n.originalEvent&&n.originalEvent.origin;return B(e,t).then((o=>{o?(!function(e,n){g.isFramelessWindow||I.parentWindow&&!I.parentWindow.closed&&e!==I.parentWindow||(I.parentWindow=e,I.parentOrigin=n);I.parentWindow&&I.parentWindow.closed&&(I.parentWindow=null,I.parentOrigin=null);l(I.parentWindow,I.parentOrigin,T.parentMessageQueue,"parent")}(e,t),e!==I.parentWindow?c(e,t)&&d(n,e,V,((e,n)=>T.callbacks.set(e,n))):Y(n)):J("Message being ignored by app because it is either coming from the current window or a different window with an invalid origin, message: %o, source: %o, origin: %o",n,e,t)}))}))}(n),I.currentWindow=I.currentWindow||M(),I.parentWindow=I.currentWindow.parent!==I.currentWindow.self?I.currentWindow.parent:I.currentWindow.opener,I.topWindow=I.currentWindow.top,(I.parentWindow||n)&&I.currentWindow.addEventListener("message",T.messageListener,!1),!I.parentWindow){const e=I.currentWindow;if(!e.nativeInterface)return Promise.reject(new Error("Initialization Failed. No Parent window found."));g.isFramelessWindow=!0,e.onNativeMessage=Y}try{return I.parentOrigin="*",S(t,"initialize",[s,o,n]).then((([e,n,t,o])=>(h(o,I.currentWindow,{onMessage:D,sendPostMessage:L}),{context:e,clientType:n,runtimeConfig:t,clientSupportedSDKVersion:o})))}finally{I.parentOrigin=null}}function j(){I.currentWindow&&I.currentWindow.removeEventListener("message",T.messageListener,!1),I.currentWindow=null,I.parentWindow=null,I.parentOrigin=null,T.parentMessageQueue=[],T.nextMessageId=0,T.callbacks.clear(),T.promiseCallbacks.clear(),T.portCallbacks.clear(),T.legacyMessageIdsToUuidMap={},f.clearMessages(),a()}function O(e,n,...t){return S(e,n,t).then((([e])=>e))}function R(e,n,...t){return S(e,n,t).then((([e,n])=>{if(!e)throw new Error(n)}))}function C(e,n,t,...o){return S(e,n,o).then((([e,n])=>{if(!e)throw new Error(n||t)}))}function P(e,n,...t){return S(e,n,t).then((([e,n])=>{if(e)throw e;return n}))}function S(e,n,t=void 0){if(!b(e))throw Error(`apiVersionTag: ${e} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`);return new Promise((o=>{const r=V(e,n,t);var i;o((i=r.uuid,new Promise((e=>{T.promiseCallbacks.set(i,e)}))))}))}function x(e){return e.map((e=>r(e)?e.serialize():e))}function N(o,r,i,s,a){var c;return e(this,void 0,void 0,(function*(){const e=x(r),[d]=yield S(s,o,e);if(a&&a(d)||!a&&n(d))throw new Error(`${d.errorCode}, message: ${null!==(c=d.message)&&void 0!==c?c:"None"}`);if(i.validate(d))return i.deserialize(d);throw new Error(`${t.INTERNAL_ERROR}, message: Invalid response from host - ${JSON.stringify(d)}`)}))}function A(o,r,i,s){var a;return e(this,void 0,void 0,(function*(){const e=x(r),[c]=yield S(i,o,e);if(s&&s(c)||!s&&n(c))throw new Error(`${c.errorCode}, message: ${null!==(a=c.message)&&void 0!==a?a:"None"}`);if(void 0!==c)throw new Error(`${t.INTERNAL_ERROR}, message: Invalid response from host`)}))}function U(e,n,t=void 0){if(!b(e))throw Error(`apiVersionTag: ${e} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`);const o=V(e,n,t);return r=o.uuid,new Promise(((e,n)=>{T.portCallbacks.set(r,((t,o)=>{t instanceof MessagePort?e(t):n(o&&o.length>0?o[0]:new Error("Host responded without port or error details."))}))}));var r}function $(e,n,t,o){let r;if(t instanceof Function?o=t:t instanceof Array&&(r=t),!b(e))throw Error(`apiVersionTag: ${e} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`);const i=V(e,n,r);o&&T.callbacks.set(i.uuid,o)}T.parentMessageQueue=[],T.topMessageQueue=[],T.nextMessageId=0,T.callbacks=new Map,T.promiseCallbacks=new Map,T.portCallbacks=new Map,T.legacyMessageIdsToUuidMap={};const z=k.extend("sendNestedAuthRequestToTopWindow");function L(e,n){const t=z,o=I.topWindow,r=function(e,n){const t=T.nextMessageId++,o=new i;return T.legacyMessageIdsToUuidMap[t]=o,{id:t,uuid:o,func:"nestedAppAuth.execute",timestamp:Date.now(),monotonicTimestamp:W(),apiVersionTag:n,args:[],data:e}}(e,n);return t("Message %s information: %o",u(r),{actionName:r.func}),F(o,r)}const _=k.extend("sendRequestToTargetWindowHelper");function F(e,n){const t=_,o=function(e){return e===I.topWindow&&Z()?"top":e===I.parentWindow?"parent":null}(e),r=m(n);if(g.isFramelessWindow)I.currentWindow&&I.currentWindow.nativeInterface&&(t("Sending message %s to %s via framelessPostMessage interface",u(r),o),I.currentWindow.nativeInterface.framelessPostMessage(JSON.stringify(r)));else{const i=function(e){return e===I.topWindow&&Z()?I.topOrigin:e===I.parentWindow?I.parentOrigin:null}(e);e&&i?(t("Sending message %s to %s via postMessage",u(r),o),e.postMessage(r,i)):(t("Adding message %s to %s message queue",u(r),o),ee(e).push(n))}return n}const Q=k.extend("sendMessageToParentHelper");function V(e,n,t,o,r){const s=Q,a=I.parentWindow,c=function(e,n,t,o,r){const s=T.nextMessageId++,a=new i;T.legacyMessageIdsToUuidMap[s]=a;const c=!0===o?r:g.teamsJsInstanceId;return{id:s,uuid:a,func:n,timestamp:Date.now(),monotonicTimestamp:W(),args:t||[],apiVersionTag:e,isProxiedFromChild:null!=o&&o,teamsJsInstanceId:c}}(e,n,t,o,r);return f.storeCallbackInformation(c.uuid,{name:n,calledAt:c.timestamp}),s("Message %s information: %o",u(c),{actionName:n,args:t}),F(a,c)}const J=k.extend("processIncomingMessage");const q=k.extend("processAuthBridgeMessage");function D(e,n){var t,o;const r=q;if(!e||!e.data||"object"!=typeof e.data)return void r("Unrecognized message format received by app, message being ignored. Message: %o",e);const{args:i}=e.data,[,s]=null!=i?i:[],a=(()=>{try{return JSON.parse(s)}catch(e){return null}})();if(!a||"object"!=typeof a||"NestedAppAuthResponse"!==a.messageType)return void r("Unrecognized data format received by app, message being ignored. Message: %o",e);const c=e.source||(null===(t=null==e?void 0:e.originalEvent)||void 0===t?void 0:t.source),d=e.origin||(null===(o=null==e?void 0:e.originalEvent)||void 0===o?void 0:o.origin);c?B(c,d)?(I.topWindow&&!I.topWindow.closed&&c!==I.topWindow||(I.topWindow=c,I.topOrigin=d),I.topWindow&&I.topWindow.closed&&(I.topWindow=null,I.topOrigin=null),l(I.topWindow,I.topOrigin,T.topMessageQueue,"top"),n(s)):r("Message being ignored by app because it is either coming from the current window or a different window with an invalid origin"):r("Message being ignored by app because it is coming for a target that is null")}const H=k.extend("shouldProcessIncomingMessage");function B(n,t){return e(this,void 0,void 0,(function*(){if(I.currentWindow&&n===I.currentWindow)return H("Should not process message because it is coming from the current window"),!1;if(I.currentWindow&&I.currentWindow.location&&t&&t===I.currentWindow.location.origin)return!0;{let e;try{e=new URL(t)}catch(e){return H("Message has an invalid origin of %s",t),!1}const n=yield y(e);return n||H("Message has an invalid origin of %s",t),n}}))}const K=k.extend("handleIncomingMessageFromParent");function G(e,n){if(n){const t=[...e].find((([e,t])=>e.toString()===n.toString()));if(t)return t[0]}}function X(e,n){const t=G(n,e.uuid);t&&n.delete(t),e.uuid?T.legacyMessageIdsToUuidMap={}:delete T.legacyMessageIdsToUuidMap[e.id]}function Y(e){const n=K,t=W();if("id"in e.data&&"number"==typeof e.data.id){const o=e.data,r=w(o),i=function(e){const n=K;if(!e.uuid)return T.legacyMessageIdsToUuidMap[e.id];{const n=e.uuid,t=G(T.callbacks,n);if(t)return t;const o=G(T.promiseCallbacks,n);if(o)return o;const r=G(T.portCallbacks,n);if(r)return r}n("Received message %s that failed to produce a callbackId",u(e))}(r);if(i){const o=T.callbacks.get(i);n("Received a response from parent for message %s",i.toString()),f.handlePerformanceMetrics(i,r,n,t),o&&(n("Invoking the registered callback for message %s with arguments %o",i.toString(),r.args),o.apply(null,[...r.args,r.isPartialResponse]),function(e){return!0===e.data.isPartialResponse}(e)||(n("Removing registered callback for message %s",i.toString()),X(r,T.callbacks)));const s=T.promiseCallbacks.get(i);s&&(n("Invoking the registered promise callback for message %s with arguments %o",i.toString(),r.args),s(r.args),n("Removing registered promise callback for message %s",i.toString()),X(r,T.promiseCallbacks));const a=T.portCallbacks.get(i);if(a){let t;n("Invoking the registered port callback for message %s with arguments %o",i.toString(),r.args),e.ports&&e.ports[0]instanceof MessagePort&&(t=e.ports[0]),a(t,r.args),n("Removing registered port callback for message %s",i.toString()),X(r,T.portCallbacks)}r.uuid&&(T.legacyMessageIdsToUuidMap={})}}else if("func"in e.data&&"string"==typeof e.data.func){const o=e.data;f.handleOneWayPerformanceMetrics(o,n,t),n('Received a message from parent %s, action: "%s"',u(o),o.func),p(o.func,o.args)}else n("Received an unknown message: %O",e)}function Z(){return I.topWindow!==I.parentWindow}function ee(e){return e===I.topWindow&&Z()?T.topMessageQueue:e===I.parentWindow?T.parentMessageQueue:[]}function ne(e,n){let t;t=I.currentWindow.setInterval((()=>{0===ee(e).length&&(clearInterval(t),n())}),100)}export{I as Communication,A as callFunctionInHost,N as callFunctionInHostAndHandleResponse,E as initializeCommunication,U as requestPortFromParentWithVersion,P as sendAndHandleSdkError,R as sendAndHandleStatusAndReason,C as sendAndHandleStatusAndReasonWithDefaultError,O as sendAndUnwrap,$ as sendMessageToParent,S as sendMessageToParentAsync,L as sendNestedAuthRequestToTopWindow,j as uninitializeCommunication,ne as waitForMessageQueue};
@@ -1 +1 @@
1
- class i{}i.initializeCalled=!1,i.initializeCompleted=!1,i.additionalValidOrigins=[],i.initializePromise=void 0,i.isFramelessWindow=!1,i.frameContext=void 0,i.hostClientType=void 0,i.printCapabilityEnabled=!1;export{i as GlobalVars};
1
+ import{UUID as i}from"../public/uuidObject.js";class e{}e.initializeCalled=!1,e.initializeCompleted=!1,e.additionalValidOrigins=[],e.initializePromise=void 0,e.isFramelessWindow=!1,e.frameContext=void 0,e.hostClientType=void 0,e.printCapabilityEnabled=!1,e.teamsJsInstanceId=(new i).toString();export{e as GlobalVars};
@@ -0,0 +1 @@
1
+ import{AppId as i}from"../public/appId.js";import{hasScriptTags as t}from"./utils.js";function n(i){if(!e(i))throw new Error(`Potential app id (${i}) is invalid; its length ${i.length} is not within the length limits (${r}-${a}).`)}function o(i){if(t(i))throw new Error(`Potential app id (${i}) is invalid; it contains script tags.`);if(s(i))throw new Error(`Potential app id (${i}) is invalid; it contains non-printable characters.`)}const r=4,a=256;function e(i){return i.length<a&&i.length>r}function s(i){return[...i].some((i=>{const t=i.charCodeAt(0);return t<32||t>126}))}function l(t){if(!(t instanceof i))throw new Error(`Potential app id (${t}) is invalid; it is not an instance of AppId class.`)}export{s as doesStringContainNonPrintableCharacters,e as isStringWithinAppIdLengthLimits,a as maximumValidAppIdLength,r as minimumValidAppIdLength,l as validateAppIdInstance,o as validateSafeContent,n as validateStringLength};
@@ -1 +1 @@
1
- import{GlobalVars as e}from"./globalVars.js";import{getLogger as t}from"./telemetry.js";const n=t("nestedAppAuthUtils"),s=n.extend("tryPolyfillWithNestedAppAuthBridge");function r(t,n,r){var i;const d=s;if(e.isFramelessWindow)return void d("Cannot polyfill nestedAppAuthBridge as current window is frameless");if(!n)return void d("Cannot polyfill nestedAppAuthBridge as current window does not exist");const p=(()=>{try{return JSON.parse(t)}catch(e){return null}})();if(!p||!(null===(i=p.supports)||void 0===i?void 0:i.nestedAppAuth))return void d("Cannot polyfill nestedAppAuthBridge as current hub does not support nested app auth");const u=n;if(u.nestedAppAuthBridge)return void d("nestedAppAuthBridge already exists on current window, skipping polyfill");const a=function(e,t){const n=o;if(!e)return n("nestedAppAuthBridge cannot be created as current window does not exist"),null;const{onMessage:s,sendPostMessage:r}=t,i=e=>t=>s(t,e);return{addEventListener:(t,s)=>{"message"===t?e.addEventListener(t,i(s)):n(`Event ${t} is not supported by nestedAppAuthBridge`)},postMessage:e=>{const t=(()=>{try{return JSON.parse(e)}catch(e){return null}})();t&&"object"==typeof t&&"NestedAppAuthRequest"===t.messageType?r(e):n("Unrecognized data format received by app, message being ignored. Message: %o",e)},removeEventListener:(t,n)=>{e.removeEventListener(t,i(n))}}}(u,r);a&&(u.nestedAppAuthBridge=a)}const o=n.extend("createNestedAppAuthBridge");export{r as tryPolyfillWithNestedAppAuthBridge};
1
+ import{GlobalVars as e}from"./globalVars.js";import{getLogger as t,getApiVersionTag as n}from"./telemetry.js";const s=t("nestedAppAuthUtils"),r=s.extend("tryPolyfillWithNestedAppAuthBridge"),o="v2";function i(t,s,i){var p;const u=r;if(e.isFramelessWindow)return void u("Cannot polyfill nestedAppAuthBridge as current window is frameless");if(!s)return void u("Cannot polyfill nestedAppAuthBridge as current window does not exist");if(s.parent!==s.top)return void u("Default NAA bridge injection not supported in nested iframe. Use standalone NAA bridge instead.");const a=(()=>{try{return JSON.parse(t)}catch(e){return null}})();if(!a||!(null===(p=a.supports)||void 0===p?void 0:p.nestedAppAuth))return void u("Cannot polyfill nestedAppAuthBridge as current hub does not support nested app auth");const l=s;if(l.nestedAppAuthBridge)return void u("nestedAppAuthBridge already exists on current window, skipping polyfill");const A=function(e,t){const s=d;if(!e)return s("nestedAppAuthBridge cannot be created as current window does not exist"),null;const{onMessage:r,sendPostMessage:i}=t,p=e=>t=>r(t,e);return{addEventListener:(t,n)=>{"message"===t?e.addEventListener(t,p(n)):s(`Event ${t} is not supported by nestedAppAuthBridge`)},postMessage:e=>{const t=(()=>{try{return JSON.parse(e)}catch(e){return null}})();if(!t||"object"!=typeof t||"NestedAppAuthRequest"!==t.messageType)return void s("Unrecognized data format received by app, message being ignored. Message: %o",e);const r=n(o,"nestedAppAuth.execute");i(e,r)},removeEventListener:(t,n)=>{e.removeEventListener(t,p(n))}}}(l,i);A&&(l.nestedAppAuthBridge=A)}const d=s.extend("createNestedAppAuthBridge");export{o as nestedAppAuthTelemetryVersionNumber,i as tryPolyfillWithNestedAppAuthBridge};
@@ -0,0 +1 @@
1
+ var R;!function(R){R.INTERNAL_ERROR="INTERNAL_ERROR"}(R||(R={}));export{R as ExternalAppErrorCode};
@@ -1 +1 @@
1
- import{__awaiter as i}from"../../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{sendAndUnwrap as o}from"../../internal/communication.js";import{ensureInitialized as t}from"../../internal/internalAPIs.js";import{getLogger as r,getApiVersionTag as e}from"../../internal/telemetry.js";import{errorNotSupportedOnPlatform as n}from"../../public/constants.js";import{isSdkError as l}from"../../public/interfaces.js";import{runtime as s}from"../../public/runtime.js";const a=r("copilot");function p(){var i,o;return t(s)&&(!!(null===(i=s.hostVersionsInfo)||void 0===i?void 0:i.appEligibilityInformation)||!!(null===(o=s.supports.copilot)||void 0===o?void 0:o.eligibility))}function u(){var r,u;return i(this,void 0,void 0,(function*(){if(t(s),!p())throw new Error(`Error code: ${n.errorCode}, message: Not supported on platform`);if(null===(r=s.hostVersionsInfo)||void 0===r?void 0:r.appEligibilityInformation)return a("Eligibility information is already available on runtime."),s.hostVersionsInfo.appEligibilityInformation;a("Eligibility information is not available on runtime. Requesting from host.");const i=yield o(e("v2","copilot.eligibility.getEligibilityInfo"),"copilot.eligibility.getEligibilityInfo");if(l(i))throw new Error(`Error code: ${i.errorCode}, message: ${null!==(u=i.message)&&void 0!==u?u:"Failed to get eligibility information from the host."}`);if(!function(i){if(void 0===i.ageGroup||void 0===i.cohort||void 0===i.userClassification||void 0===i.isCopilotEligible||void 0===i.isCopilotEnabledRegion||void 0===i.isOptedOutByAdmin||i.featureSet&&(void 0===i.featureSet.serverFeatures||void 0===i.featureSet.uxFeatures))return!1;return!0}(i))throw new Error("Error deserializing eligibility information");return i}))}export{u as getEligibilityInfo,p as isSupported};
1
+ import{__awaiter as i}from"../../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{sendAndUnwrap as o}from"../../internal/communication.js";import{ensureInitialized as t}from"../../internal/internalAPIs.js";import{getLogger as r,getApiVersionTag as e}from"../../internal/telemetry.js";import{errorNotSupportedOnPlatform as n}from"../../public/constants.js";import{isSdkError as l}from"../../public/interfaces.js";import{runtime as s}from"../../public/runtime.js";const a=r("copilot");function p(){var i,o;return t(s)&&(!!(null===(i=s.hostVersionsInfo)||void 0===i?void 0:i.appEligibilityInformation)||!!(null===(o=s.supports.copilot)||void 0===o?void 0:o.eligibility))}function u(r){var u,m;return i(this,void 0,void 0,(function*(){if(t(s),!p())throw new Error(`Error code: ${n.errorCode}, message: Not supported on platform`);if((null===(u=s.hostVersionsInfo)||void 0===u?void 0:u.appEligibilityInformation)&&!r)return a("Eligibility information is already available on runtime."),s.hostVersionsInfo.appEligibilityInformation;a("Eligibility information is not available on runtime. Requesting from host.");const i=yield o(e("v2","copilot.eligibility.getEligibilityInfo"),"copilot.eligibility.getEligibilityInfo",r);if(l(i))throw new Error(`Error code: ${i.errorCode}, message: ${null!==(m=i.message)&&void 0!==m?m:"Failed to get eligibility information from the host."}`);if(!function(i){if(void 0===i.ageGroup||void 0===i.cohort||void 0===i.userClassification||void 0===i.isCopilotEligible||void 0===i.isCopilotEnabledRegion||void 0===i.isOptedOutByAdmin||i.featureSet&&(void 0===i.featureSet.serverFeatures||void 0===i.featureSet.uxFeatures))return!1;return!0}(i))throw new Error("Error deserializing eligibility information");return i}))}export{u as getEligibilityInfo,p as isSupported};
@@ -1 +1 @@
1
- import{__awaiter as t}from"../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{validateAppIdInstance as n}from"../internal/appIdValidation.js";import{callFunctionInHost as e,callFunctionInHostAndHandleResponse as i}from"../internal/communication.js";import{ensureInitialized as o}from"../internal/internalAPIs.js";import{getApiVersionTag as r}from"../internal/telemetry.js";import{validateId as a}from"../internal/utils.js";import{FrameContexts as u,errorNotSupportedOnPlatform as c}from"../public/constants.js";import{runtime as p}from"../public/runtime.js";import{validateActionExecuteInvokeRequest as h,ActionExecuteResponseHandler as s,SerializableActionExecuteInvokeRequest as l,isInvokeError as A}from"./externalAppAuthentication.js";const m="v2";function d(n,i,a){return t(this,void 0,void 0,(function*(){if(o(p,u.content),!v())throw c;return w(n,i),e("externalAppAuthenticationForCEA.authenticateWithSSO",[n,i,a.authId,a.connectionName,a.claims,a.silent],r(m,"externalAppAuthenticationForCEA.authenticateWithSSO"),A)}))}function f(n,i,a){return t(this,void 0,void 0,(function*(){if(o(p,u.content),!v())throw c;return w(n,i),e("externalAppAuthenticationForCEA.authenticateWithOauth",[n,i,a.url.href,a.width,a.height,a.isExternal],r(m,"externalAppAuthenticationForCEA.authenticateWithOauth"),A)}))}function x(n,e,a,d){return t(this,void 0,void 0,(function*(){if(o(p,u.content),!v())throw c;return w(n,e),h(d),i("externalAppAuthenticationForCEA.authenticateAndResendRequest",[n,e,new l(d),a.url.href,a.width,a.height,a.isExternal],new s,r(m,"externalAppAuthenticationForCEA.authenticateAndResendRequest"),A)}))}function E(n,e,a,d){return t(this,void 0,void 0,(function*(){if(o(p,u.content),!v())throw c;return w(n,e),h(d),i("externalAppAuthenticationForCEA.authenticateWithSSOAndResendRequest",[n,e,new l(d),a.authId,a.connectionName,a.claims,a.silent],new s,r(m,"externalAppAuthenticationForCEA.authenticateWithSSOAndResendRequest"),A)}))}function v(){return!(!o(p)||!p.supports.externalAppAuthenticationForCEA)}function w(t,e){a(e,new Error("conversation id is not valid.")),n(t)}export{x as authenticateAndResendRequest,f as authenticateWithOauth,d as authenticateWithSSO,E as authenticateWithSSOAndResendRequest,v as isSupported,w as validateInput};
1
+ import{__awaiter as t}from"../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{callFunctionInHost as n,callFunctionInHostAndHandleResponse as e}from"../internal/communication.js";import{validateAppIdInstance as i}from"../internal/idValidation.js";import{ensureInitialized as o}from"../internal/internalAPIs.js";import{getApiVersionTag as r}from"../internal/telemetry.js";import{validateId as a}from"../internal/utils.js";import{FrameContexts as u,errorNotSupportedOnPlatform as c}from"../public/constants.js";import{runtime as h}from"../public/runtime.js";import{validateActionExecuteInvokeRequest as s,ActionExecuteResponseHandler as p,SerializableActionExecuteInvokeRequest as l,isInvokeError as A}from"./externalAppAuthentication.js";const m="v2";function d(e,i,a){return t(this,void 0,void 0,(function*(){if(o(h,u.content),!v())throw c;return w(e,i),n("externalAppAuthenticationForCEA.authenticateWithSSO",[e,i,a.authId,a.connectionName,a.claims,a.silent],r(m,"externalAppAuthenticationForCEA.authenticateWithSSO"),A)}))}function f(e,i,a){return t(this,void 0,void 0,(function*(){if(o(h,u.content),!v())throw c;return w(e,i),n("externalAppAuthenticationForCEA.authenticateWithOauth",[e,i,a.url.href,a.width,a.height,a.isExternal],r(m,"externalAppAuthenticationForCEA.authenticateWithOauth"),A)}))}function x(n,i,a,d){return t(this,void 0,void 0,(function*(){if(o(h,u.content),!v())throw c;return w(n,i),s(d),e("externalAppAuthenticationForCEA.authenticateAndResendRequest",[n,i,new l(d),a.url.href,a.width,a.height,a.isExternal],new p,r(m,"externalAppAuthenticationForCEA.authenticateAndResendRequest"),A)}))}function E(n,i,a,d){return t(this,void 0,void 0,(function*(){if(o(h,u.content),!v())throw c;return w(n,i),s(d),e("externalAppAuthenticationForCEA.authenticateWithSSOAndResendRequest",[n,i,new l(d),a.authId,a.connectionName,a.claims,a.silent],new p,r(m,"externalAppAuthenticationForCEA.authenticateWithSSOAndResendRequest"),A)}))}function v(){return!(!o(h)||!h.supports.externalAppAuthenticationForCEA)}function w(t,n){a(n,new Error("conversation id is not valid.")),i(t)}export{x as authenticateAndResendRequest,f as authenticateWithOauth,d as authenticateWithSSO,E as authenticateWithSSOAndResendRequest,v as isSupported,w as validateInput};
@@ -0,0 +1 @@
1
+ import{__awaiter as r}from"../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{callFunctionInHost as t}from"../internal/communication.js";import{validateAppIdInstance as i}from"../internal/idValidation.js";import{ensureInitialized as o}from"../internal/internalAPIs.js";import{getApiVersionTag as n}from"../internal/telemetry.js";import{FrameContexts as e,errorNotSupportedOnPlatform as s}from"../public/constants.js";import{runtime as p}from"../public/runtime.js";import{validateUuidInstance as l}from"../public/uuidObject.js";import{isExternalAppError as c}from"./externalAppErrorHandling.js";function m(m,f,d){return r(this,void 0,void 0,(function*(){if(o(p,e.content),!u())throw s;return function(r,t){i(r),l(t)}(m,d),t("externalAppCardActionsForDA.processActionOpenUrlDialog",[m,new a(f),d],n("v2","externalAppCardActionsForDA.processActionOpenUrlDialog"),c)}))}function u(){return!(!o(p)||!p.supports.externalAppCardActionsForDA)}class a{constructor(r){this.info=r}serialize(){const{url:r,title:t,size:i}=this.info;return{url:r.href,title:t,size:i}}}export{a as SerializableActionOpenUrlDialogInfo,u as isSupported,m as processActionOpenUrlDialog};
@@ -0,0 +1 @@
1
+ import{ExternalAppErrorCode as e}from"./constants.js";function t(t){if("object"!=typeof t||null===t)return!1;const o=t;return Object.values(e).includes(o.errorCode)&&(void 0===o.message||"string"==typeof o.message)}export{t as isExternalAppError};
@@ -0,0 +1 @@
1
+ import e from"../../../../../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-browser/v4.js";const t="1.0.0",o={onMessage:function(e,t){if(!e||!e.data||"object"!=typeof e.data||null===e.data)return void a("Invalid message format, ignoring. Message: %o",e);if(!function(e,t){if(e&&e!==window.top)return a("Should not process message because it is not coming from the top window"),!1;if(t===n)try{return"https:"===new URL(t).protocol}catch(e){return d("Invalid message origin URL:",e),!1}return!1}(e.source,e.origin))return void a("Message source/origin not allowed, ignoring.");const{args:o}=e.data,[,r]=null!=o?o:[],i=(()=>{try{return JSON.parse(r)}catch(e){return d("Failed to parse response message:",e),null}})();if(!i||"NestedAppAuthResponse"!==i.messageType)return void a("Invalid response format, ignoring. Message: %o",e);t(r)}};let n=null,r=!1;function i(t,i,p=!1){if(r=p,!t)throw new Error("Cannot polyfill nestedAppAuthBridge as the current window does not exist");if(!i)throw new Error("Top origin is required to initialize the Nested App Auth Bridge");try{const e=new URL(i);if("https:"!==e.protocol)throw new Error(`Invalid top origin: ${i}. Only HTTPS origins are allowed.`);n=e.origin}catch(e){throw new Error(`Failed to initialize bridge: invalid top origin: ${i}`)}const u=t;if(u.nestedAppAuthBridge)return void a("Nested App Auth Bridge is already present");const g=function(t){const r=new WeakMap,{onMessage:i}=o,p=e=>t=>i(t,e);return{addEventListener:(e,o)=>{if("message"===e){const n=p(o);r.set(o,n),t.addEventListener(e,n)}else a(`Event ${e} is not supported by nestedAppAuthBridge`)},postMessage:o=>{if(!t.top)throw new Error("window.top is not available for posting messages");try{const r=JSON.parse(o);if("object"==typeof r&&"NestedAppAuthRequest"===r.messageType){const r=function(t){const o=Date.now();return{id:s(),uuid:e(),func:"nestedAppAuth.execute",timestamp:o,apiVersionTag:"v2_nestedAppAuth.execute",monotonicTimestamp:o,args:[],data:t}}(o);if(t===t.top||!n)return void d("Not in an embedded iframe; skipping postMessage.");t.top.postMessage(r,n)}}catch(e){return void d("Failed to parse message:",e,"Original message:",o)}},removeEventListener:(e,o)=>{const n=r.get(o);n&&(t.removeEventListener(e,n),r.delete(o))}}}(u);g&&(u.nestedAppAuthBridge=g)}function s(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(2,11)}function a(...e){r&&console.log(...e)}function d(...e){r&&console.error(...e)}export{i as initialize,t as version};
@@ -1 +1 @@
1
- import{validateStringAsAppId as t}from"../internal/appIdValidation.js";class r{constructor(r){this.appIdAsString=r,t(r)}serialize(){return this.toString()}toString(){return this.appIdAsString}}export{r as AppId};
1
+ import{validateStringLength as t}from"../internal/idValidation.js";import{ValidatedSafeString as r}from"./validatedSafeString.js";class i extends r{constructor(r){super(r),t(r)}toJSON(){return{appIdAsString:this.toString()}}}export{i as AppId};
@@ -0,0 +1 @@
1
+ const n={childProxyingCommunication:!1};function i(){n.childProxyingCommunication=!0}function o(){return n.childProxyingCommunication}let t={disableEnforceOriginMatchForChildResponses:!1};function c(){return t}function r(n){t=n}function e(n){return r(Object.assign(Object.assign({},t),n)),c()}export{i as activateChildProxyingCommunication,c as getCurrentFeatureFlagsState,o as isChildProxyingEnabled,e as overwriteFeatureFlagsState,r as setFeatureFlagsState};
@@ -1 +1 @@
1
- import{GlobalVars as t}from"../internal/globalVars.js";import{ensureInitialized as n}from"../internal/internalAPIs.js";import{HostClientType as o}from"./constants.js";import{runtime as e}from"./runtime.js";function i(){var i;return null!==(i=n(e)&&(e.isNAAChannelRecommended||!(!n(e)||t.hostClientType!==o.android&&t.hostClientType!==o.ios&&t.hostClientType!==o.ipados&&t.hostClientType!==o.visionOS||!e.isLegacyTeams||!e.supports.nestedAppAuth)))&&void 0!==i&&i}export{i as isNAAChannelRecommended};
1
+ import{__awaiter as n}from"../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{Communication as r,callFunctionInHostAndHandleResponse as t}from"../internal/communication.js";import{GlobalVars as i}from"../internal/globalVars.js";import{ensureInitialized as e}from"../internal/internalAPIs.js";import{getApiVersionTag as o}from"../internal/telemetry.js";import{HostClientType as s,errorNotSupportedOnPlatform as a}from"./constants.js";import{runtime as p}from"./runtime.js";const u="v2",l={validate:n=>Array.isArray(n)||"object"==typeof n,deserialize:n=>n};var d;function c(){var n;return null!==(n=e(p)&&(p.isNAAChannelRecommended||!(!e(p)||i.hostClientType!==s.android&&i.hostClientType!==s.ios&&i.hostClientType!==s.ipados&&i.hostClientType!==s.visionOS||!p.isLegacyTeams||!p.supports.nestedAppAuth)))&&void 0!==n&&n}function m(){return e(p),r.parentOrigin}function h(){var n;return null!==(n=e(p)&&p.canParentManageNAATrustedOrigins)&&void 0!==n&&n}function f(){var n;return null!==(n=e(p)&&p.isDeeplyNestedAuthSupported)&&void 0!==n&&n}function A(r){return n(this,void 0,void 0,(function*(){if(!h())throw a;const n=r.map(g);return y(d.ADD,n)}))}function v(r){return n(this,void 0,void 0,(function*(){if(!h())throw a;const n=r.map(g);return y(d.DELETE,n)}))}function y(r,i){return n(this,void 0,void 0,(function*(){if(window.parent!==window.top)throw new Error("This API is only available in the top-level parent.");if(!Array.isArray(i)||0===i.length)throw new Error(`The '${i}' parameter is required and must be a non-empty array.`);const n=[new w(r,i)];return t("nestedAppAuth.manageNAATrustedOrigins",n,l,o(u,"nestedAppAuth.manageNAATrustedOrigins"))}))}function g(n){try{return new URL(n).origin.toLowerCase()}catch(r){throw new Error(`Invalid origin provided: ${n}`)}}!function(n){n.ADD="ADD",n.DELETE="DELETE"}(d||(d={}));class w{constructor(n,r){this.action=n,this.appOrigins=r}serialize(){return{action:this.action,appOrigins:this.appOrigins}}}export{A as addNAATrustedOrigins,h as canParentManageNAATrustedOrigins,v as deleteNAATrustedOrigins,m as getParentOrigin,f as isDeeplyNestedAuthSupported,c as isNAAChannelRecommended};
@@ -1 +1 @@
1
- import{__rest as o}from"../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{errorRuntimeNotInitialized as e,errorRuntimeNotSupported as s}from"../internal/constants.js";import{GlobalVars as i}from"../internal/globalVars.js";import{getLogger as t}from"../internal/telemetry.js";import{compareSDKVersions as n,deepFreeze as a}from"../internal/utils.js";import{HostClientType as r,teamsMinAdaptiveCardVersion as p}from"./constants.js";const l=t("runtime"),d=4;function u(o){return o.apiVersion===d}function c(o){if(u(o))return!0;throw-1===o.apiVersion?new Error(e):new Error(s)}let g={apiVersion:-1,supports:{}};const m={apiVersion:4,isNAAChannelRecommended:!1,hostVersionsInfo:p,isLegacyTeams:!0,supports:{appInstallDialog:{},appEntity:{},call:{},chat:{},conversations:{},dialog:{card:{bot:{}},url:{bot:{},parentCommunication:{}},update:{}},interactive:{},logs:{},meetingRoom:{},menus:{},monetization:{},notifications:{},pages:{config:{},backStack:{},fullTrust:{}},remoteCamera:{},teams:{fullTrust:{}},teamsCore:{},video:{sharedFrame:{}}}},b=[r.desktop,r.web,r.rigel,r.surfaceHub,r.teamsRoomsWindows,r.teamsRoomsAndroid,r.teamsPhones,r.teamsDisplays],y=[r.android,r.ios,r.ipados,r.visionOS],f=[...b,...y];function h(o){let e=o;if(e.apiVersion<d&&v.forEach((o=>{e.apiVersion===o.versionToUpgradeFrom&&(e=o.upgradeToNextVersion(e))})),u(e))return e;throw new Error("Received a runtime that could not be upgraded to the latest version")}const v=[{versionToUpgradeFrom:1,upgradeToNextVersion:o=>{var e;return{apiVersion:2,hostVersionsInfo:void 0,isLegacyTeams:o.isLegacyTeams,supports:Object.assign(Object.assign({},o.supports),{dialog:o.supports.dialog?{card:void 0,url:o.supports.dialog,update:null===(e=o.supports.dialog)||void 0===e?void 0:e.update}:void 0})}}},{versionToUpgradeFrom:2,upgradeToNextVersion:e=>{const s=e.supports,i=o(s,["appNotification"]);return Object.assign(Object.assign({},e),{apiVersion:3,supports:i})}},{versionToUpgradeFrom:3,upgradeToNextVersion:o=>{var e,s,i,t,n;return{apiVersion:4,hostVersionsInfo:o.hostVersionsInfo,isNAAChannelRecommended:o.isNAAChannelRecommended,isLegacyTeams:o.isLegacyTeams,supports:Object.assign(Object.assign({},o.supports),{dialog:o.supports.dialog?{card:null===(e=o.supports.dialog)||void 0===e?void 0:e.card,url:{bot:null===(i=null===(s=o.supports.dialog)||void 0===s?void 0:s.url)||void 0===i?void 0:i.bot,parentCommunication:(null===(t=o.supports.dialog)||void 0===t?void 0:t.url)?{}:void 0},update:null===(n=o.supports.dialog)||void 0===n?void 0:n.update}:void 0})}}}],T={"1.0.0":[{capability:{pages:{appButton:{},tabs:{}},stageView:{}},hostClientTypes:b}],"1.9.0":[{capability:{location:{}},hostClientTypes:f}],"2.0.0":[{capability:{people:{}},hostClientTypes:f},{capability:{sharing:{}},hostClientTypes:[r.desktop,r.web]}],"2.0.1":[{capability:{teams:{fullTrust:{joinedTeams:{}}}},hostClientTypes:[r.android,r.desktop,r.ios,r.teamsRoomsAndroid,r.teamsPhones,r.teamsDisplays,r.web]},{capability:{webStorage:{}},hostClientTypes:[r.desktop]}],"2.0.5":[{capability:{webStorage:{}},hostClientTypes:[r.android,r.ios]}],"2.0.8":[{capability:{sharing:{}},hostClientTypes:[r.android,r.ios]}],"2.1.1":[{capability:{nestedAppAuth:{}},hostClientTypes:[r.android,r.ios,r.ipados,r.visionOS]}]},V=l.extend("generateBackCompatRuntimeConfig");function C(o,e){const s=Object.assign({},o);for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&("object"!=typeof e[i]||Array.isArray(e[i])?i in o||(s[i]=e[i]):s[i]=C(o[i]||{},e[i]));return s}function j(o,e,s){V("generating back compat runtime config for %s",o);let t=Object.assign({},e.supports);V("Supported capabilities in config before updating based on highestSupportedVersion: %o",t),Object.keys(s).forEach((e=>{n(o,e)>=0&&s[e].forEach((o=>{void 0!==i.hostClientType&&o.hostClientTypes.includes(i.hostClientType)&&(t=C(t,o.capability))}))}));const a={apiVersion:d,hostVersionsInfo:p,isLegacyTeams:!0,supports:t};return V("Runtime config after updating based on highestSupportedVersion: %o",a),a}const w=l.extend("applyRuntimeConfig");function O(o){"string"==typeof o.apiVersion&&(w("Trying to apply runtime with string apiVersion, processing as v1: %o",o),o=Object.assign(Object.assign({},o),{apiVersion:1})),w("Fast-forwarding runtime %o",o);const e=h(o);w("Applying runtime %o",e),g=a(e)}export{O as applyRuntimeConfig,h as fastForwardRuntime,j as generateVersionBasedTeamsRuntimeConfig,c as isRuntimeInitialized,d as latestRuntimeApiVersion,T as mapTeamsVersionToSupportedCapabilities,g as runtime,v as upgradeChain,f as v1HostClientTypes,y as v1MobileHostClientTypes,m as versionAndPlatformAgnosticTeamsRuntimeConfig};
1
+ import{__rest as o}from"../../../../node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.24.4_tslib@2.6.3_typescript@4.9.5/node_modules/tslib/tslib.es6.js";import{errorRuntimeNotInitialized as e,errorRuntimeNotSupported as s}from"../internal/constants.js";import{GlobalVars as i}from"../internal/globalVars.js";import{getLogger as t}from"../internal/telemetry.js";import{compareSDKVersions as n,deepFreeze as a}from"../internal/utils.js";import{HostClientType as r,teamsMinAdaptiveCardVersion as p}from"./constants.js";const l=t("runtime"),d=4;function u(o){return o.apiVersion===d}function c(o){if(u(o))return!0;throw-1===o.apiVersion?new Error(e):new Error(s)}let g={apiVersion:-1,supports:{}};const m={apiVersion:4,isNAAChannelRecommended:!1,isDeeplyNestedAuthSupported:!1,hostVersionsInfo:p,isLegacyTeams:!0,supports:{appInstallDialog:{},appEntity:{},call:{},chat:{},conversations:{},dialog:{card:{bot:{}},url:{bot:{},parentCommunication:{}},update:{}},interactive:{},logs:{},meetingRoom:{},menus:{},monetization:{},notifications:{},pages:{config:{},backStack:{},fullTrust:{}},remoteCamera:{},teams:{fullTrust:{}},teamsCore:{},video:{sharedFrame:{}}}},y=[r.desktop,r.web,r.rigel,r.surfaceHub,r.teamsRoomsWindows,r.teamsRoomsAndroid,r.teamsPhones,r.teamsDisplays],b=[r.android,r.ios,r.ipados,r.visionOS],f=[...y,...b];function h(o){let e=o;if(e.apiVersion<d&&v.forEach((o=>{e.apiVersion===o.versionToUpgradeFrom&&(e=o.upgradeToNextVersion(e))})),u(e))return e;throw new Error("Received a runtime that could not be upgraded to the latest version")}const v=[{versionToUpgradeFrom:1,upgradeToNextVersion:o=>{var e;return{apiVersion:2,hostVersionsInfo:void 0,isLegacyTeams:o.isLegacyTeams,supports:Object.assign(Object.assign({},o.supports),{dialog:o.supports.dialog?{card:void 0,url:o.supports.dialog,update:null===(e=o.supports.dialog)||void 0===e?void 0:e.update}:void 0})}}},{versionToUpgradeFrom:2,upgradeToNextVersion:e=>{const s=e.supports,i=o(s,["appNotification"]);return Object.assign(Object.assign({},e),{apiVersion:3,supports:i})}},{versionToUpgradeFrom:3,upgradeToNextVersion:o=>{var e,s,i,t,n;return{apiVersion:4,hostVersionsInfo:o.hostVersionsInfo,isNAAChannelRecommended:o.isNAAChannelRecommended,isLegacyTeams:o.isLegacyTeams,supports:Object.assign(Object.assign({},o.supports),{dialog:o.supports.dialog?{card:null===(e=o.supports.dialog)||void 0===e?void 0:e.card,url:{bot:null===(i=null===(s=o.supports.dialog)||void 0===s?void 0:s.url)||void 0===i?void 0:i.bot,parentCommunication:(null===(t=o.supports.dialog)||void 0===t?void 0:t.url)?{}:void 0},update:null===(n=o.supports.dialog)||void 0===n?void 0:n.update}:void 0})}}}],T={"1.0.0":[{capability:{pages:{appButton:{},tabs:{}},stageView:{}},hostClientTypes:y}],"1.9.0":[{capability:{location:{}},hostClientTypes:f}],"2.0.0":[{capability:{people:{}},hostClientTypes:f},{capability:{sharing:{}},hostClientTypes:[r.desktop,r.web]}],"2.0.1":[{capability:{teams:{fullTrust:{joinedTeams:{}}}},hostClientTypes:[r.android,r.desktop,r.ios,r.teamsRoomsAndroid,r.teamsPhones,r.teamsDisplays,r.web]},{capability:{webStorage:{}},hostClientTypes:[r.desktop]}],"2.0.5":[{capability:{webStorage:{}},hostClientTypes:[r.android,r.ios]}],"2.0.8":[{capability:{sharing:{}},hostClientTypes:[r.android,r.ios]}],"2.1.1":[{capability:{nestedAppAuth:{}},hostClientTypes:[r.android,r.ios,r.ipados,r.visionOS]}]},V=l.extend("generateBackCompatRuntimeConfig");function C(o,e){const s=Object.assign({},o);for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&("object"!=typeof e[i]||Array.isArray(e[i])?i in o||(s[i]=e[i]):s[i]=C(o[i]||{},e[i]));return s}function j(o,e,s){V("generating back compat runtime config for %s",o);let t=Object.assign({},e.supports);V("Supported capabilities in config before updating based on highestSupportedVersion: %o",t),Object.keys(s).forEach((e=>{n(o,e)>=0&&s[e].forEach((o=>{void 0!==i.hostClientType&&o.hostClientTypes.includes(i.hostClientType)&&(t=C(t,o.capability))}))}));const a={apiVersion:d,hostVersionsInfo:p,isLegacyTeams:!0,supports:t};return V("Runtime config after updating based on highestSupportedVersion: %o",a),a}const w=l.extend("applyRuntimeConfig");function O(o){"string"==typeof o.apiVersion&&(w("Trying to apply runtime with string apiVersion, processing as v1: %o",o),o=Object.assign(Object.assign({},o),{apiVersion:1})),w("Fast-forwarding runtime %o",o);const e=h(o);w("Applying runtime %o",e),g=a(e)}export{O as applyRuntimeConfig,h as fastForwardRuntime,j as generateVersionBasedTeamsRuntimeConfig,c as isRuntimeInitialized,d as latestRuntimeApiVersion,T as mapTeamsVersionToSupportedCapabilities,g as runtime,v as upgradeChain,f as v1HostClientTypes,b as v1MobileHostClientTypes,m as versionAndPlatformAgnosticTeamsRuntimeConfig};
@@ -1 +1 @@
1
- import{validateUuid as t,generateGUID as r}from"../internal/utils.js";class i{constructor(i=r()){this.uuid=i,t(i)}toString(){return this.uuid}}export{i as UUID};
1
+ import{validateUuid as i,generateGUID as t}from"../internal/utils.js";class n{constructor(n=t()){this.uuid=n,i(n)}toString(){return this.uuid}serialize(){return this.toString()}}function r(i){if(!(i instanceof n))throw new Error(`Potential id (${JSON.stringify(i)}) is invalid; it is not an instance of UUID class.`)}export{n as UUID,r as validateUuidInstance};
@@ -0,0 +1 @@
1
+ import{validateSafeContent as t}from"../internal/idValidation.js";class i{constructor(i){this.idAsString=i,t(i)}serialize(){return this.toString()}toString(){return this.idAsString}}export{i as ValidatedSafeString};
@@ -1 +1 @@
1
- const o="2.35.0";export{o as version};
1
+ const o="2.37.0";export{o as version};