botbuilder
Advanced tools
Comparing version
@@ -25,3 +25,3 @@ import { MicrosoftAppCredentials } from 'botframework-connector'; | ||
* | ||
* @obsolete This class will be removed in a future version of the framework. | ||
* @deprecated This class will be removed in a future version of the framework. | ||
*/ | ||
@@ -111,3 +111,3 @@ export declare class InspectionMiddleware extends InterceptionMiddleware { | ||
* | ||
* @obsolete This class will be removed in a future version of the framework. | ||
* @deprecated This class will be removed in a future version of the framework. | ||
*/ | ||
@@ -114,0 +114,0 @@ export declare class InspectionState extends BotState { |
@@ -8,3 +8,4 @@ /** | ||
*/ | ||
import { ActivityHandler, AdaptiveCardInvokeResponse, AppBasedLinkQuery, ChannelInfo, FileConsentCardResponse, InvokeResponse, MeetingStartEventDetails, MeetingEndEventDetails, MessagingExtensionAction, MessagingExtensionActionResponse, MessagingExtensionQuery, MessagingExtensionResponse, O365ConnectorCardActionQuery, SigninStateVerificationQuery, TabRequest, TabResponse, TabSubmit, TaskModuleRequest, TaskModuleResponse, TeamsChannelAccount, TeamInfo, TurnContext } from 'botbuilder-core'; | ||
import { ActivityHandler, AppBasedLinkQuery, ChannelInfo, FileConsentCardResponse, InvokeResponse, MeetingStartEventDetails, MeetingEndEventDetails, MessagingExtensionAction, MessagingExtensionActionResponse, MessagingExtensionQuery, MessagingExtensionResponse, O365ConnectorCardActionQuery, SigninStateVerificationQuery, TabRequest, TabResponse, TabSubmit, TaskModuleRequest, TaskModuleResponse, TeamsChannelAccount, TeamInfo, TurnContext } from 'botbuilder-core'; | ||
import { ReadReceiptInfo } from 'botframework-connector'; | ||
/** | ||
@@ -227,9 +228,2 @@ * Adds support for Microsoft Teams specific events and interactions. | ||
/** | ||
* Receives invoke activities with the name 'adaptiveCard/action' | ||
* | ||
* @param _context A context object for this turn. | ||
* @returns The Messaging Extension Action Response for the query. | ||
*/ | ||
protected handleAdaptiveCardAction(_context: TurnContext): Promise<AdaptiveCardInvokeResponse>; | ||
/** | ||
* Receives invoke activities with the name 'composeExtension/setting' | ||
@@ -475,2 +469,10 @@ * | ||
/** | ||
* Invoked when a read receipt for a previously sent message is received from the connector. | ||
* Override this in a derived class to provide logic for when the bot receives a read receipt event. | ||
* | ||
* @param context The context for this turn. | ||
* @returns A promise that represents the work queued. | ||
*/ | ||
protected onTeamsReadReceipt(context: TurnContext): Promise<void>; | ||
/** | ||
* Registers a handler for when a Teams meeting starts. | ||
@@ -489,3 +491,10 @@ * | ||
onTeamsMeetingEndEvent(handler: (meeting: MeetingEndEventDetails, context: TurnContext, next: () => Promise<void>) => Promise<void>): this; | ||
/** | ||
* Registers a handler for when a Read Receipt is sent. | ||
* | ||
* @param handler A callback that handles Read Receipt events. | ||
* @returns A promise that represents the work queued. | ||
*/ | ||
onTeamsReadReceiptEvent(handler: (receiptInfo: ReadReceiptInfo, context: TurnContext, next: () => Promise<void>) => Promise<void>): this; | ||
} | ||
//# sourceMappingURL=teamsActivityHandler.d.ts.map |
@@ -10,2 +10,9 @@ /** | ||
/** | ||
* Gets the Team's selected channel id from the current activity. | ||
* | ||
* @param activity The current [Activity](xref:botframework-schema.Activity). | ||
* @returns The current activity's team's selected channel, or empty string. | ||
*/ | ||
export declare function teamsGetSelectedChannelId(activity: Activity): string; | ||
/** | ||
* Gets the TeamsMeetingInfo object from the current [Activity](xref:botframework-schema.Activity). | ||
@@ -12,0 +19,0 @@ * |
@@ -25,3 +25,3 @@ import { MicrosoftAppCredentials } from 'botframework-connector'; | ||
* | ||
* @obsolete This class will be removed in a future version of the framework. | ||
* @deprecated This class will be removed in a future version of the framework. | ||
*/ | ||
@@ -111,3 +111,3 @@ export declare class InspectionMiddleware extends InterceptionMiddleware { | ||
* | ||
* @obsolete This class will be removed in a future version of the framework. | ||
* @deprecated This class will be removed in a future version of the framework. | ||
*/ | ||
@@ -114,0 +114,0 @@ export declare class InspectionState extends BotState { |
@@ -161,3 +161,3 @@ "use strict"; | ||
* | ||
* @obsolete This class will be removed in a future version of the framework. | ||
* @deprecated This class will be removed in a future version of the framework. | ||
*/ | ||
@@ -408,3 +408,3 @@ class InspectionMiddleware extends InterceptionMiddleware { | ||
* | ||
* @obsolete This class will be removed in a future version of the framework. | ||
* @deprecated This class will be removed in a future version of the framework. | ||
*/ | ||
@@ -411,0 +411,0 @@ class InspectionState extends botbuilder_core_1.BotState { |
@@ -8,3 +8,4 @@ /** | ||
*/ | ||
import { ActivityHandler, AdaptiveCardInvokeResponse, AppBasedLinkQuery, ChannelInfo, FileConsentCardResponse, InvokeResponse, MeetingStartEventDetails, MeetingEndEventDetails, MessagingExtensionAction, MessagingExtensionActionResponse, MessagingExtensionQuery, MessagingExtensionResponse, O365ConnectorCardActionQuery, SigninStateVerificationQuery, TabRequest, TabResponse, TabSubmit, TaskModuleRequest, TaskModuleResponse, TeamsChannelAccount, TeamInfo, TurnContext } from 'botbuilder-core'; | ||
import { ActivityHandler, AppBasedLinkQuery, ChannelInfo, FileConsentCardResponse, InvokeResponse, MeetingStartEventDetails, MeetingEndEventDetails, MessagingExtensionAction, MessagingExtensionActionResponse, MessagingExtensionQuery, MessagingExtensionResponse, O365ConnectorCardActionQuery, SigninStateVerificationQuery, TabRequest, TabResponse, TabSubmit, TaskModuleRequest, TaskModuleResponse, TeamsChannelAccount, TeamInfo, TurnContext } from 'botbuilder-core'; | ||
import { ReadReceiptInfo } from 'botframework-connector'; | ||
/** | ||
@@ -227,9 +228,2 @@ * Adds support for Microsoft Teams specific events and interactions. | ||
/** | ||
* Receives invoke activities with the name 'adaptiveCard/action' | ||
* | ||
* @param _context A context object for this turn. | ||
* @returns The Messaging Extension Action Response for the query. | ||
*/ | ||
protected handleAdaptiveCardAction(_context: TurnContext): Promise<AdaptiveCardInvokeResponse>; | ||
/** | ||
* Receives invoke activities with the name 'composeExtension/setting' | ||
@@ -475,2 +469,10 @@ * | ||
/** | ||
* Invoked when a read receipt for a previously sent message is received from the connector. | ||
* Override this in a derived class to provide logic for when the bot receives a read receipt event. | ||
* | ||
* @param context The context for this turn. | ||
* @returns A promise that represents the work queued. | ||
*/ | ||
protected onTeamsReadReceipt(context: TurnContext): Promise<void>; | ||
/** | ||
* Registers a handler for when a Teams meeting starts. | ||
@@ -489,3 +491,10 @@ * | ||
onTeamsMeetingEndEvent(handler: (meeting: MeetingEndEventDetails, context: TurnContext, next: () => Promise<void>) => Promise<void>): this; | ||
/** | ||
* Registers a handler for when a Read Receipt is sent. | ||
* | ||
* @param handler A callback that handles Read Receipt events. | ||
* @returns A promise that represents the work queued. | ||
*/ | ||
onTeamsReadReceiptEvent(handler: (receiptInfo: ReadReceiptInfo, context: TurnContext, next: () => Promise<void>) => Promise<void>): this; | ||
} | ||
//# sourceMappingURL=teamsActivityHandler.d.ts.map |
@@ -21,2 +21,3 @@ "use strict"; | ||
const botbuilder_core_1 = require("botbuilder-core"); | ||
const botframework_connector_1 = require("botframework-connector"); | ||
const teamsInfo_1 = require("./teamsInfo"); | ||
@@ -435,13 +436,2 @@ const z = require("zod"); | ||
/** | ||
* Receives invoke activities with the name 'adaptiveCard/action' | ||
* | ||
* @param _context A context object for this turn. | ||
* @returns The Messaging Extension Action Response for the query. | ||
*/ | ||
handleAdaptiveCardAction(_context) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
throw new Error('NotImplemented'); | ||
}); | ||
} | ||
/** | ||
* Receives invoke activities with the name 'composeExtension/setting' | ||
@@ -466,43 +456,41 @@ * | ||
return __awaiter(this, void 0, void 0, function* () { | ||
yield this.handle(context, 'ConversationUpdate', () => __awaiter(this, void 0, void 0, function* () { | ||
if (context.activity.channelId == 'msteams') { | ||
const channelData = context.activity.channelData; | ||
if (context.activity.membersAdded && context.activity.membersAdded.length > 0) { | ||
return yield this.onTeamsMembersAdded(context); | ||
} | ||
if (context.activity.membersRemoved && context.activity.membersRemoved.length > 0) { | ||
return yield this.onTeamsMembersRemoved(context); | ||
} | ||
if (!channelData || !channelData.eventType) { | ||
return yield _super.dispatchConversationUpdateActivity.call(this, context); | ||
} | ||
switch (channelData.eventType) { | ||
case 'channelCreated': | ||
return yield this.onTeamsChannelCreated(context); | ||
case 'channelDeleted': | ||
return yield this.onTeamsChannelDeleted(context); | ||
case 'channelRenamed': | ||
return yield this.onTeamsChannelRenamed(context); | ||
case 'teamArchived': | ||
return yield this.onTeamsTeamArchived(context); | ||
case 'teamDeleted': | ||
return yield this.onTeamsTeamDeleted(context); | ||
case 'teamHardDeleted': | ||
return yield this.onTeamsTeamHardDeleted(context); | ||
case 'channelRestored': | ||
return yield this.onTeamsChannelRestored(context); | ||
case 'teamRenamed': | ||
return yield this.onTeamsTeamRenamed(context); | ||
case 'teamRestored': | ||
return yield this.onTeamsTeamRestored(context); | ||
case 'teamUnarchived': | ||
return yield this.onTeamsTeamUnarchived(context); | ||
default: | ||
return yield _super.dispatchConversationUpdateActivity.call(this, context); | ||
} | ||
if (context.activity.channelId == 'msteams') { | ||
const channelData = context.activity.channelData; | ||
if (context.activity.membersAdded && context.activity.membersAdded.length > 0) { | ||
return yield this.onTeamsMembersAdded(context); | ||
} | ||
else { | ||
if (context.activity.membersRemoved && context.activity.membersRemoved.length > 0) { | ||
return yield this.onTeamsMembersRemoved(context); | ||
} | ||
if (!channelData || !channelData.eventType) { | ||
return yield _super.dispatchConversationUpdateActivity.call(this, context); | ||
} | ||
})); | ||
switch (channelData.eventType) { | ||
case 'channelCreated': | ||
return yield this.onTeamsChannelCreated(context); | ||
case 'channelDeleted': | ||
return yield this.onTeamsChannelDeleted(context); | ||
case 'channelRenamed': | ||
return yield this.onTeamsChannelRenamed(context); | ||
case 'teamArchived': | ||
return yield this.onTeamsTeamArchived(context); | ||
case 'teamDeleted': | ||
return yield this.onTeamsTeamDeleted(context); | ||
case 'teamHardDeleted': | ||
return yield this.onTeamsTeamHardDeleted(context); | ||
case 'channelRestored': | ||
return yield this.onTeamsChannelRestored(context); | ||
case 'teamRenamed': | ||
return yield this.onTeamsTeamRenamed(context); | ||
case 'teamRestored': | ||
return yield this.onTeamsTeamRestored(context); | ||
case 'teamUnarchived': | ||
return yield this.onTeamsTeamUnarchived(context); | ||
default: | ||
return yield _super.dispatchConversationUpdateActivity.call(this, context); | ||
} | ||
} | ||
else { | ||
return yield _super.dispatchConversationUpdateActivity.call(this, context); | ||
} | ||
}); | ||
@@ -873,13 +861,13 @@ } | ||
return __awaiter(this, void 0, void 0, function* () { | ||
yield this.handle(context, 'Event', () => __awaiter(this, void 0, void 0, function* () { | ||
if (context.activity.channelId === botbuilder_core_1.Channels.Msteams) { | ||
switch (context.activity.name) { | ||
case 'application/vnd.microsoft.meetingStart': | ||
return this.onTeamsMeetingStart(context); | ||
case 'application/vnd.microsoft.meetingEnd': | ||
return this.onTeamsMeetingEnd(context); | ||
} | ||
if (context.activity.channelId === botbuilder_core_1.Channels.Msteams) { | ||
switch (context.activity.name) { | ||
case 'application/vnd.microsoft.readReceipt': | ||
return this.onTeamsReadReceipt(context); | ||
case 'application/vnd.microsoft.meetingStart': | ||
return this.onTeamsMeetingStart(context); | ||
case 'application/vnd.microsoft.meetingEnd': | ||
return this.onTeamsMeetingEnd(context); | ||
} | ||
return _super.dispatchEventActivity.call(this, context); | ||
})); | ||
} | ||
return _super.dispatchEventActivity.call(this, context); | ||
}); | ||
@@ -912,2 +900,14 @@ } | ||
/** | ||
* Invoked when a read receipt for a previously sent message is received from the connector. | ||
* Override this in a derived class to provide logic for when the bot receives a read receipt event. | ||
* | ||
* @param context The context for this turn. | ||
* @returns A promise that represents the work queued. | ||
*/ | ||
onTeamsReadReceipt(context) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
yield this.handle(context, 'TeamsReadReceipt', this.defaultNextEvent(context)); | ||
}); | ||
} | ||
/** | ||
* Registers a handler for when a Teams meeting starts. | ||
@@ -948,4 +948,16 @@ * | ||
} | ||
/** | ||
* Registers a handler for when a Read Receipt is sent. | ||
* | ||
* @param handler A callback that handles Read Receipt events. | ||
* @returns A promise that represents the work queued. | ||
*/ | ||
onTeamsReadReceiptEvent(handler) { | ||
return this.on('TeamsReadReceipt', (context, next) => __awaiter(this, void 0, void 0, function* () { | ||
const receiptInfo = context.activity.value; | ||
yield handler(new botframework_connector_1.ReadReceiptInfo(receiptInfo.lastReadMessageId), context, next); | ||
})); | ||
} | ||
} | ||
exports.TeamsActivityHandler = TeamsActivityHandler; | ||
//# sourceMappingURL=teamsActivityHandler.js.map |
@@ -10,2 +10,9 @@ /** | ||
/** | ||
* Gets the Team's selected channel id from the current activity. | ||
* | ||
* @param activity The current [Activity](xref:botframework-schema.Activity). | ||
* @returns The current activity's team's selected channel, or empty string. | ||
*/ | ||
export declare function teamsGetSelectedChannelId(activity: Activity): string; | ||
/** | ||
* Gets the TeamsMeetingInfo object from the current [Activity](xref:botframework-schema.Activity). | ||
@@ -12,0 +19,0 @@ * |
@@ -10,3 +10,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.teamsNotifyUser = exports.teamsGetChannelId = exports.teamsGetTeamId = exports.teamsGetTeamInfo = exports.teamsGetTenant = exports.teamsGetTeamMeetingInfo = void 0; | ||
exports.teamsNotifyUser = exports.teamsGetChannelId = exports.teamsGetTeamId = exports.teamsGetTeamInfo = exports.teamsGetTenant = exports.teamsGetTeamMeetingInfo = exports.teamsGetSelectedChannelId = void 0; | ||
function isTeamsChannelData(channelData) { | ||
@@ -21,2 +21,14 @@ return typeof channelData === 'object'; | ||
/** | ||
* Gets the Team's selected channel id from the current activity. | ||
* | ||
* @param activity The current [Activity](xref:botframework-schema.Activity). | ||
* @returns The current activity's team's selected channel, or empty string. | ||
*/ | ||
function teamsGetSelectedChannelId(activity) { | ||
var _a, _b, _c, _d; | ||
validateActivity(activity); | ||
return (_d = (_c = (_b = (_a = activity.channelData) === null || _a === void 0 ? void 0 : _a.settings) === null || _b === void 0 ? void 0 : _b.selectedChannel) === null || _c === void 0 ? void 0 : _c.id) !== null && _d !== void 0 ? _d : ''; | ||
} | ||
exports.teamsGetSelectedChannelId = teamsGetSelectedChannelId; | ||
/** | ||
* Gets the TeamsMeetingInfo object from the current [Activity](xref:botframework-schema.Activity). | ||
@@ -23,0 +35,0 @@ * |
@@ -5,3 +5,3 @@ { | ||
"description": "Bot Builder is a framework for building rich bots on virtually any platform.", | ||
"version": "4.16.0", | ||
"version": "4.17.0-blobs1", | ||
"license": "MIT", | ||
@@ -33,6 +33,6 @@ "keywords": [ | ||
"axios": "^0.25.0", | ||
"botbuilder-core": "4.16.0", | ||
"botbuilder-stdlib": "4.16.0-internal", | ||
"botframework-connector": "4.16.0", | ||
"botframework-streaming": "4.16.0", | ||
"botbuilder-core": "4.17.0-blobs1", | ||
"botbuilder-stdlib": "4.17.0-blobs1.internal", | ||
"botframework-connector": "4.17.0-blobs1", | ||
"botframework-streaming": "4.17.0-blobs1", | ||
"dayjs": "^1.10.3", | ||
@@ -39,0 +39,0 @@ "filenamify": "^4.1.0", |
@@ -44,3 +44,3 @@ /** | ||
*/ | ||
public constructor(credentialProvider: ICredentialProvider, channelService?: string) { | ||
constructor(credentialProvider: ICredentialProvider, channelService?: string) { | ||
if (!credentialProvider) { | ||
@@ -67,3 +67,3 @@ throw new Error('BotFrameworkHttpClient(): missing credentialProvider'); | ||
*/ | ||
public async postActivity<T = any>( | ||
async postActivity<T = any>( | ||
fromBotId: string, | ||
@@ -70,0 +70,0 @@ toBotId: string, |
@@ -34,3 +34,3 @@ // Copyright (c) Microsoft Corporation. | ||
*/ | ||
public async handleSendToConversation( | ||
async handleSendToConversation( | ||
authHeader: string, | ||
@@ -53,3 +53,3 @@ conversationId: string, | ||
*/ | ||
public async handleReplyToActivity( | ||
async handleReplyToActivity( | ||
authHeader: string, | ||
@@ -73,3 +73,3 @@ conversationId: string, | ||
*/ | ||
public async handleUpdateActivity( | ||
async handleUpdateActivity( | ||
authHeader: string, | ||
@@ -91,3 +91,3 @@ conversationId: string, | ||
*/ | ||
public async handleDeleteActivity(authHeader: string, conversationId: string, activityId: string): Promise<void> { | ||
async handleDeleteActivity(authHeader: string, conversationId: string, activityId: string): Promise<void> { | ||
const claimsIdentity = await this.authenticate(authHeader); | ||
@@ -105,3 +105,3 @@ await this.onDeleteActivity(claimsIdentity, conversationId, activityId); | ||
*/ | ||
public async handleGetActivityMembers( | ||
async handleGetActivityMembers( | ||
authHeader: string, | ||
@@ -122,3 +122,3 @@ conversationId: string, | ||
*/ | ||
public async handleCreateConversation( | ||
async handleCreateConversation( | ||
authHeader: string, | ||
@@ -139,3 +139,3 @@ parameters: ConversationParameters | ||
*/ | ||
public async handleGetConversations( | ||
async handleGetConversations( | ||
authHeader: string, | ||
@@ -156,3 +156,3 @@ conversationId: string, | ||
*/ | ||
public async handleGetConversationMembers(authHeader: string, conversationId: string): Promise<ChannelAccount[]> { | ||
async handleGetConversationMembers(authHeader: string, conversationId: string): Promise<ChannelAccount[]> { | ||
const claimsIdentity = await this.authenticate(authHeader); | ||
@@ -171,3 +171,3 @@ return this.onGetConversationMembers(claimsIdentity, conversationId); | ||
*/ | ||
public async handleGetConversationPagedMembers( | ||
async handleGetConversationPagedMembers( | ||
authHeader: string, | ||
@@ -189,7 +189,3 @@ conversationId: string, | ||
*/ | ||
public async handleDeleteConversationMember( | ||
authHeader: string, | ||
conversationId: string, | ||
memberId: string | ||
): Promise<void> { | ||
async handleDeleteConversationMember(authHeader: string, conversationId: string, memberId: string): Promise<void> { | ||
const claimsIdentity = await this.authenticate(authHeader); | ||
@@ -207,3 +203,3 @@ await this.onDeleteConversationMember(claimsIdentity, conversationId, memberId); | ||
*/ | ||
public async handleSendConversationHistory( | ||
async handleSendConversationHistory( | ||
authHeader: string, | ||
@@ -225,3 +221,3 @@ conversationId: string, | ||
*/ | ||
public async handleUploadAttachment( | ||
async handleUploadAttachment( | ||
authHeader: string, | ||
@@ -228,0 +224,0 @@ conversationId: string, |
@@ -50,3 +50,3 @@ /** | ||
*/ | ||
public register(server: WebServer, basePath = ''): void { | ||
register(server: WebServer, basePath = ''): void { | ||
server.post(basePath + RouteConstants.Activities, this.processSendToConversation.bind(this)); | ||
@@ -53,0 +53,0 @@ server.post(basePath + RouteConstants.Activity, this.processReplyToActivity.bind(this)); |
@@ -239,3 +239,3 @@ // Copyright (c) Microsoft Corporation. | ||
class StreamingRequestHandler extends RequestHandler { | ||
public server?: IStreamingTransportServer; | ||
server?: IStreamingTransportServer; | ||
@@ -242,0 +242,0 @@ // Note: `processActivity` lambda is to work around the fact that CloudAdapterBase#processActivity |
@@ -33,3 +33,3 @@ /** | ||
*/ | ||
public static createHandoffInitiation<T = unknown>( | ||
static createHandoffInitiation<T = unknown>( | ||
context: TurnContext, | ||
@@ -75,3 +75,3 @@ handoffContext: T, | ||
*/ | ||
public static createHandoffStatus(conversation: ConversationAccount, state: string, message?: string): Activity { | ||
static createHandoffStatus(conversation: ConversationAccount, state: string, message?: string): Activity { | ||
if (!conversation) { | ||
@@ -78,0 +78,0 @@ throw new TypeError('EventFactory.createHandoffStatus(): missing conversation.'); |
@@ -121,3 +121,3 @@ /** | ||
*/ | ||
public async logActivity(activity: Activity): Promise<void> { | ||
async logActivity(activity: Activity): Promise<void> { | ||
if (!activity) { | ||
@@ -142,3 +142,3 @@ throw new Error('activity cannot be null for logActivity()'); | ||
*/ | ||
public async getTranscriptActivities( | ||
async getTranscriptActivities( | ||
channelId: string, | ||
@@ -194,3 +194,3 @@ conversationId: string, | ||
*/ | ||
public async listTranscripts(channelId: string, continuationToken?: string): Promise<PagedResult<TranscriptInfo>> { | ||
async listTranscripts(channelId: string, continuationToken?: string): Promise<PagedResult<TranscriptInfo>> { | ||
if (!channelId) { | ||
@@ -227,3 +227,3 @@ throw new Error('Missing channelId'); | ||
*/ | ||
public async deleteTranscript(channelId: string, conversationId: string): Promise<void> { | ||
async deleteTranscript(channelId: string, conversationId: string): Promise<void> { | ||
if (!channelId) { | ||
@@ -230,0 +230,0 @@ throw new Error('Missing channelId'); |
@@ -10,5 +10,5 @@ /** | ||
export class HandoffEventNames { | ||
public static readonly InitiateHandoff: string = 'handoff.initiate'; | ||
static readonly InitiateHandoff: string = 'handoff.initiate'; | ||
public static readonly HandoffStatus: string = 'handoff.status'; | ||
static readonly HandoffStatus: string = 'handoff.status'; | ||
} |
@@ -26,3 +26,3 @@ /** | ||
class TraceActivity { | ||
public static makeCommandActivity(command: string): Partial<Activity> { | ||
static makeCommandActivity(command: string): Partial<Activity> { | ||
return { | ||
@@ -38,3 +38,3 @@ type: ActivityTypes.Trace, | ||
public static fromActivity(activity: Activity | Partial<Activity>, name: string, label: string): Partial<Activity> { | ||
static fromActivity(activity: Activity | Partial<Activity>, name: string, label: string): Partial<Activity> { | ||
return { | ||
@@ -50,3 +50,3 @@ type: ActivityTypes.Trace, | ||
public static fromState(botState: BotState): Partial<Activity> { | ||
static fromState(botState: BotState): Partial<Activity> { | ||
return { | ||
@@ -62,3 +62,3 @@ type: ActivityTypes.Trace, | ||
public static fromConversationReference(conversationReference: Partial<ConversationReference>): Partial<Activity> { | ||
static fromConversationReference(conversationReference: Partial<ConversationReference>): Partial<Activity> { | ||
return { | ||
@@ -74,3 +74,3 @@ type: ActivityTypes.Trace, | ||
public static fromError(errorMessage: string): Partial<Activity> { | ||
static fromError(errorMessage: string): Partial<Activity> { | ||
return { | ||
@@ -95,3 +95,3 @@ type: ActivityTypes.Trace, | ||
*/ | ||
public async onTurn(turnContext: TurnContext, next: () => Promise<void>): Promise<void> { | ||
async onTurn(turnContext: TurnContext, next: () => Promise<void>): Promise<void> { | ||
const { shouldForwardToApplication, shouldIntercept } = await this.invokeInbound( | ||
@@ -178,3 +178,3 @@ turnContext, | ||
* | ||
* @obsolete This class will be removed in a future version of the framework. | ||
* @deprecated This class will be removed in a future version of the framework. | ||
*/ | ||
@@ -220,3 +220,3 @@ export class InspectionMiddleware extends InterceptionMiddleware { | ||
*/ | ||
public async processCommand(turnContext: TurnContext): Promise<any> { | ||
async processCommand(turnContext: TurnContext): Promise<any> { | ||
if (turnContext.activity.type == ActivityTypes.Message && turnContext.activity.text !== undefined) { | ||
@@ -428,3 +428,3 @@ const originalText = turnContext.activity.text; | ||
public async send(activity: Partial<Activity>): Promise<any> { | ||
async send(activity: Partial<Activity>): Promise<any> { | ||
TurnContext.applyConversationReference(activity, this.conversationReference); | ||
@@ -444,7 +444,7 @@ | ||
class InspectionSessionsByStatus { | ||
public static DefaultValue: InspectionSessionsByStatus = new InspectionSessionsByStatus(); | ||
static DefaultValue: InspectionSessionsByStatus = new InspectionSessionsByStatus(); | ||
public openedSessions: { [id: string]: Partial<ConversationReference> } = {}; | ||
openedSessions: { [id: string]: Partial<ConversationReference> } = {}; | ||
public attachedSessions: { [id: string]: Partial<ConversationReference> } = {}; | ||
attachedSessions: { [id: string]: Partial<ConversationReference> } = {}; | ||
} | ||
@@ -458,3 +458,3 @@ | ||
* | ||
* @obsolete This class will be removed in a future version of the framework. | ||
* @deprecated This class will be removed in a future version of the framework. | ||
*/ | ||
@@ -461,0 +461,0 @@ export class InspectionState extends BotState { |
@@ -20,3 +20,3 @@ /** | ||
*/ | ||
public static readonly Conversations: string = '/v3/conversations'; | ||
static readonly Conversations: string = '/v3/conversations'; | ||
@@ -26,3 +26,3 @@ /** | ||
*/ | ||
public static readonly ConversationHistory: string = '/v3/conversations/:conversationId/activities/history'; | ||
static readonly ConversationHistory: string = '/v3/conversations/:conversationId/activities/history'; | ||
@@ -32,3 +32,3 @@ /** | ||
*/ | ||
public static readonly ConversationMembers: string = '/v3/conversations/:conversationId/members'; | ||
static readonly ConversationMembers: string = '/v3/conversations/:conversationId/members'; | ||
@@ -38,3 +38,3 @@ /** | ||
*/ | ||
public static readonly ConversationPagedMembers: string = '/v3/conversations/:conversationId/pagedmembers'; | ||
static readonly ConversationPagedMembers: string = '/v3/conversations/:conversationId/pagedmembers'; | ||
@@ -44,3 +44,3 @@ /** | ||
*/ | ||
public static readonly ConversationMember: string = '/v3/conversations/:conversationId/members/:memberId'; | ||
static readonly ConversationMember: string = '/v3/conversations/:conversationId/members/:memberId'; | ||
@@ -50,3 +50,3 @@ /** | ||
*/ | ||
public static readonly Attachments: string = '/v3/conversations/:conversationId/attachments'; | ||
static readonly Attachments: string = '/v3/conversations/:conversationId/attachments'; | ||
@@ -56,3 +56,3 @@ /** | ||
*/ | ||
public static readonly Activities: string = '/v3/conversations/:conversationId/activities'; | ||
static readonly Activities: string = '/v3/conversations/:conversationId/activities'; | ||
@@ -62,3 +62,3 @@ /** | ||
*/ | ||
public static readonly Activity: string = '/v3/conversations/:conversationId/activities/:activityId'; | ||
static readonly Activity: string = '/v3/conversations/:conversationId/activities/:activityId'; | ||
@@ -68,3 +68,3 @@ /** | ||
*/ | ||
public static readonly ActivityMembers: string = '/v3/conversations/:conversationId/activities/:activityId/members'; | ||
static readonly ActivityMembers: string = '/v3/conversations/:conversationId/activities/:activityId/members'; | ||
} |
@@ -24,3 +24,3 @@ // Copyright (c) Microsoft Corporation. | ||
*/ | ||
public readonly SkillConversationReferenceKey = SkillConversationReferenceKey; | ||
readonly SkillConversationReferenceKey = SkillConversationReferenceKey; | ||
@@ -38,3 +38,3 @@ // Delegate that implements actual logic | ||
*/ | ||
public constructor( | ||
constructor( | ||
adapter: BotAdapter, | ||
@@ -41,0 +41,0 @@ logic: (context: TurnContext) => Promise<void>, |
@@ -36,3 +36,3 @@ // Copyright (c) Microsoft Corporation. | ||
*/ | ||
public readonly SkillConversationReferenceKey = SkillConversationReferenceKey; | ||
readonly SkillConversationReferenceKey = SkillConversationReferenceKey; | ||
@@ -52,3 +52,3 @@ // Delegate that implements actual logic | ||
*/ | ||
public constructor( | ||
constructor( | ||
adapter: BotAdapter, | ||
@@ -55,0 +55,0 @@ bot: ActivityHandlerBase, |
@@ -38,3 +38,3 @@ /** | ||
*/ | ||
public constructor( | ||
constructor( | ||
credentialProvider: ICredentialProvider, | ||
@@ -62,3 +62,3 @@ conversationIdFactory: SkillConversationIdFactoryBase, | ||
*/ | ||
public async postToSkill<T>( | ||
async postToSkill<T>( | ||
originatingAudience: string, | ||
@@ -79,3 +79,3 @@ fromBotId: string, | ||
*/ | ||
public async postToSkill( | ||
async postToSkill( | ||
fromBotId: string, | ||
@@ -96,3 +96,3 @@ toSkill: BotFrameworkSkill, | ||
*/ | ||
public async postToSkill<T = any>( | ||
async postToSkill<T = any>( | ||
audienceOrFromBotId: string, | ||
@@ -99,0 +99,0 @@ fromBotIdOrSkill: string | BotFrameworkSkill, |
@@ -21,3 +21,3 @@ /** | ||
*/ | ||
public constructor(public readonly statusCode: StatusCodes, message?: string) { | ||
constructor(public readonly statusCode: StatusCodes, message?: string) { | ||
super(message); | ||
@@ -24,0 +24,0 @@ |
@@ -23,3 +23,3 @@ /** | ||
*/ | ||
public constructor(server: IStreamingTransportServer) { | ||
constructor(server: IStreamingTransportServer) { | ||
if (!server) { | ||
@@ -39,3 +39,3 @@ throw new Error('StreamingHttpClient: Expected server.'); | ||
*/ | ||
public async sendRequest(httpRequest: WebResource): Promise<HttpOperationResponse> { | ||
async sendRequest(httpRequest: WebResource): Promise<HttpOperationResponse> { | ||
if (!httpRequest) { | ||
@@ -42,0 +42,0 @@ throw new Error('StreamingHttpClient.sendRequest(): missing "httpRequest" parameter'); |
@@ -40,8 +40,3 @@ /** | ||
*/ | ||
public static checkForOAuthCards( | ||
adapter: BotFrameworkAdapter, | ||
context: TurnContext, | ||
activity: Activity, | ||
log?: string[] | ||
) { | ||
static checkForOAuthCards(adapter: BotFrameworkAdapter, context: TurnContext, activity: Activity, log?: string[]) { | ||
if (!activity || !activity.attachments) { | ||
@@ -48,0 +43,0 @@ return; |
@@ -11,3 +11,2 @@ /** | ||
ActivityHandler, | ||
AdaptiveCardInvokeResponse, | ||
AppBasedLinkQuery, | ||
@@ -38,2 +37,3 @@ ChannelInfo, | ||
} from 'botbuilder-core'; | ||
import { ReadReceiptInfo } from 'botframework-connector'; | ||
import { TeamsInfo } from './teamsInfo'; | ||
@@ -520,12 +520,2 @@ import * as z from 'zod'; | ||
/** | ||
* Receives invoke activities with the name 'adaptiveCard/action' | ||
* | ||
* @param _context A context object for this turn. | ||
* @returns The Messaging Extension Action Response for the query. | ||
*/ | ||
protected async handleAdaptiveCardAction(_context: TurnContext): Promise<AdaptiveCardInvokeResponse> { | ||
throw new Error('NotImplemented'); | ||
} | ||
/** | ||
* Receives invoke activities with the name 'composeExtension/setting' | ||
@@ -547,56 +537,54 @@ * | ||
protected async dispatchConversationUpdateActivity(context: TurnContext): Promise<void> { | ||
await this.handle(context, 'ConversationUpdate', async () => { | ||
if (context.activity.channelId == 'msteams') { | ||
const channelData = context.activity.channelData as TeamsChannelData; | ||
if (context.activity.channelId == 'msteams') { | ||
const channelData = context.activity.channelData as TeamsChannelData; | ||
if (context.activity.membersAdded && context.activity.membersAdded.length > 0) { | ||
return await this.onTeamsMembersAdded(context); | ||
} | ||
if (context.activity.membersAdded && context.activity.membersAdded.length > 0) { | ||
return await this.onTeamsMembersAdded(context); | ||
} | ||
if (context.activity.membersRemoved && context.activity.membersRemoved.length > 0) { | ||
return await this.onTeamsMembersRemoved(context); | ||
} | ||
if (context.activity.membersRemoved && context.activity.membersRemoved.length > 0) { | ||
return await this.onTeamsMembersRemoved(context); | ||
} | ||
if (!channelData || !channelData.eventType) { | ||
return await super.dispatchConversationUpdateActivity(context); | ||
} | ||
if (!channelData || !channelData.eventType) { | ||
return await super.dispatchConversationUpdateActivity(context); | ||
} | ||
switch (channelData.eventType) { | ||
case 'channelCreated': | ||
return await this.onTeamsChannelCreated(context); | ||
switch (channelData.eventType) { | ||
case 'channelCreated': | ||
return await this.onTeamsChannelCreated(context); | ||
case 'channelDeleted': | ||
return await this.onTeamsChannelDeleted(context); | ||
case 'channelDeleted': | ||
return await this.onTeamsChannelDeleted(context); | ||
case 'channelRenamed': | ||
return await this.onTeamsChannelRenamed(context); | ||
case 'channelRenamed': | ||
return await this.onTeamsChannelRenamed(context); | ||
case 'teamArchived': | ||
return await this.onTeamsTeamArchived(context); | ||
case 'teamArchived': | ||
return await this.onTeamsTeamArchived(context); | ||
case 'teamDeleted': | ||
return await this.onTeamsTeamDeleted(context); | ||
case 'teamDeleted': | ||
return await this.onTeamsTeamDeleted(context); | ||
case 'teamHardDeleted': | ||
return await this.onTeamsTeamHardDeleted(context); | ||
case 'teamHardDeleted': | ||
return await this.onTeamsTeamHardDeleted(context); | ||
case 'channelRestored': | ||
return await this.onTeamsChannelRestored(context); | ||
case 'channelRestored': | ||
return await this.onTeamsChannelRestored(context); | ||
case 'teamRenamed': | ||
return await this.onTeamsTeamRenamed(context); | ||
case 'teamRenamed': | ||
return await this.onTeamsTeamRenamed(context); | ||
case 'teamRestored': | ||
return await this.onTeamsTeamRestored(context); | ||
case 'teamRestored': | ||
return await this.onTeamsTeamRestored(context); | ||
case 'teamUnarchived': | ||
return await this.onTeamsTeamUnarchived(context); | ||
case 'teamUnarchived': | ||
return await this.onTeamsTeamUnarchived(context); | ||
default: | ||
return await super.dispatchConversationUpdateActivity(context); | ||
} | ||
} else { | ||
return await super.dispatchConversationUpdateActivity(context); | ||
default: | ||
return await super.dispatchConversationUpdateActivity(context); | ||
} | ||
}); | ||
} else { | ||
return await super.dispatchConversationUpdateActivity(context); | ||
} | ||
} | ||
@@ -803,3 +791,3 @@ | ||
*/ | ||
public onTeamsMembersAddedEvent( | ||
onTeamsMembersAddedEvent( | ||
handler: ( | ||
@@ -825,3 +813,3 @@ membersAdded: TeamsChannelAccount[], | ||
*/ | ||
public onTeamsMembersRemovedEvent( | ||
onTeamsMembersRemovedEvent( | ||
handler: ( | ||
@@ -846,3 +834,3 @@ membersRemoved: TeamsChannelAccount[], | ||
*/ | ||
public onTeamsChannelCreatedEvent( | ||
onTeamsChannelCreatedEvent( | ||
handler: ( | ||
@@ -867,3 +855,3 @@ channelInfo: ChannelInfo, | ||
*/ | ||
public onTeamsChannelDeletedEvent( | ||
onTeamsChannelDeletedEvent( | ||
handler: ( | ||
@@ -888,3 +876,3 @@ channelInfo: ChannelInfo, | ||
*/ | ||
public onTeamsChannelRenamedEvent( | ||
onTeamsChannelRenamedEvent( | ||
handler: ( | ||
@@ -909,3 +897,3 @@ channelInfo: ChannelInfo, | ||
*/ | ||
public onTeamsTeamArchivedEvent( | ||
onTeamsTeamArchivedEvent( | ||
handler: (teamInfo: TeamInfo, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
@@ -925,3 +913,3 @@ ): this { | ||
*/ | ||
public onTeamsTeamDeletedEvent( | ||
onTeamsTeamDeletedEvent( | ||
handler: (teamInfo: TeamInfo, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
@@ -941,3 +929,3 @@ ): this { | ||
*/ | ||
public onTeamsTeamHardDeletedEvent( | ||
onTeamsTeamHardDeletedEvent( | ||
handler: (teamInfo: TeamInfo, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
@@ -957,3 +945,3 @@ ): this { | ||
*/ | ||
public onTeamsChannelRestoredEvent( | ||
onTeamsChannelRestoredEvent( | ||
handler: ( | ||
@@ -978,3 +966,3 @@ channelInfo: ChannelInfo, | ||
*/ | ||
public onTeamsTeamRenamedEvent( | ||
onTeamsTeamRenamedEvent( | ||
handler: (teamInfo: TeamInfo, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
@@ -994,3 +982,3 @@ ): this { | ||
*/ | ||
public onTeamsTeamRestoredEvent( | ||
onTeamsTeamRestoredEvent( | ||
handler: (teamInfo: TeamInfo, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
@@ -1010,3 +998,3 @@ ): this { | ||
*/ | ||
public onTeamsTeamUnarchivedEvent( | ||
onTeamsTeamUnarchivedEvent( | ||
handler: (teamInfo: TeamInfo, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
@@ -1031,14 +1019,14 @@ ): this { | ||
protected async dispatchEventActivity(context: TurnContext): Promise<void> { | ||
await this.handle(context, 'Event', async () => { | ||
if (context.activity.channelId === Channels.Msteams) { | ||
switch (context.activity.name) { | ||
case 'application/vnd.microsoft.meetingStart': | ||
return this.onTeamsMeetingStart(context); | ||
case 'application/vnd.microsoft.meetingEnd': | ||
return this.onTeamsMeetingEnd(context); | ||
} | ||
if (context.activity.channelId === Channels.Msteams) { | ||
switch (context.activity.name) { | ||
case 'application/vnd.microsoft.readReceipt': | ||
return this.onTeamsReadReceipt(context); | ||
case 'application/vnd.microsoft.meetingStart': | ||
return this.onTeamsMeetingStart(context); | ||
case 'application/vnd.microsoft.meetingEnd': | ||
return this.onTeamsMeetingEnd(context); | ||
} | ||
} | ||
return super.dispatchEventActivity(context); | ||
}); | ||
return super.dispatchEventActivity(context); | ||
} | ||
@@ -1069,2 +1057,13 @@ | ||
/** | ||
* Invoked when a read receipt for a previously sent message is received from the connector. | ||
* Override this in a derived class to provide logic for when the bot receives a read receipt event. | ||
* | ||
* @param context The context for this turn. | ||
* @returns A promise that represents the work queued. | ||
*/ | ||
protected async onTeamsReadReceipt(context: TurnContext): Promise<void> { | ||
await this.handle(context, 'TeamsReadReceipt', this.defaultNextEvent(context)); | ||
} | ||
/** | ||
* Registers a handler for when a Teams meeting starts. | ||
@@ -1075,3 +1074,3 @@ * | ||
*/ | ||
public onTeamsMeetingStartEvent( | ||
onTeamsMeetingStartEvent( | ||
handler: (meeting: MeetingStartEventDetails, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
@@ -1101,3 +1100,3 @@ ): this { | ||
*/ | ||
public onTeamsMeetingEndEvent( | ||
onTeamsMeetingEndEvent( | ||
handler: (meeting: MeetingEndEventDetails, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
@@ -1120,2 +1119,17 @@ ): this { | ||
} | ||
/** | ||
* Registers a handler for when a Read Receipt is sent. | ||
* | ||
* @param handler A callback that handles Read Receipt events. | ||
* @returns A promise that represents the work queued. | ||
*/ | ||
onTeamsReadReceiptEvent( | ||
handler: (receiptInfo: ReadReceiptInfo, context: TurnContext, next: () => Promise<void>) => Promise<void> | ||
): this { | ||
return this.on('TeamsReadReceipt', async (context, next) => { | ||
const receiptInfo = context.activity.value; | ||
await handler(new ReadReceiptInfo(receiptInfo.lastReadMessageId), context, next); | ||
}); | ||
} | ||
} |
@@ -22,2 +22,14 @@ /** | ||
/** | ||
* Gets the Team's selected channel id from the current activity. | ||
* | ||
* @param activity The current [Activity](xref:botframework-schema.Activity). | ||
* @returns The current activity's team's selected channel, or empty string. | ||
*/ | ||
export function teamsGetSelectedChannelId(activity: Activity): string { | ||
validateActivity(activity); | ||
return activity.channelData?.settings?.selectedChannel?.id ?? ''; | ||
} | ||
/** | ||
* Gets the TeamsMeetingInfo object from the current [Activity](xref:botframework-schema.Activity). | ||
@@ -110,3 +122,3 @@ * | ||
activity: Partial<Activity>, | ||
alertInMeeting: boolean = false, | ||
alertInMeeting = false, | ||
externalResourceUrl?: string | ||
@@ -113,0 +125,0 @@ ): void { |
@@ -46,3 +46,3 @@ /** | ||
*/ | ||
public static async getMeetingParticipant( | ||
static async getMeetingParticipant( | ||
context: TurnContext, | ||
@@ -96,3 +96,3 @@ meetingId?: string, | ||
*/ | ||
public static async getMeetingInfo(context: TurnContext, meetingId?: string): Promise<TeamsMeetingInfo> { | ||
static async getMeetingInfo(context: TurnContext, meetingId?: string): Promise<TeamsMeetingInfo> { | ||
if (!context) { | ||
@@ -123,3 +123,3 @@ throw new Error('context is required.'); | ||
*/ | ||
public static async getTeamDetails(context: TurnContext, teamId?: string): Promise<TeamDetails> { | ||
static async getTeamDetails(context: TurnContext, teamId?: string): Promise<TeamDetails> { | ||
const t = teamId || this.getTeamId(context); | ||
@@ -142,3 +142,3 @@ if (!t) { | ||
*/ | ||
public static async sendMessageToTeamsChannel( | ||
static async sendMessageToTeamsChannel( | ||
context: TurnContext, | ||
@@ -206,3 +206,3 @@ activity: Activity, | ||
*/ | ||
public static async getTeamChannels(context: TurnContext, teamId?: string): Promise<ChannelInfo[]> { | ||
static async getTeamChannels(context: TurnContext, teamId?: string): Promise<ChannelInfo[]> { | ||
const t = teamId || this.getTeamId(context); | ||
@@ -225,3 +225,3 @@ if (!t) { | ||
*/ | ||
public static async getMembers(context: TurnContext): Promise<TeamsChannelAccount[]> { | ||
static async getMembers(context: TurnContext): Promise<TeamsChannelAccount[]> { | ||
const teamId = this.getTeamId(context); | ||
@@ -245,3 +245,3 @@ if (teamId) { | ||
*/ | ||
public static async getPagedMembers( | ||
static async getPagedMembers( | ||
context: TurnContext, | ||
@@ -272,3 +272,3 @@ pageSize?: number, | ||
*/ | ||
public static async getMember(context: TurnContext, userId: string): Promise<TeamsChannelAccount> { | ||
static async getMember(context: TurnContext, userId: string): Promise<TeamsChannelAccount> { | ||
const teamId = this.getTeamId(context); | ||
@@ -293,3 +293,3 @@ if (teamId) { | ||
*/ | ||
public static async getTeamMembers(context: TurnContext, teamId?: string): Promise<TeamsChannelAccount[]> { | ||
static async getTeamMembers(context: TurnContext, teamId?: string): Promise<TeamsChannelAccount[]> { | ||
const t = teamId || this.getTeamId(context); | ||
@@ -311,3 +311,3 @@ if (!t) { | ||
*/ | ||
public static async getPagedTeamMembers( | ||
static async getPagedTeamMembers( | ||
context: TurnContext, | ||
@@ -338,7 +338,3 @@ teamId?: string, | ||
*/ | ||
public static async getTeamMember( | ||
context: TurnContext, | ||
teamId?: string, | ||
userId?: string | ||
): Promise<TeamsChannelAccount> { | ||
static async getTeamMember(context: TurnContext, teamId?: string, userId?: string): Promise<TeamsChannelAccount> { | ||
const t = teamId || this.getTeamId(context); | ||
@@ -345,0 +341,0 @@ if (!t) { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1103991
0.31%19606
0.31%2
100%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed