You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-26 17:03:12 +03:00
Merge branch 'develop' into kegan/sync-v3
This commit is contained in:
@@ -57,6 +57,10 @@ module.exports = {
|
|||||||
// We're okay with assertion errors when we ask for them
|
// We're okay with assertion errors when we ask for them
|
||||||
"@typescript-eslint/no-non-null-assertion": "off",
|
"@typescript-eslint/no-non-null-assertion": "off",
|
||||||
|
|
||||||
|
// The non-TypeScript rule produces false positives
|
||||||
|
"func-call-spacing": "off",
|
||||||
|
"@typescript-eslint/func-call-spacing": ["error"],
|
||||||
|
|
||||||
"quotes": "off",
|
"quotes": "off",
|
||||||
// We use a `logger` intermediary module
|
// We use a `logger` intermediary module
|
||||||
"no-console": "error",
|
"no-console": "error",
|
||||||
|
|||||||
35
.github/workflows/static_analysis.yml
vendored
35
.github/workflows/static_analysis.yml
vendored
@@ -54,3 +54,38 @@ jobs:
|
|||||||
|
|
||||||
- name: Generate Docs
|
- name: Generate Docs
|
||||||
run: "yarn run gendoc"
|
run: "yarn run gendoc"
|
||||||
|
|
||||||
|
tsc-strict:
|
||||||
|
name: Typescript Strict Error Checker
|
||||||
|
if: github.event_name == 'pull_request'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: read
|
||||||
|
checks: write
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Get diff lines
|
||||||
|
id: diff
|
||||||
|
uses: Equip-Collaboration/diff-line-numbers@v1.0.0
|
||||||
|
with:
|
||||||
|
include: '["\\.tsx?$"]'
|
||||||
|
|
||||||
|
- name: Detecting files changed
|
||||||
|
id: files
|
||||||
|
uses: futuratrepadeira/changed-files@v3.2.1
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
pattern: '^.*\.tsx?$'
|
||||||
|
|
||||||
|
- uses: t3chguy/typescript-check-action@main
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
use-check: true
|
||||||
|
check-fail-mode: added
|
||||||
|
output-behaviour: annotate
|
||||||
|
ts-extra-args: '--strict'
|
||||||
|
files-changed: ${{ steps.files.outputs.files_updated }}
|
||||||
|
files-added: ${{ steps.files.outputs.files_created }}
|
||||||
|
files-deleted: ${{ steps.files.outputs.files_deleted }}
|
||||||
|
line-numbers: ${{ steps.diff.outputs.lineNumbers }}
|
||||||
|
|||||||
@@ -92,10 +92,10 @@
|
|||||||
"better-docs": "^2.4.0-beta.9",
|
"better-docs": "^2.4.0-beta.9",
|
||||||
"browserify": "^17.0.0",
|
"browserify": "^17.0.0",
|
||||||
"docdash": "^1.2.0",
|
"docdash": "^1.2.0",
|
||||||
"eslint": "8.20.0",
|
"eslint": "8.22.0",
|
||||||
"eslint-config-google": "^0.14.0",
|
"eslint-config-google": "^0.14.0",
|
||||||
"eslint-plugin-import": "^2.25.4",
|
"eslint-plugin-import": "^2.25.4",
|
||||||
"eslint-plugin-matrix-org": "^0.5.0",
|
"eslint-plugin-matrix-org": "^0.6.0",
|
||||||
"exorcist": "^2.0.0",
|
"exorcist": "^2.0.0",
|
||||||
"fake-indexeddb": "^4.0.0",
|
"fake-indexeddb": "^4.0.0",
|
||||||
"jest": "^28.0.0",
|
"jest": "^28.0.0",
|
||||||
|
|||||||
@@ -658,6 +658,153 @@ describe("SlidingSync", () => {
|
|||||||
await httpBackend.flushAllExpected();
|
await httpBackend.flushAllExpected();
|
||||||
await responseProcessed;
|
await responseProcessed;
|
||||||
await listPromise;
|
await listPromise;
|
||||||
|
});
|
||||||
|
|
||||||
|
// this refers to a set of operations where the end result is no change.
|
||||||
|
it("should handle net zero operations correctly", async () => {
|
||||||
|
const indexToRoomId = {
|
||||||
|
0: roomB,
|
||||||
|
1: roomC,
|
||||||
|
};
|
||||||
|
expect(slidingSync.getListData(0).roomIndexToRoomId).toEqual(indexToRoomId);
|
||||||
|
httpBackend.when("POST", syncUrl).respond(200, {
|
||||||
|
pos: "f",
|
||||||
|
// currently the list is [B,C] so we will insert D then immediately delete it
|
||||||
|
lists: [{
|
||||||
|
count: 500,
|
||||||
|
ops: [
|
||||||
|
{
|
||||||
|
op: "DELETE", index: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
op: "INSERT", index: 0, room_id: roomA,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
op: "DELETE", index: 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
count: 50,
|
||||||
|
}],
|
||||||
|
});
|
||||||
|
const listPromise = listenUntil(slidingSync, "SlidingSync.List",
|
||||||
|
(listIndex, joinedCount, roomIndexToRoomId) => {
|
||||||
|
expect(listIndex).toEqual(0);
|
||||||
|
expect(joinedCount).toEqual(500);
|
||||||
|
expect(roomIndexToRoomId).toEqual(indexToRoomId);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
const responseProcessed = listenUntil(slidingSync, "SlidingSync.Lifecycle", (state) => {
|
||||||
|
return state === SlidingSyncState.Complete;
|
||||||
|
});
|
||||||
|
await httpBackend.flushAllExpected();
|
||||||
|
await responseProcessed;
|
||||||
|
await listPromise;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should handle deletions correctly", async () => {
|
||||||
|
expect(slidingSync.getListData(0).roomIndexToRoomId).toEqual({
|
||||||
|
0: roomB,
|
||||||
|
1: roomC,
|
||||||
|
});
|
||||||
|
httpBackend.when("POST", syncUrl).respond(200, {
|
||||||
|
pos: "g",
|
||||||
|
lists: [{
|
||||||
|
count: 499,
|
||||||
|
ops: [
|
||||||
|
{
|
||||||
|
op: "DELETE", index: 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
count: 50,
|
||||||
|
}],
|
||||||
|
});
|
||||||
|
const listPromise = listenUntil(slidingSync, "SlidingSync.List",
|
||||||
|
(listIndex, joinedCount, roomIndexToRoomId) => {
|
||||||
|
expect(listIndex).toEqual(0);
|
||||||
|
expect(joinedCount).toEqual(499);
|
||||||
|
expect(roomIndexToRoomId).toEqual({
|
||||||
|
0: roomC,
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
const responseProcessed = listenUntil(slidingSync, "SlidingSync.Lifecycle", (state) => {
|
||||||
|
return state === SlidingSyncState.Complete;
|
||||||
|
});
|
||||||
|
await httpBackend.flushAllExpected();
|
||||||
|
await responseProcessed;
|
||||||
|
await listPromise;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should handle insertions correctly", async () => {
|
||||||
|
expect(slidingSync.getListData(0).roomIndexToRoomId).toEqual({
|
||||||
|
0: roomC,
|
||||||
|
});
|
||||||
|
httpBackend.when("POST", syncUrl).respond(200, {
|
||||||
|
pos: "h",
|
||||||
|
lists: [{
|
||||||
|
count: 500,
|
||||||
|
ops: [
|
||||||
|
{
|
||||||
|
op: "INSERT", index: 1, room_id: roomA,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
count: 50,
|
||||||
|
}],
|
||||||
|
});
|
||||||
|
let listPromise = listenUntil(slidingSync, "SlidingSync.List",
|
||||||
|
(listIndex, joinedCount, roomIndexToRoomId) => {
|
||||||
|
expect(listIndex).toEqual(0);
|
||||||
|
expect(joinedCount).toEqual(500);
|
||||||
|
expect(roomIndexToRoomId).toEqual({
|
||||||
|
0: roomC,
|
||||||
|
1: roomA,
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
let responseProcessed = listenUntil(slidingSync, "SlidingSync.Lifecycle", (state) => {
|
||||||
|
return state === SlidingSyncState.Complete;
|
||||||
|
});
|
||||||
|
await httpBackend.flushAllExpected();
|
||||||
|
await responseProcessed;
|
||||||
|
await listPromise;
|
||||||
|
|
||||||
|
httpBackend.when("POST", syncUrl).respond(200, {
|
||||||
|
pos: "h",
|
||||||
|
lists: [{
|
||||||
|
count: 501,
|
||||||
|
ops: [
|
||||||
|
{
|
||||||
|
op: "INSERT", index: 1, room_id: roomB,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
count: 50,
|
||||||
|
}],
|
||||||
|
});
|
||||||
|
listPromise = listenUntil(slidingSync, "SlidingSync.List",
|
||||||
|
(listIndex, joinedCount, roomIndexToRoomId) => {
|
||||||
|
expect(listIndex).toEqual(0);
|
||||||
|
expect(joinedCount).toEqual(501);
|
||||||
|
expect(roomIndexToRoomId).toEqual({
|
||||||
|
0: roomC,
|
||||||
|
1: roomB,
|
||||||
|
2: roomA,
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
responseProcessed = listenUntil(slidingSync, "SlidingSync.Lifecycle", (state) => {
|
||||||
|
return state === SlidingSyncState.Complete;
|
||||||
|
});
|
||||||
|
await httpBackend.flushAllExpected();
|
||||||
|
await responseProcessed;
|
||||||
|
await listPromise;
|
||||||
slidingSync.stop();
|
slidingSync.stop();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2545,4 +2545,16 @@ describe("Room", function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("roomNameGenerator", () => {
|
||||||
|
const client = new TestClient(userA).client;
|
||||||
|
client.roomNameGenerator = jest.fn().mockReturnValue(null);
|
||||||
|
const room = new Room(roomId, client, userA);
|
||||||
|
|
||||||
|
it("should call fn when recalculating room name", () => {
|
||||||
|
(client.roomNameGenerator as jest.Mock).mockClear();
|
||||||
|
room.recalculate();
|
||||||
|
expect(client.roomNameGenerator).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -24,7 +24,16 @@ import { ListenerMap, TypedEventEmitter } from "./models/typed-event-emitter";
|
|||||||
export class ReEmitter {
|
export class ReEmitter {
|
||||||
constructor(private readonly target: EventEmitter) {}
|
constructor(private readonly target: EventEmitter) {}
|
||||||
|
|
||||||
|
// Map from emitter to event name to re-emitter
|
||||||
|
private reEmitters = new Map<EventEmitter, Map<string, (...args: any[]) => void>>();
|
||||||
|
|
||||||
public reEmit(source: EventEmitter, eventNames: string[]): void {
|
public reEmit(source: EventEmitter, eventNames: string[]): void {
|
||||||
|
let reEmittersByEvent = this.reEmitters.get(source);
|
||||||
|
if (!reEmittersByEvent) {
|
||||||
|
reEmittersByEvent = new Map();
|
||||||
|
this.reEmitters.set(source, reEmittersByEvent);
|
||||||
|
}
|
||||||
|
|
||||||
for (const eventName of eventNames) {
|
for (const eventName of eventNames) {
|
||||||
// We include the source as the last argument for event handlers which may need it,
|
// We include the source as the last argument for event handlers which may need it,
|
||||||
// such as read receipt listeners on the client class which won't have the context
|
// such as read receipt listeners on the client class which won't have the context
|
||||||
@@ -44,8 +53,21 @@ export class ReEmitter {
|
|||||||
this.target.emit(eventName, ...args, source);
|
this.target.emit(eventName, ...args, source);
|
||||||
};
|
};
|
||||||
source.on(eventName, forSource);
|
source.on(eventName, forSource);
|
||||||
|
reEmittersByEvent.set(eventName, forSource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public stopReEmitting(source: EventEmitter, eventNames: string[]): void {
|
||||||
|
const reEmittersByEvent = this.reEmitters.get(source);
|
||||||
|
if (!reEmittersByEvent) return; // We were never re-emitting these events in the first place
|
||||||
|
|
||||||
|
for (const eventName of eventNames) {
|
||||||
|
source.off(eventName, reEmittersByEvent.get(eventName));
|
||||||
|
reEmittersByEvent.delete(eventName);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reEmittersByEvent.size === 0) this.reEmitters.delete(source);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class TypedReEmitter<
|
export class TypedReEmitter<
|
||||||
@@ -62,4 +84,11 @@ export class TypedReEmitter<
|
|||||||
): void {
|
): void {
|
||||||
super.reEmit(source, eventNames);
|
super.reEmit(source, eventNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public stopReEmitting<ReEmittedEvents extends string, T extends Events & ReEmittedEvents>(
|
||||||
|
source: TypedEventEmitter<ReEmittedEvents, any>,
|
||||||
|
eventNames: T[],
|
||||||
|
): void {
|
||||||
|
super.stopReEmitting(source, eventNames);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ import { VerificationRequest } from "./crypto/verification/request/VerificationR
|
|||||||
import { VerificationBase as Verification } from "./crypto/verification/Base";
|
import { VerificationBase as Verification } from "./crypto/verification/Base";
|
||||||
import * as ContentHelpers from "./content-helpers";
|
import * as ContentHelpers from "./content-helpers";
|
||||||
import { CrossSigningInfo, DeviceTrustLevel, ICacheCallbacks, UserTrustLevel } from "./crypto/CrossSigning";
|
import { CrossSigningInfo, DeviceTrustLevel, ICacheCallbacks, UserTrustLevel } from "./crypto/CrossSigning";
|
||||||
import { Room } from "./models/room";
|
import { Room, RoomNameState } from "./models/room";
|
||||||
import {
|
import {
|
||||||
IAddThreePidOnlyBody,
|
IAddThreePidOnlyBody,
|
||||||
IBindThreePidBody,
|
IBindThreePidBody,
|
||||||
@@ -344,6 +344,12 @@ export interface ICreateClientOpts {
|
|||||||
fallbackICEServerAllowed?: boolean;
|
fallbackICEServerAllowed?: boolean;
|
||||||
|
|
||||||
cryptoCallbacks?: ICryptoCallbacks;
|
cryptoCallbacks?: ICryptoCallbacks;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to generate room names for empty rooms and rooms names based on membership.
|
||||||
|
* Defaults to a built-in English handler with basic pluralisation.
|
||||||
|
*/
|
||||||
|
roomNameGenerator?: (roomId: string, state: RoomNameState) => string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IMatrixClientCreateOpts extends ICreateClientOpts {
|
export interface IMatrixClientCreateOpts extends ICreateClientOpts {
|
||||||
@@ -918,6 +924,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
|
|||||||
protected fallbackICEServerAllowed = false;
|
protected fallbackICEServerAllowed = false;
|
||||||
protected roomList: RoomList;
|
protected roomList: RoomList;
|
||||||
protected syncApi: SlidingSyncSdk | SyncApi;
|
protected syncApi: SlidingSyncSdk | SyncApi;
|
||||||
|
public roomNameGenerator?: ICreateClientOpts["roomNameGenerator"];
|
||||||
public pushRules: IPushRules;
|
public pushRules: IPushRules;
|
||||||
protected syncLeftRoomsPromise: Promise<Room[]>;
|
protected syncLeftRoomsPromise: Promise<Room[]>;
|
||||||
protected syncedLeftRooms = false;
|
protected syncedLeftRooms = false;
|
||||||
@@ -1041,6 +1048,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
|
|||||||
// we still want to know which rooms are encrypted even if crypto is disabled:
|
// we still want to know which rooms are encrypted even if crypto is disabled:
|
||||||
// we don't want to start sending unencrypted events to them.
|
// we don't want to start sending unencrypted events to them.
|
||||||
this.roomList = new RoomList(this.cryptoStore);
|
this.roomList = new RoomList(this.cryptoStore);
|
||||||
|
this.roomNameGenerator = opts.roomNameGenerator;
|
||||||
|
|
||||||
this.toDeviceMessageQueue = new ToDeviceMessageQueue(this);
|
this.toDeviceMessageQueue = new ToDeviceMessageQueue(this);
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
|
Copyright 2015 - 2022 The Matrix.org Foundation C.I.C.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@@ -37,7 +37,8 @@ import {
|
|||||||
import { IRoomVersionsCapability, MatrixClient, PendingEventOrdering, RoomVersionStability } from "../client";
|
import { IRoomVersionsCapability, MatrixClient, PendingEventOrdering, RoomVersionStability } from "../client";
|
||||||
import { GuestAccess, HistoryVisibility, JoinRule, ResizeMethod } from "../@types/partials";
|
import { GuestAccess, HistoryVisibility, JoinRule, ResizeMethod } from "../@types/partials";
|
||||||
import { Filter, IFilterDefinition } from "../filter";
|
import { Filter, IFilterDefinition } from "../filter";
|
||||||
import { RoomState } from "./room-state";
|
import { RoomState, RoomStateEvent, RoomStateEventHandlerMap } from "./room-state";
|
||||||
|
import { BeaconEvent, BeaconEventHandlerMap } from "./beacon";
|
||||||
import {
|
import {
|
||||||
Thread,
|
Thread,
|
||||||
ThreadEvent,
|
ThreadEvent,
|
||||||
@@ -172,16 +173,19 @@ export enum RoomEvent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type EmittedEvents = RoomEvent
|
type EmittedEvents = RoomEvent
|
||||||
|
| RoomStateEvent.Events
|
||||||
|
| RoomStateEvent.Members
|
||||||
|
| RoomStateEvent.NewMember
|
||||||
|
| RoomStateEvent.Update
|
||||||
|
| RoomStateEvent.Marker
|
||||||
| ThreadEvent.New
|
| ThreadEvent.New
|
||||||
| ThreadEvent.Update
|
| ThreadEvent.Update
|
||||||
| ThreadEvent.NewReply
|
| ThreadEvent.NewReply
|
||||||
| RoomEvent.Timeline
|
| MatrixEventEvent.BeforeRedaction
|
||||||
| RoomEvent.TimelineReset
|
| BeaconEvent.New
|
||||||
| RoomEvent.TimelineRefresh
|
| BeaconEvent.Update
|
||||||
| RoomEvent.HistoryImportedWithinTimeline
|
| BeaconEvent.Destroy
|
||||||
| RoomEvent.OldStateUpdated
|
| BeaconEvent.LivenessChange;
|
||||||
| RoomEvent.CurrentStateUpdated
|
|
||||||
| MatrixEventEvent.BeforeRedaction;
|
|
||||||
|
|
||||||
export type RoomEventHandlerMap = {
|
export type RoomEventHandlerMap = {
|
||||||
[RoomEvent.MyMembership]: (room: Room, membership: string, prevMembership?: string) => void;
|
[RoomEvent.MyMembership]: (room: Room, membership: string, prevMembership?: string) => void;
|
||||||
@@ -205,7 +209,21 @@ export type RoomEventHandlerMap = {
|
|||||||
) => void;
|
) => void;
|
||||||
[RoomEvent.TimelineRefresh]: (room: Room, eventTimelineSet: EventTimelineSet) => void;
|
[RoomEvent.TimelineRefresh]: (room: Room, eventTimelineSet: EventTimelineSet) => void;
|
||||||
[ThreadEvent.New]: (thread: Thread, toStartOfTimeline: boolean) => void;
|
[ThreadEvent.New]: (thread: Thread, toStartOfTimeline: boolean) => void;
|
||||||
} & ThreadHandlerMap & MatrixEventHandlerMap;
|
} & ThreadHandlerMap
|
||||||
|
& MatrixEventHandlerMap
|
||||||
|
& Pick<
|
||||||
|
RoomStateEventHandlerMap,
|
||||||
|
RoomStateEvent.Events
|
||||||
|
| RoomStateEvent.Members
|
||||||
|
| RoomStateEvent.NewMember
|
||||||
|
| RoomStateEvent.Update
|
||||||
|
| RoomStateEvent.Marker
|
||||||
|
| BeaconEvent.New
|
||||||
|
>
|
||||||
|
& Pick<
|
||||||
|
BeaconEventHandlerMap,
|
||||||
|
BeaconEvent.Update | BeaconEvent.Destroy | BeaconEvent.LivenessChange
|
||||||
|
>;
|
||||||
|
|
||||||
export class Room extends TypedEventEmitter<EmittedEvents, RoomEventHandlerMap> {
|
export class Room extends TypedEventEmitter<EmittedEvents, RoomEventHandlerMap> {
|
||||||
public readonly reEmitter: TypedReEmitter<EmittedEvents, RoomEventHandlerMap>;
|
public readonly reEmitter: TypedReEmitter<EmittedEvents, RoomEventHandlerMap>;
|
||||||
@@ -1068,6 +1086,32 @@ export class Room extends TypedEventEmitter<EmittedEvents, RoomEventHandlerMap>
|
|||||||
|
|
||||||
if (previousCurrentState !== this.currentState) {
|
if (previousCurrentState !== this.currentState) {
|
||||||
this.emit(RoomEvent.CurrentStateUpdated, this, previousCurrentState, this.currentState);
|
this.emit(RoomEvent.CurrentStateUpdated, this, previousCurrentState, this.currentState);
|
||||||
|
|
||||||
|
// Re-emit various events on the current room state
|
||||||
|
// TODO: If currentState really only exists for backwards
|
||||||
|
// compatibility, shouldn't we be doing this some other way?
|
||||||
|
this.reEmitter.stopReEmitting(previousCurrentState, [
|
||||||
|
RoomStateEvent.Events,
|
||||||
|
RoomStateEvent.Members,
|
||||||
|
RoomStateEvent.NewMember,
|
||||||
|
RoomStateEvent.Update,
|
||||||
|
RoomStateEvent.Marker,
|
||||||
|
BeaconEvent.New,
|
||||||
|
BeaconEvent.Update,
|
||||||
|
BeaconEvent.Destroy,
|
||||||
|
BeaconEvent.LivenessChange,
|
||||||
|
]);
|
||||||
|
this.reEmitter.reEmit(this.currentState, [
|
||||||
|
RoomStateEvent.Events,
|
||||||
|
RoomStateEvent.Members,
|
||||||
|
RoomStateEvent.NewMember,
|
||||||
|
RoomStateEvent.Update,
|
||||||
|
RoomStateEvent.Marker,
|
||||||
|
BeaconEvent.New,
|
||||||
|
BeaconEvent.Update,
|
||||||
|
BeaconEvent.Destroy,
|
||||||
|
BeaconEvent.LivenessChange,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2914,6 +2958,33 @@ export class Room extends TypedEventEmitter<EmittedEvents, RoomEventHandlerMap>
|
|||||||
return this.getType() === RoomType.ElementVideo;
|
return this.getType() === RoomType.ElementVideo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private roomNameGenerator(state: RoomNameState): string {
|
||||||
|
if (this.client.roomNameGenerator) {
|
||||||
|
const name = this.client.roomNameGenerator(this.roomId, state);
|
||||||
|
if (name !== null) {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (state.type) {
|
||||||
|
case RoomNameType.Actual:
|
||||||
|
return state.name;
|
||||||
|
case RoomNameType.Generated:
|
||||||
|
switch (state.subtype) {
|
||||||
|
case "Inviting":
|
||||||
|
return `Inviting ${memberNamesToRoomName(state.names, state.count)}`;
|
||||||
|
default:
|
||||||
|
return memberNamesToRoomName(state.names, state.count);
|
||||||
|
}
|
||||||
|
case RoomNameType.EmptyRoom:
|
||||||
|
if (state.oldName) {
|
||||||
|
return `Empty room (was ${state.oldName})`;
|
||||||
|
} else {
|
||||||
|
return "Empty room";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an internal method. Calculates the name of the room from the current
|
* This is an internal method. Calculates the name of the room from the current
|
||||||
* room state.
|
* room state.
|
||||||
@@ -2928,14 +2999,20 @@ export class Room extends TypedEventEmitter<EmittedEvents, RoomEventHandlerMap>
|
|||||||
// check for an alias, if any. for now, assume first alias is the
|
// check for an alias, if any. for now, assume first alias is the
|
||||||
// official one.
|
// official one.
|
||||||
const mRoomName = this.currentState.getStateEvents(EventType.RoomName, "");
|
const mRoomName = this.currentState.getStateEvents(EventType.RoomName, "");
|
||||||
if (mRoomName && mRoomName.getContent() && mRoomName.getContent().name) {
|
if (mRoomName?.getContent().name) {
|
||||||
return mRoomName.getContent().name;
|
return this.roomNameGenerator({
|
||||||
|
type: RoomNameType.Actual,
|
||||||
|
name: mRoomName.getContent().name,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const alias = this.getCanonicalAlias();
|
const alias = this.getCanonicalAlias();
|
||||||
if (alias) {
|
if (alias) {
|
||||||
return alias;
|
return this.roomNameGenerator({
|
||||||
|
type: RoomNameType.Actual,
|
||||||
|
name: alias,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const joinedMemberCount = this.currentState.getJoinedMemberCount();
|
const joinedMemberCount = this.currentState.getJoinedMemberCount();
|
||||||
@@ -2967,8 +3044,7 @@ export class Room extends TypedEventEmitter<EmittedEvents, RoomEventHandlerMap>
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
let otherMembers = this.currentState.getMembers().filter((m) => {
|
let otherMembers = this.currentState.getMembers().filter((m) => {
|
||||||
return m.userId !== userId &&
|
return m.userId !== userId && (m.membership === "invite" || m.membership === "join");
|
||||||
(m.membership === "invite" || m.membership === "join");
|
|
||||||
});
|
});
|
||||||
otherMembers = otherMembers.filter(({ userId }) => {
|
otherMembers = otherMembers.filter(({ userId }) => {
|
||||||
// filter service members
|
// filter service members
|
||||||
@@ -2986,24 +3062,33 @@ export class Room extends TypedEventEmitter<EmittedEvents, RoomEventHandlerMap>
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (inviteJoinCount) {
|
if (inviteJoinCount) {
|
||||||
return memberNamesToRoomName(otherNames, inviteJoinCount);
|
return this.roomNameGenerator({
|
||||||
|
type: RoomNameType.Generated,
|
||||||
|
names: otherNames,
|
||||||
|
count: inviteJoinCount,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const myMembership = this.getMyMembership();
|
const myMembership = this.getMyMembership();
|
||||||
// if I have created a room and invited people through
|
// if I have created a room and invited people through
|
||||||
// 3rd party invites
|
// 3rd party invites
|
||||||
if (myMembership == 'join') {
|
if (myMembership == 'join') {
|
||||||
const thirdPartyInvites =
|
const thirdPartyInvites = this.currentState.getStateEvents(EventType.RoomThirdPartyInvite);
|
||||||
this.currentState.getStateEvents(EventType.RoomThirdPartyInvite);
|
|
||||||
|
|
||||||
if (thirdPartyInvites && thirdPartyInvites.length) {
|
if (thirdPartyInvites?.length) {
|
||||||
const thirdPartyNames = thirdPartyInvites.map((i) => {
|
const thirdPartyNames = thirdPartyInvites.map((i) => {
|
||||||
return i.getContent().display_name;
|
return i.getContent().display_name;
|
||||||
});
|
});
|
||||||
|
|
||||||
return `Inviting ${memberNamesToRoomName(thirdPartyNames)}`;
|
return this.roomNameGenerator({
|
||||||
|
type: RoomNameType.Generated,
|
||||||
|
subtype: "Inviting",
|
||||||
|
names: thirdPartyNames,
|
||||||
|
count: thirdPartyNames.length + 1,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// let's try to figure out who was here before
|
// let's try to figure out who was here before
|
||||||
let leftNames = otherNames;
|
let leftNames = otherNames;
|
||||||
// if we didn't have heroes, try finding them in the room state
|
// if we didn't have heroes, try finding them in the room state
|
||||||
@@ -3014,11 +3099,20 @@ export class Room extends TypedEventEmitter<EmittedEvents, RoomEventHandlerMap>
|
|||||||
m.membership !== "join";
|
m.membership !== "join";
|
||||||
}).map((m) => m.name);
|
}).map((m) => m.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let oldName: string;
|
||||||
if (leftNames.length) {
|
if (leftNames.length) {
|
||||||
return `Empty room (was ${memberNamesToRoomName(leftNames)})`;
|
oldName = this.roomNameGenerator({
|
||||||
} else {
|
type: RoomNameType.Generated,
|
||||||
return "Empty room";
|
names: leftNames,
|
||||||
|
count: leftNames.length + 1,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return this.roomNameGenerator({
|
||||||
|
type: RoomNameType.EmptyRoom,
|
||||||
|
oldName,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -3203,8 +3297,33 @@ const ALLOWED_TRANSITIONS: Record<EventStatus, EventStatus[]> = {
|
|||||||
[EventStatus.CANCELLED]: [],
|
[EventStatus.CANCELLED]: [],
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO i18n
|
export enum RoomNameType {
|
||||||
function memberNamesToRoomName(names: string[], count = (names.length + 1)) {
|
EmptyRoom,
|
||||||
|
Generated,
|
||||||
|
Actual,
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EmptyRoomNameState {
|
||||||
|
type: RoomNameType.EmptyRoom;
|
||||||
|
oldName?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GeneratedRoomNameState {
|
||||||
|
type: RoomNameType.Generated;
|
||||||
|
subtype?: "Inviting";
|
||||||
|
names: string[];
|
||||||
|
count: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ActualRoomNameState {
|
||||||
|
type: RoomNameType.Actual;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type RoomNameState = EmptyRoomNameState | GeneratedRoomNameState | ActualRoomNameState;
|
||||||
|
|
||||||
|
// Can be overriden by IMatrixClientCreateOpts::memberNamesToRoomNameFn
|
||||||
|
function memberNamesToRoomName(names: string[], count: number): string {
|
||||||
const countWithoutMe = count - 1;
|
const countWithoutMe = count - 1;
|
||||||
if (!names.length) {
|
if (!names.length) {
|
||||||
return "Empty room";
|
return "Empty room";
|
||||||
|
|||||||
@@ -19,13 +19,11 @@ import { logger } from './logger';
|
|||||||
import * as utils from "./utils";
|
import * as utils from "./utils";
|
||||||
import { EventTimeline } from "./models/event-timeline";
|
import { EventTimeline } from "./models/event-timeline";
|
||||||
import { ClientEvent, IStoredClientOpts, MatrixClient, PendingEventOrdering } from "./client";
|
import { ClientEvent, IStoredClientOpts, MatrixClient, PendingEventOrdering } from "./client";
|
||||||
import { ISyncStateData, SyncState } from "./sync";
|
import { ISyncStateData, SyncState, _createAndReEmitRoom } from "./sync";
|
||||||
import { MatrixEvent } from "./models/event";
|
import { MatrixEvent } from "./models/event";
|
||||||
import { Crypto } from "./crypto";
|
import { Crypto } from "./crypto";
|
||||||
import { IMinimalEvent, IRoomEvent, IStateEvent, IStrippedState } from "./sync-accumulator";
|
import { IMinimalEvent, IRoomEvent, IStateEvent, IStrippedState } from "./sync-accumulator";
|
||||||
import { MatrixError } from "./http-api";
|
import { MatrixError } from "./http-api";
|
||||||
import { RoomStateEvent } from "./models/room-state";
|
|
||||||
import { RoomMemberEvent } from "./models/room-member";
|
|
||||||
import {
|
import {
|
||||||
Extension,
|
Extension,
|
||||||
ExtensionState,
|
ExtensionState,
|
||||||
@@ -290,7 +288,7 @@ export class SlidingSyncSdk {
|
|||||||
logger.debug("initial flag not set but no stored room exists for room ", roomId, roomData);
|
logger.debug("initial flag not set but no stored room exists for room ", roomId, roomData);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
room = createRoom(this.client, roomId, this.opts);
|
room = _createAndReEmitRoom(this.client, roomId, this.opts);
|
||||||
}
|
}
|
||||||
this.processRoomData(this.client, room, roomData);
|
this.processRoomData(this.client, room, roomData);
|
||||||
}
|
}
|
||||||
@@ -536,7 +534,6 @@ export class SlidingSyncSdk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (limited) {
|
if (limited) {
|
||||||
deregisterStateListeners(room);
|
|
||||||
room.resetLiveTimeline(
|
room.resetLiveTimeline(
|
||||||
roomData.prev_batch,
|
roomData.prev_batch,
|
||||||
null, // TODO this.opts.canResetEntireTimeline(room.roomId) ? null : syncEventData.oldSyncToken,
|
null, // TODO this.opts.canResetEntireTimeline(room.roomId) ? null : syncEventData.oldSyncToken,
|
||||||
@@ -546,7 +543,6 @@ export class SlidingSyncSdk {
|
|||||||
// reason to stop incrementally tracking notifications and
|
// reason to stop incrementally tracking notifications and
|
||||||
// reset the timeline.
|
// reset the timeline.
|
||||||
this.client.resetNotifTimelineSet();
|
this.client.resetNotifTimelineSet();
|
||||||
registerStateListeners(this.client, room);
|
|
||||||
}
|
}
|
||||||
} */
|
} */
|
||||||
|
|
||||||
@@ -816,58 +812,6 @@ function ensureNameEvent(client: MatrixClient, roomId: string, roomData: MSC3575
|
|||||||
// Helper functions which set up JS SDK structs are below and are identical to the sync v2 counterparts,
|
// Helper functions which set up JS SDK structs are below and are identical to the sync v2 counterparts,
|
||||||
// just outside the class.
|
// just outside the class.
|
||||||
|
|
||||||
function createRoom(client: MatrixClient, roomId: string, opts: Partial<IStoredClientOpts>): Room { // XXX cargoculted from sync.ts
|
|
||||||
const { timelineSupport } = client;
|
|
||||||
const room = new Room(roomId, client, client.getUserId(), {
|
|
||||||
lazyLoadMembers: opts.lazyLoadMembers,
|
|
||||||
pendingEventOrdering: opts.pendingEventOrdering,
|
|
||||||
timelineSupport,
|
|
||||||
});
|
|
||||||
client.reEmitter.reEmit(room, [
|
|
||||||
RoomEvent.Name,
|
|
||||||
RoomEvent.Redaction,
|
|
||||||
RoomEvent.RedactionCancelled,
|
|
||||||
RoomEvent.Receipt,
|
|
||||||
RoomEvent.Tags,
|
|
||||||
RoomEvent.LocalEchoUpdated,
|
|
||||||
RoomEvent.AccountData,
|
|
||||||
RoomEvent.MyMembership,
|
|
||||||
RoomEvent.Timeline,
|
|
||||||
RoomEvent.TimelineReset,
|
|
||||||
]);
|
|
||||||
registerStateListeners(client, room);
|
|
||||||
return room;
|
|
||||||
}
|
|
||||||
|
|
||||||
function registerStateListeners(client: MatrixClient, room: Room): void { // XXX cargoculted from sync.ts
|
|
||||||
// we need to also re-emit room state and room member events, so hook it up
|
|
||||||
// to the client now. We need to add a listener for RoomState.members in
|
|
||||||
// order to hook them correctly.
|
|
||||||
client.reEmitter.reEmit(room.currentState, [
|
|
||||||
RoomStateEvent.Events,
|
|
||||||
RoomStateEvent.Members,
|
|
||||||
RoomStateEvent.NewMember,
|
|
||||||
RoomStateEvent.Update,
|
|
||||||
]);
|
|
||||||
room.currentState.on(RoomStateEvent.NewMember, function(event, state, member) {
|
|
||||||
member.user = client.getUser(member.userId);
|
|
||||||
client.reEmitter.reEmit(member, [
|
|
||||||
RoomMemberEvent.Name,
|
|
||||||
RoomMemberEvent.Typing,
|
|
||||||
RoomMemberEvent.PowerLevel,
|
|
||||||
RoomMemberEvent.Membership,
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
function deregisterStateListeners(room: Room): void { // XXX cargoculted from sync.ts
|
|
||||||
// could do with a better way of achieving this.
|
|
||||||
room.currentState.removeAllListeners(RoomStateEvent.Events);
|
|
||||||
room.currentState.removeAllListeners(RoomStateEvent.Members);
|
|
||||||
room.currentState.removeAllListeners(RoomStateEvent.NewMember);
|
|
||||||
} */
|
|
||||||
|
|
||||||
function mapEvents(client: MatrixClient, roomId: string, events: object[], decrypt = true): MatrixEvent[] {
|
function mapEvents(client: MatrixClient, roomId: string, events: object[], decrypt = true): MatrixEvent[] {
|
||||||
const mapper = client.getEventMapper({ decrypt });
|
const mapper = client.getEventMapper({ decrypt });
|
||||||
return (events as Array<IStrippedState | IRoomEvent | IStateEvent | IMinimalEvent>).map(function(e) {
|
return (events as Array<IStrippedState | IRoomEvent | IStateEvent | IMinimalEvent>).map(function(e) {
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ export interface MSC3575Filter {
|
|||||||
room_types?: string[];
|
room_types?: string[];
|
||||||
not_room_types?: string[];
|
not_room_types?: string[];
|
||||||
spaces?: string[];
|
spaces?: string[];
|
||||||
|
tags?: string[];
|
||||||
|
not_tags?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -530,6 +532,65 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
|
|||||||
this.emit(SlidingSyncEvent.Lifecycle, state, resp, err);
|
this.emit(SlidingSyncEvent.Lifecycle, state, resp, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private shiftRight(listIndex: number, hi: number, low: number) {
|
||||||
|
// l h
|
||||||
|
// 0,1,2,3,4 <- before
|
||||||
|
// 0,1,2,2,3 <- after, hi is deleted and low is duplicated
|
||||||
|
for (let i = hi; i > low; i--) {
|
||||||
|
if (this.lists[listIndex].isIndexInRange(i)) {
|
||||||
|
this.lists[listIndex].roomIndexToRoomId[i] =
|
||||||
|
this.lists[listIndex].roomIndexToRoomId[
|
||||||
|
i - 1
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private shiftLeft(listIndex: number, hi: number, low: number) {
|
||||||
|
// l h
|
||||||
|
// 0,1,2,3,4 <- before
|
||||||
|
// 0,1,3,4,4 <- after, low is deleted and hi is duplicated
|
||||||
|
for (let i = low; i < hi; i++) {
|
||||||
|
if (this.lists[listIndex].isIndexInRange(i)) {
|
||||||
|
this.lists[listIndex].roomIndexToRoomId[i] =
|
||||||
|
this.lists[listIndex].roomIndexToRoomId[
|
||||||
|
i + 1
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private removeEntry(listIndex: number, index: number) {
|
||||||
|
// work out the max index
|
||||||
|
let max = -1;
|
||||||
|
for (const n in this.lists[listIndex].roomIndexToRoomId) {
|
||||||
|
if (Number(n) > max) {
|
||||||
|
max = Number(n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (max < 0 || index > max) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Everything higher than the gap needs to be shifted left.
|
||||||
|
this.shiftLeft(listIndex, max, index);
|
||||||
|
delete this.lists[listIndex].roomIndexToRoomId[max];
|
||||||
|
}
|
||||||
|
|
||||||
|
private addEntry(listIndex: number, index: number) {
|
||||||
|
// work out the max index
|
||||||
|
let max = -1;
|
||||||
|
for (const n in this.lists[listIndex].roomIndexToRoomId) {
|
||||||
|
if (Number(n) > max) {
|
||||||
|
max = Number(n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (max < 0 || index > max) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Everything higher than the gap needs to be shifted right, +1 so we don't delete the highest element
|
||||||
|
this.shiftRight(listIndex, max+1, index);
|
||||||
|
}
|
||||||
|
|
||||||
private processListOps(list: ListResponse, listIndex: number): void {
|
private processListOps(list: ListResponse, listIndex: number): void {
|
||||||
let gapIndex = -1;
|
let gapIndex = -1;
|
||||||
list.ops.forEach((op: Operation) => {
|
list.ops.forEach((op: Operation) => {
|
||||||
@@ -537,6 +598,10 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
|
|||||||
case "DELETE": {
|
case "DELETE": {
|
||||||
logger.debug("DELETE", listIndex, op.index, ";");
|
logger.debug("DELETE", listIndex, op.index, ";");
|
||||||
delete this.lists[listIndex].roomIndexToRoomId[op.index];
|
delete this.lists[listIndex].roomIndexToRoomId[op.index];
|
||||||
|
if (gapIndex !== -1) {
|
||||||
|
// we already have a DELETE operation to process, so process it.
|
||||||
|
this.removeEntry(listIndex, gapIndex);
|
||||||
|
}
|
||||||
gapIndex = op.index;
|
gapIndex = op.index;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -551,20 +616,9 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
|
|||||||
if (this.lists[listIndex].roomIndexToRoomId[op.index]) {
|
if (this.lists[listIndex].roomIndexToRoomId[op.index]) {
|
||||||
// something is in this space, shift items out of the way
|
// something is in this space, shift items out of the way
|
||||||
if (gapIndex < 0) {
|
if (gapIndex < 0) {
|
||||||
logger.debug(
|
// we haven't been told where to shift from, so make way for a new room entry.
|
||||||
"cannot work out where gap is, INSERT without previous DELETE! List: ",
|
this.addEntry(listIndex, op.index);
|
||||||
listIndex,
|
} else if (gapIndex > op.index) {
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 0,1,2,3 index
|
|
||||||
// [A,B,C,D]
|
|
||||||
// DEL 3
|
|
||||||
// [A,B,C,_]
|
|
||||||
// INSERT E 0
|
|
||||||
// [E,A,B,C]
|
|
||||||
// gapIndex=3, op.index=0
|
|
||||||
if (gapIndex > op.index) {
|
|
||||||
// the gap is further down the list, shift every element to the right
|
// the gap is further down the list, shift every element to the right
|
||||||
// starting at the gap so we can just shift each element in turn:
|
// starting at the gap so we can just shift each element in turn:
|
||||||
// [A,B,C,_] gapIndex=3, op.index=0
|
// [A,B,C,_] gapIndex=3, op.index=0
|
||||||
@@ -572,26 +626,13 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
|
|||||||
// [A,B,B,C] i=2
|
// [A,B,B,C] i=2
|
||||||
// [A,A,B,C] i=1
|
// [A,A,B,C] i=1
|
||||||
// Terminate. We'll assign into op.index next.
|
// Terminate. We'll assign into op.index next.
|
||||||
for (let i = gapIndex; i > op.index; i--) {
|
this.shiftRight(listIndex, gapIndex, op.index);
|
||||||
if (this.lists[listIndex].isIndexInRange(i)) {
|
|
||||||
this.lists[listIndex].roomIndexToRoomId[i] =
|
|
||||||
this.lists[listIndex].roomIndexToRoomId[
|
|
||||||
i - 1
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (gapIndex < op.index) {
|
} else if (gapIndex < op.index) {
|
||||||
// the gap is further up the list, shift every element to the left
|
// the gap is further up the list, shift every element to the left
|
||||||
// starting at the gap so we can just shift each element in turn
|
// starting at the gap so we can just shift each element in turn
|
||||||
for (let i = gapIndex; i < op.index; i++) {
|
this.shiftLeft(listIndex, op.index, gapIndex);
|
||||||
if (this.lists[listIndex].isIndexInRange(i)) {
|
|
||||||
this.lists[listIndex].roomIndexToRoomId[i] =
|
|
||||||
this.lists[listIndex].roomIndexToRoomId[
|
|
||||||
i + 1
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
gapIndex = -1; // forget the gap, we don't need it anymore.
|
||||||
}
|
}
|
||||||
this.lists[listIndex].roomIndexToRoomId[op.index] = op.room_id;
|
this.lists[listIndex].roomIndexToRoomId[op.index] = op.room_id;
|
||||||
break;
|
break;
|
||||||
@@ -631,6 +672,11 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (gapIndex !== -1) {
|
||||||
|
// we already have a DELETE operation to process, so process it
|
||||||
|
// Everything higher than the gap needs to be shifted left.
|
||||||
|
this.removeEntry(listIndex, gapIndex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
128
src/sync.ts
128
src/sync.ts
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
|
Copyright 2015 - 2022 The Matrix.org Foundation C.I.C.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@@ -51,7 +51,7 @@ import { MatrixError, Method } from "./http-api";
|
|||||||
import { ISavedSync } from "./store";
|
import { ISavedSync } from "./store";
|
||||||
import { EventType } from "./@types/event";
|
import { EventType } from "./@types/event";
|
||||||
import { IPushRules } from "./@types/PushRules";
|
import { IPushRules } from "./@types/PushRules";
|
||||||
import { RoomState, RoomStateEvent, IMarkerFoundOptions } from "./models/room-state";
|
import { RoomStateEvent, IMarkerFoundOptions } from "./models/room-state";
|
||||||
import { RoomMemberEvent } from "./models/room-member";
|
import { RoomMemberEvent } from "./models/room-member";
|
||||||
import { BeaconEvent } from "./models/beacon";
|
import { BeaconEvent } from "./models/beacon";
|
||||||
import { IEventsResponse } from "./@types/requests";
|
import { IEventsResponse } from "./@types/requests";
|
||||||
@@ -199,85 +199,13 @@ export class SyncApi {
|
|||||||
* @return {Room}
|
* @return {Room}
|
||||||
*/
|
*/
|
||||||
public createRoom(roomId: string): Room {
|
public createRoom(roomId: string): Room {
|
||||||
const client = this.client;
|
const room = _createAndReEmitRoom(this.client, roomId, this.opts);
|
||||||
const {
|
|
||||||
timelineSupport,
|
|
||||||
} = client;
|
|
||||||
const room = new Room(roomId, client, client.getUserId(), {
|
|
||||||
lazyLoadMembers: this.opts.lazyLoadMembers,
|
|
||||||
pendingEventOrdering: this.opts.pendingEventOrdering,
|
|
||||||
timelineSupport,
|
|
||||||
});
|
|
||||||
client.reEmitter.reEmit(room, [
|
|
||||||
RoomEvent.Name,
|
|
||||||
RoomEvent.Redaction,
|
|
||||||
RoomEvent.RedactionCancelled,
|
|
||||||
RoomEvent.Receipt,
|
|
||||||
RoomEvent.Tags,
|
|
||||||
RoomEvent.LocalEchoUpdated,
|
|
||||||
RoomEvent.AccountData,
|
|
||||||
RoomEvent.MyMembership,
|
|
||||||
RoomEvent.Timeline,
|
|
||||||
RoomEvent.TimelineReset,
|
|
||||||
]);
|
|
||||||
this.registerStateListeners(room);
|
|
||||||
// Register listeners again after the state reference changes
|
|
||||||
room.on(RoomEvent.CurrentStateUpdated, (targetRoom, previousCurrentState) => {
|
|
||||||
if (targetRoom !== room) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.deregisterStateListeners(previousCurrentState);
|
room.on(RoomStateEvent.Marker, (markerEvent, markerFoundOptions) => {
|
||||||
this.registerStateListeners(room);
|
|
||||||
});
|
|
||||||
return room;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {Room} room
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
private registerStateListeners(room: Room): void {
|
|
||||||
const client = this.client;
|
|
||||||
// we need to also re-emit room state and room member events, so hook it up
|
|
||||||
// to the client now. We need to add a listener for RoomState.members in
|
|
||||||
// order to hook them correctly. (TODO: find a better way?)
|
|
||||||
client.reEmitter.reEmit(room.currentState, [
|
|
||||||
RoomStateEvent.Events,
|
|
||||||
RoomStateEvent.Members,
|
|
||||||
RoomStateEvent.NewMember,
|
|
||||||
RoomStateEvent.Update,
|
|
||||||
BeaconEvent.New,
|
|
||||||
BeaconEvent.Update,
|
|
||||||
BeaconEvent.Destroy,
|
|
||||||
BeaconEvent.LivenessChange,
|
|
||||||
]);
|
|
||||||
|
|
||||||
room.currentState.on(RoomStateEvent.NewMember, function(event, state, member) {
|
|
||||||
member.user = client.getUser(member.userId);
|
|
||||||
client.reEmitter.reEmit(member, [
|
|
||||||
RoomMemberEvent.Name,
|
|
||||||
RoomMemberEvent.Typing,
|
|
||||||
RoomMemberEvent.PowerLevel,
|
|
||||||
RoomMemberEvent.Membership,
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
room.currentState.on(RoomStateEvent.Marker, (markerEvent, markerFoundOptions) => {
|
|
||||||
this.onMarkerStateEvent(room, markerEvent, markerFoundOptions);
|
this.onMarkerStateEvent(room, markerEvent, markerFoundOptions);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
return room;
|
||||||
* @param {RoomState} roomState The roomState to clear listeners from
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
private deregisterStateListeners(roomState: RoomState): void {
|
|
||||||
// could do with a better way of achieving this.
|
|
||||||
roomState.removeAllListeners(RoomStateEvent.Events);
|
|
||||||
roomState.removeAllListeners(RoomStateEvent.Members);
|
|
||||||
roomState.removeAllListeners(RoomStateEvent.NewMember);
|
|
||||||
roomState.removeAllListeners(RoomStateEvent.Marker);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** When we see the marker state change in the room, we know there is some
|
/** When we see the marker state change in the room, we know there is some
|
||||||
@@ -1792,3 +1720,49 @@ function createNewUser(client: MatrixClient, userId: string): User {
|
|||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// /!\ This function is not intended for public use! It's only exported from
|
||||||
|
// here in order to share some common logic with sliding-sync-sdk.ts.
|
||||||
|
export function _createAndReEmitRoom(client: MatrixClient, roomId: string, opts: Partial<IStoredClientOpts>): Room {
|
||||||
|
const { timelineSupport } = client;
|
||||||
|
|
||||||
|
const room = new Room(roomId, client, client.getUserId(), {
|
||||||
|
lazyLoadMembers: opts.lazyLoadMembers,
|
||||||
|
pendingEventOrdering: opts.pendingEventOrdering,
|
||||||
|
timelineSupport,
|
||||||
|
});
|
||||||
|
|
||||||
|
client.reEmitter.reEmit(room, [
|
||||||
|
RoomEvent.Name,
|
||||||
|
RoomEvent.Redaction,
|
||||||
|
RoomEvent.RedactionCancelled,
|
||||||
|
RoomEvent.Receipt,
|
||||||
|
RoomEvent.Tags,
|
||||||
|
RoomEvent.LocalEchoUpdated,
|
||||||
|
RoomEvent.AccountData,
|
||||||
|
RoomEvent.MyMembership,
|
||||||
|
RoomEvent.Timeline,
|
||||||
|
RoomEvent.TimelineReset,
|
||||||
|
RoomStateEvent.Events,
|
||||||
|
RoomStateEvent.Members,
|
||||||
|
RoomStateEvent.NewMember,
|
||||||
|
RoomStateEvent.Update,
|
||||||
|
BeaconEvent.New,
|
||||||
|
BeaconEvent.Update,
|
||||||
|
BeaconEvent.Destroy,
|
||||||
|
BeaconEvent.LivenessChange,
|
||||||
|
]);
|
||||||
|
|
||||||
|
// We need to add a listener for RoomState.members in order to hook them
|
||||||
|
// correctly.
|
||||||
|
room.on(RoomStateEvent.NewMember, (event, state, member) => {
|
||||||
|
member.user = client.getUser(member.userId);
|
||||||
|
client.reEmitter.reEmit(member, [
|
||||||
|
RoomMemberEvent.Name,
|
||||||
|
RoomMemberEvent.Typing,
|
||||||
|
RoomMemberEvent.PowerLevel,
|
||||||
|
RoomMemberEvent.Membership,
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
return room;
|
||||||
|
}
|
||||||
|
|||||||
@@ -74,8 +74,7 @@ export function decodeParams(query: string): QueryDict {
|
|||||||
* variables with. E.g. { "$bar": "baz" }.
|
* variables with. E.g. { "$bar": "baz" }.
|
||||||
* @return {string} The result of replacing all template variables e.g. '/foo/baz'.
|
* @return {string} The result of replacing all template variables e.g. '/foo/baz'.
|
||||||
*/
|
*/
|
||||||
export function encodeUri(pathTemplate: string,
|
export function encodeUri(pathTemplate: string, variables: Record<string, string>): string {
|
||||||
variables: Record<string, string>): string {
|
|
||||||
for (const key in variables) {
|
for (const key in variables) {
|
||||||
if (!variables.hasOwnProperty(key)) {
|
if (!variables.hasOwnProperty(key)) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -12,6 +12,6 @@
|
|||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"./src/**/*.ts",
|
"./src/**/*.ts",
|
||||||
"./spec/**/*.ts",
|
"./spec/**/*.ts"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
420
yarn.lock
420
yarn.lock
@@ -3,11 +3,12 @@
|
|||||||
|
|
||||||
|
|
||||||
"@actions/core@^1.4.0":
|
"@actions/core@^1.4.0":
|
||||||
version "1.9.0"
|
version "1.9.1"
|
||||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.9.0.tgz#20c1baac5d4bd2508ba1fc3e5f3fc4b8a80d4082"
|
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.9.1.tgz#97c0201b1f9856df4f7c3a375cdcdb0c2a2f750b"
|
||||||
integrity sha512-5pbM693Ih59ZdUhgk+fts+bUWTnIdHV3kwOSr+QIoFHMLg7Gzhwm0cifDY/AG68ekEJAkHnQVpcy4f6GjmzBCA==
|
integrity sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@actions/http-client" "^2.0.1"
|
"@actions/http-client" "^2.0.1"
|
||||||
|
uuid "^8.3.2"
|
||||||
|
|
||||||
"@actions/github@^5.0.0":
|
"@actions/github@^5.0.0":
|
||||||
version "5.0.3"
|
version "5.0.3"
|
||||||
@@ -99,16 +100,7 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
eslint-rule-composer "^0.3.0"
|
eslint-rule-composer "^0.3.0"
|
||||||
|
|
||||||
"@babel/generator@^7.12.11", "@babel/generator@^7.7.2":
|
"@babel/generator@^7.12.11", "@babel/generator@^7.18.10", "@babel/generator@^7.7.2":
|
||||||
version "7.18.9"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.9.tgz#68337e9ea8044d6ddc690fb29acae39359cca0a5"
|
|
||||||
integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==
|
|
||||||
dependencies:
|
|
||||||
"@babel/types" "^7.18.9"
|
|
||||||
"@jridgewell/gen-mapping" "^0.3.2"
|
|
||||||
jsesc "^2.5.1"
|
|
||||||
|
|
||||||
"@babel/generator@^7.18.10", "@babel/generator@^7.18.9":
|
|
||||||
version "7.18.12"
|
version "7.18.12"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4"
|
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4"
|
||||||
integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==
|
integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==
|
||||||
@@ -142,7 +134,7 @@
|
|||||||
browserslist "^4.20.2"
|
browserslist "^4.20.2"
|
||||||
semver "^6.3.0"
|
semver "^6.3.0"
|
||||||
|
|
||||||
"@babel/helper-create-class-features-plugin@^7.18.6":
|
"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.18.9":
|
||||||
version "7.18.9"
|
version "7.18.9"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce"
|
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce"
|
||||||
integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==
|
integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==
|
||||||
@@ -327,12 +319,7 @@
|
|||||||
chalk "^2.0.0"
|
chalk "^2.0.0"
|
||||||
js-tokens "^4.0.0"
|
js-tokens "^4.0.0"
|
||||||
|
|
||||||
"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.2.3", "@babel/parser@^7.9.4":
|
"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.18.11", "@babel/parser@^7.2.3", "@babel/parser@^7.9.4":
|
||||||
version "7.18.9"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.9.tgz#f2dde0c682ccc264a9a8595efd030a5cc8fd2539"
|
|
||||||
integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==
|
|
||||||
|
|
||||||
"@babel/parser@^7.18.10", "@babel/parser@^7.18.11", "@babel/parser@^7.18.6", "@babel/parser@^7.18.9":
|
|
||||||
version "7.18.11"
|
version "7.18.11"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9"
|
||||||
integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==
|
integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==
|
||||||
@@ -858,12 +845,12 @@
|
|||||||
"@babel/helper-plugin-utils" "^7.18.9"
|
"@babel/helper-plugin-utils" "^7.18.9"
|
||||||
|
|
||||||
"@babel/plugin-transform-typescript@^7.18.6":
|
"@babel/plugin-transform-typescript@^7.18.6":
|
||||||
version "7.18.8"
|
version "7.18.12"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz#303feb7a920e650f2213ef37b36bbf327e6fa5a0"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz#712e9a71b9e00fde9f8c0238e0cceee86ab2f8fd"
|
||||||
integrity sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==
|
integrity sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-create-class-features-plugin" "^7.18.6"
|
"@babel/helper-create-class-features-plugin" "^7.18.9"
|
||||||
"@babel/helper-plugin-utils" "^7.18.6"
|
"@babel/helper-plugin-utils" "^7.18.9"
|
||||||
"@babel/plugin-syntax-typescript" "^7.18.6"
|
"@babel/plugin-syntax-typescript" "^7.18.6"
|
||||||
|
|
||||||
"@babel/plugin-transform-unicode-escapes@^7.18.10":
|
"@babel/plugin-transform-unicode-escapes@^7.18.10":
|
||||||
@@ -1000,7 +987,7 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.13.4"
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
"@babel/template@^7.18.10", "@babel/template@^7.18.6":
|
"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3":
|
||||||
version "7.18.10"
|
version "7.18.10"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
|
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
|
||||||
integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
|
integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
|
||||||
@@ -1009,32 +996,7 @@
|
|||||||
"@babel/parser" "^7.18.10"
|
"@babel/parser" "^7.18.10"
|
||||||
"@babel/types" "^7.18.10"
|
"@babel/types" "^7.18.10"
|
||||||
|
|
||||||
"@babel/template@^7.3.3":
|
"@babel/traverse@^7.1.6", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.9", "@babel/traverse@^7.7.2":
|
||||||
version "7.18.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31"
|
|
||||||
integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==
|
|
||||||
dependencies:
|
|
||||||
"@babel/code-frame" "^7.18.6"
|
|
||||||
"@babel/parser" "^7.18.6"
|
|
||||||
"@babel/types" "^7.18.6"
|
|
||||||
|
|
||||||
"@babel/traverse@^7.1.6", "@babel/traverse@^7.7.2":
|
|
||||||
version "7.18.9"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.9.tgz#deeff3e8f1bad9786874cb2feda7a2d77a904f98"
|
|
||||||
integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==
|
|
||||||
dependencies:
|
|
||||||
"@babel/code-frame" "^7.18.6"
|
|
||||||
"@babel/generator" "^7.18.9"
|
|
||||||
"@babel/helper-environment-visitor" "^7.18.9"
|
|
||||||
"@babel/helper-function-name" "^7.18.9"
|
|
||||||
"@babel/helper-hoist-variables" "^7.18.6"
|
|
||||||
"@babel/helper-split-export-declaration" "^7.18.6"
|
|
||||||
"@babel/parser" "^7.18.9"
|
|
||||||
"@babel/types" "^7.18.9"
|
|
||||||
debug "^4.1.0"
|
|
||||||
globals "^11.1.0"
|
|
||||||
|
|
||||||
"@babel/traverse@^7.18.10", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.9":
|
|
||||||
version "7.18.11"
|
version "7.18.11"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f"
|
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f"
|
||||||
integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==
|
integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==
|
||||||
@@ -1050,15 +1012,7 @@
|
|||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
globals "^11.1.0"
|
globals "^11.1.0"
|
||||||
|
|
||||||
"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
|
"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
|
||||||
version "7.18.9"
|
|
||||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.9.tgz#7148d64ba133d8d73a41b3172ac4b83a1452205f"
|
|
||||||
integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==
|
|
||||||
dependencies:
|
|
||||||
"@babel/helper-validator-identifier" "^7.18.6"
|
|
||||||
to-fast-properties "^2.0.0"
|
|
||||||
|
|
||||||
"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.4.4":
|
|
||||||
version "7.18.10"
|
version "7.18.10"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6"
|
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6"
|
||||||
integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==
|
integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==
|
||||||
@@ -1087,15 +1041,20 @@
|
|||||||
minimatch "^3.1.2"
|
minimatch "^3.1.2"
|
||||||
strip-json-comments "^3.1.1"
|
strip-json-comments "^3.1.1"
|
||||||
|
|
||||||
"@humanwhocodes/config-array@^0.9.2":
|
"@humanwhocodes/config-array@^0.10.4":
|
||||||
version "0.9.5"
|
version "0.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7"
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c"
|
||||||
integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==
|
integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@humanwhocodes/object-schema" "^1.2.1"
|
"@humanwhocodes/object-schema" "^1.2.1"
|
||||||
debug "^4.1.1"
|
debug "^4.1.1"
|
||||||
minimatch "^3.0.4"
|
minimatch "^3.0.4"
|
||||||
|
|
||||||
|
"@humanwhocodes/gitignore-to-minimatch@^1.0.2":
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d"
|
||||||
|
integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==
|
||||||
|
|
||||||
"@humanwhocodes/object-schema@^1.2.1":
|
"@humanwhocodes/object-schema@^1.2.1":
|
||||||
version "1.2.1"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
|
||||||
@@ -1351,15 +1310,16 @@
|
|||||||
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
|
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
|
||||||
|
|
||||||
"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9":
|
"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9":
|
||||||
version "0.3.14"
|
version "0.3.15"
|
||||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed"
|
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
|
||||||
integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==
|
integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@jridgewell/resolve-uri" "^3.0.3"
|
"@jridgewell/resolve-uri" "^3.0.3"
|
||||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||||
|
|
||||||
"@matrix-org/olm@https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz":
|
"@matrix-org/olm@https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz":
|
||||||
version "3.2.12"
|
version "3.2.12"
|
||||||
|
uid "0bce3c86f9d36a4984d3c3e07df1c3fb4c679bd9"
|
||||||
resolved "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz#0bce3c86f9d36a4984d3c3e07df1c3fb4c679bd9"
|
resolved "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz#0bce3c86f9d36a4984d3c3e07df1c3fb4c679bd9"
|
||||||
|
|
||||||
"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3":
|
"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3":
|
||||||
@@ -1426,10 +1386,10 @@
|
|||||||
"@octokit/types" "^6.0.3"
|
"@octokit/types" "^6.0.3"
|
||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/openapi-types@^12.10.0":
|
"@octokit/openapi-types@^12.11.0":
|
||||||
version "12.10.1"
|
version "12.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.10.1.tgz#57b5cc6c7b4e55d8642c93d06401fb1af4839899"
|
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0"
|
||||||
integrity sha512-P+SukKanjFY0ZhsK6wSVnQmxTP2eVPPE8OPSNuxaMYtgVzwJZgfGdwlYjf4RlRU4vLEw4ts2fsE2icG4nZ5ddQ==
|
integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==
|
||||||
|
|
||||||
"@octokit/plugin-paginate-rest@^2.16.8", "@octokit/plugin-paginate-rest@^2.17.0":
|
"@octokit/plugin-paginate-rest@^2.16.8", "@octokit/plugin-paginate-rest@^2.17.0":
|
||||||
version "2.21.3"
|
version "2.21.3"
|
||||||
@@ -1483,16 +1443,16 @@
|
|||||||
"@octokit/plugin-rest-endpoint-methods" "^5.12.0"
|
"@octokit/plugin-rest-endpoint-methods" "^5.12.0"
|
||||||
|
|
||||||
"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0":
|
"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0":
|
||||||
version "6.40.0"
|
version "6.41.0"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.40.0.tgz#f2e665196d419e19bb4265603cf904a820505d0e"
|
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04"
|
||||||
integrity sha512-MFZOU5r8SwgJWDMhrLUSvyJPtVsqA6VnbVI3TNbsmw+Jnvrktzvq2fYES/6RiJA/5Ykdwq4mJmtlYUfW7CGjmw==
|
integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/openapi-types" "^12.10.0"
|
"@octokit/openapi-types" "^12.11.0"
|
||||||
|
|
||||||
"@sinclair/typebox@^0.24.1":
|
"@sinclair/typebox@^0.24.1":
|
||||||
version "0.24.26"
|
version "0.24.28"
|
||||||
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.26.tgz#84f9e8c1d93154e734a7947609a1dc7c7a81cc22"
|
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.28.tgz#15aa0b416f82c268b1573ab653e4413c965fe794"
|
||||||
integrity sha512-1ZVIyyS1NXDRVT8GjWD5jULjhDyM3IsIHef2VGUMdnWOlX2tkPjyEX/7K0TGSH2S8EaPhp1ylFdjSjUGQ+gecg==
|
integrity sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==
|
||||||
|
|
||||||
"@sinonjs/commons@^1.7.0":
|
"@sinonjs/commons@^1.7.0":
|
||||||
version "1.8.3"
|
version "1.8.3"
|
||||||
@@ -1540,9 +1500,9 @@
|
|||||||
"@babel/types" "^7.0.0"
|
"@babel/types" "^7.0.0"
|
||||||
|
|
||||||
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
|
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
|
||||||
version "7.17.1"
|
version "7.18.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314"
|
resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.0.tgz#8134fd78cb39567465be65b9fdc16d378095f41f"
|
||||||
integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==
|
integrity sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.3.0"
|
"@babel/types" "^7.3.0"
|
||||||
|
|
||||||
@@ -1597,11 +1557,11 @@
|
|||||||
"@types/istanbul-lib-report" "*"
|
"@types/istanbul-lib-report" "*"
|
||||||
|
|
||||||
"@types/jest@^28.0.0":
|
"@types/jest@^28.0.0":
|
||||||
version "28.1.6"
|
version "28.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.6.tgz#d6a9cdd38967d2d746861fb5be6b120e38284dd4"
|
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.7.tgz#a680c5d05b69634c2d54a63cb106d7fb1adaba16"
|
||||||
integrity sha512-0RbGAFMfcBJKOmqRazM8L98uokwuwD5F8rHrv/ZMbrZBwVOWZUyPG6VFNscjYr/vjM3Vu4fRrCPbOs42AfemaQ==
|
integrity sha512-acDN4VHD40V24tgu0iC44jchXavRNVFXQ/E6Z5XNsswgoSO/4NgsXoEYmPUGookKldlZQyIpmrEXsHI9cA3ZTA==
|
||||||
dependencies:
|
dependencies:
|
||||||
jest-matcher-utils "^28.0.0"
|
expect "^28.0.0"
|
||||||
pretty-format "^28.0.0"
|
pretty-format "^28.0.0"
|
||||||
|
|
||||||
"@types/json-schema@^7.0.9":
|
"@types/json-schema@^7.0.9":
|
||||||
@@ -1633,19 +1593,19 @@
|
|||||||
integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==
|
integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==
|
||||||
|
|
||||||
"@types/node@*":
|
"@types/node@*":
|
||||||
version "18.6.3"
|
version "18.7.6"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.3.tgz#4e4a95b6fe44014563ceb514b2598b3e623d1c98"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.6.tgz#31743bc5772b6ac223845e18c3fc26f042713c83"
|
||||||
integrity sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==
|
integrity sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A==
|
||||||
|
|
||||||
"@types/node@16":
|
"@types/node@16":
|
||||||
version "16.11.45"
|
version "16.11.54"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.45.tgz#155b13a33c665ef2b136f7f245fa525da419e810"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.54.tgz#1bc17ff09bf340d9350c32200adab22f22753376"
|
||||||
integrity sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ==
|
integrity sha512-ryOpwe15+BtTUxKFfzABjaI/EtXLPBSBEW4B6D5ygWNcORLVKG/1/FC3WwAr5d7t6lCnlVPRsCY0NH680QT+Pg==
|
||||||
|
|
||||||
"@types/prettier@^2.1.5":
|
"@types/prettier@^2.1.5":
|
||||||
version "2.6.4"
|
version "2.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.4.tgz#ad899dad022bab6b5a9f0a0fe67c2f7a4a8950ed"
|
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc"
|
||||||
integrity sha512-fOwvpvQYStpb/zHMx0Cauwywu9yLDmzWiiQBC7gJyq5tYLUXFZvDG7VK1B7WBxxjBJNKFOZ0zLoOQn8vmATbhw==
|
integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==
|
||||||
|
|
||||||
"@types/request@^2.48.5":
|
"@types/request@^2.48.5":
|
||||||
version "2.48.8"
|
version "2.48.8"
|
||||||
@@ -1678,20 +1638,20 @@
|
|||||||
integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
|
integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
|
||||||
|
|
||||||
"@types/yargs@^17.0.8":
|
"@types/yargs@^17.0.8":
|
||||||
version "17.0.10"
|
version "17.0.11"
|
||||||
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a"
|
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.11.tgz#5e10ca33e219807c0eee0f08b5efcba9b6a42c06"
|
||||||
integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==
|
integrity sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/yargs-parser" "*"
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@^5.6.0":
|
"@typescript-eslint/eslint-plugin@^5.6.0":
|
||||||
version "5.33.0"
|
version "5.33.1"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.0.tgz#059798888720ec52ffa96c5f868e31a8f70fa3ec"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz#c0a480d05211660221eda963cc844732fe9b1714"
|
||||||
integrity sha512-jHvZNSW2WZ31OPJ3enhLrEKvAZNyAFWZ6rx9tUwaessTc4sx9KmgMNhVcqVAl1ETnT5rU5fpXTLmY9YvC1DCNg==
|
integrity sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/scope-manager" "5.33.0"
|
"@typescript-eslint/scope-manager" "5.33.1"
|
||||||
"@typescript-eslint/type-utils" "5.33.0"
|
"@typescript-eslint/type-utils" "5.33.1"
|
||||||
"@typescript-eslint/utils" "5.33.0"
|
"@typescript-eslint/utils" "5.33.1"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
functional-red-black-tree "^1.0.1"
|
functional-red-black-tree "^1.0.1"
|
||||||
ignore "^5.2.0"
|
ignore "^5.2.0"
|
||||||
@@ -1700,68 +1660,68 @@
|
|||||||
tsutils "^3.21.0"
|
tsutils "^3.21.0"
|
||||||
|
|
||||||
"@typescript-eslint/parser@^5.6.0":
|
"@typescript-eslint/parser@^5.6.0":
|
||||||
version "5.33.0"
|
version "5.33.1"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.33.0.tgz#26ec3235b74f0667414613727cb98f9b69dc5383"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.33.1.tgz#e4b253105b4d2a4362cfaa4e184e2d226c440ff3"
|
||||||
integrity sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w==
|
integrity sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/scope-manager" "5.33.0"
|
"@typescript-eslint/scope-manager" "5.33.1"
|
||||||
"@typescript-eslint/types" "5.33.0"
|
"@typescript-eslint/types" "5.33.1"
|
||||||
"@typescript-eslint/typescript-estree" "5.33.0"
|
"@typescript-eslint/typescript-estree" "5.33.1"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
|
|
||||||
"@typescript-eslint/scope-manager@5.33.0":
|
"@typescript-eslint/scope-manager@5.33.1":
|
||||||
version "5.33.0"
|
version "5.33.1"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.33.0.tgz#509d7fa540a2c58f66bdcfcf278a3fa79002e18d"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz#8d31553e1b874210018ca069b3d192c6d23bc493"
|
||||||
integrity sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw==
|
integrity sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types" "5.33.0"
|
"@typescript-eslint/types" "5.33.1"
|
||||||
"@typescript-eslint/visitor-keys" "5.33.0"
|
"@typescript-eslint/visitor-keys" "5.33.1"
|
||||||
|
|
||||||
"@typescript-eslint/type-utils@5.33.0":
|
"@typescript-eslint/type-utils@5.33.1":
|
||||||
version "5.33.0"
|
version "5.33.1"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.33.0.tgz#92ad1fba973c078d23767ce2d8d5a601baaa9338"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz#1a14e94650a0ae39f6e3b77478baff002cec4367"
|
||||||
integrity sha512-2zB8uEn7hEH2pBeyk3NpzX1p3lF9dKrEbnXq1F7YkpZ6hlyqb2yZujqgRGqXgRBTHWIUG3NGx/WeZk224UKlIA==
|
integrity sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/utils" "5.33.0"
|
"@typescript-eslint/utils" "5.33.1"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
tsutils "^3.21.0"
|
tsutils "^3.21.0"
|
||||||
|
|
||||||
"@typescript-eslint/types@5.33.0":
|
"@typescript-eslint/types@5.33.1":
|
||||||
version "5.33.0"
|
version "5.33.1"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.33.0.tgz#d41c584831805554b063791338b0220b613a275b"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.33.1.tgz#3faef41793d527a519e19ab2747c12d6f3741ff7"
|
||||||
integrity sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw==
|
integrity sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ==
|
||||||
|
|
||||||
"@typescript-eslint/typescript-estree@5.33.0":
|
"@typescript-eslint/typescript-estree@5.33.1":
|
||||||
version "5.33.0"
|
version "5.33.1"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.0.tgz#02d9c9ade6f4897c09e3508c27de53ad6bfa54cf"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz#a573bd360790afdcba80844e962d8b2031984f34"
|
||||||
integrity sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ==
|
integrity sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types" "5.33.0"
|
"@typescript-eslint/types" "5.33.1"
|
||||||
"@typescript-eslint/visitor-keys" "5.33.0"
|
"@typescript-eslint/visitor-keys" "5.33.1"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
globby "^11.1.0"
|
globby "^11.1.0"
|
||||||
is-glob "^4.0.3"
|
is-glob "^4.0.3"
|
||||||
semver "^7.3.7"
|
semver "^7.3.7"
|
||||||
tsutils "^3.21.0"
|
tsutils "^3.21.0"
|
||||||
|
|
||||||
"@typescript-eslint/utils@5.33.0":
|
"@typescript-eslint/utils@5.33.1":
|
||||||
version "5.33.0"
|
version "5.33.1"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.33.0.tgz#46797461ce3146e21c095d79518cc0f8ec574038"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.33.1.tgz#171725f924fe1fe82bb776522bb85bc034e88575"
|
||||||
integrity sha512-JxOAnXt9oZjXLIiXb5ZIcZXiwVHCkqZgof0O8KPgz7C7y0HS42gi75PdPlqh1Tf109M0fyUw45Ao6JLo7S5AHw==
|
integrity sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/json-schema" "^7.0.9"
|
"@types/json-schema" "^7.0.9"
|
||||||
"@typescript-eslint/scope-manager" "5.33.0"
|
"@typescript-eslint/scope-manager" "5.33.1"
|
||||||
"@typescript-eslint/types" "5.33.0"
|
"@typescript-eslint/types" "5.33.1"
|
||||||
"@typescript-eslint/typescript-estree" "5.33.0"
|
"@typescript-eslint/typescript-estree" "5.33.1"
|
||||||
eslint-scope "^5.1.1"
|
eslint-scope "^5.1.1"
|
||||||
eslint-utils "^3.0.0"
|
eslint-utils "^3.0.0"
|
||||||
|
|
||||||
"@typescript-eslint/visitor-keys@5.33.0":
|
"@typescript-eslint/visitor-keys@5.33.1":
|
||||||
version "5.33.0"
|
version "5.33.1"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.0.tgz#fbcbb074e460c11046e067bc3384b5d66b555484"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz#0155c7571c8cd08956580b880aea327d5c34a18b"
|
||||||
integrity sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw==
|
integrity sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@typescript-eslint/types" "5.33.0"
|
"@typescript-eslint/types" "5.33.1"
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.3.0"
|
||||||
|
|
||||||
JSONStream@^1.0.3:
|
JSONStream@^1.0.3:
|
||||||
@@ -1773,9 +1733,9 @@ JSONStream@^1.0.3:
|
|||||||
through ">=2.2.7 <3"
|
through ">=2.2.7 <3"
|
||||||
|
|
||||||
ace-builds@^1.4.13:
|
ace-builds@^1.4.13:
|
||||||
version "1.8.1"
|
version "1.9.6"
|
||||||
resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.8.1.tgz#5d318fa13d7e6ea947f8a50e42c570c573b29529"
|
resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.9.6.tgz#2d3721f90f0664b79be9288f6319dd57576ff1e7"
|
||||||
integrity sha512-wjEQ4khMQYg9FfdEDoOtqdoHwcwFL48H0VB3te5b5A3eqHwxsTw8IX6+xzfisgborIb8dYU+1y9tcmtGFrCPIg==
|
integrity sha512-M/Li4hPruMSbkkg35LgdbsIBq0WuwrV4ztP2pKaww47rC/MvDc1bOrYxwJrfgxdlzyLKrja5bn+9KwwuzqB2xQ==
|
||||||
|
|
||||||
acorn-globals@^3.0.0:
|
acorn-globals@^3.0.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
@@ -1818,7 +1778,7 @@ acorn@^7.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
|
||||||
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
||||||
|
|
||||||
acorn@^8.5.0, acorn@^8.7.1:
|
acorn@^8.5.0, acorn@^8.8.0:
|
||||||
version "8.8.0"
|
version "8.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
|
||||||
integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
|
integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
|
||||||
@@ -2465,9 +2425,9 @@ camelcase@^6.2.0:
|
|||||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||||
|
|
||||||
caniuse-lite@^1.0.30001370:
|
caniuse-lite@^1.0.30001370:
|
||||||
version "1.0.30001374"
|
version "1.0.30001378"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz#3dab138e3f5485ba2e74bd13eca7fe1037ce6f57"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz#3d2159bf5a8f9ca093275b0d3ecc717b00f27b67"
|
||||||
integrity sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==
|
integrity sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==
|
||||||
|
|
||||||
caseless@~0.12.0:
|
caseless@~0.12.0:
|
||||||
version "0.12.0"
|
version "0.12.0"
|
||||||
@@ -2993,9 +2953,9 @@ ecc-jsbn@~0.1.1:
|
|||||||
safer-buffer "^2.1.0"
|
safer-buffer "^2.1.0"
|
||||||
|
|
||||||
electron-to-chromium@^1.4.202:
|
electron-to-chromium@^1.4.202:
|
||||||
version "1.4.212"
|
version "1.4.225"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.212.tgz#20cd48e88288fd2428138c108804edb1961bf559"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.225.tgz#3e27bdd157cbaf19768141f2e0f0f45071e52338"
|
||||||
integrity sha512-LjQUg1SpLj2GfyaPDVBUHdhmlDU1vDB4f0mJWSGkISoXQrn5/lH3ECPCuo2Bkvf6Y30wO+b69te+rZK/llZmjg==
|
integrity sha512-ICHvGaCIQR3P88uK8aRtx8gmejbVJyC6bB4LEC3anzBrIzdzC7aiZHY4iFfXhN4st6I7lMO0x4sgBHf/7kBvRw==
|
||||||
|
|
||||||
elliptic@^6.5.3:
|
elliptic@^6.5.3:
|
||||||
version "6.5.4"
|
version "6.5.4"
|
||||||
@@ -3078,9 +3038,9 @@ es-to-primitive@^1.2.1:
|
|||||||
is-symbol "^1.0.2"
|
is-symbol "^1.0.2"
|
||||||
|
|
||||||
es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
|
es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
|
||||||
version "0.10.61"
|
version "0.10.62"
|
||||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.61.tgz#311de37949ef86b6b0dcea894d1ffedb909d3269"
|
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5"
|
||||||
integrity sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==
|
integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
es6-iterator "^2.0.3"
|
es6-iterator "^2.0.3"
|
||||||
es6-symbol "^3.1.3"
|
es6-symbol "^3.1.3"
|
||||||
@@ -3147,12 +3107,11 @@ eslint-import-resolver-node@^0.3.6:
|
|||||||
resolve "^1.20.0"
|
resolve "^1.20.0"
|
||||||
|
|
||||||
eslint-module-utils@^2.7.3:
|
eslint-module-utils@^2.7.3:
|
||||||
version "2.7.3"
|
version "2.7.4"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee"
|
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974"
|
||||||
integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==
|
integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^3.2.7"
|
debug "^3.2.7"
|
||||||
find-up "^2.1.0"
|
|
||||||
|
|
||||||
eslint-plugin-import@^2.25.4:
|
eslint-plugin-import@^2.25.4:
|
||||||
version "2.26.0"
|
version "2.26.0"
|
||||||
@@ -3173,10 +3132,10 @@ eslint-plugin-import@^2.25.4:
|
|||||||
resolve "^1.22.0"
|
resolve "^1.22.0"
|
||||||
tsconfig-paths "^3.14.1"
|
tsconfig-paths "^3.14.1"
|
||||||
|
|
||||||
eslint-plugin-matrix-org@^0.5.0:
|
eslint-plugin-matrix-org@^0.6.0:
|
||||||
version "0.5.2"
|
version "0.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-matrix-org/-/eslint-plugin-matrix-org-0.5.2.tgz#eb355b1a81906ea814235d0b224e8162db7cbbf4"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-matrix-org/-/eslint-plugin-matrix-org-0.6.1.tgz#deab0636a1fe999d9c2a42929c2b486334ec8ead"
|
||||||
integrity sha512-qJbyxp9cOi35Qpn3WCBqohCJaMSVp3ntOJ3WbjpREbCQdyrFze6MJAayl7GNidbNsdP7ejHTi0PtZzyKLcfLzQ==
|
integrity sha512-kq7fCbOdj6OvPF50gJtTVSgg6TbQCOxwwZktyIGQJfZyGNWhew77ptTnmaxgxq+RIQ+rzNcWrcMGO5eQC9fZAg==
|
||||||
|
|
||||||
eslint-rule-composer@^0.3.0:
|
eslint-rule-composer@^0.3.0:
|
||||||
version "0.3.0"
|
version "0.3.0"
|
||||||
@@ -3216,13 +3175,14 @@ eslint-visitor-keys@^3.3.0:
|
|||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
|
||||||
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
|
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
|
||||||
|
|
||||||
eslint@8.20.0:
|
eslint@8.22.0:
|
||||||
version "8.20.0"
|
version "8.22.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.20.0.tgz#048ac56aa18529967da8354a478be4ec0a2bc81b"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48"
|
||||||
integrity sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==
|
integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint/eslintrc" "^1.3.0"
|
"@eslint/eslintrc" "^1.3.0"
|
||||||
"@humanwhocodes/config-array" "^0.9.2"
|
"@humanwhocodes/config-array" "^0.10.4"
|
||||||
|
"@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
|
||||||
ajv "^6.10.0"
|
ajv "^6.10.0"
|
||||||
chalk "^4.0.0"
|
chalk "^4.0.0"
|
||||||
cross-spawn "^7.0.2"
|
cross-spawn "^7.0.2"
|
||||||
@@ -3232,14 +3192,17 @@ eslint@8.20.0:
|
|||||||
eslint-scope "^7.1.1"
|
eslint-scope "^7.1.1"
|
||||||
eslint-utils "^3.0.0"
|
eslint-utils "^3.0.0"
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.3.0"
|
||||||
espree "^9.3.2"
|
espree "^9.3.3"
|
||||||
esquery "^1.4.0"
|
esquery "^1.4.0"
|
||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
fast-deep-equal "^3.1.3"
|
fast-deep-equal "^3.1.3"
|
||||||
file-entry-cache "^6.0.1"
|
file-entry-cache "^6.0.1"
|
||||||
|
find-up "^5.0.0"
|
||||||
functional-red-black-tree "^1.0.1"
|
functional-red-black-tree "^1.0.1"
|
||||||
glob-parent "^6.0.1"
|
glob-parent "^6.0.1"
|
||||||
globals "^13.15.0"
|
globals "^13.15.0"
|
||||||
|
globby "^11.1.0"
|
||||||
|
grapheme-splitter "^1.0.4"
|
||||||
ignore "^5.2.0"
|
ignore "^5.2.0"
|
||||||
import-fresh "^3.0.0"
|
import-fresh "^3.0.0"
|
||||||
imurmurhash "^0.1.4"
|
imurmurhash "^0.1.4"
|
||||||
@@ -3257,12 +3220,12 @@ eslint@8.20.0:
|
|||||||
text-table "^0.2.0"
|
text-table "^0.2.0"
|
||||||
v8-compile-cache "^2.0.3"
|
v8-compile-cache "^2.0.3"
|
||||||
|
|
||||||
espree@^9.3.2:
|
espree@^9.3.2, espree@^9.3.3:
|
||||||
version "9.3.2"
|
version "9.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596"
|
resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d"
|
||||||
integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==
|
integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn "^8.7.1"
|
acorn "^8.8.0"
|
||||||
acorn-jsx "^5.3.2"
|
acorn-jsx "^5.3.2"
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.3.0"
|
||||||
|
|
||||||
@@ -3360,7 +3323,7 @@ exorcist@^2.0.0:
|
|||||||
mkdirp "^1.0.4"
|
mkdirp "^1.0.4"
|
||||||
mold-source-map "^0.4.0"
|
mold-source-map "^0.4.0"
|
||||||
|
|
||||||
expect@^28.1.0, expect@^28.1.3:
|
expect@^28.0.0, expect@^28.1.0, expect@^28.1.3:
|
||||||
version "28.1.3"
|
version "28.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec"
|
resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec"
|
||||||
integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==
|
integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==
|
||||||
@@ -3468,13 +3431,6 @@ find-cache-dir@^2.0.0:
|
|||||||
make-dir "^2.0.0"
|
make-dir "^2.0.0"
|
||||||
pkg-dir "^3.0.0"
|
pkg-dir "^3.0.0"
|
||||||
|
|
||||||
find-up@^2.1.0:
|
|
||||||
version "2.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
|
|
||||||
integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
|
|
||||||
dependencies:
|
|
||||||
locate-path "^2.0.0"
|
|
||||||
|
|
||||||
find-up@^3.0.0:
|
find-up@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
|
resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
|
||||||
@@ -3693,6 +3649,11 @@ graceful-fs@^4.1.9, graceful-fs@^4.2.9:
|
|||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
|
||||||
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
|
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
|
||||||
|
|
||||||
|
grapheme-splitter@^1.0.4:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
|
||||||
|
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
|
||||||
|
|
||||||
har-schema@^2.0.0:
|
har-schema@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
||||||
@@ -3728,7 +3689,7 @@ has-property-descriptors@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
get-intrinsic "^1.1.1"
|
get-intrinsic "^1.1.1"
|
||||||
|
|
||||||
has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
|
has-symbols@^1.0.2, has-symbols@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
||||||
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
|
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
|
||||||
@@ -3938,14 +3899,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4:
|
|||||||
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
|
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
|
||||||
integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
|
integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
|
||||||
|
|
||||||
is-core-module@^2.8.1:
|
is-core-module@^2.8.1, is-core-module@^2.9.0:
|
||||||
version "2.9.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
|
|
||||||
integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
|
|
||||||
dependencies:
|
|
||||||
has "^1.0.3"
|
|
||||||
|
|
||||||
is-core-module@^2.9.0:
|
|
||||||
version "2.10.0"
|
version "2.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed"
|
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed"
|
||||||
integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
|
integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
|
||||||
@@ -4306,11 +4260,11 @@ jest-leak-detector@^28.1.3:
|
|||||||
pretty-format "^28.1.3"
|
pretty-format "^28.1.3"
|
||||||
|
|
||||||
jest-localstorage-mock@^2.4.6:
|
jest-localstorage-mock@^2.4.6:
|
||||||
version "2.4.21"
|
version "2.4.22"
|
||||||
resolved "https://registry.yarnpkg.com/jest-localstorage-mock/-/jest-localstorage-mock-2.4.21.tgz#920aa6fc8f8ab2f81e40433e48e2efdb2d81a6e0"
|
resolved "https://registry.yarnpkg.com/jest-localstorage-mock/-/jest-localstorage-mock-2.4.22.tgz#9d70be92bfc591c0be289ee2f71de1b4b2a5ca9b"
|
||||||
integrity sha512-IBXPBufnfPyr4VkoQeJ+zlfWlG84P0KbL4ejcV9j3xNI0v6OWznQlH6Ke9xjSarleR11090oSeWADSUow0PmFw==
|
integrity sha512-60PWSDFQOS5v7JzSmYLM3dPLg0JLl+2Vc4lIEz/rj2yrXJzegsFLn7anwc5IL0WzJbBa/Las064CHbFg491/DQ==
|
||||||
|
|
||||||
jest-matcher-utils@^28.0.0, jest-matcher-utils@^28.1.3:
|
jest-matcher-utils@^28.1.3:
|
||||||
version "28.1.3"
|
version "28.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e"
|
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e"
|
||||||
integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==
|
integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==
|
||||||
@@ -4714,14 +4668,6 @@ linkify-it@^3.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
uc.micro "^1.0.1"
|
uc.micro "^1.0.1"
|
||||||
|
|
||||||
locate-path@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
|
|
||||||
integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
|
|
||||||
dependencies:
|
|
||||||
p-locate "^2.0.0"
|
|
||||||
path-exists "^3.0.0"
|
|
||||||
|
|
||||||
locate-path@^3.0.0:
|
locate-path@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
|
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
|
||||||
@@ -5091,26 +5037,16 @@ object-keys@^1.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
||||||
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
||||||
|
|
||||||
object.assign@^4.1.0:
|
object.assign@^4.1.0, object.assign@^4.1.2:
|
||||||
version "4.1.3"
|
version "4.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.3.tgz#d36b7700ddf0019abb6b1df1bb13f6445f79051f"
|
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
|
||||||
integrity sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==
|
integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bind "^1.0.2"
|
call-bind "^1.0.2"
|
||||||
define-properties "^1.1.4"
|
define-properties "^1.1.4"
|
||||||
has-symbols "^1.0.3"
|
has-symbols "^1.0.3"
|
||||||
object-keys "^1.1.1"
|
object-keys "^1.1.1"
|
||||||
|
|
||||||
object.assign@^4.1.2:
|
|
||||||
version "4.1.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
|
|
||||||
integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
|
|
||||||
dependencies:
|
|
||||||
call-bind "^1.0.0"
|
|
||||||
define-properties "^1.1.3"
|
|
||||||
has-symbols "^1.0.1"
|
|
||||||
object-keys "^1.1.1"
|
|
||||||
|
|
||||||
object.values@^1.1.5:
|
object.values@^1.1.5:
|
||||||
version "1.1.5"
|
version "1.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
|
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
|
||||||
@@ -5151,13 +5087,6 @@ os-browserify@~0.3.0:
|
|||||||
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
|
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
|
||||||
integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==
|
integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==
|
||||||
|
|
||||||
p-limit@^1.1.0:
|
|
||||||
version "1.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
|
|
||||||
integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
|
|
||||||
dependencies:
|
|
||||||
p-try "^1.0.0"
|
|
||||||
|
|
||||||
p-limit@^2.0.0, p-limit@^2.2.0:
|
p-limit@^2.0.0, p-limit@^2.2.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
||||||
@@ -5172,13 +5101,6 @@ p-limit@^3.0.2, p-limit@^3.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
yocto-queue "^0.1.0"
|
yocto-queue "^0.1.0"
|
||||||
|
|
||||||
p-locate@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
|
|
||||||
integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
|
|
||||||
dependencies:
|
|
||||||
p-limit "^1.1.0"
|
|
||||||
|
|
||||||
p-locate@^3.0.0:
|
p-locate@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
|
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
|
||||||
@@ -5208,11 +5130,6 @@ p-retry@4:
|
|||||||
"@types/retry" "0.12.0"
|
"@types/retry" "0.12.0"
|
||||||
retry "^0.13.1"
|
retry "^0.13.1"
|
||||||
|
|
||||||
p-try@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
|
|
||||||
integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
|
|
||||||
|
|
||||||
p-try@^2.0.0:
|
p-try@^2.0.0:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
||||||
@@ -6431,9 +6348,9 @@ type@^1.0.1:
|
|||||||
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
|
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
|
||||||
|
|
||||||
type@^2.5.0:
|
type@^2.5.0:
|
||||||
version "2.6.0"
|
version "2.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f"
|
resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
|
||||||
integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==
|
integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
|
||||||
|
|
||||||
typedarray@^0.0.6:
|
typedarray@^0.0.6:
|
||||||
version "0.0.6"
|
version "0.0.6"
|
||||||
@@ -6600,6 +6517,11 @@ uuid@^3.3.2:
|
|||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
|
||||||
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
|
||||||
|
|
||||||
|
uuid@^8.3.2:
|
||||||
|
version "8.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
|
||||||
|
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
|
||||||
|
|
||||||
v8-compile-cache@^2.0.3:
|
v8-compile-cache@^2.0.3:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
|
||||||
@@ -6650,9 +6572,9 @@ vue-docgen-api@^3.26.0:
|
|||||||
vue-template-compiler "^2.0.0"
|
vue-template-compiler "^2.0.0"
|
||||||
|
|
||||||
vue-template-compiler@^2.0.0:
|
vue-template-compiler@^2.0.0:
|
||||||
version "2.7.8"
|
version "2.7.9"
|
||||||
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.8.tgz#eadd54ed8fbff55b7deb07093a976c07f451a1dc"
|
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.9.tgz#ffbeb1769ae6af65cd405a6513df6b1e20e33616"
|
||||||
integrity sha512-eQqdcUpJKJpBRPDdxCNsqUoT0edNvdt1jFjtVnVS/LPPmr0BU2jWzXlrf6BVMeODtdLewB3j8j3WjNiB+V+giw==
|
integrity sha512-NPJxt6OjVlzmkixYg0SdIN2Lw/rMryQskObY89uAMcM9flS/HrmLK5LaN1ReBTuhBgnYuagZZEkSS6FESATQUQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
de-indent "^1.0.2"
|
de-indent "^1.0.2"
|
||||||
he "^1.2.0"
|
he "^1.2.0"
|
||||||
@@ -6771,9 +6693,9 @@ wrappy@1:
|
|||||||
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
|
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
|
||||||
|
|
||||||
write-file-atomic@^4.0.1:
|
write-file-atomic@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f"
|
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
|
||||||
integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==
|
integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
|
||||||
dependencies:
|
dependencies:
|
||||||
imurmurhash "^0.1.4"
|
imurmurhash "^0.1.4"
|
||||||
signal-exit "^3.0.7"
|
signal-exit "^3.0.7"
|
||||||
@@ -6814,9 +6736,9 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.9:
|
|||||||
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
|
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
|
||||||
|
|
||||||
yargs-parser@^21.0.0:
|
yargs-parser@^21.0.0:
|
||||||
version "21.0.1"
|
version "21.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35"
|
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
|
||||||
integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==
|
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
|
||||||
|
|
||||||
yargs@^16.2.0:
|
yargs@^16.2.0:
|
||||||
version "16.2.0"
|
version "16.2.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user