Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@fluidframework/protocol-definitions

Package Overview
Dependencies
Maintainers
2
Versions
118
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fluidframework/protocol-definitions - npm Package Compare versions

Comparing version 3.0.0 to 3.1.0-220363

api-extractor-lint.json

16

api-extractor.json
{
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
"extends": "@fluidframework/build-common/api-extractor-common-strict.json",
"apiReport": {
"enabled": true,
"reportFolder": "<projectFolder>/api-report/"
},
"docModel": {
"enabled": true,
"apiJsonFilePath": "<projectFolder>/_api-extractor-temp/doc-models/<unscopedPackageName>.api.json"
"extends": "../../build/build-common/api-extractor-base.json",
"messages": {
"extractorMessageReporting": {
// TODO: Add missing documentation and remove this rule override
"ae-undocumented": {
"logLevel": "none"
}
}
}
}

@@ -7,9 +7,6 @@ ## API Report File for "@fluidframework/protocol-definitions"

import { IErrorEvent } from '@fluidframework/common-definitions';
import { IEventProvider } from '@fluidframework/common-definitions';
// @public
// @alpha
export type ConnectionMode = "write" | "read";
// @public (undocumented)
// @alpha (undocumented)
export enum FileMode {

@@ -26,3 +23,3 @@ // (undocumented)

// @public @deprecated (undocumented)
// @internal @deprecated (undocumented)
export interface IActorClient {

@@ -33,3 +30,3 @@ // (undocumented)

// @public
// @alpha
export type IApprovedProposal = {

@@ -39,3 +36,3 @@ approvalSequenceNumber: number;

// @public (undocumented)
// @alpha (undocumented)
export interface IAttachment {

@@ -46,3 +43,3 @@ // (undocumented)

// @public
// @alpha
export interface IBlob {

@@ -53,3 +50,3 @@ contents: string;

// @public
// @alpha
export interface IBranchOrigin {

@@ -61,3 +58,3 @@ id: string;

// @public
// @alpha
export interface ICapabilities {

@@ -67,3 +64,3 @@ interactive: boolean;

// @public
// @alpha
export interface IClient {

@@ -79,7 +76,5 @@ details: IClientDetails;

// @public
// @alpha
export interface IClientConfiguration {
// (undocumented)
blockSize: number;
// (undocumented)
maxMessageSize: number;

@@ -90,3 +85,3 @@ noopCountFrequency?: number;

// @public
// @alpha
export interface IClientDetails {

@@ -101,3 +96,3 @@ capabilities: ICapabilities;

// @public
// @internal
export interface IClientJoin {

@@ -108,3 +103,3 @@ clientId: string;

// @public
// @alpha
export type ICommittedProposal = {

@@ -114,3 +109,3 @@ commitSequenceNumber: number;

// @public
// @internal
export interface IConnect {

@@ -130,3 +125,3 @@ client: IClient;

// @public
// @alpha
export interface IConnected {

@@ -152,3 +147,3 @@ checkpointSequenceNumber?: number;

// @public (undocumented)
// @alpha (undocumented)
export interface ICreateBlobResponse {

@@ -159,3 +154,3 @@ // (undocumented)

// @public (undocumented)
// @alpha (undocumented)
export interface IDocumentAttributes {

@@ -166,3 +161,3 @@ minimumSequenceNumber: number;

// @public
// @alpha
export interface IDocumentMessage {

@@ -179,3 +174,3 @@ clientSequenceNumber: number;

// @public
// @internal
export interface IDocumentSystemMessage extends IDocumentMessage {

@@ -186,3 +181,3 @@ // (undocumented)

// @public (undocumented)
// @alpha (undocumented)
export interface INack {

@@ -194,3 +189,3 @@ content: INackContent;

// @public
// @alpha
export interface INackContent {

@@ -203,3 +198,3 @@ code: number;

// @public (undocumented)
// @alpha (undocumented)
export interface IProcessMessageResult {

@@ -210,3 +205,3 @@ // (undocumented)

// @public
// @alpha
export interface IProposal {

@@ -217,3 +212,3 @@ key: string;

// @public (undocumented)
// @internal (undocumented)
export interface IProtocolState {

@@ -232,8 +227,14 @@ // (undocumented)

// @public
export interface IQuorum extends Omit<IQuorumClients, "on" | "once" | "off">, Omit<IQuorumProposals, "on" | "once" | "off">, IEventProvider<IQuorumEvents> {
// @alpha
export interface IQuorum extends Omit<IQuorumClients, "on" | "once" | "off">, Omit<IQuorumProposals, "on" | "once" | "off"> {
// (undocumented)
off: IQuorum["on"];
// (undocumented)
on: IQuorumClients["on"] & IQuorumProposals["on"];
// (undocumented)
once: IQuorum["on"];
}
// @public
export interface IQuorumClients extends IEventProvider<IQuorumClientsEvents> {
// @alpha
export interface IQuorumClients {
// (undocumented)

@@ -243,6 +244,16 @@ getMember(clientId: string): ISequencedClient | undefined;

getMembers(): Map<string, ISequencedClient>;
// (undocumented)
off: IQuorumClients["on"];
// (undocumented)
on(event: "addMember", listener: (clientId: string, details: ISequencedClient) => void): any;
// (undocumented)
on(event: "removeMember", listener: (clientId: string) => void): any;
// (undocumented)
on(event: "error", listener: (message: any) => void): any;
// (undocumented)
once: IQuorumClients["on"];
}
// @public
export interface IQuorumClientsEvents extends IErrorEvent {
// @internal @deprecated (undocumented)
export interface IQuorumClientsEvents {
// (undocumented)

@@ -252,9 +263,11 @@ (event: "addMember", listener: (clientId: string, details: ISequencedClient) => void): any;

(event: "removeMember", listener: (clientId: string) => void): any;
// (undocumented)
(event: "error", listener: (message: any) => void): any;
}
// @public
// @internal @deprecated
export type IQuorumEvents = IQuorumClientsEvents & IQuorumProposalsEvents;
// @public
export interface IQuorumProposals extends IEventProvider<IQuorumProposalsEvents> {
// @alpha
export interface IQuorumProposals {
// (undocumented)

@@ -265,7 +278,17 @@ get(key: string): unknown;

// (undocumented)
off: IQuorumProposals["on"];
// (undocumented)
on(event: "addProposal", listener: (proposal: ISequencedProposal) => void): any;
// (undocumented)
on(event: "approveProposal", listener: (sequenceNumber: number, key: string, value: unknown, approvalSequenceNumber: number) => void): any;
// (undocumented)
on(event: "error", listener: (message: any) => void): void;
// (undocumented)
once: IQuorumProposals["on"];
// (undocumented)
propose(key: string, value: unknown): Promise<void>;
}
// @public
export interface IQuorumProposalsEvents extends IErrorEvent {
// @internal @deprecated
export interface IQuorumProposalsEvents {
// (undocumented)

@@ -275,5 +298,7 @@ (event: "addProposal", listener: (proposal: ISequencedProposal) => void): any;

(event: "approveProposal", listener: (sequenceNumber: number, key: string, value: unknown, approvalSequenceNumber: number) => void): any;
// (undocumented)
(event: "error", listener: (message: any) => void): void;
}
// @public
// @internal
export interface ISentSignalMessage extends ISignalMessageBase {

@@ -283,3 +308,3 @@ targetClientId?: string;

// @public
// @alpha
export interface ISequencedClient {

@@ -290,3 +315,3 @@ client: IClient;

// @public (undocumented)
// @internal (undocumented)
export interface ISequencedDocumentAugmentedMessage extends ISequencedDocumentMessage {

@@ -297,11 +322,11 @@ // (undocumented)

// @public
// @alpha
export interface ISequencedDocumentMessage {
clientId: string | null;
clientSequenceNumber: number;
// @deprecated
compression?: string;
contents: unknown;
// (undocumented)
data?: string;
// @alpha
// @deprecated
expHash1?: string;

@@ -319,3 +344,9 @@ metadata?: unknown;

// @public (undocumented)
// @internal
export type ISequencedDocumentMessageExperimental = Omit<ISequencedDocumentMessage, "expHash1" | "compression"> & {
expHash1?: string;
compression?: string;
};
// @internal (undocumented)
export interface ISequencedDocumentSystemMessage extends ISequencedDocumentMessage {

@@ -326,3 +357,3 @@ // (undocumented)

// @public
// @alpha
export type ISequencedProposal = {

@@ -332,3 +363,3 @@ sequenceNumber: number;

// @public
// @internal
export interface IServerError {

@@ -338,3 +369,3 @@ errorMessage: string;

// @public (undocumented)
// @alpha (undocumented)
export interface ISignalClient {

@@ -347,3 +378,3 @@ client: IClient;

// @public
// @alpha
export interface ISignalMessage extends ISignalMessageBase {

@@ -353,3 +384,3 @@ clientId: string | null;

// @public
// @alpha
export interface ISignalMessageBase {

@@ -362,3 +393,3 @@ clientConnectionNumber?: number;

// @public (undocumented)
// @alpha (undocumented)
export interface ISnapshotTree {

@@ -378,3 +409,3 @@ // (undocumented)

// @public (undocumented)
// @internal (undocumented)
export interface ISnapshotTreeEx extends ISnapshotTree {

@@ -389,6 +420,6 @@ // (undocumented)

// @public
// @alpha
export type IsoDate = string;
// @public
// @alpha
export interface ISummaryAck {

@@ -399,3 +430,3 @@ handle: string;

// @public
// @alpha
export interface ISummaryAttachment {

@@ -408,3 +439,3 @@ // (undocumented)

// @public
// @alpha
export interface ISummaryBlob {

@@ -417,17 +448,12 @@ // (undocumented)

// @public (undocumented)
// @alpha (undocumented)
export interface ISummaryContent {
// (undocumented)
details?: IUploadedSummaryDetails;
// (undocumented)
handle: string;
// (undocumented)
head: string;
// (undocumented)
message: string;
// (undocumented)
parents: string[];
}
// @public
// @alpha
export interface ISummaryHandle {

@@ -440,3 +466,3 @@ handle: string;

// @public
// @alpha
export interface ISummaryNack {

@@ -449,3 +475,3 @@ code?: number;

// @public
// @alpha
export interface ISummaryProposal {

@@ -455,3 +481,3 @@ summarySequenceNumber: number;

// @public @deprecated (undocumented)
// @internal @deprecated (undocumented)
export interface ISummaryTokenClaims {

@@ -466,3 +492,3 @@ // (undocumented)

// @public
// @alpha
export interface ISummaryTree {

@@ -478,3 +504,3 @@ // (undocumented)

// @public
// @alpha
export interface ITokenClaims {

@@ -491,3 +517,3 @@ documentId: string;

// @public @deprecated (undocumented)
// @internal @deprecated (undocumented)
export interface ITokenProvider {

@@ -497,3 +523,3 @@ isValid(): boolean;

// @public @deprecated (undocumented)
// @internal @deprecated (undocumented)
export interface ITokenService {

@@ -504,3 +530,3 @@ // (undocumented)

// @public
// @alpha
export interface ITrace {

@@ -512,3 +538,3 @@ action: string;

// @public (undocumented)
// @alpha (undocumented)
export interface ITree {

@@ -521,3 +547,3 @@ // (undocumented)

// @public
// @alpha
export type ITreeEntry = {

@@ -537,9 +563,8 @@ path: string;

// @public (undocumented)
// @alpha (undocumented)
export interface IUploadedSummaryDetails {
// (undocumented)
includesProtocolTree?: boolean;
}
// @public
// @alpha
export interface IUser {

@@ -549,3 +574,3 @@ id: string;

// @public
// @alpha
export interface IVersion {

@@ -557,3 +582,3 @@ date?: IsoDate;

// @public (undocumented)
// @alpha (undocumented)
export enum MessageType {

@@ -575,15 +600,11 @@ Accept = "accept",

// @public
// @alpha
export enum NackErrorType {
// (undocumented)
BadRequestError = "BadRequestError",
// (undocumented)
InvalidScopeError = "InvalidScopeError",
// (undocumented)
LimitExceededError = "LimitExceededError",
// (undocumented)
ThrottlingError = "ThrottlingError"
}
// @public
// @internal
export enum ScopeType {

@@ -595,3 +616,3 @@ DocRead = "doc:read",

// @public (undocumented)
// @internal (undocumented)
export enum SignalType {

@@ -602,17 +623,17 @@ ClientJoin = "join",

// @public
// @alpha
export type SummaryObject = ISummaryTree | ISummaryBlob | ISummaryHandle | ISummaryAttachment;
// @public
// @alpha
export type SummaryTree = ISummaryTree | ISummaryHandle;
// @public
// @alpha
export namespace SummaryType {
// (undocumented)
// @internal (undocumented)
export type Attachment = 4;
// (undocumented)
// @internal (undocumented)
export type Blob = 2;
// (undocumented)
// @internal (undocumented)
export type Handle = 3;
// (undocumented)
// @internal (undocumented)
export type Tree = 1;

@@ -625,9 +646,9 @@ const Tree: Tree;

// @public
// @alpha
export type SummaryType = SummaryType.Attachment | SummaryType.Blob | SummaryType.Handle | SummaryType.Tree;
// @public
// @alpha
export type SummaryTypeNoHandle = SummaryType.Tree | SummaryType.Blob | SummaryType.Attachment;
// @public
// @alpha
export enum TreeEntry {

@@ -634,0 +655,0 @@ // (undocumented)

# @fluidframework/protocol-definitions Changelog
## [3.1.0](https://github.com/microsoft/FluidFramework/releases/tag/protocol-definitions_v3.1.0)
`ISequencedDocumentMessage` properties `compression` and `expHash1` are deprecated. They have been extracted into a separate interface `ISequencedDocumentMessageExperimental` and should be used from there instead.
## [3.0.0](https://github.com/microsoft/FluidFramework/releases/tag/protocol-definitions_v3.0.0)

@@ -4,0 +8,0 @@

@@ -13,2 +13,3 @@ /*!

* E.g. a user with read-only permissions will not be allowed a "write" connection mode.
* @alpha
*/

@@ -19,2 +20,3 @@ export declare type ConnectionMode = "write" | "read";

* In particular, whether or not the client is {@link ICapabilities.interactive}.
* @alpha
*/

@@ -35,2 +37,3 @@ export interface ICapabilities {

* {@link IClient} connection / environment metadata.
* @alpha
*/

@@ -59,2 +62,3 @@ export interface IClientDetails {

* Represents a client connected to a Fluid service, including associated user details, permissions, and connection mode.
* @alpha
*/

@@ -86,2 +90,3 @@ export interface IClient {

* A {@link IClient} that has been acknowledged by the sequencer.
* @alpha
*/

@@ -98,2 +103,5 @@ export interface ISequencedClient {

}
/**
* @alpha
*/
export interface ISignalClient {

@@ -119,2 +127,3 @@ /**

* Contents sent with a `ClientJoin` message.
* @internal
*/

@@ -121,0 +130,0 @@ export interface IClientJoin {

@@ -6,6 +6,13 @@ /*!

/**
* Key value store of service configuration properties provided to the client as part of connection
* Key value store of service configuration properties provided to the client as part of connection.
* @alpha
*/
export interface IClientConfiguration {
/**
* Max message size the server will accept before requiring chunking.
*/
maxMessageSize: number;
/**
* Server-defined ideal block size for storing snapshots.
*/
blockSize: number;

@@ -12,0 +19,0 @@ /**

@@ -5,3 +5,2 @@ /*!

*/
import { IErrorEvent, IEventProvider } from "@fluidframework/common-definitions";
import { ISequencedClient } from "./clients";

@@ -11,5 +10,7 @@ /**

*
* @remarks
* Consensus on the proposal is achieved if the MSN is \>= the sequence number
* at which the proposal is made and no client within the collaboration window rejects
* the proposal.
* @alpha
*/

@@ -27,3 +28,4 @@ export interface IProposal {

/**
* Similar to IProposal except includes the sequence number when it was made in addition to the fields on IProposal
* Similar to {@link IProposal} except it also includes the sequence number when it was made.
* @alpha
*/

@@ -34,3 +36,4 @@ export declare type ISequencedProposal = {

/**
* Adds the sequence number at which the message was approved to an ISequencedProposal
* Adds the sequence number at which the message was approved to an {@link ISequencedProposal}.
* @alpha
*/

@@ -41,3 +44,4 @@ export declare type IApprovedProposal = {

/**
* Adds the sequence number at which the message was committed to an IApprovedProposal
* Adds the sequence number at which the message was committed to an {@link IApprovedProposal}.
* @alpha
*/

@@ -48,17 +52,26 @@ export declare type ICommittedProposal = {

/**
* @deprecated This type is now unused and will be removed
* Events fired by a Quorum in response to client tracking.
* @internal
*
*/
export interface IQuorumClientsEvents extends IErrorEvent {
export interface IQuorumClientsEvents {
(event: "addMember", listener: (clientId: string, details: ISequencedClient) => void): any;
(event: "removeMember", listener: (clientId: string) => void): any;
(event: "error", listener: (message: any) => void): any;
}
/**
* Events fired by a Quorum in response to proposal tracking.
* @internal
* @deprecated This type is now unused and will be removed
*/
export interface IQuorumProposalsEvents extends IErrorEvent {
export interface IQuorumProposalsEvents {
(event: "addProposal", listener: (proposal: ISequencedProposal) => void): any;
(event: "approveProposal", listener: (sequenceNumber: number, key: string, value: unknown, approvalSequenceNumber: number) => void): any;
(event: "error", listener: (message: any) => void): void;
}
/**
* All events fired by an IQuorum, both client tracking and proposal tracking.
* All events fired by {@link IQuorum}, both client tracking and proposal tracking.
* @internal
* @deprecated This type is now unused and will be removed
*/

@@ -68,20 +81,39 @@ export declare type IQuorumEvents = IQuorumClientsEvents & IQuorumProposalsEvents;

* Interface for tracking clients in the Quorum.
* @alpha
*/
export interface IQuorumClients extends IEventProvider<IQuorumClientsEvents> {
export interface IQuorumClients {
getMembers(): Map<string, ISequencedClient>;
getMember(clientId: string): ISequencedClient | undefined;
on(event: "addMember", listener: (clientId: string, details: ISequencedClient) => void): any;
on(event: "removeMember", listener: (clientId: string) => void): any;
on(event: "error", listener: (message: any) => void): any;
once: IQuorumClients["on"];
off: IQuorumClients["on"];
}
/**
* Interface for tracking proposals in the Quorum.
* @alpha
*/
export interface IQuorumProposals extends IEventProvider<IQuorumProposalsEvents> {
export interface IQuorumProposals {
propose(key: string, value: unknown): Promise<void>;
has(key: string): boolean;
get(key: string): unknown;
on(event: "addProposal", listener: (proposal: ISequencedProposal) => void): any;
on(event: "approveProposal", listener: (sequenceNumber: number, key: string, value: unknown, approvalSequenceNumber: number) => void): any;
on(event: "error", listener: (message: any) => void): void;
once: IQuorumProposals["on"];
off: IQuorumProposals["on"];
}
/**
* Interface combining tracking of clients as well as proposals in the Quorum.
* @alpha
*/
export interface IQuorum extends Omit<IQuorumClients, "on" | "once" | "off">, Omit<IQuorumProposals, "on" | "once" | "off">, IEventProvider<IQuorumEvents> {
export interface IQuorum extends Omit<IQuorumClients, "on" | "once" | "off">, Omit<IQuorumProposals, "on" | "once" | "off"> {
on: IQuorumClients["on"] & IQuorumProposals["on"];
once: IQuorum["on"];
off: IQuorum["on"];
}
/**
* @internal
*/
export interface IProtocolState {

@@ -94,2 +126,5 @@ sequenceNumber: number;

}
/**
* @alpha
*/
export interface IProcessMessageResult {

@@ -96,0 +131,0 @@ immediateNoOp?: boolean;

@@ -6,5 +6,6 @@ /*!

/**
* {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601 format} date: `YYYY-MM-DDTHH:MM:SSZ`
* {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601 format} date: `YYYY-MM-DDTHH:MM:SSZ`.
* @alpha
*/
export declare type IsoDate = string;
//# sourceMappingURL=date.d.ts.map

@@ -15,3 +15,3 @@ /*!

export { IsoDate } from "./date";
export { IBranchOrigin, IDocumentMessage, IDocumentSystemMessage, INack, INackContent, ISentSignalMessage, ISequencedDocumentAugmentedMessage, ISequencedDocumentMessage, ISequencedDocumentSystemMessage, IServerError, ISignalMessage, ISignalMessageBase, ISummaryAck, ISummaryContent, ISummaryNack, ISummaryProposal, ITrace, IUploadedSummaryDetails, MessageType, NackErrorType, SignalType, } from "./protocol";
export { IBranchOrigin, IDocumentMessage, IDocumentSystemMessage, INack, INackContent, ISentSignalMessage, ISequencedDocumentAugmentedMessage, ISequencedDocumentMessage, ISequencedDocumentMessageExperimental, ISequencedDocumentSystemMessage, IServerError, ISignalMessage, ISignalMessageBase, ISummaryAck, ISummaryContent, ISummaryNack, ISummaryProposal, ITrace, IUploadedSummaryDetails, MessageType, NackErrorType, SignalType, } from "./protocol";
export { ScopeType } from "./scopes";

@@ -18,0 +18,0 @@ export { IConnect, IConnected } from "./sockets";

@@ -5,2 +5,5 @@ /*!

*/
/**
* @alpha
*/
export declare enum MessageType {

@@ -63,2 +66,5 @@ /**

}
/**
* @internal
*/
export declare enum SignalType {

@@ -75,3 +81,4 @@ /**

/**
* Messages to track latency trace
* Messages to track latency trace.
* @alpha
*/

@@ -92,2 +99,5 @@ export interface ITrace {

}
/**
* @alpha
*/
export interface INack {

@@ -108,3 +118,4 @@ /**

/**
* Document specific message
* Document-specific message.
* @alpha
*/

@@ -148,2 +159,3 @@ export interface IDocumentMessage {

* Document Message with optional system level data field.
* @internal
*/

@@ -154,3 +166,4 @@ export interface IDocumentSystemMessage extends IDocumentMessage {

/**
* Branch origin information
* Branch origin information.
* @alpha
*/

@@ -172,3 +185,4 @@ export interface IBranchOrigin {

/**
* Sequenced message for a distributed document
* Sequenced message for a distributed document.
* @alpha
*/

@@ -227,6 +241,10 @@ export interface ISequencedDocumentMessage {

timestamp: number;
/**
* Data provided by service. Only present in service generated messages.
*/
data?: string;
/**
* Experimental field for storing the rolling hash at sequence number.
* @alpha
*
* @deprecated Use {@link ISequencedDocumentMessageExperimental} instead.
*/

@@ -236,9 +254,30 @@ expHash1?: string;

* The compression algorithm that was used to compress contents of this message.
* @experimental Not ready for use.
*
* @deprecated Use {@link ISequencedDocumentMessageExperimental} instead.
*/
compression?: string;
}
/**
* {@link ISequencedDocumentAugmentedMessage} with experimental properties.
* @internal
*/
export declare type ISequencedDocumentMessageExperimental = Omit<ISequencedDocumentMessage, "expHash1" | "compression"> & {
/**
* Stores the rolling hash at sequence number.
*/
expHash1?: string;
/**
* The compression algorithm that was used to compress contents of this message.
*/
compression?: string;
};
/**
* @internal
*/
export interface ISequencedDocumentSystemMessage extends ISequencedDocumentMessage {
data: string;
}
/**
* @internal
*/
export interface ISequencedDocumentAugmentedMessage extends ISequencedDocumentMessage {

@@ -248,3 +287,4 @@ additionalContent: string;

/**
* Common interface between incoming and outgoing signals
* Common interface between incoming and outgoing signals.
* @alpha
*/

@@ -270,3 +310,4 @@ export interface ISignalMessageBase {

/**
* Interface for signals sent by the server to clients
* Interface for signals sent by the server to clients.
* @alpha
*/

@@ -281,3 +322,4 @@ export interface ISignalMessage extends ISignalMessageBase {

/**
* Interface for signals sent by clients to the server when submit_signals_v2 is enabled
* Interface for signals sent by clients to the server when submit_signals_v2 is enabled.
* @internal
*/

@@ -290,10 +332,34 @@ export interface ISentSignalMessage extends ISignalMessageBase {

}
/**
* @alpha
*/
export interface IUploadedSummaryDetails {
/**
* Indicates whether the uploaded summary contains ".protocol" tree.
*/
includesProtocolTree?: boolean;
}
/**
* @alpha
*/
export interface ISummaryContent {
/**
* Handle reference to the summary data.
*/
handle: string;
/**
* Message included as part of the summary.
*/
message: string;
/**
* Handles to parent summaries of the proposed new summary.
*/
parents: string[];
/**
* Handle to the current latest summary stored by the service
*/
head: string;
/**
* Details of the uploaded summary.
*/
details?: IUploadedSummaryDetails;

@@ -304,2 +370,3 @@ }

* May want to add error code or something similar in the future.
* @internal
*/

@@ -314,2 +381,3 @@ export interface IServerError {

* Data about the original proposed summary message.
* @alpha
*/

@@ -324,2 +392,3 @@ export interface ISummaryProposal {

* Contents of summary ack expected from the server.
* @alpha
*/

@@ -338,2 +407,3 @@ export interface ISummaryAck {

* Contents of summary nack expected from the server.
* @alpha
*/

@@ -364,2 +434,3 @@ export interface ISummaryNack {

* Interface for nack content.
* @alpha
*/

@@ -389,14 +460,23 @@ export interface INackContent {

/**
* Type of the Nack.
* InvalidScopeError: Client's token is not valid for the intended message.
* ThrottlingError: Retriable after retryAfter number.
* BadRequestError: Clients message is invalid and should retry immediately with a valid message.
* LimitExceededError: Service is having issues. Client should not retry.
* Type of the nack.
* @alpha
*/
export declare enum NackErrorType {
/**
* Retriable after {@link ISummaryNack.retryAfter} seconds.
*/
ThrottlingError = "ThrottlingError",
/**
* Client's token is not valid for the intended message.
*/
InvalidScopeError = "InvalidScopeError",
/**
* Clients message is invalid and should retry immediately with a valid message.
*/
BadRequestError = "BadRequestError",
/**
* Service is having issues. Client should not retry.
*/
LimitExceededError = "LimitExceededError"
}
//# sourceMappingURL=protocol.d.ts.map

@@ -8,2 +8,5 @@ "use strict";

exports.NackErrorType = exports.SignalType = exports.MessageType = void 0;
/**
* @alpha
*/
var MessageType;

@@ -67,2 +70,5 @@ (function (MessageType) {

})(MessageType = exports.MessageType || (exports.MessageType = {}));
/**
* @internal
*/
var SignalType;

@@ -80,15 +86,24 @@ (function (SignalType) {

/**
* Type of the Nack.
* InvalidScopeError: Client's token is not valid for the intended message.
* ThrottlingError: Retriable after retryAfter number.
* BadRequestError: Clients message is invalid and should retry immediately with a valid message.
* LimitExceededError: Service is having issues. Client should not retry.
* Type of the nack.
* @alpha
*/
var NackErrorType;
(function (NackErrorType) {
/**
* Retriable after {@link ISummaryNack.retryAfter} seconds.
*/
NackErrorType["ThrottlingError"] = "ThrottlingError";
/**
* Client's token is not valid for the intended message.
*/
NackErrorType["InvalidScopeError"] = "InvalidScopeError";
/**
* Clients message is invalid and should retry immediately with a valid message.
*/
NackErrorType["BadRequestError"] = "BadRequestError";
/**
* Service is having issues. Client should not retry.
*/
NackErrorType["LimitExceededError"] = "LimitExceededError";
})(NackErrorType = exports.NackErrorType || (exports.NackErrorType = {}));
//# sourceMappingURL=protocol.js.map

@@ -6,3 +6,4 @@ /*!

/**
* Defines scope access for a Container/Document
* Defines scope access for a Container/Document.
* @internal
*/

@@ -9,0 +10,0 @@ export declare enum ScopeType {

@@ -9,3 +9,4 @@ "use strict";

/**
* Defines scope access for a Container/Document
* Defines scope access for a Container/Document.
* @internal
*/

@@ -12,0 +13,0 @@ var ScopeType;

@@ -10,3 +10,4 @@ /*!

/**
* Message sent to connect to the given document
* Message sent to connect to the given document.
* @internal
*/

@@ -66,3 +67,4 @@ export interface IConnect {

/**
* Message sent to indicate a client has connected to the server
* Message sent to indicate a client has connected to the server.
* @alpha
*/

@@ -69,0 +71,0 @@ export interface IConnected {

@@ -6,2 +6,5 @@ /*!

import { IsoDate } from "./date";
/**
* @alpha
*/
export interface IDocumentAttributes {

@@ -17,2 +20,5 @@ /**

}
/**
* @alpha
*/
export declare enum FileMode {

@@ -25,3 +31,4 @@ File = "100644",

/**
* Raw blob stored within the tree
* Raw blob stored within the tree.
* @alpha
*/

@@ -38,5 +45,11 @@ export interface IBlob {

}
/**
* @alpha
*/
export interface IAttachment {
id: string;
}
/**
* @alpha
*/
export interface ICreateBlobResponse {

@@ -46,3 +59,4 @@ id: string;

/**
* A tree entry wraps a path with a type of node
* A tree entry wraps a path with a type of node.
* @alpha
*/

@@ -70,3 +84,4 @@ export declare type ITreeEntry = {

/**
* Type of entries that can be stored in a tree
* Type of entries that can be stored in a tree.
* @alpha
*/

@@ -78,2 +93,5 @@ export declare enum TreeEntry {

}
/**
* @alpha
*/
export interface ITree {

@@ -91,2 +109,5 @@ entries: ITreeEntry[];

}
/**
* @alpha
*/
export interface ISnapshotTree {

@@ -105,2 +126,5 @@ id?: string;

}
/**
* @internal
*/
export interface ISnapshotTreeEx extends ISnapshotTree {

@@ -113,3 +137,4 @@ id: string;

/**
* Represents a version of the snapshot of a data store
* Represents a version of the snapshot of a data store.
* @alpha
*/

@@ -116,0 +141,0 @@ export interface IVersion {

@@ -8,2 +8,5 @@ "use strict";

exports.TreeEntry = exports.FileMode = void 0;
/**
* @alpha
*/
var FileMode;

@@ -17,3 +20,4 @@ (function (FileMode) {

/**
* Type of entries that can be stored in a tree
* Type of entries that can be stored in a tree.
* @alpha
*/

@@ -20,0 +24,0 @@ var TreeEntry;

@@ -7,3 +7,6 @@ /*!

* Object representing a node within a summary tree.
*
* @remarks
* If any particular node is an {@link ISummaryTree}, it can contain additional `SummaryObject`s as its children.
* @alpha
*/

@@ -13,2 +16,3 @@ export declare type SummaryObject = ISummaryTree | ISummaryBlob | ISummaryHandle | ISummaryAttachment;

* The root of the summary tree.
* @alpha
*/

@@ -18,10 +22,24 @@ export declare type SummaryTree = ISummaryTree | ISummaryHandle;

* Type tag used to distinguish different types of nodes in a {@link ISummaryTree}.
* @alpha
*/
export declare namespace SummaryType {
/**
* @internal
*/
type Tree = 1;
/**
* @internal
*/
type Blob = 2;
/**
* @internal
*/
type Handle = 3;
/**
* @internal
*/
type Attachment = 4;
/**
* Represents a sub-tree in the summary.
* @alpha
*/

@@ -33,2 +51,3 @@ const Tree: Tree;

* such as data store / channel attributes.
* @alpha
*/

@@ -38,2 +57,3 @@ const Blob: Blob;

* Path to a summary tree object from the last successful summary.
* @alpha
*/

@@ -45,2 +65,3 @@ const Handle: Handle;

* receive an Id that can be used in the summary.
* @alpha
*/

@@ -51,2 +72,3 @@ const Attachment: Attachment;

* {@inheritDoc (SummaryType:namespace)}
* @alpha
*/

@@ -60,2 +82,3 @@ export declare type SummaryType = SummaryType.Attachment | SummaryType.Blob | SummaryType.Handle | SummaryType.Tree;

* the need to re-send the entire subtree if summary object has not changed.
* @alpha
*/

@@ -71,2 +94,3 @@ export declare type SummaryTypeNoHandle = SummaryType.Tree | SummaryType.Blob | SummaryType.Attachment;

* An example of handle would be: '/<DataStoreId>/<DDSId>'.
* @alpha
*/

@@ -86,6 +110,11 @@ export interface ISummaryHandle {

* String or Binary data to be uploaded to the server as part of the container's Summary.
* Note: Already uploaded blobs would be referenced by a ISummaryAttachment.
*
* @remarks
* Note: Already uploaded blobs would be referenced by an {@link ISummaryAttachment}.
* Additional information can be found here: {@link https://github.com/microsoft/FluidFramework/issues/6568}
* @example "content": "\{ \"pkg\":\"[\\\"OfficeRootComponent\\\",\\\"LastEditedComponent\\\"]\",
*
* @example
* "content": "\{ \"pkg\":\"[\\\"OfficeRootComponent\\\",\\\"LastEditedComponent\\\"]\",
* \"summaryFormatVersion\":2,\"isRootDataStore\":false \}"
* @alpha
*/

@@ -97,8 +126,13 @@ export interface ISummaryBlob {

/**
* Unique identifier for blobs uploaded outside of the summary. Attachment Blobs are uploaded and
* downloaded separately and do not take part of the snapshot payload.
* The id gets returned from the backend after the attachment has been uploaded.
* Unique identifier for blobs uploaded outside of the summary.
*
* @remarks
*
* Attachment Blobs are uploaded and downloaded separately and do not take part of the snapshot payload.
* The ID gets returned from the backend after the attachment has been uploaded.
* Additional information can be found here: {@link https://github.com/microsoft/FluidFramework/issues/6374}
*
* @example "id": "bQAQKARDdMdTgqICmBa_ZB86YXwGP"
* @example
* "id": "bQAQKARDdMdTgqICmBa_ZB86YXwGP"
* @alpha
*/

@@ -112,2 +146,3 @@ export interface ISummaryAttachment {

* Blob, Handle, Attachment or another Tree.
* @alpha
*/

@@ -114,0 +149,0 @@ export interface ISummaryTree {

@@ -10,2 +10,3 @@ "use strict";

* Type tag used to distinguish different types of nodes in a {@link ISummaryTree}.
* @alpha
*/

@@ -17,2 +18,3 @@ // eslint-disable-next-line @typescript-eslint/no-namespace

* Represents a sub-tree in the summary.
* @alpha
*/

@@ -24,2 +26,3 @@ SummaryType.Tree = 1;

* such as data store / channel attributes.
* @alpha
*/

@@ -29,2 +32,3 @@ SummaryType.Blob = 2;

* Path to a summary tree object from the last successful summary.
* @alpha
*/

@@ -36,2 +40,3 @@ SummaryType.Handle = 3;

* receive an Id that can be used in the summary.
* @alpha
*/

@@ -38,0 +43,0 @@ SummaryType.Attachment = 4;

@@ -10,2 +10,3 @@ /*!

* See {@link https://datatracker.ietf.org/doc/html/rfc7519#section-4}
* @alpha
*/

@@ -62,2 +63,3 @@ export interface ITokenClaims {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -71,2 +73,3 @@ export interface ISummaryTokenClaims {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -78,2 +81,3 @@ export interface IActorClient {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -85,2 +89,3 @@ export interface ITokenService {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -87,0 +92,0 @@ export interface ITokenProvider {

@@ -7,2 +7,3 @@ /*!

* Base user definition. It is valid to extend this interface when adding new details to the user object.
* @alpha
*/

@@ -9,0 +10,0 @@ export interface IUser {

@@ -13,2 +13,3 @@ /*!

* E.g. a user with read-only permissions will not be allowed a "write" connection mode.
* @alpha
*/

@@ -19,2 +20,3 @@ export declare type ConnectionMode = "write" | "read";

* In particular, whether or not the client is {@link ICapabilities.interactive}.
* @alpha
*/

@@ -35,2 +37,3 @@ export interface ICapabilities {

* {@link IClient} connection / environment metadata.
* @alpha
*/

@@ -59,2 +62,3 @@ export interface IClientDetails {

* Represents a client connected to a Fluid service, including associated user details, permissions, and connection mode.
* @alpha
*/

@@ -86,2 +90,3 @@ export interface IClient {

* A {@link IClient} that has been acknowledged by the sequencer.
* @alpha
*/

@@ -98,2 +103,5 @@ export interface ISequencedClient {

}
/**
* @alpha
*/
export interface ISignalClient {

@@ -119,2 +127,3 @@ /**

* Contents sent with a `ClientJoin` message.
* @internal
*/

@@ -121,0 +130,0 @@ export interface IClientJoin {

@@ -6,6 +6,13 @@ /*!

/**
* Key value store of service configuration properties provided to the client as part of connection
* Key value store of service configuration properties provided to the client as part of connection.
* @alpha
*/
export interface IClientConfiguration {
/**
* Max message size the server will accept before requiring chunking.
*/
maxMessageSize: number;
/**
* Server-defined ideal block size for storing snapshots.
*/
blockSize: number;

@@ -12,0 +19,0 @@ /**

@@ -5,3 +5,2 @@ /*!

*/
import { IErrorEvent, IEventProvider } from "@fluidframework/common-definitions";
import { ISequencedClient } from "./clients";

@@ -11,5 +10,7 @@ /**

*
* @remarks
* Consensus on the proposal is achieved if the MSN is \>= the sequence number
* at which the proposal is made and no client within the collaboration window rejects
* the proposal.
* @alpha
*/

@@ -27,3 +28,4 @@ export interface IProposal {

/**
* Similar to IProposal except includes the sequence number when it was made in addition to the fields on IProposal
* Similar to {@link IProposal} except it also includes the sequence number when it was made.
* @alpha
*/

@@ -34,3 +36,4 @@ export declare type ISequencedProposal = {

/**
* Adds the sequence number at which the message was approved to an ISequencedProposal
* Adds the sequence number at which the message was approved to an {@link ISequencedProposal}.
* @alpha
*/

@@ -41,3 +44,4 @@ export declare type IApprovedProposal = {

/**
* Adds the sequence number at which the message was committed to an IApprovedProposal
* Adds the sequence number at which the message was committed to an {@link IApprovedProposal}.
* @alpha
*/

@@ -48,17 +52,26 @@ export declare type ICommittedProposal = {

/**
* @deprecated This type is now unused and will be removed
* Events fired by a Quorum in response to client tracking.
* @internal
*
*/
export interface IQuorumClientsEvents extends IErrorEvent {
export interface IQuorumClientsEvents {
(event: "addMember", listener: (clientId: string, details: ISequencedClient) => void): any;
(event: "removeMember", listener: (clientId: string) => void): any;
(event: "error", listener: (message: any) => void): any;
}
/**
* Events fired by a Quorum in response to proposal tracking.
* @internal
* @deprecated This type is now unused and will be removed
*/
export interface IQuorumProposalsEvents extends IErrorEvent {
export interface IQuorumProposalsEvents {
(event: "addProposal", listener: (proposal: ISequencedProposal) => void): any;
(event: "approveProposal", listener: (sequenceNumber: number, key: string, value: unknown, approvalSequenceNumber: number) => void): any;
(event: "error", listener: (message: any) => void): void;
}
/**
* All events fired by an IQuorum, both client tracking and proposal tracking.
* All events fired by {@link IQuorum}, both client tracking and proposal tracking.
* @internal
* @deprecated This type is now unused and will be removed
*/

@@ -68,20 +81,39 @@ export declare type IQuorumEvents = IQuorumClientsEvents & IQuorumProposalsEvents;

* Interface for tracking clients in the Quorum.
* @alpha
*/
export interface IQuorumClients extends IEventProvider<IQuorumClientsEvents> {
export interface IQuorumClients {
getMembers(): Map<string, ISequencedClient>;
getMember(clientId: string): ISequencedClient | undefined;
on(event: "addMember", listener: (clientId: string, details: ISequencedClient) => void): any;
on(event: "removeMember", listener: (clientId: string) => void): any;
on(event: "error", listener: (message: any) => void): any;
once: IQuorumClients["on"];
off: IQuorumClients["on"];
}
/**
* Interface for tracking proposals in the Quorum.
* @alpha
*/
export interface IQuorumProposals extends IEventProvider<IQuorumProposalsEvents> {
export interface IQuorumProposals {
propose(key: string, value: unknown): Promise<void>;
has(key: string): boolean;
get(key: string): unknown;
on(event: "addProposal", listener: (proposal: ISequencedProposal) => void): any;
on(event: "approveProposal", listener: (sequenceNumber: number, key: string, value: unknown, approvalSequenceNumber: number) => void): any;
on(event: "error", listener: (message: any) => void): void;
once: IQuorumProposals["on"];
off: IQuorumProposals["on"];
}
/**
* Interface combining tracking of clients as well as proposals in the Quorum.
* @alpha
*/
export interface IQuorum extends Omit<IQuorumClients, "on" | "once" | "off">, Omit<IQuorumProposals, "on" | "once" | "off">, IEventProvider<IQuorumEvents> {
export interface IQuorum extends Omit<IQuorumClients, "on" | "once" | "off">, Omit<IQuorumProposals, "on" | "once" | "off"> {
on: IQuorumClients["on"] & IQuorumProposals["on"];
once: IQuorum["on"];
off: IQuorum["on"];
}
/**
* @internal
*/
export interface IProtocolState {

@@ -94,2 +126,5 @@ sequenceNumber: number;

}
/**
* @alpha
*/
export interface IProcessMessageResult {

@@ -96,0 +131,0 @@ immediateNoOp?: boolean;

@@ -6,5 +6,6 @@ /*!

/**
* {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601 format} date: `YYYY-MM-DDTHH:MM:SSZ`
* {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601 format} date: `YYYY-MM-DDTHH:MM:SSZ`.
* @alpha
*/
export declare type IsoDate = string;
//# sourceMappingURL=date.d.ts.map

@@ -15,3 +15,3 @@ /*!

export { IsoDate } from "./date";
export { IBranchOrigin, IDocumentMessage, IDocumentSystemMessage, INack, INackContent, ISentSignalMessage, ISequencedDocumentAugmentedMessage, ISequencedDocumentMessage, ISequencedDocumentSystemMessage, IServerError, ISignalMessage, ISignalMessageBase, ISummaryAck, ISummaryContent, ISummaryNack, ISummaryProposal, ITrace, IUploadedSummaryDetails, MessageType, NackErrorType, SignalType, } from "./protocol";
export { IBranchOrigin, IDocumentMessage, IDocumentSystemMessage, INack, INackContent, ISentSignalMessage, ISequencedDocumentAugmentedMessage, ISequencedDocumentMessage, ISequencedDocumentMessageExperimental, ISequencedDocumentSystemMessage, IServerError, ISignalMessage, ISignalMessageBase, ISummaryAck, ISummaryContent, ISummaryNack, ISummaryProposal, ITrace, IUploadedSummaryDetails, MessageType, NackErrorType, SignalType, } from "./protocol";
export { ScopeType } from "./scopes";

@@ -18,0 +18,0 @@ export { IConnect, IConnected } from "./sockets";

@@ -5,2 +5,5 @@ /*!

*/
/**
* @alpha
*/
export declare enum MessageType {

@@ -63,2 +66,5 @@ /**

}
/**
* @internal
*/
export declare enum SignalType {

@@ -75,3 +81,4 @@ /**

/**
* Messages to track latency trace
* Messages to track latency trace.
* @alpha
*/

@@ -92,2 +99,5 @@ export interface ITrace {

}
/**
* @alpha
*/
export interface INack {

@@ -108,3 +118,4 @@ /**

/**
* Document specific message
* Document-specific message.
* @alpha
*/

@@ -148,2 +159,3 @@ export interface IDocumentMessage {

* Document Message with optional system level data field.
* @internal
*/

@@ -154,3 +166,4 @@ export interface IDocumentSystemMessage extends IDocumentMessage {

/**
* Branch origin information
* Branch origin information.
* @alpha
*/

@@ -172,3 +185,4 @@ export interface IBranchOrigin {

/**
* Sequenced message for a distributed document
* Sequenced message for a distributed document.
* @alpha
*/

@@ -227,6 +241,10 @@ export interface ISequencedDocumentMessage {

timestamp: number;
/**
* Data provided by service. Only present in service generated messages.
*/
data?: string;
/**
* Experimental field for storing the rolling hash at sequence number.
* @alpha
*
* @deprecated Use {@link ISequencedDocumentMessageExperimental} instead.
*/

@@ -236,9 +254,30 @@ expHash1?: string;

* The compression algorithm that was used to compress contents of this message.
* @experimental Not ready for use.
*
* @deprecated Use {@link ISequencedDocumentMessageExperimental} instead.
*/
compression?: string;
}
/**
* {@link ISequencedDocumentAugmentedMessage} with experimental properties.
* @internal
*/
export declare type ISequencedDocumentMessageExperimental = Omit<ISequencedDocumentMessage, "expHash1" | "compression"> & {
/**
* Stores the rolling hash at sequence number.
*/
expHash1?: string;
/**
* The compression algorithm that was used to compress contents of this message.
*/
compression?: string;
};
/**
* @internal
*/
export interface ISequencedDocumentSystemMessage extends ISequencedDocumentMessage {
data: string;
}
/**
* @internal
*/
export interface ISequencedDocumentAugmentedMessage extends ISequencedDocumentMessage {

@@ -248,3 +287,4 @@ additionalContent: string;

/**
* Common interface between incoming and outgoing signals
* Common interface between incoming and outgoing signals.
* @alpha
*/

@@ -270,3 +310,4 @@ export interface ISignalMessageBase {

/**
* Interface for signals sent by the server to clients
* Interface for signals sent by the server to clients.
* @alpha
*/

@@ -281,3 +322,4 @@ export interface ISignalMessage extends ISignalMessageBase {

/**
* Interface for signals sent by clients to the server when submit_signals_v2 is enabled
* Interface for signals sent by clients to the server when submit_signals_v2 is enabled.
* @internal
*/

@@ -290,10 +332,34 @@ export interface ISentSignalMessage extends ISignalMessageBase {

}
/**
* @alpha
*/
export interface IUploadedSummaryDetails {
/**
* Indicates whether the uploaded summary contains ".protocol" tree.
*/
includesProtocolTree?: boolean;
}
/**
* @alpha
*/
export interface ISummaryContent {
/**
* Handle reference to the summary data.
*/
handle: string;
/**
* Message included as part of the summary.
*/
message: string;
/**
* Handles to parent summaries of the proposed new summary.
*/
parents: string[];
/**
* Handle to the current latest summary stored by the service
*/
head: string;
/**
* Details of the uploaded summary.
*/
details?: IUploadedSummaryDetails;

@@ -304,2 +370,3 @@ }

* May want to add error code or something similar in the future.
* @internal
*/

@@ -314,2 +381,3 @@ export interface IServerError {

* Data about the original proposed summary message.
* @alpha
*/

@@ -324,2 +392,3 @@ export interface ISummaryProposal {

* Contents of summary ack expected from the server.
* @alpha
*/

@@ -338,2 +407,3 @@ export interface ISummaryAck {

* Contents of summary nack expected from the server.
* @alpha
*/

@@ -364,2 +434,3 @@ export interface ISummaryNack {

* Interface for nack content.
* @alpha
*/

@@ -389,14 +460,23 @@ export interface INackContent {

/**
* Type of the Nack.
* InvalidScopeError: Client's token is not valid for the intended message.
* ThrottlingError: Retriable after retryAfter number.
* BadRequestError: Clients message is invalid and should retry immediately with a valid message.
* LimitExceededError: Service is having issues. Client should not retry.
* Type of the nack.
* @alpha
*/
export declare enum NackErrorType {
/**
* Retriable after {@link ISummaryNack.retryAfter} seconds.
*/
ThrottlingError = "ThrottlingError",
/**
* Client's token is not valid for the intended message.
*/
InvalidScopeError = "InvalidScopeError",
/**
* Clients message is invalid and should retry immediately with a valid message.
*/
BadRequestError = "BadRequestError",
/**
* Service is having issues. Client should not retry.
*/
LimitExceededError = "LimitExceededError"
}
//# sourceMappingURL=protocol.d.ts.map

@@ -5,2 +5,5 @@ /*!

*/
/**
* @alpha
*/
export var MessageType;

@@ -64,2 +67,5 @@ (function (MessageType) {

})(MessageType || (MessageType = {}));
/**
* @internal
*/
export var SignalType;

@@ -77,15 +83,24 @@ (function (SignalType) {

/**
* Type of the Nack.
* InvalidScopeError: Client's token is not valid for the intended message.
* ThrottlingError: Retriable after retryAfter number.
* BadRequestError: Clients message is invalid and should retry immediately with a valid message.
* LimitExceededError: Service is having issues. Client should not retry.
* Type of the nack.
* @alpha
*/
export var NackErrorType;
(function (NackErrorType) {
/**
* Retriable after {@link ISummaryNack.retryAfter} seconds.
*/
NackErrorType["ThrottlingError"] = "ThrottlingError";
/**
* Client's token is not valid for the intended message.
*/
NackErrorType["InvalidScopeError"] = "InvalidScopeError";
/**
* Clients message is invalid and should retry immediately with a valid message.
*/
NackErrorType["BadRequestError"] = "BadRequestError";
/**
* Service is having issues. Client should not retry.
*/
NackErrorType["LimitExceededError"] = "LimitExceededError";
})(NackErrorType || (NackErrorType = {}));
//# sourceMappingURL=protocol.js.map

@@ -6,3 +6,4 @@ /*!

/**
* Defines scope access for a Container/Document
* Defines scope access for a Container/Document.
* @internal
*/

@@ -9,0 +10,0 @@ export declare enum ScopeType {

@@ -6,3 +6,4 @@ /*!

/**
* Defines scope access for a Container/Document
* Defines scope access for a Container/Document.
* @internal
*/

@@ -9,0 +10,0 @@ export var ScopeType;

@@ -10,3 +10,4 @@ /*!

/**
* Message sent to connect to the given document
* Message sent to connect to the given document.
* @internal
*/

@@ -66,3 +67,4 @@ export interface IConnect {

/**
* Message sent to indicate a client has connected to the server
* Message sent to indicate a client has connected to the server.
* @alpha
*/

@@ -69,0 +71,0 @@ export interface IConnected {

@@ -6,2 +6,5 @@ /*!

import { IsoDate } from "./date";
/**
* @alpha
*/
export interface IDocumentAttributes {

@@ -17,2 +20,5 @@ /**

}
/**
* @alpha
*/
export declare enum FileMode {

@@ -25,3 +31,4 @@ File = "100644",

/**
* Raw blob stored within the tree
* Raw blob stored within the tree.
* @alpha
*/

@@ -38,5 +45,11 @@ export interface IBlob {

}
/**
* @alpha
*/
export interface IAttachment {
id: string;
}
/**
* @alpha
*/
export interface ICreateBlobResponse {

@@ -46,3 +59,4 @@ id: string;

/**
* A tree entry wraps a path with a type of node
* A tree entry wraps a path with a type of node.
* @alpha
*/

@@ -70,3 +84,4 @@ export declare type ITreeEntry = {

/**
* Type of entries that can be stored in a tree
* Type of entries that can be stored in a tree.
* @alpha
*/

@@ -78,2 +93,5 @@ export declare enum TreeEntry {

}
/**
* @alpha
*/
export interface ITree {

@@ -91,2 +109,5 @@ entries: ITreeEntry[];

}
/**
* @alpha
*/
export interface ISnapshotTree {

@@ -105,2 +126,5 @@ id?: string;

}
/**
* @internal
*/
export interface ISnapshotTreeEx extends ISnapshotTree {

@@ -113,3 +137,4 @@ id: string;

/**
* Represents a version of the snapshot of a data store
* Represents a version of the snapshot of a data store.
* @alpha
*/

@@ -116,0 +141,0 @@ export interface IVersion {

@@ -5,2 +5,5 @@ /*!

*/
/**
* @alpha
*/
export var FileMode;

@@ -14,3 +17,4 @@ (function (FileMode) {

/**
* Type of entries that can be stored in a tree
* Type of entries that can be stored in a tree.
* @alpha
*/

@@ -17,0 +21,0 @@ export var TreeEntry;

@@ -7,3 +7,6 @@ /*!

* Object representing a node within a summary tree.
*
* @remarks
* If any particular node is an {@link ISummaryTree}, it can contain additional `SummaryObject`s as its children.
* @alpha
*/

@@ -13,2 +16,3 @@ export declare type SummaryObject = ISummaryTree | ISummaryBlob | ISummaryHandle | ISummaryAttachment;

* The root of the summary tree.
* @alpha
*/

@@ -18,10 +22,24 @@ export declare type SummaryTree = ISummaryTree | ISummaryHandle;

* Type tag used to distinguish different types of nodes in a {@link ISummaryTree}.
* @alpha
*/
export declare namespace SummaryType {
/**
* @internal
*/
type Tree = 1;
/**
* @internal
*/
type Blob = 2;
/**
* @internal
*/
type Handle = 3;
/**
* @internal
*/
type Attachment = 4;
/**
* Represents a sub-tree in the summary.
* @alpha
*/

@@ -33,2 +51,3 @@ const Tree: Tree;

* such as data store / channel attributes.
* @alpha
*/

@@ -38,2 +57,3 @@ const Blob: Blob;

* Path to a summary tree object from the last successful summary.
* @alpha
*/

@@ -45,2 +65,3 @@ const Handle: Handle;

* receive an Id that can be used in the summary.
* @alpha
*/

@@ -51,2 +72,3 @@ const Attachment: Attachment;

* {@inheritDoc (SummaryType:namespace)}
* @alpha
*/

@@ -60,2 +82,3 @@ export declare type SummaryType = SummaryType.Attachment | SummaryType.Blob | SummaryType.Handle | SummaryType.Tree;

* the need to re-send the entire subtree if summary object has not changed.
* @alpha
*/

@@ -71,2 +94,3 @@ export declare type SummaryTypeNoHandle = SummaryType.Tree | SummaryType.Blob | SummaryType.Attachment;

* An example of handle would be: '/<DataStoreId>/<DDSId>'.
* @alpha
*/

@@ -86,6 +110,11 @@ export interface ISummaryHandle {

* String or Binary data to be uploaded to the server as part of the container's Summary.
* Note: Already uploaded blobs would be referenced by a ISummaryAttachment.
*
* @remarks
* Note: Already uploaded blobs would be referenced by an {@link ISummaryAttachment}.
* Additional information can be found here: {@link https://github.com/microsoft/FluidFramework/issues/6568}
* @example "content": "\{ \"pkg\":\"[\\\"OfficeRootComponent\\\",\\\"LastEditedComponent\\\"]\",
*
* @example
* "content": "\{ \"pkg\":\"[\\\"OfficeRootComponent\\\",\\\"LastEditedComponent\\\"]\",
* \"summaryFormatVersion\":2,\"isRootDataStore\":false \}"
* @alpha
*/

@@ -97,8 +126,13 @@ export interface ISummaryBlob {

/**
* Unique identifier for blobs uploaded outside of the summary. Attachment Blobs are uploaded and
* downloaded separately and do not take part of the snapshot payload.
* The id gets returned from the backend after the attachment has been uploaded.
* Unique identifier for blobs uploaded outside of the summary.
*
* @remarks
*
* Attachment Blobs are uploaded and downloaded separately and do not take part of the snapshot payload.
* The ID gets returned from the backend after the attachment has been uploaded.
* Additional information can be found here: {@link https://github.com/microsoft/FluidFramework/issues/6374}
*
* @example "id": "bQAQKARDdMdTgqICmBa_ZB86YXwGP"
* @example
* "id": "bQAQKARDdMdTgqICmBa_ZB86YXwGP"
* @alpha
*/

@@ -112,2 +146,3 @@ export interface ISummaryAttachment {

* Blob, Handle, Attachment or another Tree.
* @alpha
*/

@@ -114,0 +149,0 @@ export interface ISummaryTree {

@@ -7,2 +7,3 @@ /*!

* Type tag used to distinguish different types of nodes in a {@link ISummaryTree}.
* @alpha
*/

@@ -14,2 +15,3 @@ // eslint-disable-next-line @typescript-eslint/no-namespace

* Represents a sub-tree in the summary.
* @alpha
*/

@@ -21,2 +23,3 @@ SummaryType.Tree = 1;

* such as data store / channel attributes.
* @alpha
*/

@@ -26,2 +29,3 @@ SummaryType.Blob = 2;

* Path to a summary tree object from the last successful summary.
* @alpha
*/

@@ -33,2 +37,3 @@ SummaryType.Handle = 3;

* receive an Id that can be used in the summary.
* @alpha
*/

@@ -35,0 +40,0 @@ SummaryType.Attachment = 4;

@@ -30,11 +30,7 @@ use_current_TypeAliasDeclaration_ConnectionMode(get_old_TypeAliasDeclaration_ConnectionMode());

use_current_InterfaceDeclaration_IConnected(get_old_InterfaceDeclaration_IConnected());
use_old_InterfaceDeclaration_IConnected(
// @ts-expect-error compatibility expected to be broken
get_current_InterfaceDeclaration_IConnected());
use_old_InterfaceDeclaration_IConnected(get_current_InterfaceDeclaration_IConnected());
use_current_InterfaceDeclaration_ICreateBlobResponse(get_old_InterfaceDeclaration_ICreateBlobResponse());
use_old_InterfaceDeclaration_ICreateBlobResponse(get_current_InterfaceDeclaration_ICreateBlobResponse());
use_current_InterfaceDeclaration_IDocumentAttributes(get_old_InterfaceDeclaration_IDocumentAttributes());
use_old_InterfaceDeclaration_IDocumentAttributes(
// @ts-expect-error compatibility expected to be broken
get_current_InterfaceDeclaration_IDocumentAttributes());
use_old_InterfaceDeclaration_IDocumentAttributes(get_current_InterfaceDeclaration_IDocumentAttributes());
use_current_InterfaceDeclaration_IDocumentMessage(get_old_InterfaceDeclaration_IDocumentMessage());

@@ -55,9 +51,5 @@ use_old_InterfaceDeclaration_IDocumentMessage(get_current_InterfaceDeclaration_IDocumentMessage());

use_current_InterfaceDeclaration_IQuorum(get_old_InterfaceDeclaration_IQuorum());
use_old_InterfaceDeclaration_IQuorum(
// @ts-expect-error compatibility expected to be broken
get_current_InterfaceDeclaration_IQuorum());
use_old_InterfaceDeclaration_IQuorum(get_current_InterfaceDeclaration_IQuorum());
use_current_InterfaceDeclaration_IQuorumClients(get_old_InterfaceDeclaration_IQuorumClients());
use_old_InterfaceDeclaration_IQuorumClients(
// @ts-expect-error compatibility expected to be broken
get_current_InterfaceDeclaration_IQuorumClients());
use_old_InterfaceDeclaration_IQuorumClients(get_current_InterfaceDeclaration_IQuorumClients());
use_current_InterfaceDeclaration_IQuorumClientsEvents(get_old_InterfaceDeclaration_IQuorumClientsEvents());

@@ -68,5 +60,3 @@ use_old_InterfaceDeclaration_IQuorumClientsEvents(get_current_InterfaceDeclaration_IQuorumClientsEvents());

use_current_InterfaceDeclaration_IQuorumProposals(get_old_InterfaceDeclaration_IQuorumProposals());
use_old_InterfaceDeclaration_IQuorumProposals(
// @ts-expect-error compatibility expected to be broken
get_current_InterfaceDeclaration_IQuorumProposals());
use_old_InterfaceDeclaration_IQuorumProposals(get_current_InterfaceDeclaration_IQuorumProposals());
use_current_InterfaceDeclaration_IQuorumProposalsEvents(get_old_InterfaceDeclaration_IQuorumProposalsEvents());

@@ -77,13 +67,7 @@ use_old_InterfaceDeclaration_IQuorumProposalsEvents(get_current_InterfaceDeclaration_IQuorumProposalsEvents());

use_current_InterfaceDeclaration_ISequencedDocumentAugmentedMessage(get_old_InterfaceDeclaration_ISequencedDocumentAugmentedMessage());
use_old_InterfaceDeclaration_ISequencedDocumentAugmentedMessage(
// @ts-expect-error compatibility expected to be broken
get_current_InterfaceDeclaration_ISequencedDocumentAugmentedMessage());
use_old_InterfaceDeclaration_ISequencedDocumentAugmentedMessage(get_current_InterfaceDeclaration_ISequencedDocumentAugmentedMessage());
use_current_InterfaceDeclaration_ISequencedDocumentMessage(get_old_InterfaceDeclaration_ISequencedDocumentMessage());
use_old_InterfaceDeclaration_ISequencedDocumentMessage(
// @ts-expect-error compatibility expected to be broken
get_current_InterfaceDeclaration_ISequencedDocumentMessage());
use_old_InterfaceDeclaration_ISequencedDocumentMessage(get_current_InterfaceDeclaration_ISequencedDocumentMessage());
use_current_InterfaceDeclaration_ISequencedDocumentSystemMessage(get_old_InterfaceDeclaration_ISequencedDocumentSystemMessage());
use_old_InterfaceDeclaration_ISequencedDocumentSystemMessage(
// @ts-expect-error compatibility expected to be broken
get_current_InterfaceDeclaration_ISequencedDocumentSystemMessage());
use_old_InterfaceDeclaration_ISequencedDocumentSystemMessage(get_current_InterfaceDeclaration_ISequencedDocumentSystemMessage());
use_current_TypeAliasDeclaration_ISequencedProposal(get_old_TypeAliasDeclaration_ISequencedProposal());

@@ -139,5 +123,3 @@ use_old_TypeAliasDeclaration_ISequencedProposal(get_current_TypeAliasDeclaration_ISequencedProposal());

use_old_TypeAliasDeclaration_IsoDate(get_current_TypeAliasDeclaration_IsoDate());
use_current_EnumDeclaration_MessageType(
// @ts-expect-error compatibility expected to be broken
get_old_EnumDeclaration_MessageType());
use_current_EnumDeclaration_MessageType(get_old_EnumDeclaration_MessageType());
use_old_EnumDeclaration_MessageType(get_current_EnumDeclaration_MessageType());

@@ -144,0 +126,0 @@ use_current_EnumDeclaration_NackErrorType(get_old_EnumDeclaration_NackErrorType());

@@ -10,2 +10,3 @@ /*!

* See {@link https://datatracker.ietf.org/doc/html/rfc7519#section-4}
* @alpha
*/

@@ -62,2 +63,3 @@ export interface ITokenClaims {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -71,2 +73,3 @@ export interface ISummaryTokenClaims {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -78,2 +81,3 @@ export interface IActorClient {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -85,2 +89,3 @@ export interface ITokenService {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -87,0 +92,0 @@ export interface ITokenProvider {

@@ -7,2 +7,3 @@ /*!

* Base user definition. It is valid to extend this interface when adding new details to the user object.
* @alpha
*/

@@ -9,0 +10,0 @@ export interface IUser {

{
"name": "@fluidframework/protocol-definitions",
"version": "3.0.0",
"version": "3.1.0-220363",
"description": "Fluid protocol definitions",

@@ -17,18 +17,15 @@ "homepage": "https://fluidframework.com",

"types": "dist/index.d.ts",
"dependencies": {
"@fluidframework/common-definitions": "^1.0.0"
},
"dependencies": {},
"devDependencies": {
"@fluid-tools/build-cli": "^0.22.0",
"@fluidframework/build-common": "^2.0.0",
"@fluidframework/build-tools": "^0.22.0",
"@fluid-tools/build-cli": "^0.26.1",
"@fluidframework/build-common": "^2.0.3",
"@fluidframework/build-tools": "^0.26.1",
"@fluidframework/eslint-config-fluid": "^2.0.0",
"@fluidframework/protocol-definitions-previous": "npm:@fluidframework/protocol-definitions@1.1.0",
"@microsoft/api-extractor": "^7.22.2",
"@rushstack/eslint-config": "^2.5.1",
"@fluidframework/protocol-definitions-previous": "npm:@fluidframework/protocol-definitions@2.0.0",
"@microsoft/api-extractor": "^7.38.3",
"concurrently": "^6.2.0",
"copyfiles": "^2.4.1",
"eslint": "~8.6.0",
"eslint-config-prettier": "~8.5.0",
"prettier": "~2.6.2",
"eslint-config-prettier": "~9.0.0",
"prettier": "~3.0.3",
"rimraf": "^2.6.2",

@@ -52,57 +49,22 @@ "typescript": "~4.5.5",

"typeValidation": {
"broken": {
"InterfaceDeclaration_IDocumentAttributes": {
"backCompat": false
},
"InterfaceDeclaration_IConnected": {
"backCompat": false
},
"InterfaceDeclaration_ISequencedDocumentAugmentedMessage": {
"backCompat": false
},
"InterfaceDeclaration_ISequencedDocumentMessage": {
"backCompat": false
},
"InterfaceDeclaration_ISequencedDocumentSystemMessage": {
"backCompat": false
},
"RemovedInterfaceDeclaration_IHelpMessage": {
"backCompat": false,
"forwardCompat": false
},
"RemovedInterfaceDeclaration_IQueueMessage": {
"backCompat": false,
"forwardCompat": false
},
"EnumDeclaration_MessageType": {
"forwardCompat": false
},
"InterfaceDeclaration_IQuorum": {
"backCompat": false
},
"InterfaceDeclaration_IQuorumClients": {
"backCompat": false
},
"InterfaceDeclaration_IQuorumProposals": {
"backCompat": false
}
}
"broken": {}
},
"scripts": {
"build": "concurrently npm:build:compile npm:lint && npm run build:docs",
"build": "npm run build:compile && concurrently npm:lint npm:build:docs",
"build:compile": "concurrently npm:typetests:gen npm:tsc npm:build:esnext",
"build:docs": "api-extractor run --local --typescript-compiler-folder ./node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/",
"build:docs": "api-extractor run --local --typescript-compiler-folder ./node_modules/typescript && copyfiles -u 1 \"./_api-extractor-temp/doc-models/*\" ../../../_api-extractor-temp/",
"build:esnext": "tsc --project ./tsconfig.esnext.json",
"check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
"ci:build": "npm run build:compile",
"ci:build:docs": "api-extractor run --typescript-compiler-folder ./node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/",
"ci:build:docs": "api-extractor run --typescript-compiler-folder ./node_modules/typescript && copyfiles -u 1 \"./_api-extractor-temp/doc-models/*\" ../../../_api-extractor-temp/",
"ci:test": "echo No test for this package",
"ci:test:coverage": "echo No test for this package",
"clean": "rimraf --glob _api-extractor-temp dist lib *.tsbuildinfo *.build.log",
"clean": "rimraf --glob _api-extractor-temp dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\"",
"eslint": "eslint --format stylish src",
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
"format": "npm run prettier:fix",
"lint": "npm run prettier && npm run eslint",
"lint": "npm run prettier && npm run check:release-tags && npm run eslint",
"lint:fix": "npm run prettier:fix && npm run eslint:fix",
"prettier": "prettier --check . --ignore-path ../../../.prettierignore",
"prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
"prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
"prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore",
"tsc": "tsc",

@@ -109,0 +71,0 @@ "tsc:watch": "tsc --watch",

@@ -15,2 +15,3 @@ /*!

* E.g. a user with read-only permissions will not be allowed a "write" connection mode.
* @alpha
*/

@@ -22,2 +23,3 @@ export type ConnectionMode = "write" | "read";

* In particular, whether or not the client is {@link ICapabilities.interactive}.
* @alpha
*/

@@ -39,2 +41,3 @@ export interface ICapabilities {

* {@link IClient} connection / environment metadata.
* @alpha
*/

@@ -66,2 +69,3 @@ export interface IClientDetails {

* Represents a client connected to a Fluid service, including associated user details, permissions, and connection mode.
* @alpha
*/

@@ -99,2 +103,3 @@ export interface IClient {

* A {@link IClient} that has been acknowledged by the sequencer.
* @alpha
*/

@@ -113,2 +118,5 @@ export interface ISequencedClient {

/**
* @alpha
*/
export interface ISignalClient {

@@ -138,2 +146,3 @@ /**

* Contents sent with a `ClientJoin` message.
* @internal
*/

@@ -140,0 +149,0 @@ export interface IClientJoin {

@@ -7,9 +7,14 @@ /*!

/**
* Key value store of service configuration properties provided to the client as part of connection
* Key value store of service configuration properties provided to the client as part of connection.
* @alpha
*/
export interface IClientConfiguration {
// Max message size the server will accept before requiring chunking
/**
* Max message size the server will accept before requiring chunking.
*/
maxMessageSize: number;
// Server defined ideal block size for storing snapshots
/**
* Server-defined ideal block size for storing snapshots.
*/
blockSize: number;

@@ -16,0 +21,0 @@

@@ -6,3 +6,2 @@ /*!

import { IErrorEvent, IEventProvider } from "@fluidframework/common-definitions";
import { ISequencedClient } from "./clients";

@@ -13,5 +12,7 @@

*
* @remarks
* Consensus on the proposal is achieved if the MSN is \>= the sequence number
* at which the proposal is made and no client within the collaboration window rejects
* the proposal.
* @alpha
*/

@@ -31,3 +32,4 @@ export interface IProposal {

/**
* Similar to IProposal except includes the sequence number when it was made in addition to the fields on IProposal
* Similar to {@link IProposal} except it also includes the sequence number when it was made.
* @alpha
*/

@@ -37,3 +39,4 @@ export type ISequencedProposal = { sequenceNumber: number } & IProposal;

/**
* Adds the sequence number at which the message was approved to an ISequencedProposal
* Adds the sequence number at which the message was approved to an {@link ISequencedProposal}.
* @alpha
*/

@@ -43,3 +46,4 @@ export type IApprovedProposal = { approvalSequenceNumber: number } & ISequencedProposal;

/**
* Adds the sequence number at which the message was committed to an IApprovedProposal
* Adds the sequence number at which the message was committed to an {@link IApprovedProposal}.
* @alpha
*/

@@ -49,7 +53,12 @@ export type ICommittedProposal = { commitSequenceNumber: number } & IApprovedProposal;

/**
* @deprecated This type is now unused and will be removed
* Events fired by a Quorum in response to client tracking.
* @internal
*
*/
export interface IQuorumClientsEvents extends IErrorEvent {
export interface IQuorumClientsEvents {
(event: "addMember", listener: (clientId: string, details: ISequencedClient) => void);
(event: "removeMember", listener: (clientId: string) => void);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(event: "error", listener: (message: any) => void);
}

@@ -59,4 +68,6 @@

* Events fired by a Quorum in response to proposal tracking.
* @internal
* @deprecated This type is now unused and will be removed
*/
export interface IQuorumProposalsEvents extends IErrorEvent {
export interface IQuorumProposalsEvents {
(event: "addProposal", listener: (proposal: ISequencedProposal) => void);

@@ -72,6 +83,10 @@ (

);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(event: "error", listener: (message: any) => void): void;
}
/**
* All events fired by an IQuorum, both client tracking and proposal tracking.
* All events fired by {@link IQuorum}, both client tracking and proposal tracking.
* @internal
* @deprecated This type is now unused and will be removed
*/

@@ -82,7 +97,13 @@ export type IQuorumEvents = IQuorumClientsEvents & IQuorumProposalsEvents;

* Interface for tracking clients in the Quorum.
* @alpha
*/
export interface IQuorumClients extends IEventProvider<IQuorumClientsEvents> {
export interface IQuorumClients {
getMembers(): Map<string, ISequencedClient>;
getMember(clientId: string): ISequencedClient | undefined;
on(event: "addMember", listener: (clientId: string, details: ISequencedClient) => void);
on(event: "removeMember", listener: (clientId: string) => void);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
on(event: "error", listener: (message: any) => void);
once: IQuorumClients["on"];
off: IQuorumClients["on"];
}

@@ -92,4 +113,5 @@

* Interface for tracking proposals in the Quorum.
* @alpha
*/
export interface IQuorumProposals extends IEventProvider<IQuorumProposalsEvents> {
export interface IQuorumProposals {
propose(key: string, value: unknown): Promise<void>;

@@ -100,2 +122,17 @@

get(key: string): unknown;
on(event: "addProposal", listener: (proposal: ISequencedProposal) => void);
on(
event: "approveProposal",
listener: (
sequenceNumber: number,
key: string,
value: unknown,
approvalSequenceNumber: number,
) => void,
);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
on(event: "error", listener: (message: any) => void): void;
once: IQuorumProposals["on"];
off: IQuorumProposals["on"];
}

@@ -105,8 +142,15 @@

* Interface combining tracking of clients as well as proposals in the Quorum.
* @alpha
*/
export interface IQuorum
extends Omit<IQuorumClients, "on" | "once" | "off">,
Omit<IQuorumProposals, "on" | "once" | "off">,
IEventProvider<IQuorumEvents> {}
Omit<IQuorumProposals, "on" | "once" | "off"> {
on: IQuorumClients["on"] & IQuorumProposals["on"];
once: IQuorum["on"];
off: IQuorum["on"];
}
/**
* @internal
*/
export interface IProtocolState {

@@ -120,4 +164,7 @@ sequenceNumber: number;

/**
* @alpha
*/
export interface IProcessMessageResult {
immediateNoOp?: boolean;
}

@@ -7,4 +7,5 @@ /*!

/**
* {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601 format} date: `YYYY-MM-DDTHH:MM:SSZ`
* {@link https://www.iso.org/iso-8601-date-and-time-format.html | ISO 8601 format} date: `YYYY-MM-DDTHH:MM:SSZ`.
* @alpha
*/
export type IsoDate = string;

@@ -47,2 +47,3 @@ /*!

ISequencedDocumentMessage,
ISequencedDocumentMessageExperimental,
ISequencedDocumentSystemMessage,

@@ -49,0 +50,0 @@ IServerError,

@@ -6,2 +6,5 @@ /*!

/**
* @alpha
*/
export enum MessageType {

@@ -77,2 +80,5 @@ /**

/**
* @internal
*/
export enum SignalType {

@@ -91,3 +97,4 @@ /**

/**
* Messages to track latency trace
* Messages to track latency trace.
* @alpha
*/

@@ -111,2 +118,5 @@ export interface ITrace {

/**
* @alpha
*/
export interface INack {

@@ -130,3 +140,4 @@ /**

/**
* Document specific message
* Document-specific message.
* @alpha
*/

@@ -178,2 +189,3 @@ export interface IDocumentMessage {

* Document Message with optional system level data field.
* @internal
*/

@@ -185,3 +197,4 @@ export interface IDocumentSystemMessage extends IDocumentMessage {

/**
* Branch origin information
* Branch origin information.
* @alpha
*/

@@ -206,3 +219,4 @@ export interface IBranchOrigin {

/**
* Sequenced message for a distributed document
* Sequenced message for a distributed document.
* @alpha
*/

@@ -274,3 +288,5 @@ export interface ISequencedDocumentMessage {

// Data provided by service. Only present in service generated messages.
/**
* Data provided by service. Only present in service generated messages.
*/
data?: string;

@@ -280,3 +296,4 @@

* Experimental field for storing the rolling hash at sequence number.
* @alpha
*
* @deprecated Use {@link ISequencedDocumentMessageExperimental} instead.
*/

@@ -287,3 +304,4 @@ expHash1?: string;

* The compression algorithm that was used to compress contents of this message.
* @experimental Not ready for use.
*
* @deprecated Use {@link ISequencedDocumentMessageExperimental} instead.
*/

@@ -293,2 +311,24 @@ compression?: string;

/**
* {@link ISequencedDocumentAugmentedMessage} with experimental properties.
* @internal
*/
export type ISequencedDocumentMessageExperimental = Omit<
ISequencedDocumentMessage,
"expHash1" | "compression"
> & {
/**
* Stores the rolling hash at sequence number.
*/
expHash1?: string;
/**
* The compression algorithm that was used to compress contents of this message.
*/
compression?: string;
};
/**
* @internal
*/
export interface ISequencedDocumentSystemMessage extends ISequencedDocumentMessage {

@@ -298,2 +338,5 @@ data: string;

/**
* @internal
*/
export interface ISequencedDocumentAugmentedMessage extends ISequencedDocumentMessage {

@@ -304,3 +347,4 @@ additionalContent: string;

/**
* Common interface between incoming and outgoing signals
* Common interface between incoming and outgoing signals.
* @alpha
*/

@@ -330,3 +374,4 @@ export interface ISignalMessageBase {

/**
* Interface for signals sent by the server to clients
* Interface for signals sent by the server to clients.
* @alpha
*/

@@ -343,3 +388,4 @@ export interface ISignalMessage extends ISignalMessageBase {

/**
* Interface for signals sent by clients to the server when submit_signals_v2 is enabled
* Interface for signals sent by clients to the server when submit_signals_v2 is enabled.
* @internal
*/

@@ -353,21 +399,39 @@ export interface ISentSignalMessage extends ISignalMessageBase {

/**
* @alpha
*/
export interface IUploadedSummaryDetails {
// Indicates whether the uploaded summary contains ".protocol" tree
/**
* Indicates whether the uploaded summary contains ".protocol" tree.
*/
includesProtocolTree?: boolean;
}
/**
* @alpha
*/
export interface ISummaryContent {
// Handle reference to the summary data
/**
* Handle reference to the summary data.
*/
handle: string;
// Message included as part of the summary
/**
* Message included as part of the summary.
*/
message: string;
// Handles to parent summaries of the proposed new summary
/**
* Handles to parent summaries of the proposed new summary.
*/
parents: string[];
// Handle to the current latest summary stored by the service
/**
* Handle to the current latest summary stored by the service
*/
head: string;
// Details of the uploaded summary
/**
* Details of the uploaded summary.
*/
details?: IUploadedSummaryDetails;

@@ -382,2 +446,3 @@

* May want to add error code or something similar in the future.
* @internal
*/

@@ -393,2 +458,3 @@ export interface IServerError {

* Data about the original proposed summary message.
* @alpha
*/

@@ -404,2 +470,3 @@ export interface ISummaryProposal {

* Contents of summary ack expected from the server.
* @alpha
*/

@@ -420,2 +487,3 @@ export interface ISummaryAck {

* Contents of summary nack expected from the server.
* @alpha
*/

@@ -450,2 +518,3 @@ export interface ISummaryNack {

* Interface for nack content.
* @alpha
*/

@@ -479,13 +548,25 @@ export interface INackContent {

/**
* Type of the Nack.
* InvalidScopeError: Client's token is not valid for the intended message.
* ThrottlingError: Retriable after retryAfter number.
* BadRequestError: Clients message is invalid and should retry immediately with a valid message.
* LimitExceededError: Service is having issues. Client should not retry.
* Type of the nack.
* @alpha
*/
export enum NackErrorType {
/**
* Retriable after {@link ISummaryNack.retryAfter} seconds.
*/
ThrottlingError = "ThrottlingError",
/**
* Client's token is not valid for the intended message.
*/
InvalidScopeError = "InvalidScopeError",
/**
* Clients message is invalid and should retry immediately with a valid message.
*/
BadRequestError = "BadRequestError",
/**
* Service is having issues. Client should not retry.
*/
LimitExceededError = "LimitExceededError",
}

@@ -7,3 +7,4 @@ /*!

/**
* Defines scope access for a Container/Document
* Defines scope access for a Container/Document.
* @internal
*/

@@ -10,0 +11,0 @@ export enum ScopeType {

@@ -12,3 +12,4 @@ /*!

/**
* Message sent to connect to the given document
* Message sent to connect to the given document.
* @internal
*/

@@ -81,3 +82,4 @@ export interface IConnect {

/**
* Message sent to indicate a client has connected to the server
* Message sent to indicate a client has connected to the server.
* @alpha
*/

@@ -84,0 +86,0 @@ export interface IConnected {

@@ -8,2 +8,5 @@ /*!

/**
* @alpha
*/
export interface IDocumentAttributes {

@@ -21,2 +24,5 @@ /**

/**
* @alpha
*/
export enum FileMode {

@@ -30,3 +36,4 @@ File = "100644",

/**
* Raw blob stored within the tree
* Raw blob stored within the tree.
* @alpha
*/

@@ -45,2 +52,5 @@ export interface IBlob {

/**
* @alpha
*/
export interface IAttachment {

@@ -50,2 +60,5 @@ id: string;

/**
* @alpha
*/
export interface ICreateBlobResponse {

@@ -56,3 +69,4 @@ id: string;

/**
* A tree entry wraps a path with a type of node
* A tree entry wraps a path with a type of node.
* @alpha
*/

@@ -86,3 +100,4 @@ export type ITreeEntry = {

/**
* Type of entries that can be stored in a tree
* Type of entries that can be stored in a tree.
* @alpha
*/

@@ -95,2 +110,5 @@ export enum TreeEntry {

/**
* @alpha
*/
export interface ITree {

@@ -111,2 +129,5 @@ entries: ITreeEntry[];

/**
* @alpha
*/
export interface ISnapshotTree {

@@ -123,2 +144,5 @@ id?: string;

/**
* @internal
*/
export interface ISnapshotTreeEx extends ISnapshotTree {

@@ -130,3 +154,4 @@ id: string;

/**
* Represents a version of the snapshot of a data store
* Represents a version of the snapshot of a data store.
* @alpha
*/

@@ -133,0 +158,0 @@ export interface IVersion {

@@ -8,3 +8,6 @@ /*!

* Object representing a node within a summary tree.
*
* @remarks
* If any particular node is an {@link ISummaryTree}, it can contain additional `SummaryObject`s as its children.
* @alpha
*/

@@ -15,2 +18,3 @@ export type SummaryObject = ISummaryTree | ISummaryBlob | ISummaryHandle | ISummaryAttachment;

* The root of the summary tree.
* @alpha
*/

@@ -21,8 +25,21 @@ export type SummaryTree = ISummaryTree | ISummaryHandle;

* Type tag used to distinguish different types of nodes in a {@link ISummaryTree}.
* @alpha
*/
// eslint-disable-next-line @typescript-eslint/no-namespace
export namespace SummaryType {
/**
* @internal
*/
export type Tree = 1;
/**
* @internal
*/
export type Blob = 2;
/**
* @internal
*/
export type Handle = 3;
/**
* @internal
*/
export type Attachment = 4;

@@ -32,2 +49,3 @@

* Represents a sub-tree in the summary.
* @alpha
*/

@@ -40,2 +58,3 @@ export const Tree: Tree = 1 as const;

* such as data store / channel attributes.
* @alpha
*/

@@ -46,2 +65,3 @@ export const Blob: Blob = 2 as const;

* Path to a summary tree object from the last successful summary.
* @alpha
*/

@@ -54,2 +74,3 @@ export const Handle: Handle = 3 as const;

* receive an Id that can be used in the summary.
* @alpha
*/

@@ -61,2 +82,3 @@ export const Attachment: Attachment = 4 as const;

* {@inheritDoc (SummaryType:namespace)}
* @alpha
*/

@@ -75,2 +97,3 @@ export type SummaryType =

* the need to re-send the entire subtree if summary object has not changed.
* @alpha
*/

@@ -87,2 +110,3 @@ export type SummaryTypeNoHandle = SummaryType.Tree | SummaryType.Blob | SummaryType.Attachment;

* An example of handle would be: '/<DataStoreId>/<DDSId>'.
* @alpha
*/

@@ -105,6 +129,11 @@ export interface ISummaryHandle {

* String or Binary data to be uploaded to the server as part of the container's Summary.
* Note: Already uploaded blobs would be referenced by a ISummaryAttachment.
*
* @remarks
* Note: Already uploaded blobs would be referenced by an {@link ISummaryAttachment}.
* Additional information can be found here: {@link https://github.com/microsoft/FluidFramework/issues/6568}
* @example "content": "\{ \"pkg\":\"[\\\"OfficeRootComponent\\\",\\\"LastEditedComponent\\\"]\",
*
* @example
* "content": "\{ \"pkg\":\"[\\\"OfficeRootComponent\\\",\\\"LastEditedComponent\\\"]\",
* \"summaryFormatVersion\":2,\"isRootDataStore\":false \}"
* @alpha
*/

@@ -117,8 +146,13 @@ export interface ISummaryBlob {

/**
* Unique identifier for blobs uploaded outside of the summary. Attachment Blobs are uploaded and
* downloaded separately and do not take part of the snapshot payload.
* The id gets returned from the backend after the attachment has been uploaded.
* Unique identifier for blobs uploaded outside of the summary.
*
* @remarks
*
* Attachment Blobs are uploaded and downloaded separately and do not take part of the snapshot payload.
* The ID gets returned from the backend after the attachment has been uploaded.
* Additional information can be found here: {@link https://github.com/microsoft/FluidFramework/issues/6374}
*
* @example "id": "bQAQKARDdMdTgqICmBa_ZB86YXwGP"
* @example
* "id": "bQAQKARDdMdTgqICmBa_ZB86YXwGP"
* @alpha
*/

@@ -133,2 +167,3 @@ export interface ISummaryAttachment {

* Blob, Handle, Attachment or another Tree.
* @alpha
*/

@@ -135,0 +170,0 @@ export interface ISummaryTree {

@@ -12,2 +12,3 @@ /*!

* See {@link https://datatracker.ietf.org/doc/html/rfc7519#section-4}
* @alpha
*/

@@ -72,2 +73,3 @@ export interface ITokenClaims {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -82,2 +84,3 @@ export interface ISummaryTokenClaims {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -90,2 +93,3 @@ export interface IActorClient {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -98,2 +102,3 @@ export interface ITokenService {

* @deprecated Please use client-specific types instead. E.g. from `@fluidframework/routerlicious-driver`.
* @internal
*/

@@ -100,0 +105,0 @@ export interface ITokenProvider {

@@ -8,2 +8,3 @@ /*!

* Base user definition. It is valid to extend this interface when adding new details to the user object.
* @alpha
*/

@@ -10,0 +11,0 @@ export interface IUser {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc