@openclaw/msteams 2026.5.27 → 2026.5.28-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.js +2 -2
- package/dist/{channel-c7nnGfMx.js → channel-C4ifQ0RF.js} +5 -5
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-Boha-kk1.js → channel.runtime-Cl_OVKBH.js} +3 -3
- package/dist/{config-schema-CuksCQKC.js → config-schema-BL4qQZiA.js} +8 -0
- package/dist/{graph-users-uPAE6-KQ.js → errors-BevpsEsu.js} +301 -626
- package/dist/{oauth-C5ObhLG6.js → oauth-BrKjrCNK.js} +1 -1
- package/dist/{oauth.token-BNbWziwM.js → oauth.token-5ygi8ycy.js} +8 -6
- package/dist/{probe-istgFnuw.js → probe-C9cvgEV9.js} +221 -120
- package/dist/setup-plugin-api.js +3 -3
- package/dist/{setup-surface-evwYex71.js → setup-surface-Byk8kgPH.js} +2 -2
- package/dist/{src-ui0zJEZI.js → src-W5GVJcCN.js} +761 -981
- package/node_modules/@microsoft/teams.api/dist/activities/activity.d.mts +0 -1
- package/node_modules/@microsoft/teams.api/dist/activities/activity.d.ts +0 -1
- package/node_modules/@microsoft/teams.api/dist/activities/activity.js +0 -4
- package/node_modules/@microsoft/teams.api/dist/activities/activity.js.map +1 -1
- package/node_modules/@microsoft/teams.api/dist/activities/activity.mjs +0 -4
- package/node_modules/@microsoft/teams.api/dist/activities/activity.mjs.map +1 -1
- package/node_modules/@microsoft/teams.api/dist/activities/index.d.mts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/index.d.ts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/index.d.mts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/index.d.ts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/index.js +7 -0
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/index.mjs +1 -0
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/message-extension/fetch-task.d.mts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/message-extension/fetch-task.d.ts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/message-extension/index.d.mts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/message-extension/index.d.ts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/message-extension/submit-action.d.mts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/message-extension/submit-action.d.ts +3 -2
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/suggested-action-submit.d.mts +48 -0
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/suggested-action-submit.d.ts +48 -0
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/suggested-action-submit.js +4 -0
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/suggested-action-submit.js.map +1 -0
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/suggested-action-submit.mjs +3 -0
- package/node_modules/@microsoft/teams.api/dist/activities/invoke/suggested-action-submit.mjs.map +1 -0
- package/node_modules/@microsoft/teams.api/dist/activities/message/index.d.mts +3 -3
- package/node_modules/@microsoft/teams.api/dist/activities/message/index.d.ts +3 -3
- package/node_modules/@microsoft/teams.api/dist/activities/message/message.d.mts +2 -2
- package/node_modules/@microsoft/teams.api/dist/activities/message/message.d.ts +2 -2
- package/node_modules/@microsoft/teams.api/dist/activities/message/message.js +60 -2
- package/node_modules/@microsoft/teams.api/dist/activities/message/message.js.map +1 -1
- package/node_modules/@microsoft/teams.api/dist/activities/message/message.mjs +60 -2
- package/node_modules/@microsoft/teams.api/dist/activities/message/message.mjs.map +1 -1
- package/node_modules/@microsoft/teams.api/dist/activities/utils/index.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/activities/utils/index.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/activities/utils/strip-mentions-text.d.mts +2 -2
- package/node_modules/@microsoft/teams.api/dist/activities/utils/strip-mentions-text.d.ts +2 -2
- package/node_modules/@microsoft/teams.api/dist/activities/utils/to-activity-params.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/activities/utils/to-activity-params.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/{activity-Be6r1tJJ.d.ts → activity-DzKP6phL.d.ts} +3 -2
- package/node_modules/@microsoft/teams.api/dist/{activity-CJery-zL.d.mts → activity-KJJs2q-W.d.mts} +3 -2
- package/node_modules/@microsoft/teams.api/dist/auth/json-web-token.d.mts +14 -0
- package/node_modules/@microsoft/teams.api/dist/auth/json-web-token.d.ts +14 -0
- package/node_modules/@microsoft/teams.api/dist/auth/json-web-token.js +14 -0
- package/node_modules/@microsoft/teams.api/dist/auth/json-web-token.js.map +1 -1
- package/node_modules/@microsoft/teams.api/dist/auth/json-web-token.mjs +14 -0
- package/node_modules/@microsoft/teams.api/dist/auth/json-web-token.mjs.map +1 -1
- package/node_modules/@microsoft/teams.api/dist/clients/conversation/activity.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/clients/conversation/activity.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/clients/conversation/index.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/clients/conversation/index.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/clients/index.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/clients/index.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/index.d.mts +3 -2
- package/node_modules/@microsoft/teams.api/dist/index.d.ts +3 -2
- package/node_modules/@microsoft/teams.api/dist/{message-BwI6kmCe.d.ts → message-D0n_F-cL.d.ts} +37 -1
- package/node_modules/@microsoft/teams.api/dist/{message-Bd75JRjv.d.mts → message-DTEe5v6q.d.mts} +37 -1
- package/node_modules/@microsoft/teams.api/dist/models/activity-like.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/activity-like.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/card/card-action.d.mts +8 -1
- package/node_modules/@microsoft/teams.api/dist/models/card/card-action.d.ts +8 -1
- package/node_modules/@microsoft/teams.api/dist/models/index.d.mts +3 -2
- package/node_modules/@microsoft/teams.api/dist/models/index.d.ts +3 -2
- package/node_modules/@microsoft/teams.api/dist/models/invoke-response.d.mts +5 -3
- package/node_modules/@microsoft/teams.api/dist/models/invoke-response.d.ts +5 -3
- package/node_modules/@microsoft/teams.api/dist/models/invoke-response.js.map +1 -1
- package/node_modules/@microsoft/teams.api/dist/models/invoke-response.mjs.map +1 -1
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/index.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/index.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/messaging-extension-action-response.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/messaging-extension-action-response.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/messaging-extension-action.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/messaging-extension-action.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/messaging-extension-response.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/messaging-extension-response.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/messaging-extension-result.d.mts +4 -3
- package/node_modules/@microsoft/teams.api/dist/models/messaging-extension/messaging-extension-result.d.ts +4 -3
- package/node_modules/@microsoft/teams.api/package.json +5 -5
- package/node_modules/@microsoft/teams.apps/dist/contexts/activity.d.ts +27 -2
- package/node_modules/@microsoft/teams.apps/dist/contexts/activity.js +119 -58
- package/node_modules/@microsoft/teams.apps/dist/contexts/activity.test.js +235 -33
- package/node_modules/@microsoft/teams.apps/dist/http/express-adapter.d.ts +8 -1
- package/node_modules/@microsoft/teams.apps/dist/http/express-adapter.js +10 -4
- package/node_modules/@microsoft/teams.apps/dist/http/http-server.js +14 -1
- package/node_modules/@microsoft/teams.apps/dist/http/http-stream.d.ts +77 -46
- package/node_modules/@microsoft/teams.apps/dist/http/http-stream.js +31 -16
- package/node_modules/@microsoft/teams.apps/dist/routes/invoke/index.d.ts +1 -0
- package/node_modules/@microsoft/teams.apps/dist/routes/invoke/index.js +2 -1
- package/node_modules/@microsoft/teams.apps/dist/types/app-routing.d.ts +2 -2
- package/node_modules/@microsoft/teams.apps/dist/types/streamer.d.ts +9 -0
- package/node_modules/@microsoft/teams.apps/package.json +5 -5
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/collab-stage.js.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/collab-stage.mjs.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/im-back.js.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/im-back.mjs.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/invoke.js.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/invoke.mjs.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/message-back.d.mts +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/message-back.d.ts +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/message-back.js.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/message-back.mjs.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/sign-in.js.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/sign-in.mjs.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/task-fetch.js.map +1 -1
- package/node_modules/@microsoft/teams.cards/dist/actions/submit/task-fetch.mjs.map +1 -1
- package/node_modules/@microsoft/teams.cards/package.json +2 -2
- package/node_modules/@microsoft/teams.common/dist/events/event-emitter.d.mts +2 -2
- package/node_modules/@microsoft/teams.common/dist/events/event-emitter.d.ts +2 -2
- package/node_modules/@microsoft/teams.common/dist/events/event-emitter.js.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/events/event-emitter.mjs.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/http/client.d.mts +1 -1
- package/node_modules/@microsoft/teams.common/dist/http/client.d.ts +1 -1
- package/node_modules/@microsoft/teams.common/dist/http/client.js +3 -1
- package/node_modules/@microsoft/teams.common/dist/http/client.js.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/http/client.mjs +3 -1
- package/node_modules/@microsoft/teams.common/dist/http/client.mjs.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/logging/console.d.mts +1 -1
- package/node_modules/@microsoft/teams.common/dist/logging/console.d.ts +1 -1
- package/node_modules/@microsoft/teams.common/dist/logging/console.js +3 -1
- package/node_modules/@microsoft/teams.common/dist/logging/console.js.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/logging/console.mjs +3 -1
- package/node_modules/@microsoft/teams.common/dist/logging/console.mjs.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/logging/string.js.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/logging/string.mjs.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/storage/list-local-storage.js.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/storage/list-local-storage.mjs.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/storage/local-storage.js.map +1 -1
- package/node_modules/@microsoft/teams.common/dist/storage/local-storage.mjs.map +1 -1
- package/node_modules/@microsoft/teams.common/package.json +2 -2
- package/node_modules/@microsoft/teams.graph/dist/index.js +2 -2
- package/node_modules/@microsoft/teams.graph/dist/index.mjs +2 -2
- package/node_modules/@microsoft/teams.graph/package.json +4 -4
- package/node_modules/jose/README.md +62 -83
- package/node_modules/jose/dist/types/index.d.ts +48 -55
- package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +4 -12
- package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +9 -22
- package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +4 -12
- package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +21 -24
- package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +4 -19
- package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +21 -35
- package/node_modules/jose/dist/types/jwk/embedded.d.ts +2 -10
- package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +5 -16
- package/node_modules/jose/dist/types/jwks/local.d.ts +13 -16
- package/node_modules/jose/dist/types/jwks/remote.d.ts +16 -204
- package/node_modules/jose/dist/types/jws/compact/sign.d.ts +6 -18
- package/node_modules/jose/dist/types/jws/compact/verify.d.ts +5 -13
- package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +8 -18
- package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +5 -13
- package/node_modules/jose/dist/types/jws/general/sign.d.ts +12 -24
- package/node_modules/jose/dist/types/jws/general/verify.d.ts +5 -21
- package/node_modules/jose/dist/types/jwt/decrypt.d.ts +5 -13
- package/node_modules/jose/dist/types/jwt/encrypt.d.ts +17 -31
- package/node_modules/jose/dist/types/jwt/sign.d.ts +6 -26
- package/node_modules/jose/dist/types/jwt/unsecured.d.ts +7 -29
- package/node_modules/jose/dist/types/jwt/verify.d.ts +6 -14
- package/node_modules/jose/dist/types/key/export.d.ts +12 -24
- package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +11 -22
- package/node_modules/jose/dist/types/key/generate_secret.d.ts +8 -24
- package/node_modules/jose/dist/types/key/import.d.ts +33 -62
- package/node_modules/jose/dist/types/types.d.ts +165 -407
- package/node_modules/jose/dist/types/util/base64url.d.ts +16 -6
- package/node_modules/jose/dist/types/util/decode_jwt.d.ts +2 -10
- package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +2 -11
- package/node_modules/jose/dist/types/util/errors.d.ts +36 -98
- package/node_modules/jose/package.json +17 -127
- package/node_modules/jwks-rsa/package.json +4 -4
- package/node_modules/jwks-rsa/src/integrations/config.js +1 -0
- package/node_modules/jwks-rsa/src/utils.js +2 -0
- package/node_modules/jwks-rsa/src/wrappers/cache.js +1 -1
- package/node_modules/lru-cache/README.md +117 -420
- package/node_modules/lru-cache/package.json +12 -132
- package/node_modules/lru-memoizer/README.md +21 -22
- package/node_modules/lru-memoizer/lib/async.d.ts +32 -15
- package/node_modules/lru-memoizer/lib/async.js +113 -55
- package/node_modules/lru-memoizer/lib/freeze.d.ts +0 -1
- package/node_modules/lru-memoizer/lib/freeze.js +1 -1
- package/node_modules/lru-memoizer/lib/index.d.ts +0 -1
- package/node_modules/lru-memoizer/lib/index.js +2 -2
- package/node_modules/lru-memoizer/lib/sync.d.ts +16 -17
- package/node_modules/lru-memoizer/lib/sync.js +62 -34
- package/node_modules/lru-memoizer/lib/util.d.ts +40 -41
- package/node_modules/lru-memoizer/lib/util.js +1 -1
- package/node_modules/lru-memoizer/package.json +4 -3
- package/node_modules/lru-memoizer/test/lru-memoizer.clone.test.js +1 -2
- package/node_modules/lru-memoizer/test/lru-memoizer.freeze.test.js +0 -1
- package/node_modules/lru-memoizer/test/lru-memoizer.itemmaxage.test.js +26 -26
- package/node_modules/lru-memoizer/test/lru-memoizer.nokey.test.js +0 -1
- package/node_modules/lru-memoizer/test/lru-memoizer.queumaxage.test.js +3 -4
- package/node_modules/lru-memoizer/test/lru-memoizer.sync.clone.test.js +2 -4
- package/node_modules/lru-memoizer/test/lru-memoizer.sync.freeze.js +2 -4
- package/node_modules/lru-memoizer/tsconfig.json +56 -16
- package/node_modules/semver/classes/range.js +7 -0
- package/node_modules/semver/package.json +1 -1
- package/node_modules/semver/ranges/subset.js +2 -2
- package/npm-shrinkwrap.json +52 -98
- package/openclaw.plugin.json +21 -0
- package/package.json +6 -10
- package/dist/test-api.js +0 -2
- package/node_modules/@microsoft/teams.apps/node_modules/jose/LICENSE.md +0 -21
- package/node_modules/@microsoft/teams.apps/node_modules/jose/README.md +0 -132
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/index.d.ts +0 -48
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +0 -23
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +0 -52
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +0 -23
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +0 -80
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +0 -23
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +0 -60
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwk/embedded.d.ts +0 -9
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwk/thumbprint.d.ts +0 -21
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwks/local.d.ts +0 -26
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwks/remote.d.ts +0 -49
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jws/compact/sign.d.ts +0 -24
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jws/compact/verify.d.ts +0 -25
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jws/flattened/sign.d.ts +0 -32
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jws/flattened/verify.d.ts +0 -25
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jws/general/sign.d.ts +0 -41
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jws/general/verify.d.ts +0 -25
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwt/decrypt.d.ts +0 -27
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwt/encrypt.d.ts +0 -77
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwt/sign.d.ts +0 -23
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwt/unsecured.d.ts +0 -21
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/jwt/verify.d.ts +0 -29
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/key/export.d.ts +0 -21
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/key/generate_key_pair.d.ts +0 -36
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/key/generate_secret.d.ts +0 -19
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/key/import.d.ts +0 -54
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/types.d.ts +0 -610
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/util/base64url.d.ts +0 -19
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/util/decode_jwt.d.ts +0 -10
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/util/decode_protected_header.d.ts +0 -8
- package/node_modules/@microsoft/teams.apps/node_modules/jose/dist/types/util/errors.d.ts +0 -151
- package/node_modules/@microsoft/teams.apps/node_modules/jose/package.json +0 -90
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/LICENSE +0 -21
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/README.md +0 -84
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/index.d.ts +0 -139
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/package.json +0 -74
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/JwksClient.js +0 -91
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/errors/ArgumentError.js +0 -10
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/errors/JwksError.js +0 -10
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/errors/JwksRateLimitError.js +0 -10
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/errors/SigningKeyNotFoundError.js +0 -10
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/errors/index.js +0 -6
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/index.js +0 -22
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/integrations/config.js +0 -15
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/integrations/express.js +0 -60
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/integrations/hapi.js +0 -59
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/integrations/koa.js +0 -30
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/integrations/passport.js +0 -52
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/utils.js +0 -80
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/wrappers/cache.js +0 -15
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/wrappers/callbackSupport.js +0 -16
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/wrappers/index.js +0 -7
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/wrappers/interceptor.js +0 -30
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/wrappers/rateLimit.js +0 -34
- package/node_modules/@microsoft/teams.apps/node_modules/jwks-rsa/src/wrappers/request.js +0 -54
- package/node_modules/@microsoft/teams.apps/node_modules/lru-cache/README.md +0 -166
- package/node_modules/@microsoft/teams.apps/node_modules/lru-cache/package.json +0 -34
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/.jshintrc +0 -41
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/LICENSE +0 -21
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/README.md +0 -88
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/async.d.ts +0 -85
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/async.js +0 -178
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/freeze.d.ts +0 -1
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/freeze.js +0 -23
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/index.d.ts +0 -2
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/index.js +0 -4
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/sync.d.ts +0 -65
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/sync.js +0 -114
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/util.d.ts +0 -162
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/lib/util.js +0 -3
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/package.json +0 -34
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.bypass.test.js +0 -39
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.clone.test.js +0 -44
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.disable.test.js +0 -49
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.events.test.js +0 -132
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.freeze.test.js +0 -43
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.itemmaxage.test.js +0 -204
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.lock.test.js +0 -36
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.nokey.test.js +0 -43
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.queumaxage.test.js +0 -110
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.sync.clone.test.js +0 -76
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.sync.events.test.js +0 -95
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.sync.freeze.js +0 -74
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.sync.test.js +0 -47
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/test/lru-memoizer.test.js +0 -88
- package/node_modules/@microsoft/teams.apps/node_modules/lru-memoizer/tsconfig.json +0 -59
- package/node_modules/jose/dist/webapi/index.js +0 -32
- package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +0 -27
- package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +0 -27
- package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +0 -159
- package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +0 -167
- package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +0 -31
- package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +0 -182
- package/node_modules/jose/dist/webapi/jwk/embedded.js +0 -17
- package/node_modules/jose/dist/webapi/jwk/thumbprint.js +0 -68
- package/node_modules/jose/dist/webapi/jwks/local.js +0 -119
- package/node_modules/jose/dist/webapi/jwks/remote.js +0 -179
- package/node_modules/jose/dist/webapi/jws/compact/sign.js +0 -18
- package/node_modules/jose/dist/webapi/jws/compact/verify.js +0 -21
- package/node_modules/jose/dist/webapi/jws/flattened/sign.js +0 -89
- package/node_modules/jose/dist/webapi/jws/flattened/verify.js +0 -110
- package/node_modules/jose/dist/webapi/jws/general/sign.js +0 -70
- package/node_modules/jose/dist/webapi/jws/general/verify.js +0 -24
- package/node_modules/jose/dist/webapi/jwt/decrypt.js +0 -23
- package/node_modules/jose/dist/webapi/jwt/encrypt.js +0 -101
- package/node_modules/jose/dist/webapi/jwt/sign.js +0 -52
- package/node_modules/jose/dist/webapi/jwt/unsecured.js +0 -63
- package/node_modules/jose/dist/webapi/jwt/verify.js +0 -15
- package/node_modules/jose/dist/webapi/key/export.js +0 -11
- package/node_modules/jose/dist/webapi/key/generate_key_pair.js +0 -97
- package/node_modules/jose/dist/webapi/key/generate_secret.js +0 -40
- package/node_modules/jose/dist/webapi/key/import.js +0 -57
- package/node_modules/jose/dist/webapi/lib/aesgcmkw.js +0 -15
- package/node_modules/jose/dist/webapi/lib/aeskw.js +0 -25
- package/node_modules/jose/dist/webapi/lib/asn1.js +0 -243
- package/node_modules/jose/dist/webapi/lib/base64.js +0 -22
- package/node_modules/jose/dist/webapi/lib/buffer_utils.js +0 -43
- package/node_modules/jose/dist/webapi/lib/check_key_type.js +0 -122
- package/node_modules/jose/dist/webapi/lib/content_encryption.js +0 -217
- package/node_modules/jose/dist/webapi/lib/crypto_key.js +0 -136
- package/node_modules/jose/dist/webapi/lib/deflate.js +0 -44
- package/node_modules/jose/dist/webapi/lib/ecdhes.js +0 -52
- package/node_modules/jose/dist/webapi/lib/helpers.js +0 -19
- package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +0 -27
- package/node_modules/jose/dist/webapi/lib/is_key_like.js +0 -17
- package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +0 -107
- package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +0 -238
- package/node_modules/jose/dist/webapi/lib/key_management.js +0 -186
- package/node_modules/jose/dist/webapi/lib/key_to_jwk.js +0 -31
- package/node_modules/jose/dist/webapi/lib/normalize_key.js +0 -166
- package/node_modules/jose/dist/webapi/lib/pbes2kw.js +0 -42
- package/node_modules/jose/dist/webapi/lib/rsaes.js +0 -24
- package/node_modules/jose/dist/webapi/lib/signing.js +0 -68
- package/node_modules/jose/dist/webapi/lib/type_checks.js +0 -40
- package/node_modules/jose/dist/webapi/lib/validate_algorithms.js +0 -10
- package/node_modules/jose/dist/webapi/lib/validate_crit.js +0 -33
- package/node_modules/jose/dist/webapi/util/base64url.js +0 -30
- package/node_modules/jose/dist/webapi/util/decode_jwt.js +0 -32
- package/node_modules/jose/dist/webapi/util/decode_protected_header.js +0 -34
- package/node_modules/jose/dist/webapi/util/errors.js +0 -99
- package/node_modules/lru-cache/LICENSE.md +0 -55
- package/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel-browser.js.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.d.ts +0 -5
- package/node_modules/lru-cache/dist/commonjs/browser/diagnostics-channel.js +0 -7
- package/node_modules/lru-cache/dist/commonjs/browser/index.d.ts +0 -1400
- package/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/browser/index.js +0 -1726
- package/node_modules/lru-cache/dist/commonjs/browser/index.js.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/browser/index.min.js +0 -2
- package/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +0 -7
- package/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts +0 -12
- package/node_modules/lru-cache/dist/commonjs/browser/perf.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/browser/perf.js +0 -10
- package/node_modules/lru-cache/dist/commonjs/browser/perf.js.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.cjs.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/diagnostics-channel-cjs.d.cts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/diagnostics-channel.d.ts +0 -5
- package/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +0 -7
- package/node_modules/lru-cache/dist/commonjs/index.d.ts +0 -1400
- package/node_modules/lru-cache/dist/commonjs/index.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/index.js +0 -1726
- package/node_modules/lru-cache/dist/commonjs/index.js.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
- package/node_modules/lru-cache/dist/commonjs/index.min.js.map +0 -7
- package/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel-node.js.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.d.ts +0 -5
- package/node_modules/lru-cache/dist/commonjs/node/diagnostics-channel.js +0 -9
- package/node_modules/lru-cache/dist/commonjs/node/index.d.ts +0 -1400
- package/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/node/index.js +0 -1726
- package/node_modules/lru-cache/dist/commonjs/node/index.js.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/node/index.min.js +0 -2
- package/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +0 -7
- package/node_modules/lru-cache/dist/commonjs/node/perf.d.ts +0 -12
- package/node_modules/lru-cache/dist/commonjs/node/perf.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/node/perf.js +0 -10
- package/node_modules/lru-cache/dist/commonjs/node/perf.js.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/package.json +0 -3
- package/node_modules/lru-cache/dist/commonjs/perf.d.ts +0 -12
- package/node_modules/lru-cache/dist/commonjs/perf.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/commonjs/perf.js +0 -10
- package/node_modules/lru-cache/dist/commonjs/perf.js.map +0 -1
- package/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/esm/browser/diagnostics-channel-browser.js.map +0 -1
- package/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.d.ts +0 -5
- package/node_modules/lru-cache/dist/esm/browser/diagnostics-channel.js +0 -4
- package/node_modules/lru-cache/dist/esm/browser/index.d.ts +0 -1400
- package/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/esm/browser/index.js +0 -1722
- package/node_modules/lru-cache/dist/esm/browser/index.js.map +0 -1
- package/node_modules/lru-cache/dist/esm/browser/index.min.js +0 -2
- package/node_modules/lru-cache/dist/esm/browser/index.min.js.map +0 -7
- package/node_modules/lru-cache/dist/esm/browser/perf.d.ts +0 -12
- package/node_modules/lru-cache/dist/esm/browser/perf.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/esm/browser/perf.js +0 -7
- package/node_modules/lru-cache/dist/esm/browser/perf.js.map +0 -1
- package/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +0 -1
- package/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.mjs.map +0 -1
- package/node_modules/lru-cache/dist/esm/diagnostics-channel.d.ts +0 -5
- package/node_modules/lru-cache/dist/esm/diagnostics-channel.js +0 -19
- package/node_modules/lru-cache/dist/esm/index.d.ts +0 -1400
- package/node_modules/lru-cache/dist/esm/index.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/esm/index.js +0 -1722
- package/node_modules/lru-cache/dist/esm/index.js.map +0 -1
- package/node_modules/lru-cache/dist/esm/index.min.js +0 -2
- package/node_modules/lru-cache/dist/esm/index.min.js.map +0 -7
- package/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.js.map +0 -1
- package/node_modules/lru-cache/dist/esm/node/diagnostics-channel.d.ts +0 -5
- package/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +0 -6
- package/node_modules/lru-cache/dist/esm/node/index.d.ts +0 -1400
- package/node_modules/lru-cache/dist/esm/node/index.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/esm/node/index.js +0 -1722
- package/node_modules/lru-cache/dist/esm/node/index.js.map +0 -1
- package/node_modules/lru-cache/dist/esm/node/index.min.js +0 -2
- package/node_modules/lru-cache/dist/esm/node/index.min.js.map +0 -7
- package/node_modules/lru-cache/dist/esm/node/perf.d.ts +0 -12
- package/node_modules/lru-cache/dist/esm/node/perf.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/esm/node/perf.js +0 -7
- package/node_modules/lru-cache/dist/esm/node/perf.js.map +0 -1
- package/node_modules/lru-cache/dist/esm/package.json +0 -3
- package/node_modules/lru-cache/dist/esm/perf.d.ts +0 -12
- package/node_modules/lru-cache/dist/esm/perf.d.ts.map +0 -1
- package/node_modules/lru-cache/dist/esm/perf.js +0 -7
- package/node_modules/lru-cache/dist/esm/perf.js.map +0 -1
- package/node_modules/lru-memoizer/lib/async.d.ts.map +0 -1
- package/node_modules/lru-memoizer/lib/async.js.map +0 -1
- package/node_modules/lru-memoizer/lib/freeze.d.ts.map +0 -1
- package/node_modules/lru-memoizer/lib/freeze.js.map +0 -1
- package/node_modules/lru-memoizer/lib/index.d.ts.map +0 -1
- package/node_modules/lru-memoizer/lib/index.js.map +0 -1
- package/node_modules/lru-memoizer/lib/sync.d.ts.map +0 -1
- package/node_modules/lru-memoizer/lib/sync.js.map +0 -1
- package/node_modules/lru-memoizer/lib/util.d.ts.map +0 -1
- package/node_modules/lru-memoizer/lib/util.js.map +0 -1
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/index.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwe/compact/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwe/compact/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwe/flattened/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwe/flattened/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwe/general/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwe/general/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwk/embedded.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwk/thumbprint.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwks/local.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwks/remote.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jws/compact/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jws/compact/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jws/flattened/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jws/flattened/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jws/general/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jws/general/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwt/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwt/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwt/produce.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwt/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwt/unsecured.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/jwt/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/key/export.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/key/generate_key_pair.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/key/generate_secret.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/key/import.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/aesgcmkw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/buffer_utils.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/cek.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/check_iv_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/check_key_type.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/check_p2s.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/crypto_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/decrypt_key_management.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/encrypt_key_management.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/epoch.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/format_pem.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/invalid_key_input.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/is_disjoint.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/is_object.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/iv.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/jwt_claims_set.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/secs.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/validate_algorithms.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/lib/validate_crit.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/package.json +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/aeskw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/asn1.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/base64url.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/bogus.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/check_cek_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/check_key_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/digest.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/ecdhes.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/fetch_jwks.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/generate.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/get_sign_verify_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/is_key_like.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/jwk_to_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/key_to_jwk.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/pbes2kw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/random.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/rsaes.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/runtime.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/subtle_dsa.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/subtle_rsaes.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/timing_safe_equal.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/webcrypto.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/runtime/zlib.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/util/base64url.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/util/decode_jwt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/util/decode_protected_header.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/util/errors.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/browser/util/runtime.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/index.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwe/compact/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwe/compact/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwe/flattened/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwe/flattened/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwe/general/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwe/general/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwk/embedded.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwk/thumbprint.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwks/local.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwks/remote.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jws/compact/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jws/compact/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jws/flattened/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jws/flattened/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jws/general/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jws/general/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwt/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwt/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwt/produce.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwt/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwt/unsecured.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/jwt/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/key/export.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/key/generate_key_pair.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/key/generate_secret.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/key/import.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/aesgcmkw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/buffer_utils.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/cek.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/check_iv_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/check_key_type.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/check_p2s.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/crypto_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/decrypt_key_management.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/encrypt_key_management.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/epoch.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/invalid_key_input.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/is_disjoint.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/is_object.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/iv.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/jwt_claims_set.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/secs.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/validate_algorithms.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/lib/validate_crit.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/aeskw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/asn1.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/asn1_sequence_decoder.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/asn1_sequence_encoder.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/base64url.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/cbc_tag.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/check_cek_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/check_modulus_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/ciphers.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/digest.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/dsa_digest.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/ecdhes.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/fetch_jwks.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/flags.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/generate.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/get_named_curve.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/get_sign_verify_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/hmac_digest.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/is_key_like.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/is_key_object.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/jwk_to_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/key_to_jwk.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/node_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/pbes2kw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/random.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/rsaes.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/runtime.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/timing_safe_equal.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/webcrypto.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/runtime/zlib.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/util/base64url.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/util/decode_jwt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/util/decode_protected_header.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/util/errors.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/cjs/util/runtime.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/index.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwe/compact/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwe/compact/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwe/flattened/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwe/flattened/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwe/general/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwe/general/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwk/embedded.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwk/thumbprint.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwks/local.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwks/remote.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jws/compact/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jws/compact/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jws/flattened/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jws/flattened/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jws/general/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jws/general/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwt/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwt/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwt/produce.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwt/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwt/unsecured.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/jwt/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/key/export.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/key/generate_key_pair.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/key/generate_secret.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/key/import.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/aesgcmkw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/buffer_utils.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/cek.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/check_iv_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/check_key_type.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/check_p2s.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/crypto_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/decrypt_key_management.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/encrypt_key_management.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/epoch.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/invalid_key_input.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/is_disjoint.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/is_object.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/iv.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/jwt_claims_set.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/secs.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/validate_algorithms.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/lib/validate_crit.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/package.json +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/aeskw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/asn1.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/asn1_sequence_decoder.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/asn1_sequence_encoder.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/base64url.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/cbc_tag.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/check_cek_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/check_modulus_length.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/ciphers.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/decrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/digest.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/dsa_digest.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/ecdhes.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/encrypt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/fetch_jwks.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/flags.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/generate.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/get_named_curve.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/get_sign_verify_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/hmac_digest.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/is_key_like.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/is_key_object.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/jwk_to_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/key_to_jwk.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/node_key.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/pbes2kw.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/random.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/rsaes.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/runtime.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/sign.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/timing_safe_equal.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/verify.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/webcrypto.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/runtime/zlib.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/util/base64url.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/util/decode_jwt.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/util/decode_protected_header.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/util/errors.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/node/esm/util/runtime.js +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/types/jwt/produce.d.ts +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/jose → jose}/dist/types/util/runtime.d.ts +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/lru-cache → lru-cache}/LICENSE +0 -0
- /package/node_modules/{@microsoft/teams.apps/node_modules/lru-cache → lru-cache}/index.js +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { M as getMSTeamsRuntime, h as fetchWithSsrFGuard
|
|
2
|
-
import { n as refreshMSTeamsDelegatedTokens } from "./oauth.token-
|
|
1
|
+
import { M as getMSTeamsRuntime, h as fetchWithSsrFGuard } from "./runtime-api-BlvMnDKz.js";
|
|
2
|
+
import { c as createMSTeamsHttpError, n as refreshMSTeamsDelegatedTokens } from "./oauth.token-5ygi8ycy.js";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
|
-
import { isRecord, isRecord as isRecord$1, normalizeLowercaseStringOrEmpty, normalizeOptionalString
|
|
5
|
-
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
4
|
+
import { isRecord, isRecord as isRecord$1, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
5
|
import { readProviderJsonResponse } from "openclaw/plugin-sdk/provider-http";
|
|
7
6
|
import { Buffer } from "node:buffer";
|
|
8
7
|
import { lookup } from "node:dns/promises";
|
|
@@ -37,6 +36,7 @@ const DEFAULT_MEDIA_HOST_ALLOWLIST = [
|
|
|
37
36
|
"ams.skype.com",
|
|
38
37
|
"media.ams.skype.com",
|
|
39
38
|
"trafficmanager.net",
|
|
39
|
+
"botframework.azure.cn",
|
|
40
40
|
"blob.core.windows.net",
|
|
41
41
|
"azureedge.net",
|
|
42
42
|
"microsoft.com"
|
|
@@ -45,6 +45,7 @@ const DEFAULT_MEDIA_AUTH_HOST_ALLOWLIST = [
|
|
|
45
45
|
"api.botframework.com",
|
|
46
46
|
"botframework.com",
|
|
47
47
|
"smba.trafficmanager.net",
|
|
48
|
+
"botframework.azure.cn",
|
|
48
49
|
"graph.microsoft.com",
|
|
49
50
|
"graph.microsoft.us",
|
|
50
51
|
"graph.microsoft.de",
|
|
@@ -355,6 +356,7 @@ async function safeFetch(params) {
|
|
|
355
356
|
const currentHeaders = new Headers(params.requestInit?.headers);
|
|
356
357
|
let currentUrl = params.url;
|
|
357
358
|
if (!isUrlAllowed(currentUrl, params.allowHosts)) throw new Error(`Initial download URL blocked: ${currentUrl}`);
|
|
359
|
+
if (currentHeaders.has("authorization") && params.authorizationAllowHosts && !isUrlAllowed(currentUrl, params.authorizationAllowHosts)) currentHeaders.delete("authorization");
|
|
358
360
|
if (resolveFn) try {
|
|
359
361
|
const initialHost = new URL(currentUrl).hostname;
|
|
360
362
|
await resolveAndValidateIP(initialHost, resolveFn);
|
|
@@ -403,15 +405,68 @@ async function safeFetchWithPolicy(params) {
|
|
|
403
405
|
resolveFn: params.resolveFn
|
|
404
406
|
});
|
|
405
407
|
}
|
|
408
|
+
const PUBLIC_MSTEAMS_SERVICE_HOST = "smba.trafficmanager.net";
|
|
409
|
+
const CHINA_BOT_FRAMEWORK_SERVICE_HOST = "botframework.azure.cn";
|
|
410
|
+
function normalizeOptionalServiceUrl(value) {
|
|
411
|
+
const trimmed = value?.trim();
|
|
412
|
+
if (!trimmed) return null;
|
|
413
|
+
try {
|
|
414
|
+
const parsed = new URL(trimmed);
|
|
415
|
+
parsed.hash = "";
|
|
416
|
+
parsed.search = "";
|
|
417
|
+
parsed.pathname = parsed.pathname.replace(/\/+$/, "");
|
|
418
|
+
return {
|
|
419
|
+
value: parsed.toString().replace(/\/+$/, ""),
|
|
420
|
+
host: parsed.hostname.toLowerCase()
|
|
421
|
+
};
|
|
422
|
+
} catch {
|
|
423
|
+
return null;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
function resolveMSTeamsSdkCloudOptions(cfg) {
|
|
427
|
+
const cloud = cfg?.cloud ?? "Public";
|
|
428
|
+
const serviceUrl = cfg?.serviceUrl?.trim();
|
|
429
|
+
if (cloud !== "Public" && cloud !== "China" && !serviceUrl) throw new Error(`channels.msteams.cloud=${cloud} requires channels.msteams.serviceUrl so SDK proactive operations use the matching Teams Bot Connector endpoint.`);
|
|
430
|
+
return {
|
|
431
|
+
cloud,
|
|
432
|
+
...serviceUrl ? { serviceUrl } : {}
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
function isChinaBotFrameworkServiceHost(host) {
|
|
436
|
+
return host === CHINA_BOT_FRAMEWORK_SERVICE_HOST || host.endsWith(`.${CHINA_BOT_FRAMEWORK_SERVICE_HOST}`);
|
|
437
|
+
}
|
|
438
|
+
function isChinaBotFrameworkServiceUrl(value) {
|
|
439
|
+
const parsed = normalizeOptionalServiceUrl(value);
|
|
440
|
+
return Boolean(parsed && isChinaBotFrameworkServiceHost(parsed.host));
|
|
441
|
+
}
|
|
442
|
+
function validateMSTeamsProactiveServiceUrlBoundary(params) {
|
|
443
|
+
const configured = normalizeOptionalServiceUrl(params.configuredServiceUrl);
|
|
444
|
+
if (params.cloud !== "Public" && params.cloud !== "China" && !configured) throw new Error(`msteams proactive send blocked for ${params.conversationId}: channels.msteams.cloud=${params.cloud} requires channels.msteams.serviceUrl so SDK proactive operations use the matching Teams Bot Connector endpoint.`);
|
|
445
|
+
if (params.cloud === "China" && configured && !isChinaBotFrameworkServiceHost(configured.host)) throw new Error(`msteams proactive send blocked for ${params.conversationId}: configured Teams serviceUrl (${configured.value}) is not a Microsoft Teams China Bot Framework channel endpoint.`);
|
|
446
|
+
if (params.cloud !== "China" && configured && isChinaBotFrameworkServiceHost(configured.host)) throw new Error(`msteams proactive send blocked for ${params.conversationId}: configured Teams serviceUrl (${configured.value}) requires channels.msteams.cloud=China.`);
|
|
447
|
+
if (configured) {
|
|
448
|
+
const stored = normalizeOptionalServiceUrl(params.storedServiceUrl);
|
|
449
|
+
if (!stored) throw new Error(`msteams proactive send blocked for ${params.conversationId}: stored conversation reference is missing a valid serviceUrl. Ask the bot to receive a new Teams message in this conversation, then retry.`);
|
|
450
|
+
if (stored.host !== configured.host) throw new Error(`msteams proactive send blocked for ${params.conversationId}: stored conversation serviceUrl (${stored.value}) does not match configured Teams SDK serviceUrl host (${configured.host}). Set channels.msteams.cloud/channels.msteams.serviceUrl for the Teams cloud that owns this conversation, or refresh the stored conversation by receiving a new message.`);
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
const stored = normalizeOptionalServiceUrl(params.storedServiceUrl);
|
|
454
|
+
if (!stored) throw new Error(`msteams proactive send blocked for ${params.conversationId}: stored conversation reference is missing a valid serviceUrl. Ask the bot to receive a new Teams message in this conversation, then retry.`);
|
|
455
|
+
if (params.cloud === "China") {
|
|
456
|
+
if (!isChinaBotFrameworkServiceHost(stored.host)) throw new Error(`msteams proactive send blocked for ${params.conversationId}: stored conversation serviceUrl (${stored.value}) is not a Microsoft Teams China Bot Framework channel endpoint. Use a conversation reference received from the China/21Vianet Teams cloud.`);
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
if (isChinaBotFrameworkServiceUrl(stored.value)) throw new Error(`msteams proactive send blocked for ${params.conversationId}: stored conversation serviceUrl (${stored.value}) requires channels.msteams.cloud=China.`);
|
|
460
|
+
if (stored.host !== PUBLIC_MSTEAMS_SERVICE_HOST) throw new Error(`msteams proactive send blocked for ${params.conversationId}: stored conversation serviceUrl (${stored.value}) is not a Microsoft Teams public-cloud Bot Connector endpoint. Set channels.msteams.cloud and channels.msteams.serviceUrl for the supported Teams cloud that owns this conversation.`);
|
|
461
|
+
}
|
|
406
462
|
const BOT_FRAMEWORK_SERVICE_URL_HOST_ALLOWLIST = normalizeHostnameSuffixAllowlist([
|
|
407
463
|
"smba.trafficmanager.net",
|
|
408
464
|
"smba.infra.gcc.teams.microsoft.com",
|
|
409
465
|
"smba.infra.gov.teams.microsoft.us",
|
|
410
|
-
"smba.infra.dod.teams.microsoft.us"
|
|
466
|
+
"smba.infra.dod.teams.microsoft.us",
|
|
467
|
+
"botframework.azure.cn"
|
|
411
468
|
]);
|
|
412
|
-
|
|
413
|
-
if (!serviceUrlSsrfPolicy) throw new Error("Microsoft Teams Bot Framework serviceUrl allowlist is empty");
|
|
414
|
-
const BOT_FRAMEWORK_SERVICE_URL_SSRF_POLICY = serviceUrlSsrfPolicy;
|
|
469
|
+
if (!buildHostnameAllowlistPolicyFromSuffixAllowlist(BOT_FRAMEWORK_SERVICE_URL_HOST_ALLOWLIST)) throw new Error("Microsoft Teams Bot Framework serviceUrl allowlist is empty");
|
|
415
470
|
function describeBotFrameworkServiceUrlHost(serviceUrl) {
|
|
416
471
|
try {
|
|
417
472
|
return new URL(serviceUrl.trim()).hostname || "invalid-url";
|
|
@@ -434,163 +489,6 @@ function normalizeBotFrameworkServiceUrl(serviceUrl) {
|
|
|
434
489
|
throw new Error(`Blocked Microsoft Teams serviceUrl host: ${describeBotFrameworkServiceUrlHost(serviceUrl)}`);
|
|
435
490
|
}
|
|
436
491
|
//#endregion
|
|
437
|
-
//#region extensions/msteams/src/errors.ts
|
|
438
|
-
function formatUnknownError(err) {
|
|
439
|
-
if (err instanceof Error) return err.message;
|
|
440
|
-
if (typeof err === "string") return err;
|
|
441
|
-
if (err === null) return "null";
|
|
442
|
-
if (err === void 0) return "undefined";
|
|
443
|
-
if (typeof err === "number" || typeof err === "boolean" || typeof err === "bigint") return String(err);
|
|
444
|
-
if (typeof err === "symbol") return err.description ?? err.toString();
|
|
445
|
-
if (typeof err === "function") return err.name ? `[function ${err.name}]` : "[function]";
|
|
446
|
-
try {
|
|
447
|
-
return JSON.stringify(err) ?? "unknown error";
|
|
448
|
-
} catch {
|
|
449
|
-
return "unknown error";
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
function extractStatusCode(err) {
|
|
453
|
-
if (!isRecord(err)) return null;
|
|
454
|
-
const direct = err.statusCode ?? err.status;
|
|
455
|
-
if (typeof direct === "number" && Number.isFinite(direct)) return direct;
|
|
456
|
-
if (typeof direct === "string") {
|
|
457
|
-
const parsed = Number.parseInt(direct, 10);
|
|
458
|
-
if (Number.isFinite(parsed)) return parsed;
|
|
459
|
-
}
|
|
460
|
-
const response = err.response;
|
|
461
|
-
if (isRecord(response)) {
|
|
462
|
-
const status = response.status;
|
|
463
|
-
if (typeof status === "number" && Number.isFinite(status)) return status;
|
|
464
|
-
if (typeof status === "string") {
|
|
465
|
-
const parsed = Number.parseInt(status, 10);
|
|
466
|
-
if (Number.isFinite(parsed)) return parsed;
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
return null;
|
|
470
|
-
}
|
|
471
|
-
function extractErrorCode(err) {
|
|
472
|
-
if (!isRecord(err)) return null;
|
|
473
|
-
const direct = err.code;
|
|
474
|
-
if (typeof direct === "string" && direct.trim()) return direct;
|
|
475
|
-
const response = err.response;
|
|
476
|
-
if (!isRecord(response)) return null;
|
|
477
|
-
const body = response.body;
|
|
478
|
-
if (isRecord(body)) {
|
|
479
|
-
const error = body.error;
|
|
480
|
-
if (isRecord(error) && typeof error.code === "string" && error.code.trim()) return error.code;
|
|
481
|
-
}
|
|
482
|
-
return null;
|
|
483
|
-
}
|
|
484
|
-
function extractRetryAfterMs(err) {
|
|
485
|
-
if (!isRecord(err)) return null;
|
|
486
|
-
const direct = err.retryAfterMs ?? err.retry_after_ms;
|
|
487
|
-
if (typeof direct === "number" && Number.isFinite(direct) && direct >= 0) return direct;
|
|
488
|
-
const retryAfter = err.retryAfter ?? err.retry_after;
|
|
489
|
-
if (typeof retryAfter === "number" && Number.isFinite(retryAfter)) return retryAfter >= 0 ? retryAfter * 1e3 : null;
|
|
490
|
-
if (typeof retryAfter === "string") {
|
|
491
|
-
const parsed = Number.parseFloat(retryAfter);
|
|
492
|
-
if (Number.isFinite(parsed) && parsed >= 0) return parsed * 1e3;
|
|
493
|
-
}
|
|
494
|
-
const response = err.response;
|
|
495
|
-
if (!isRecord(response)) return null;
|
|
496
|
-
const headers = response.headers;
|
|
497
|
-
if (!headers) return null;
|
|
498
|
-
if (isRecord(headers)) {
|
|
499
|
-
const raw = headers["retry-after"] ?? headers["Retry-After"];
|
|
500
|
-
if (typeof raw === "string") {
|
|
501
|
-
const parsed = Number.parseFloat(raw);
|
|
502
|
-
if (Number.isFinite(parsed) && parsed >= 0) return parsed * 1e3;
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
if (typeof headers === "object" && headers !== null && "get" in headers && typeof headers.get === "function") {
|
|
506
|
-
const raw = headers.get("retry-after");
|
|
507
|
-
if (raw) {
|
|
508
|
-
const parsed = Number.parseFloat(raw);
|
|
509
|
-
if (Number.isFinite(parsed) && parsed >= 0) return parsed * 1e3;
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
return null;
|
|
513
|
-
}
|
|
514
|
-
/**
|
|
515
|
-
* Classify outbound send errors for safe retries and actionable logs.
|
|
516
|
-
*
|
|
517
|
-
* Important: We only mark errors as retryable when we have an explicit HTTP
|
|
518
|
-
* status code that indicates the message was not accepted (e.g. 429, 5xx).
|
|
519
|
-
* For transport-level errors where delivery is ambiguous, we prefer to avoid
|
|
520
|
-
* retries to reduce the chance of duplicate posts.
|
|
521
|
-
*/
|
|
522
|
-
function classifyMSTeamsSendError(err) {
|
|
523
|
-
const statusCode = extractStatusCode(err);
|
|
524
|
-
const retryAfterMs = extractRetryAfterMs(err);
|
|
525
|
-
const errorCode = extractErrorCode(err) ?? void 0;
|
|
526
|
-
if (statusCode === 401) return {
|
|
527
|
-
kind: "auth",
|
|
528
|
-
statusCode,
|
|
529
|
-
errorCode
|
|
530
|
-
};
|
|
531
|
-
if (statusCode === 403) {
|
|
532
|
-
if (errorCode === "ContentStreamNotAllowed") return {
|
|
533
|
-
kind: "permanent",
|
|
534
|
-
statusCode,
|
|
535
|
-
errorCode
|
|
536
|
-
};
|
|
537
|
-
return {
|
|
538
|
-
kind: "auth",
|
|
539
|
-
statusCode,
|
|
540
|
-
errorCode
|
|
541
|
-
};
|
|
542
|
-
}
|
|
543
|
-
if (statusCode === 429) return {
|
|
544
|
-
kind: "throttled",
|
|
545
|
-
statusCode,
|
|
546
|
-
retryAfterMs: retryAfterMs ?? void 0,
|
|
547
|
-
errorCode
|
|
548
|
-
};
|
|
549
|
-
if (statusCode === 408 || statusCode != null && statusCode >= 500) return {
|
|
550
|
-
kind: "transient",
|
|
551
|
-
statusCode,
|
|
552
|
-
retryAfterMs: retryAfterMs ?? void 0,
|
|
553
|
-
errorCode
|
|
554
|
-
};
|
|
555
|
-
if (statusCode != null && statusCode >= 400) return {
|
|
556
|
-
kind: "permanent",
|
|
557
|
-
statusCode,
|
|
558
|
-
errorCode
|
|
559
|
-
};
|
|
560
|
-
if (statusCode == null) {
|
|
561
|
-
const networkCode = isRecord(err) && typeof err.code === "string" ? err.code : null;
|
|
562
|
-
if (networkCode === "ECONNREFUSED" || networkCode === "ENOTFOUND" || networkCode === "EHOSTUNREACH" || networkCode === "ETIMEDOUT" || networkCode === "ECONNRESET") return {
|
|
563
|
-
kind: "network",
|
|
564
|
-
errorCode: networkCode
|
|
565
|
-
};
|
|
566
|
-
}
|
|
567
|
-
return {
|
|
568
|
-
kind: "unknown",
|
|
569
|
-
statusCode: statusCode ?? void 0,
|
|
570
|
-
retryAfterMs: retryAfterMs ?? void 0,
|
|
571
|
-
errorCode
|
|
572
|
-
};
|
|
573
|
-
}
|
|
574
|
-
/**
|
|
575
|
-
* Detect whether an error is caused by a revoked Proxy.
|
|
576
|
-
*
|
|
577
|
-
* The Bot Framework SDK wraps TurnContext in a Proxy that is revoked once the
|
|
578
|
-
* turn handler returns. Any later access (e.g. from a debounced callback)
|
|
579
|
-
* throws a TypeError whose message contains the distinctive "proxy that has
|
|
580
|
-
* been revoked" string.
|
|
581
|
-
*/
|
|
582
|
-
function isRevokedProxyError(err) {
|
|
583
|
-
if (!(err instanceof TypeError)) return false;
|
|
584
|
-
return /proxy that has been revoked/i.test(err.message);
|
|
585
|
-
}
|
|
586
|
-
function formatMSTeamsSendErrorHint(classification) {
|
|
587
|
-
if (classification.kind === "auth") return "check msteams appId/appPassword/tenantId (or env vars MSTEAMS_APP_ID/MSTEAMS_APP_PASSWORD/MSTEAMS_TENANT_ID)";
|
|
588
|
-
if (classification.errorCode === "ContentStreamNotAllowed") return "Teams expired the content stream; stop streaming earlier and fall back to normal message delivery";
|
|
589
|
-
if (classification.kind === "throttled") return "Teams throttled the bot; backing off may help";
|
|
590
|
-
if (classification.kind === "transient") return "transient Teams/Bot Framework error; retry may succeed";
|
|
591
|
-
if (classification.kind === "network") return "transport-level failure sending reply to Teams Bot Connector (smba.trafficmanager.net) — check egress firewall rules allow outbound HTTPS to smba.trafficmanager.net";
|
|
592
|
-
}
|
|
593
|
-
//#endregion
|
|
594
492
|
//#region extensions/msteams/src/user-agent.ts
|
|
595
493
|
let cachedUserAgent;
|
|
596
494
|
function resolveTeamsSdkVersion() {
|
|
@@ -612,6 +510,17 @@ function buildUserAgent() {
|
|
|
612
510
|
cachedUserAgent = `teams.ts[apps]/${resolveTeamsSdkVersion()} OpenClaw/${resolveOpenClawVersion()}`;
|
|
613
511
|
return cachedUserAgent;
|
|
614
512
|
}
|
|
513
|
+
/**
|
|
514
|
+
* User-Agent fragment for the Teams SDK App's client. The SDK's Client.clone
|
|
515
|
+
* merges this with its own `teams.ts[apps]/<sdk-version>` identifier, so we
|
|
516
|
+
* only contribute the OpenClaw piece — passing the full `buildUserAgent()`
|
|
517
|
+
* would double-print the SDK token.
|
|
518
|
+
*
|
|
519
|
+
* Format: "OpenClaw/<openclaw-version>"
|
|
520
|
+
*/
|
|
521
|
+
function buildOpenClawUserAgentFragment() {
|
|
522
|
+
return `OpenClaw/${resolveOpenClawVersion()}`;
|
|
523
|
+
}
|
|
615
524
|
function ensureUserAgentHeader(headers) {
|
|
616
525
|
const nextHeaders = new Headers(headers);
|
|
617
526
|
if (!nextHeaders.has("User-Agent")) nextHeaders.set("User-Agent", buildUserAgent());
|
|
@@ -625,48 +534,61 @@ async function loadAzureIdentity() {
|
|
|
625
534
|
azureIdentityModulePromise ??= import(AZURE_IDENTITY_MODULE);
|
|
626
535
|
return azureIdentityModulePromise;
|
|
627
536
|
}
|
|
628
|
-
let
|
|
629
|
-
async function
|
|
630
|
-
|
|
631
|
-
App:
|
|
632
|
-
|
|
537
|
+
let sdkAppPromise = null;
|
|
538
|
+
async function loadSdkModules() {
|
|
539
|
+
sdkAppPromise ??= Promise.all([import("@microsoft/teams.apps"), import("@microsoft/teams.api")]).then(([apps, api]) => ({
|
|
540
|
+
App: apps.App,
|
|
541
|
+
ExpressAdapter: apps.ExpressAdapter,
|
|
542
|
+
cloudFromName: api.cloudFromName
|
|
633
543
|
}));
|
|
634
|
-
return
|
|
544
|
+
return sdkAppPromise;
|
|
635
545
|
}
|
|
636
546
|
/**
|
|
637
|
-
*
|
|
638
|
-
*
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
* the SDK's built-in HTTP server is unnecessary. Passing this adapter via the
|
|
642
|
-
* `httpServerAdapter` option prevents the SDK from creating the default
|
|
643
|
-
* HttpPlugin (which uses the deprecated `plugins` array and registers an
|
|
644
|
-
* Express middleware with the pattern `/api*` — invalid in Express 5).
|
|
645
|
-
*
|
|
646
|
-
* See: https://github.com/openclaw/openclaw/issues/55161
|
|
647
|
-
* See: https://github.com/openclaw/openclaw/issues/60732
|
|
547
|
+
* Lazily construct an ExpressAdapter that the Teams SDK App can register its
|
|
548
|
+
* routes on. The dynamic import keeps the SDK bundle off the hot startup path
|
|
549
|
+
* when msteams is disabled; the structural return type matches what
|
|
550
|
+
* `loadMSTeamsSdkWithAuth` accepts as its `httpServerAdapter` option.
|
|
648
551
|
*/
|
|
649
|
-
function
|
|
650
|
-
|
|
552
|
+
async function createMSTeamsExpressAdapter(serverOrApp) {
|
|
553
|
+
const { ExpressAdapter } = await loadSdkModules();
|
|
554
|
+
return new ExpressAdapter(serverOrApp);
|
|
651
555
|
}
|
|
652
556
|
/**
|
|
653
557
|
* Create a Teams SDK App instance from credentials. The App manages token
|
|
654
558
|
* acquisition, JWT validation, and the HTTP server lifecycle.
|
|
655
559
|
*
|
|
656
|
-
*
|
|
657
|
-
*
|
|
560
|
+
* Auth modes:
|
|
561
|
+
* - Secret: clientId + clientSecret → MSAL client credential flow (SDK built-in)
|
|
562
|
+
* - Managed identity: clientId + managedIdentityClientId → SDK built-in MI support
|
|
563
|
+
* - Certificate: clientId + custom token provider via @azure/identity
|
|
658
564
|
*/
|
|
659
|
-
async function createMSTeamsApp(creds,
|
|
660
|
-
|
|
661
|
-
|
|
565
|
+
async function createMSTeamsApp(creds, options) {
|
|
566
|
+
const { App, cloudFromName } = await loadSdkModules();
|
|
567
|
+
const cloud = options?.cloud ?? "Public";
|
|
568
|
+
const serviceUrl = options?.serviceUrl ? normalizeBotFrameworkServiceUrl(options.serviceUrl) : void 0;
|
|
569
|
+
const appOptions = {
|
|
570
|
+
client: options?.httpClient ?? { headers: { "User-Agent": buildOpenClawUserAgentFragment() } },
|
|
571
|
+
...options?.httpServerAdapter ? { httpServerAdapter: options.httpServerAdapter } : {},
|
|
572
|
+
...options?.messagingEndpoint ? { messagingEndpoint: options.messagingEndpoint } : {},
|
|
573
|
+
cloud: cloudFromName(cloud),
|
|
574
|
+
...serviceUrl ? { serviceUrl } : {},
|
|
575
|
+
...options?.oauthDefaultConnectionName ? { oauth: { defaultConnectionName: options.oauthDefaultConnectionName } } : {}
|
|
576
|
+
};
|
|
577
|
+
if (creds.type === "federated") return createFederatedApp(creds, App, appOptions);
|
|
578
|
+
return new App({
|
|
662
579
|
clientId: creds.appId,
|
|
663
580
|
clientSecret: creds.appPassword,
|
|
664
581
|
tenantId: creds.tenantId,
|
|
665
|
-
|
|
582
|
+
...appOptions
|
|
666
583
|
});
|
|
667
584
|
}
|
|
668
|
-
function createFederatedApp(creds,
|
|
669
|
-
if (creds.useManagedIdentity) return
|
|
585
|
+
function createFederatedApp(creds, App, appOptions) {
|
|
586
|
+
if (creds.useManagedIdentity) return new App({
|
|
587
|
+
clientId: creds.appId,
|
|
588
|
+
tenantId: creds.tenantId,
|
|
589
|
+
managedIdentityClientId: creds.managedIdentityClientId ?? "system",
|
|
590
|
+
...appOptions
|
|
591
|
+
});
|
|
670
592
|
if (!creds.certificatePath) throw new Error("Federated credentials require either a certificate path or managed identity.");
|
|
671
593
|
let privateKey;
|
|
672
594
|
try {
|
|
@@ -675,9 +597,9 @@ function createFederatedApp(creds, sdk) {
|
|
|
675
597
|
const msg = err instanceof Error ? err.message : String(err);
|
|
676
598
|
throw new Error(`Failed to read certificate file at '${creds.certificatePath}': ${msg}`, { cause: err });
|
|
677
599
|
}
|
|
678
|
-
return createCertificateApp(creds, privateKey,
|
|
600
|
+
return createCertificateApp(creds, privateKey, App, appOptions);
|
|
679
601
|
}
|
|
680
|
-
function createCertificateApp(creds, privateKey,
|
|
602
|
+
function createCertificateApp(creds, privateKey, App, appOptions) {
|
|
681
603
|
let credentialPromise = null;
|
|
682
604
|
const getCredential = async () => {
|
|
683
605
|
if (!credentialPromise) credentialPromise = loadAzureIdentity().then((az) => new az.ClientCertificateCredential(creds.tenantId, creds.appId, { certificate: privateKey }));
|
|
@@ -688,438 +610,32 @@ function createCertificateApp(creds, privateKey, sdk) {
|
|
|
688
610
|
if (!token?.token) throw new Error("Failed to acquire token via certificate credential.");
|
|
689
611
|
return token.token;
|
|
690
612
|
};
|
|
691
|
-
return new
|
|
692
|
-
clientId: creds.appId,
|
|
693
|
-
tenantId: creds.tenantId,
|
|
694
|
-
token: tokenProvider,
|
|
695
|
-
httpServerAdapter: createNoOpHttpServerAdapter()
|
|
696
|
-
});
|
|
697
|
-
}
|
|
698
|
-
function createManagedIdentityApp(creds, sdk) {
|
|
699
|
-
let credentialPromise = null;
|
|
700
|
-
const getCredential = async () => {
|
|
701
|
-
if (!credentialPromise) credentialPromise = loadAzureIdentity().then((az) => creds.managedIdentityClientId ? new az.ManagedIdentityCredential(creds.managedIdentityClientId) : new az.ManagedIdentityCredential());
|
|
702
|
-
return credentialPromise;
|
|
703
|
-
};
|
|
704
|
-
const tokenProvider = async (scope) => {
|
|
705
|
-
const token = await (await getCredential()).getToken(scope);
|
|
706
|
-
if (!token?.token) throw new Error("Failed to acquire token via managed identity.");
|
|
707
|
-
return token.token;
|
|
708
|
-
};
|
|
709
|
-
return new sdk.App({
|
|
613
|
+
return new App({
|
|
710
614
|
clientId: creds.appId,
|
|
711
615
|
tenantId: creds.tenantId,
|
|
712
616
|
token: tokenProvider,
|
|
713
|
-
|
|
617
|
+
...appOptions
|
|
714
618
|
});
|
|
715
619
|
}
|
|
716
620
|
/**
|
|
717
|
-
* Build a token provider that uses the Teams SDK App
|
|
621
|
+
* Build a token provider that uses the Teams SDK App's public tokenManager
|
|
622
|
+
* for token acquisition.
|
|
718
623
|
*/
|
|
719
624
|
function createMSTeamsTokenProvider(app) {
|
|
720
|
-
|
|
721
|
-
if (
|
|
722
|
-
|
|
723
|
-
return token ? String(token) : "";
|
|
724
|
-
}
|
|
725
|
-
const token = await app.getBotToken();
|
|
726
|
-
return token ? String(token) : "";
|
|
727
|
-
} };
|
|
728
|
-
}
|
|
729
|
-
function createBotTokenGetter(app) {
|
|
730
|
-
return async () => {
|
|
731
|
-
const token = await app.getBotToken();
|
|
732
|
-
return token ? String(token) : void 0;
|
|
733
|
-
};
|
|
734
|
-
}
|
|
735
|
-
function createApiClient(sdk, serviceUrl, getToken) {
|
|
736
|
-
const normalizedServiceUrl = normalizeBotFrameworkServiceUrl(serviceUrl);
|
|
737
|
-
return new sdk.Client(normalizedServiceUrl, {
|
|
738
|
-
token: async () => await getToken() || void 0,
|
|
739
|
-
headers: { "User-Agent": buildUserAgent() }
|
|
740
|
-
});
|
|
741
|
-
}
|
|
742
|
-
function normalizeOutboundActivity(textOrActivity) {
|
|
743
|
-
return typeof textOrActivity === "string" ? {
|
|
744
|
-
type: "message",
|
|
745
|
-
text: textOrActivity
|
|
746
|
-
} : textOrActivity;
|
|
747
|
-
}
|
|
748
|
-
function createSendContext(params) {
|
|
749
|
-
const normalizedServiceUrl = tryNormalizeBotFrameworkServiceUrl(params.serviceUrl);
|
|
750
|
-
const apiClient = normalizedServiceUrl && params.conversationId ? createApiClient(params.sdk, normalizedServiceUrl, params.getToken) : void 0;
|
|
751
|
-
return {
|
|
752
|
-
async sendActivity(textOrActivity) {
|
|
753
|
-
const msg = normalizeOutboundActivity(textOrActivity);
|
|
754
|
-
if (params.treatInvokeResponseAsNoop && msg.type === "invokeResponse") return { id: "invokeResponse" };
|
|
755
|
-
if (params.serviceUrl && !normalizedServiceUrl) normalizeBotFrameworkServiceUrl(params.serviceUrl);
|
|
756
|
-
if (!apiClient || !params.conversationId) return { id: "unknown" };
|
|
757
|
-
const existingChannelData = msg.channelData && typeof msg.channelData === "object" ? msg.channelData : void 0;
|
|
758
|
-
const channelData = params.tenantId ? {
|
|
759
|
-
...existingChannelData,
|
|
760
|
-
tenant: { id: params.tenantId }
|
|
761
|
-
} : existingChannelData;
|
|
762
|
-
return await apiClient.conversations.activities(params.conversationId).create({
|
|
763
|
-
type: "message",
|
|
764
|
-
...msg,
|
|
765
|
-
...channelData ? { channelData } : {},
|
|
766
|
-
from: params.bot?.id ? {
|
|
767
|
-
id: params.bot.id,
|
|
768
|
-
name: params.bot.name ?? "",
|
|
769
|
-
role: "bot"
|
|
770
|
-
} : void 0,
|
|
771
|
-
conversation: {
|
|
772
|
-
id: params.conversationId,
|
|
773
|
-
conversationType: params.conversationType ?? "personal",
|
|
774
|
-
...params.tenantId ? { tenantId: params.tenantId } : {}
|
|
775
|
-
},
|
|
776
|
-
...params.recipientId || params.recipientAadObjectId ? { recipient: {
|
|
777
|
-
...params.recipientId ? { id: params.recipientId } : {},
|
|
778
|
-
...params.recipientAadObjectId ? { aadObjectId: params.recipientAadObjectId } : {}
|
|
779
|
-
} } : {},
|
|
780
|
-
...params.replyToActivityId && !msg.replyToId ? { replyToId: params.replyToActivityId } : {}
|
|
781
|
-
});
|
|
782
|
-
},
|
|
783
|
-
async updateActivity(activityUpdate) {
|
|
784
|
-
const nextActivity = activityUpdate;
|
|
785
|
-
const activityId = nextActivity.id;
|
|
786
|
-
if (!activityId) throw new Error("updateActivity requires an activity id");
|
|
787
|
-
if (!params.serviceUrl || !params.conversationId) return { id: "unknown" };
|
|
788
|
-
return await updateActivityViaRest({
|
|
789
|
-
serviceUrl: normalizeBotFrameworkServiceUrl(params.serviceUrl),
|
|
790
|
-
conversationId: params.conversationId,
|
|
791
|
-
activityId,
|
|
792
|
-
activity: nextActivity,
|
|
793
|
-
token: await params.getToken()
|
|
794
|
-
});
|
|
795
|
-
},
|
|
796
|
-
async deleteActivity(activityId) {
|
|
797
|
-
if (!activityId) throw new Error("deleteActivity requires an activity id");
|
|
798
|
-
if (!params.serviceUrl || !params.conversationId) return;
|
|
799
|
-
await deleteActivityViaRest({
|
|
800
|
-
serviceUrl: normalizeBotFrameworkServiceUrl(params.serviceUrl),
|
|
801
|
-
conversationId: params.conversationId,
|
|
802
|
-
activityId,
|
|
803
|
-
token: await params.getToken()
|
|
804
|
-
});
|
|
805
|
-
}
|
|
625
|
+
const tokenToString = (token) => {
|
|
626
|
+
if (token == null) return "";
|
|
627
|
+
return token.toString();
|
|
806
628
|
};
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
const conversationType = (params.activity?.conversation)?.conversationType;
|
|
812
|
-
const replyToActivityId = params.activity?.id;
|
|
813
|
-
const bot = params.activity?.recipient && typeof params.activity.recipient === "object" ? {
|
|
814
|
-
id: params.activity.recipient.id,
|
|
815
|
-
name: params.activity.recipient.name
|
|
816
|
-
} : void 0;
|
|
817
|
-
const sendContext = createSendContext({
|
|
818
|
-
sdk: params.sdk,
|
|
819
|
-
serviceUrl,
|
|
820
|
-
conversationId,
|
|
821
|
-
conversationType,
|
|
822
|
-
bot,
|
|
823
|
-
replyToActivityId,
|
|
824
|
-
getToken: params.getToken,
|
|
825
|
-
treatInvokeResponseAsNoop: true
|
|
826
|
-
});
|
|
827
|
-
return {
|
|
828
|
-
activity: params.activity,
|
|
829
|
-
...sendContext,
|
|
830
|
-
async sendActivities(activities) {
|
|
831
|
-
const results = [];
|
|
832
|
-
for (const activity of activities) results.push(await sendContext.sendActivity(activity));
|
|
833
|
-
return results;
|
|
834
|
-
}
|
|
835
|
-
};
|
|
836
|
-
}
|
|
837
|
-
/**
|
|
838
|
-
* Update an existing activity via the Bot Framework REST API.
|
|
839
|
-
* PUT /v3/conversations/{conversationId}/activities/{activityId}
|
|
840
|
-
*/
|
|
841
|
-
async function updateActivityViaRest(params) {
|
|
842
|
-
const { serviceUrl, conversationId, activityId, activity, token } = params;
|
|
843
|
-
const url = `${normalizeBotFrameworkServiceUrl(serviceUrl)}/v3/conversations/${encodeURIComponent(conversationId)}/activities/${encodeURIComponent(activityId)}`;
|
|
844
|
-
const headers = {
|
|
845
|
-
"Content-Type": "application/json",
|
|
846
|
-
"User-Agent": buildUserAgent()
|
|
847
|
-
};
|
|
848
|
-
if (token) headers.Authorization = `Bearer ${token}`;
|
|
849
|
-
const currentFetch = globalThis.fetch;
|
|
850
|
-
const { response, release } = await fetchWithSsrFGuard({
|
|
851
|
-
url,
|
|
852
|
-
fetchImpl: async (input, guardedInit) => await currentFetch(input, guardedInit),
|
|
853
|
-
init: {
|
|
854
|
-
method: "PUT",
|
|
855
|
-
headers,
|
|
856
|
-
body: JSON.stringify({
|
|
857
|
-
type: "message",
|
|
858
|
-
...activity,
|
|
859
|
-
id: activityId
|
|
860
|
-
})
|
|
861
|
-
},
|
|
862
|
-
auditContext: "msteams-update-activity",
|
|
863
|
-
policy: BOT_FRAMEWORK_SERVICE_URL_SSRF_POLICY
|
|
864
|
-
});
|
|
865
|
-
try {
|
|
866
|
-
if (!response.ok) {
|
|
867
|
-
const body = await response.text().catch(() => "");
|
|
868
|
-
throw Object.assign(/* @__PURE__ */ new Error(`updateActivity failed: HTTP ${response.status} ${body}`), { statusCode: response.status });
|
|
869
|
-
}
|
|
870
|
-
return await response.json().catch(() => ({ id: activityId }));
|
|
871
|
-
} finally {
|
|
872
|
-
await release();
|
|
873
|
-
}
|
|
874
|
-
}
|
|
875
|
-
/**
|
|
876
|
-
* Delete an existing activity via the Bot Framework REST API.
|
|
877
|
-
* DELETE /v3/conversations/{conversationId}/activities/{activityId}
|
|
878
|
-
*/
|
|
879
|
-
async function deleteActivityViaRest(params) {
|
|
880
|
-
const { serviceUrl, conversationId, activityId, token } = params;
|
|
881
|
-
const url = `${normalizeBotFrameworkServiceUrl(serviceUrl)}/v3/conversations/${encodeURIComponent(conversationId)}/activities/${encodeURIComponent(activityId)}`;
|
|
882
|
-
const headers = { "User-Agent": buildUserAgent() };
|
|
883
|
-
if (token) headers.Authorization = `Bearer ${token}`;
|
|
884
|
-
const currentFetch = globalThis.fetch;
|
|
885
|
-
const { response, release } = await fetchWithSsrFGuard({
|
|
886
|
-
url,
|
|
887
|
-
fetchImpl: async (input, guardedInit) => await currentFetch(input, guardedInit),
|
|
888
|
-
init: {
|
|
889
|
-
method: "DELETE",
|
|
890
|
-
headers
|
|
891
|
-
},
|
|
892
|
-
auditContext: "msteams-delete-activity",
|
|
893
|
-
policy: BOT_FRAMEWORK_SERVICE_URL_SSRF_POLICY
|
|
894
|
-
});
|
|
895
|
-
try {
|
|
896
|
-
if (!response.ok) {
|
|
897
|
-
const body = await response.text().catch(() => "");
|
|
898
|
-
throw Object.assign(/* @__PURE__ */ new Error(`deleteActivity failed: HTTP ${response.status} ${body}`), { statusCode: response.status });
|
|
899
|
-
}
|
|
900
|
-
} finally {
|
|
901
|
-
await release();
|
|
902
|
-
}
|
|
903
|
-
}
|
|
904
|
-
/**
|
|
905
|
-
* Build a CloudAdapter-compatible adapter using the Teams SDK REST client.
|
|
906
|
-
*
|
|
907
|
-
* This replaces the previous CloudAdapter from @microsoft/agents-hosting.
|
|
908
|
-
* For incoming requests: the App's HTTP server handles JWT validation.
|
|
909
|
-
* For proactive sends: uses the Bot Framework REST API via
|
|
910
|
-
* @microsoft/teams.api Client.
|
|
911
|
-
*/
|
|
912
|
-
function createMSTeamsAdapter(app, sdk) {
|
|
913
|
-
return {
|
|
914
|
-
async continueConversation(_appId, reference, logic) {
|
|
915
|
-
const rawServiceUrl = reference.serviceUrl;
|
|
916
|
-
if (!rawServiceUrl) throw new Error("Missing serviceUrl in conversation reference");
|
|
917
|
-
const serviceUrl = normalizeBotFrameworkServiceUrl(rawServiceUrl);
|
|
918
|
-
const conversationId = reference.conversation?.id;
|
|
919
|
-
if (!conversationId) throw new Error("Missing conversation.id in conversation reference");
|
|
920
|
-
const tenantId = reference.tenantId ?? reference.conversation?.tenantId;
|
|
921
|
-
const recipientAadObjectId = reference.aadObjectId ?? reference.user?.aadObjectId;
|
|
922
|
-
const recipientId = reference.user?.id;
|
|
923
|
-
await logic(createSendContext({
|
|
924
|
-
sdk,
|
|
925
|
-
serviceUrl,
|
|
926
|
-
conversationId,
|
|
927
|
-
conversationType: reference.conversation?.conversationType,
|
|
928
|
-
bot: reference.agent ?? void 0,
|
|
929
|
-
getToken: createBotTokenGetter(app),
|
|
930
|
-
tenantId,
|
|
931
|
-
recipientId,
|
|
932
|
-
recipientAadObjectId
|
|
933
|
-
}));
|
|
934
|
-
},
|
|
935
|
-
async process(req, res, logic) {
|
|
936
|
-
const request = req;
|
|
937
|
-
const response = res;
|
|
938
|
-
const activity = request.body;
|
|
939
|
-
const isInvoke = activity?.type === "invoke";
|
|
940
|
-
try {
|
|
941
|
-
const context = createProcessContext({
|
|
942
|
-
sdk,
|
|
943
|
-
activity,
|
|
944
|
-
getToken: createBotTokenGetter(app)
|
|
945
|
-
});
|
|
946
|
-
if (isInvoke) response.status(200).send();
|
|
947
|
-
await logic(context);
|
|
948
|
-
if (!isInvoke) response.status(200).send();
|
|
949
|
-
} catch (err) {
|
|
950
|
-
if (!isInvoke) response.status(500).send({ error: formatUnknownError(err) });
|
|
951
|
-
}
|
|
952
|
-
},
|
|
953
|
-
async updateActivity(_context, _activity) {},
|
|
954
|
-
async deleteActivity(_context, _reference) {}
|
|
955
|
-
};
|
|
956
|
-
}
|
|
957
|
-
async function loadMSTeamsSdkWithAuth(creds) {
|
|
958
|
-
const sdk = await loadMSTeamsSdk();
|
|
959
|
-
return {
|
|
960
|
-
sdk,
|
|
961
|
-
app: await createMSTeamsApp(creds, sdk)
|
|
962
|
-
};
|
|
963
|
-
}
|
|
964
|
-
/**
|
|
965
|
-
* Bot Framework issuer → JWKS mapping.
|
|
966
|
-
* During Microsoft's transition, inbound service tokens can be signed by either
|
|
967
|
-
* the legacy Bot Framework issuer or the Entra issuer. Each gets its own JWKS
|
|
968
|
-
* endpoint so we verify signatures with the correct key set.
|
|
969
|
-
*/
|
|
970
|
-
const BOT_FRAMEWORK_ISSUERS = [
|
|
971
|
-
{
|
|
972
|
-
issuer: "https://api.botframework.com",
|
|
973
|
-
jwksUri: "https://login.botframework.com/v1/.well-known/keys"
|
|
974
|
-
},
|
|
975
|
-
{
|
|
976
|
-
issuer: (tenantId) => `https://login.microsoftonline.com/${tenantId}/v2.0`,
|
|
977
|
-
jwksUri: "https://login.microsoftonline.com/common/discovery/v2.0/keys"
|
|
978
|
-
},
|
|
979
|
-
{
|
|
980
|
-
issuer: (tenantId) => `https://sts.windows.net/${tenantId}/`,
|
|
981
|
-
jwksUri: "https://login.microsoftonline.com/common/discovery/v2.0/keys"
|
|
982
|
-
}
|
|
983
|
-
];
|
|
984
|
-
const BOT_FRAMEWORK_GLOBAL_AUDIENCE = "https://api.botframework.com";
|
|
985
|
-
function isJwtPayloadObject(value) {
|
|
986
|
-
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
987
|
-
}
|
|
988
|
-
function getAudienceClaims(payload) {
|
|
989
|
-
if (!isJwtPayloadObject(payload)) return [];
|
|
990
|
-
const audience = payload.aud;
|
|
991
|
-
if (typeof audience === "string") {
|
|
992
|
-
const trimmed = audience.trim();
|
|
993
|
-
return trimmed ? [trimmed] : [];
|
|
994
|
-
}
|
|
995
|
-
if (Array.isArray(audience)) return normalizeStringEntries(audience.filter((value) => typeof value === "string"));
|
|
996
|
-
return [];
|
|
997
|
-
}
|
|
998
|
-
function normalizeBotIdentityClaim(value) {
|
|
999
|
-
if (typeof value !== "string") return null;
|
|
1000
|
-
return value.trim().toLowerCase() || null;
|
|
1001
|
-
}
|
|
1002
|
-
function hasExpectedBotIdentity(payload, expectedAppId) {
|
|
1003
|
-
if (!isJwtPayloadObject(payload)) return false;
|
|
1004
|
-
const expected = normalizeBotIdentityClaim(expectedAppId);
|
|
1005
|
-
if (!expected) return false;
|
|
1006
|
-
return normalizeBotIdentityClaim(payload.appid) === expected || normalizeBotIdentityClaim(payload.azp) === expected;
|
|
1007
|
-
}
|
|
1008
|
-
let botFrameworkJwtDepsPromise = null;
|
|
1009
|
-
function hasDefaultExport(value) {
|
|
1010
|
-
return !!value && typeof value === "object" && "default" in value;
|
|
1011
|
-
}
|
|
1012
|
-
function isJsonwebtokenRuntime(value) {
|
|
1013
|
-
return !!value && typeof value === "object" && typeof value.decode === "function" && typeof value.verify === "function";
|
|
1014
|
-
}
|
|
1015
|
-
function loadJsonwebtokenRuntime(jwtModule) {
|
|
1016
|
-
const jwt = hasDefaultExport(jwtModule) ? jwtModule.default ?? jwtModule : jwtModule;
|
|
1017
|
-
if (!isJsonwebtokenRuntime(jwt)) throw new Error("jsonwebtoken did not export decode/verify");
|
|
1018
|
-
return jwt;
|
|
1019
|
-
}
|
|
1020
|
-
function isJwksClientRuntime(value) {
|
|
1021
|
-
return typeof value === "function";
|
|
1022
|
-
}
|
|
1023
|
-
function loadJwksClientRuntime(jwksModule) {
|
|
1024
|
-
const direct = jwksModule && typeof jwksModule === "object" ? jwksModule.JwksClient : void 0;
|
|
1025
|
-
const fallback = hasDefaultExport(jwksModule) && jwksModule.default && typeof jwksModule.default === "object" ? jwksModule.default.JwksClient : void 0;
|
|
1026
|
-
const JwksClient = direct ?? fallback;
|
|
1027
|
-
if (!isJwksClientRuntime(JwksClient)) throw new Error("jwks-rsa did not export JwksClient");
|
|
1028
|
-
return JwksClient;
|
|
1029
|
-
}
|
|
1030
|
-
async function loadBotFrameworkJwtDeps() {
|
|
1031
|
-
botFrameworkJwtDepsPromise ??= Promise.all([import("jsonwebtoken"), import("jwks-rsa")]).then(([jwtModule, jwksModule]) => {
|
|
1032
|
-
return {
|
|
1033
|
-
jwt: loadJsonwebtokenRuntime(jwtModule),
|
|
1034
|
-
JwksClient: loadJwksClientRuntime(jwksModule)
|
|
1035
|
-
};
|
|
1036
|
-
});
|
|
1037
|
-
return botFrameworkJwtDepsPromise;
|
|
1038
|
-
}
|
|
1039
|
-
/**
|
|
1040
|
-
* Create a Bot Framework JWT validator using jsonwebtoken + jwks-rsa directly.
|
|
1041
|
-
*
|
|
1042
|
-
* The @microsoft/teams.apps JwtValidator hardcodes audience to [clientId, api://clientId],
|
|
1043
|
-
* which rejects valid Bot Framework tokens that carry aud: "https://api.botframework.com".
|
|
1044
|
-
* This implementation uses jsonwebtoken directly with the correct audience list, matching
|
|
1045
|
-
* the behavior of the legacy @microsoft/agents-hosting authorizeJWT middleware.
|
|
1046
|
-
*
|
|
1047
|
-
* Security invariants:
|
|
1048
|
-
* - signature verification via issuer-specific JWKS endpoints
|
|
1049
|
-
* - audience validation: appId, api://appId, and https://api.botframework.com
|
|
1050
|
-
* - issuer validation: strict allowlist (Bot Framework + tenant-scoped Entra)
|
|
1051
|
-
* - expiration validation with 5-minute clock tolerance
|
|
1052
|
-
*/
|
|
1053
|
-
async function createBotFrameworkJwtValidator(creds) {
|
|
1054
|
-
const { jwt, JwksClient } = await loadBotFrameworkJwtDeps();
|
|
1055
|
-
const allowedAudiences = [
|
|
1056
|
-
creds.appId,
|
|
1057
|
-
`api://${creds.appId}`,
|
|
1058
|
-
BOT_FRAMEWORK_GLOBAL_AUDIENCE
|
|
1059
|
-
];
|
|
1060
|
-
const allowedIssuers = BOT_FRAMEWORK_ISSUERS.map((entry) => typeof entry.issuer === "function" ? entry.issuer(creds.tenantId) : entry.issuer);
|
|
1061
|
-
const jwksClients = /* @__PURE__ */ new Map();
|
|
1062
|
-
function getJwksClient(uri) {
|
|
1063
|
-
let client = jwksClients.get(uri);
|
|
1064
|
-
if (!client) {
|
|
1065
|
-
client = new JwksClient({
|
|
1066
|
-
jwksUri: uri,
|
|
1067
|
-
cache: true,
|
|
1068
|
-
cacheMaxAge: 6e5,
|
|
1069
|
-
rateLimit: true
|
|
1070
|
-
});
|
|
1071
|
-
jwksClients.set(uri, client);
|
|
1072
|
-
}
|
|
1073
|
-
return client;
|
|
1074
|
-
}
|
|
1075
|
-
/** Decode the token header without verification to determine the kid. */
|
|
1076
|
-
function decodeHeader(token) {
|
|
1077
|
-
const decoded = jwt.decode(token, { complete: true });
|
|
1078
|
-
return decoded && typeof decoded === "object" ? decoded.header : null;
|
|
1079
|
-
}
|
|
1080
|
-
/** Resolve the issuer entry for a token's issuer claim (pre-verification). */
|
|
1081
|
-
function resolveIssuerEntry(issuerClaim) {
|
|
1082
|
-
if (!issuerClaim) return;
|
|
1083
|
-
return BOT_FRAMEWORK_ISSUERS.find((entry) => {
|
|
1084
|
-
return (typeof entry.issuer === "function" ? entry.issuer(creds.tenantId) : entry.issuer) === issuerClaim;
|
|
1085
|
-
});
|
|
1086
|
-
}
|
|
1087
|
-
return { async validate(authHeader, _serviceUrl) {
|
|
1088
|
-
const token = authHeader.startsWith("Bearer ") ? authHeader.slice(7) : authHeader;
|
|
1089
|
-
if (!token) return false;
|
|
1090
|
-
const header = decodeHeader(token);
|
|
1091
|
-
const unverifiedPayload = jwt.decode(token);
|
|
1092
|
-
if (!header?.kid || !isJwtPayloadObject(unverifiedPayload) || typeof unverifiedPayload.iss !== "string") return false;
|
|
1093
|
-
const issuerEntry = resolveIssuerEntry(unverifiedPayload.iss);
|
|
1094
|
-
if (!issuerEntry) return false;
|
|
1095
|
-
const client = getJwksClient(issuerEntry.jwksUri);
|
|
1096
|
-
try {
|
|
1097
|
-
const publicKey = (await client.getSigningKey(header.kid)).getPublicKey();
|
|
1098
|
-
const verifiedPayload = jwt.verify(token, publicKey, {
|
|
1099
|
-
audience: allowedAudiences,
|
|
1100
|
-
issuer: allowedIssuers,
|
|
1101
|
-
algorithms: ["RS256"],
|
|
1102
|
-
clockTolerance: 300
|
|
1103
|
-
});
|
|
1104
|
-
if (!isJwtPayloadObject(verifiedPayload)) return false;
|
|
1105
|
-
if (getAudienceClaims(verifiedPayload).includes(BOT_FRAMEWORK_GLOBAL_AUDIENCE) && !hasExpectedBotIdentity(verifiedPayload, creds.appId)) return false;
|
|
1106
|
-
return true;
|
|
1107
|
-
} catch (err) {
|
|
1108
|
-
if (isJwksNetworkError(err)) throw err;
|
|
1109
|
-
return false;
|
|
629
|
+
return { async getAccessToken(scope) {
|
|
630
|
+
if (scope.includes("graph.microsoft.com") || scope.includes("graph.microsoft.us") || scope.includes("microsoftgraph.chinacloudapi.cn")) {
|
|
631
|
+
if (app.cloud?.graphScope?.includes("microsoftgraph.chinacloudapi.cn")) throw new Error("Microsoft Teams Graph operations are not supported for channels.msteams.cloud=China until Graph requests are routed through the Azure China Graph endpoint.");
|
|
632
|
+
return tokenToString(await app.tokenManager.getGraphToken());
|
|
1110
633
|
}
|
|
634
|
+
return tokenToString(await app.tokenManager.getBotToken());
|
|
1111
635
|
} };
|
|
1112
636
|
}
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
* the JWKS endpoint (DNS resolution, connection refused, TLS handshake, etc.)
|
|
1116
|
-
* rather than from token verification logic.
|
|
1117
|
-
*/
|
|
1118
|
-
function isJwksNetworkError(err) {
|
|
1119
|
-
if (!(err instanceof Error)) return false;
|
|
1120
|
-
const code = err.code;
|
|
1121
|
-
if (code === "ECONNREFUSED" || code === "ENOTFOUND" || code === "EHOSTUNREACH" || code === "ETIMEDOUT" || code === "ECONNRESET") return true;
|
|
1122
|
-
return /jwks|key fetch|getSigningKey/i.test(err.message) && /network|fetch|connect/i.test(err.message);
|
|
637
|
+
async function loadMSTeamsSdkWithAuth(creds, options) {
|
|
638
|
+
return { app: await createMSTeamsApp(creds, options) };
|
|
1123
639
|
}
|
|
1124
640
|
//#endregion
|
|
1125
641
|
//#region extensions/msteams/src/token-response.ts
|
|
@@ -1245,7 +761,7 @@ async function requestGraph(params) {
|
|
|
1245
761
|
const hasBody = params.body !== void 0;
|
|
1246
762
|
const url = `${params.root ?? "https://graph.microsoft.com/v1.0"}${params.path}`;
|
|
1247
763
|
const currentFetch = globalThis.fetch;
|
|
1248
|
-
const { response, release } = await fetchWithSsrFGuard
|
|
764
|
+
const { response, release } = await fetchWithSsrFGuard({
|
|
1249
765
|
url,
|
|
1250
766
|
fetchImpl: async (input, guardedInit) => await currentFetch(input, guardedInit),
|
|
1251
767
|
init: {
|
|
@@ -1261,10 +777,7 @@ async function requestGraph(params) {
|
|
|
1261
777
|
auditContext: "msteams.graph"
|
|
1262
778
|
});
|
|
1263
779
|
try {
|
|
1264
|
-
if (!response.ok) {
|
|
1265
|
-
const text = await response.text().catch(() => "");
|
|
1266
|
-
throw new Error(`${params.errorPrefix ?? "Graph"} ${params.path} failed (${response.status}): ${text || "unknown error"}`);
|
|
1267
|
-
}
|
|
780
|
+
if (!response.ok) throw await createMSTeamsHttpError(response, `${params.errorPrefix ?? "Graph"} ${params.path} failed`);
|
|
1268
781
|
const body = NULL_BODY_STATUSES.has(response.status) ? null : await response.arrayBuffer();
|
|
1269
782
|
return new Response(body, {
|
|
1270
783
|
status: response.status,
|
|
@@ -1293,7 +806,7 @@ async function fetchGraphJson(params) {
|
|
|
1293
806
|
* pagination URLs) without prepending GRAPH_ROOT.
|
|
1294
807
|
*/
|
|
1295
808
|
async function fetchGraphAbsoluteUrl(params) {
|
|
1296
|
-
const { response, release } = await fetchWithSsrFGuard
|
|
809
|
+
const { response, release } = await fetchWithSsrFGuard({
|
|
1297
810
|
url: params.url,
|
|
1298
811
|
init: { headers: {
|
|
1299
812
|
"User-Agent": buildUserAgent(),
|
|
@@ -1303,10 +816,7 @@ async function fetchGraphAbsoluteUrl(params) {
|
|
|
1303
816
|
auditContext: "msteams.graph.absolute"
|
|
1304
817
|
});
|
|
1305
818
|
try {
|
|
1306
|
-
if (!response.ok) {
|
|
1307
|
-
const text = await response.text().catch(() => "");
|
|
1308
|
-
throw new Error(`Graph ${params.url} failed (${response.status}): ${text || "unknown error"}`);
|
|
1309
|
-
}
|
|
819
|
+
if (!response.ok) throw await createMSTeamsHttpError(response, `Graph ${params.url} failed`);
|
|
1310
820
|
return await readProviderJsonResponse(response, `Graph ${params.url} failed`);
|
|
1311
821
|
} finally {
|
|
1312
822
|
await release();
|
|
@@ -1352,6 +862,7 @@ async function resolveGraphToken(cfg, options) {
|
|
|
1352
862
|
const msteamsCfg = cfg?.channels?.msteams;
|
|
1353
863
|
const creds = resolveMSTeamsCredentials(msteamsCfg);
|
|
1354
864
|
if (!creds) throw new Error("MS Teams credentials missing");
|
|
865
|
+
if (msteamsCfg?.cloud === "China") throw new Error("Microsoft Teams Graph operations are not supported for channels.msteams.cloud=China until Graph requests are routed through the Azure China Graph endpoint.");
|
|
1355
866
|
if (options?.preferDelegated && msteamsCfg?.delegatedAuth?.enabled && creds.type === "secret") {
|
|
1356
867
|
const delegated = await resolveDelegatedAccessToken({
|
|
1357
868
|
tenantId: creds.tenantId,
|
|
@@ -1360,7 +871,7 @@ async function resolveGraphToken(cfg, options) {
|
|
|
1360
871
|
});
|
|
1361
872
|
if (delegated) return delegated;
|
|
1362
873
|
}
|
|
1363
|
-
const { app } = await loadMSTeamsSdkWithAuth(creds);
|
|
874
|
+
const { app } = await loadMSTeamsSdkWithAuth(creds, resolveMSTeamsSdkCloudOptions(msteamsCfg));
|
|
1364
875
|
const accessToken = readAccessToken(await createMSTeamsTokenProvider(app).getAccessToken("https://graph.microsoft.com"));
|
|
1365
876
|
if (!accessToken) throw new Error("MS Teams graph token unavailable");
|
|
1366
877
|
return accessToken;
|
|
@@ -1441,4 +952,168 @@ async function searchGraphUsers(params) {
|
|
|
1441
952
|
})).value ?? [];
|
|
1442
953
|
}
|
|
1443
954
|
//#endregion
|
|
1444
|
-
|
|
955
|
+
//#region extensions/msteams/src/errors.ts
|
|
956
|
+
function formatUnknownError(err) {
|
|
957
|
+
if (err instanceof Error) return err.message;
|
|
958
|
+
if (typeof err === "string") return err;
|
|
959
|
+
if (err === null) return "null";
|
|
960
|
+
if (err === void 0) return "undefined";
|
|
961
|
+
if (typeof err === "number" || typeof err === "boolean" || typeof err === "bigint") return String(err);
|
|
962
|
+
if (typeof err === "symbol") return err.description ?? err.toString();
|
|
963
|
+
if (typeof err === "function") return err.name ? `[function ${err.name}]` : "[function]";
|
|
964
|
+
try {
|
|
965
|
+
return JSON.stringify(err) ?? "unknown error";
|
|
966
|
+
} catch {
|
|
967
|
+
return "unknown error";
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
function extractStatusCode(err) {
|
|
971
|
+
if (!isRecord(err)) return null;
|
|
972
|
+
const parseStatusCode = (value) => {
|
|
973
|
+
if (typeof value === "number") return Number.isInteger(value) && value >= 100 && value <= 599 ? value : null;
|
|
974
|
+
if (typeof value === "string") {
|
|
975
|
+
const trimmed = value.trim();
|
|
976
|
+
if (!/^\d{3}$/.test(trimmed)) return null;
|
|
977
|
+
const parsed = Number(trimmed);
|
|
978
|
+
return parsed >= 100 && parsed <= 599 ? parsed : null;
|
|
979
|
+
}
|
|
980
|
+
return null;
|
|
981
|
+
};
|
|
982
|
+
const directStatus = parseStatusCode(err.statusCode ?? err.status);
|
|
983
|
+
if (directStatus !== null) return directStatus;
|
|
984
|
+
const response = err.response;
|
|
985
|
+
if (isRecord(response)) {
|
|
986
|
+
const responseStatus = parseStatusCode(response.status);
|
|
987
|
+
if (responseStatus !== null) return responseStatus;
|
|
988
|
+
}
|
|
989
|
+
return null;
|
|
990
|
+
}
|
|
991
|
+
function extractErrorCode(err) {
|
|
992
|
+
if (!isRecord(err)) return null;
|
|
993
|
+
const direct = err.code;
|
|
994
|
+
if (typeof direct === "string" && direct.trim()) return direct;
|
|
995
|
+
const response = err.response;
|
|
996
|
+
if (!isRecord(response)) return null;
|
|
997
|
+
const body = response.body;
|
|
998
|
+
if (isRecord(body)) {
|
|
999
|
+
const error = body.error;
|
|
1000
|
+
if (isRecord(error) && typeof error.code === "string" && error.code.trim()) return error.code;
|
|
1001
|
+
}
|
|
1002
|
+
return null;
|
|
1003
|
+
}
|
|
1004
|
+
function extractRetryAfterMs(err) {
|
|
1005
|
+
if (!isRecord(err)) return null;
|
|
1006
|
+
const direct = err.retryAfterMs ?? err.retry_after_ms;
|
|
1007
|
+
if (typeof direct === "number" && Number.isFinite(direct) && direct >= 0) return direct;
|
|
1008
|
+
const retryAfter = err.retryAfter ?? err.retry_after;
|
|
1009
|
+
if (typeof retryAfter === "number" && Number.isFinite(retryAfter)) return retryAfter >= 0 ? retryAfter * 1e3 : null;
|
|
1010
|
+
if (typeof retryAfter === "string") {
|
|
1011
|
+
const parsed = parseNonNegativeRetryAfterSeconds(retryAfter);
|
|
1012
|
+
if (Number.isFinite(parsed) && parsed >= 0) return parsed * 1e3;
|
|
1013
|
+
}
|
|
1014
|
+
const response = err.response;
|
|
1015
|
+
if (!isRecord(response)) return null;
|
|
1016
|
+
const headers = response.headers;
|
|
1017
|
+
if (!headers) return null;
|
|
1018
|
+
if (isRecord(headers)) {
|
|
1019
|
+
const raw = headers["retry-after"] ?? headers["Retry-After"];
|
|
1020
|
+
if (typeof raw === "string") {
|
|
1021
|
+
const parsed = parseNonNegativeRetryAfterSeconds(raw);
|
|
1022
|
+
if (Number.isFinite(parsed) && parsed >= 0) return parsed * 1e3;
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
if (typeof headers === "object" && headers !== null && "get" in headers && typeof headers.get === "function") {
|
|
1026
|
+
const raw = headers.get("retry-after");
|
|
1027
|
+
if (raw) {
|
|
1028
|
+
const parsed = parseNonNegativeRetryAfterSeconds(raw);
|
|
1029
|
+
if (Number.isFinite(parsed) && parsed >= 0) return parsed * 1e3;
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
return null;
|
|
1033
|
+
}
|
|
1034
|
+
function parseNonNegativeRetryAfterSeconds(raw) {
|
|
1035
|
+
const trimmed = raw.trim();
|
|
1036
|
+
if (!/^\d+(?:\.\d+)?$/.test(trimmed)) return NaN;
|
|
1037
|
+
return Number(trimmed);
|
|
1038
|
+
}
|
|
1039
|
+
/**
|
|
1040
|
+
* Classify outbound send errors for safe retries and actionable logs.
|
|
1041
|
+
*
|
|
1042
|
+
* Important: We only mark errors as retryable when we have an explicit HTTP
|
|
1043
|
+
* status code that indicates the message was not accepted (e.g. 429, 5xx).
|
|
1044
|
+
* For transport-level errors where delivery is ambiguous, we prefer to avoid
|
|
1045
|
+
* retries to reduce the chance of duplicate posts.
|
|
1046
|
+
*/
|
|
1047
|
+
function classifyMSTeamsSendError(err) {
|
|
1048
|
+
const statusCode = extractStatusCode(err);
|
|
1049
|
+
const retryAfterMs = extractRetryAfterMs(err);
|
|
1050
|
+
const errorCode = extractErrorCode(err) ?? void 0;
|
|
1051
|
+
if (statusCode === 401) return {
|
|
1052
|
+
kind: "auth",
|
|
1053
|
+
statusCode,
|
|
1054
|
+
errorCode
|
|
1055
|
+
};
|
|
1056
|
+
if (statusCode === 403) {
|
|
1057
|
+
if (errorCode === "ContentStreamNotAllowed") return {
|
|
1058
|
+
kind: "permanent",
|
|
1059
|
+
statusCode,
|
|
1060
|
+
errorCode
|
|
1061
|
+
};
|
|
1062
|
+
return {
|
|
1063
|
+
kind: "auth",
|
|
1064
|
+
statusCode,
|
|
1065
|
+
errorCode
|
|
1066
|
+
};
|
|
1067
|
+
}
|
|
1068
|
+
if (statusCode === 429) return {
|
|
1069
|
+
kind: "throttled",
|
|
1070
|
+
statusCode,
|
|
1071
|
+
retryAfterMs: retryAfterMs ?? void 0,
|
|
1072
|
+
errorCode
|
|
1073
|
+
};
|
|
1074
|
+
if (statusCode === 408 || statusCode != null && statusCode >= 500) return {
|
|
1075
|
+
kind: "transient",
|
|
1076
|
+
statusCode,
|
|
1077
|
+
retryAfterMs: retryAfterMs ?? void 0,
|
|
1078
|
+
errorCode
|
|
1079
|
+
};
|
|
1080
|
+
if (statusCode != null && statusCode >= 400) return {
|
|
1081
|
+
kind: "permanent",
|
|
1082
|
+
statusCode,
|
|
1083
|
+
errorCode
|
|
1084
|
+
};
|
|
1085
|
+
if (statusCode == null) {
|
|
1086
|
+
const networkCode = isRecord(err) && typeof err.code === "string" ? err.code : null;
|
|
1087
|
+
if (networkCode === "ECONNREFUSED" || networkCode === "ENOTFOUND" || networkCode === "EHOSTUNREACH" || networkCode === "ETIMEDOUT" || networkCode === "ECONNRESET") return {
|
|
1088
|
+
kind: "network",
|
|
1089
|
+
errorCode: networkCode
|
|
1090
|
+
};
|
|
1091
|
+
}
|
|
1092
|
+
return {
|
|
1093
|
+
kind: "unknown",
|
|
1094
|
+
statusCode: statusCode ?? void 0,
|
|
1095
|
+
retryAfterMs: retryAfterMs ?? void 0,
|
|
1096
|
+
errorCode
|
|
1097
|
+
};
|
|
1098
|
+
}
|
|
1099
|
+
/**
|
|
1100
|
+
* Detect whether an error is caused by a revoked Proxy.
|
|
1101
|
+
*
|
|
1102
|
+
* The Bot Framework SDK wraps TurnContext in a Proxy that is revoked once the
|
|
1103
|
+
* turn handler returns. Any later access (e.g. from a debounced callback)
|
|
1104
|
+
* throws a TypeError whose message contains the distinctive "proxy that has
|
|
1105
|
+
* been revoked" string.
|
|
1106
|
+
*/
|
|
1107
|
+
function isRevokedProxyError(err) {
|
|
1108
|
+
if (!(err instanceof TypeError)) return false;
|
|
1109
|
+
return /proxy that has been revoked/i.test(err.message);
|
|
1110
|
+
}
|
|
1111
|
+
function formatMSTeamsSendErrorHint(classification) {
|
|
1112
|
+
if (classification.kind === "auth") return "check msteams appId/appPassword/tenantId (or env vars MSTEAMS_APP_ID/MSTEAMS_APP_PASSWORD/MSTEAMS_TENANT_ID)";
|
|
1113
|
+
if (classification.errorCode === "ContentStreamNotAllowed") return "Teams expired the content stream; stop streaming earlier and fall back to normal message delivery";
|
|
1114
|
+
if (classification.kind === "throttled") return "Teams throttled the bot; backing off may help";
|
|
1115
|
+
if (classification.kind === "transient") return "transient Teams/Bot Framework error; retry may succeed";
|
|
1116
|
+
if (classification.kind === "network") return "transport-level failure sending reply to Teams Bot Connector (smba.trafficmanager.net) — check egress firewall rules allow outbound HTTPS to smba.trafficmanager.net";
|
|
1117
|
+
}
|
|
1118
|
+
//#endregion
|
|
1119
|
+
export { safeFetchWithPolicy as $, isAllowedBotFrameworkServiceUrl as A, estimateBase64DecodedBytes as B, readAccessToken as C, buildUserAgent as D, loadMSTeamsSdkWithAuth as E, ATTACHMENT_TAG_RE as F, isLikelyImageAttachment as G, extractInlineImageCandidates as H, GRAPH_ROOT as I, normalizeContentType as J, isRecord$1 as K, IMG_SRC_RE as L, tryNormalizeBotFrameworkServiceUrl as M, resolveMSTeamsSdkCloudOptions as N, ensureUserAgentHeader as O, validateMSTeamsProactiveServiceUrlBoundary as P, resolveRequestUrl as Q, applyAuthorizationHeaderForUrl as R, normalizeSecretInputString as S, createMSTeamsTokenProvider as T, inferPlaceholder as U, extractHtmlFromAttachment as V, isDownloadableAttachment as W, resolveAttachmentFetchPolicy as X, readNestedString as Y, resolveMediaSsrfPolicy as Z, hasConfiguredMSTeamsCredentials as _, searchGraphUsers as a, saveDelegatedTokens as b, fetchGraphAbsoluteUrl as c, listTeamsByName as d, safeHostForUrl as et, normalizeQuery as f, resolveGraphToken as g, postGraphJson as h, isRevokedProxyError as i, normalizeBotFrameworkServiceUrl as j, describeBotFrameworkServiceUrlHost as k, fetchGraphJson as l, postGraphBetaJson as m, formatMSTeamsSendErrorHint as n, deleteGraphRequest as o, patchGraphJson as p, isUrlAllowed as q, formatUnknownError as r, escapeOData as s, classifyMSTeamsSendError as t, tryBuildGraphSharesUrlForSharedLink as tt, listChannelsForTeam as u, loadDelegatedTokens as v, createMSTeamsExpressAdapter as w, resolveMSTeamsStorePath as x, resolveMSTeamsCredentials as y, encodeGraphShareId as z };
|