@holochain-syn/client 0.0.3 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,54 @@
1
+ import { AgentPubKey, EntryHash, Record } from '@holochain/client';
2
+ export interface Commit {
3
+ state: Uint8Array;
4
+ created_at: number;
5
+ previous_commit_hashes: Array<EntryHash>;
6
+ authors: Array<AgentPubKey>;
7
+ witnesses: Array<AgentPubKey>;
8
+ meta: Uint8Array | undefined;
9
+ }
10
+ export interface Workspace {
11
+ name: String;
12
+ meta: Uint8Array | undefined;
13
+ }
14
+ /** Client API */
15
+ export interface CreateWorkspaceInput {
16
+ workspace: Workspace;
17
+ initial_tip_hash: EntryHash;
18
+ }
19
+ export interface UpdateWorkspaceTipInput {
20
+ workspace_hash: EntryHash;
21
+ new_tip_hash: EntryHash;
22
+ }
23
+ export interface JoinWorkspaceOutput {
24
+ current_tip: Record;
25
+ participants: Array<AgentPubKey>;
26
+ }
27
+ export interface SynMessage {
28
+ recipients: Array<AgentPubKey>;
29
+ workspace_message: WorkspaceMessage;
30
+ }
31
+ export interface WorkspaceMessage {
32
+ workspace_hash: EntryHash;
33
+ payload: MessagePayload;
34
+ }
35
+ export declare type MessagePayload = {
36
+ type: 'JoinWorkspace';
37
+ } | {
38
+ type: 'LeaveWorkspace';
39
+ } | {
40
+ type: 'ChangeNotice';
41
+ state_changes: Uint8Array[];
42
+ ephemeral_changes: Uint8Array[];
43
+ } | {
44
+ type: 'SyncReq';
45
+ sync_message: Uint8Array | undefined;
46
+ ephemeral_sync_message: Uint8Array | undefined;
47
+ } | {
48
+ type: 'Heartbeat';
49
+ known_participants: Array<AgentPubKey>;
50
+ };
51
+ export interface SynSignal {
52
+ provenance: AgentPubKey;
53
+ message: WorkspaceMessage;
54
+ }
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/dist/utils.js CHANGED
@@ -1,10 +1,16 @@
1
- import { decode } from "@msgpack/msgpack";
1
+ import { decode } from '@msgpack/msgpack';
2
2
  export function deepDecodeUint8Arrays(object) {
3
3
  if (object === undefined || object === null)
4
4
  return object;
5
- if (object instanceof Uint8Array)
6
- return decode(object);
7
- if (typeof object !== "object")
5
+ if (object instanceof Uint8Array) {
6
+ try {
7
+ return decode(object);
8
+ }
9
+ catch (e) {
10
+ return object;
11
+ }
12
+ }
13
+ if (typeof object !== 'object')
8
14
  return object;
9
15
  if (Array.isArray(object))
10
16
  return object.map(deepDecodeUint8Arrays);
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CAAC,MAAW;IAC/C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAC3D,IAAI,MAAM,YAAY,UAAU;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IAExD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAE9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,EAAE,CAAC;IAEf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,GAAG,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/C;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CAAC,MAAW;IAC/C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAC3D,IAAI,MAAM,YAAY,UAAU,EAAE;QAChC,IAAI;YACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;SACvB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,MAAM,CAAC;SACf;KACF;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAE9C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,EAAE,CAAC;IAEf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,GAAG,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;KAC/C;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,29 +1,34 @@
1
1
  {
2
2
  "name": "@holochain-syn/client",
3
- "version": "0.0.3",
3
+ "version": "0.1.1",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
- "type": "module",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
10
15
  "scripts": {
11
16
  "build": "tsc",
12
17
  "build:watch": "run-singleton \"tsc -w --preserveWatchOutput\""
13
18
  },
19
+ "dependencies": {
20
+ "@holochain-open-dev/cell-client": "^0.7.0",
21
+ "@holochain/client": "^0.7.0",
22
+ "@msgpack/msgpack": "^2.7.0",
23
+ "automerge": "^1.0.1-preview.7",
24
+ "lodash-es": "^4.17.21"
25
+ },
14
26
  "devDependencies": {
15
27
  "@types/lodash-es": "^4.17.4",
16
28
  "gh-pages": "^3.2.3",
17
29
  "rimraf": "^3.0.2",
18
30
  "run-singleton-cli": "^0.0.5",
19
- "typescript": "^4.2.4"
20
- },
21
- "dependencies": {
22
- "@holochain-open-dev/cell-client": "^0.4.0",
23
- "@holochain-open-dev/core-types": "^0.2.0",
24
- "@holochain/client": "0.3.2",
25
- "@msgpack/msgpack": "^2.7.0",
26
- "lodash-es": "^4.17.21"
31
+ "typescript": "^4.7.4"
27
32
  },
28
33
  "publishConfig": {
29
34
  "access": "public"
@@ -1,47 +0,0 @@
1
- import type { CellClient } from '@holochain-open-dev/cell-client';
2
- import type { EntryHashB64, AgentPubKeyB64 } from '@holochain-open-dev/core-types';
3
- import type { SendChangeInput, SendChangeRequestInput } from './types/change';
4
- import type { Commit, CommitInput, Content } from './types/commit';
5
- import type { SendFolkLoreInput } from './types/folks';
6
- import type { SendHeartbeatInput } from './types/heartbeat';
7
- import type { CloseSessionInput, NewSessionInput, NotifyLeaveSessionInput, Session, SessionInfo } from './types/session';
8
- import type { SendSyncRequestInput, SendSyncResponseInput } from './types/sync';
9
- import { SynSignal } from './types/signal';
10
- export declare class SynClient {
11
- cellClient: CellClient;
12
- protected handleSignal: (synSignal: SynSignal) => void;
13
- protected zomeName: string;
14
- unsubscribe: () => void;
15
- constructor(cellClient: CellClient, handleSignal: (synSignal: SynSignal) => void, zomeName?: string);
16
- close(): void;
17
- /** Session */
18
- getSession(sessionHash: EntryHashB64): Promise<Session>;
19
- newSession(newSessionInput: NewSessionInput): Promise<SessionInfo>;
20
- closeSession(input: CloseSessionInput): Promise<void>;
21
- getSessions(): Promise<Record<string, Session>>;
22
- notifyLeaveSession(input: NotifyLeaveSessionInput): Promise<void>;
23
- /** Content */
24
- putSnapshot(content: Content): Promise<EntryHashB64>;
25
- getSnapshot(snapshotHash: EntryHashB64): Promise<Content | undefined>;
26
- hashSnapshot(content: Content): Promise<EntryHashB64>;
27
- /** Commits */
28
- commitChanges(commitInput: CommitInput): Promise<EntryHashB64>;
29
- getCommit(commitHash: EntryHashB64): Promise<Commit>;
30
- getAllCommits(): Promise<Record<string, Commit>>;
31
- /** Folks */
32
- getFolks(): Promise<Array<AgentPubKeyB64>>;
33
- sendFolkLore(sendFolkLoreInput: SendFolkLoreInput): Promise<void>;
34
- /** Sync */
35
- sendSyncRequest(syncRequestInput: SendSyncRequestInput): Promise<void>;
36
- sendSyncResponse(syncResponseInput: SendSyncResponseInput): Promise<void>;
37
- /** Changes */
38
- sendChangeRequest(changeRequestInput: SendChangeRequestInput): Promise<void>;
39
- sendChange(sendChangeInput: SendChangeInput): Promise<void>;
40
- /** Heartbeat */
41
- sendHeartbeat(heartbeatInput: SendHeartbeatInput): Promise<void>;
42
- /** Helpers */
43
- private callZome;
44
- private encodeCommit;
45
- private encodeChangeBundle;
46
- private decodeCommit;
47
- }
@@ -1,130 +0,0 @@
1
- import { encode, decode } from '@msgpack/msgpack';
2
- import { allMessageTypes } from './types/signal';
3
- import { deepDecodeUint8Arrays } from './utils';
4
- export class SynClient {
5
- constructor(cellClient, handleSignal, zomeName = 'syn') {
6
- this.cellClient = cellClient;
7
- this.handleSignal = handleSignal;
8
- this.zomeName = zomeName;
9
- this.unsubscribe = () => { };
10
- const { unsubscribe } = cellClient.addSignalHandler(signal => {
11
- if (signal.data.payload.message &&
12
- allMessageTypes.includes(signal.data.payload.message.type)) {
13
- handleSignal(deepDecodeUint8Arrays(signal.data.payload));
14
- }
15
- });
16
- this.unsubscribe = unsubscribe;
17
- }
18
- close() {
19
- return this.unsubscribe();
20
- }
21
- /** Session */
22
- async getSession(sessionHash) {
23
- return this.callZome('get_session', sessionHash);
24
- }
25
- async newSession(newSessionInput) {
26
- return this.callZome('new_session', newSessionInput);
27
- }
28
- async closeSession(input) {
29
- return this.callZome('close_session', input);
30
- }
31
- getSessions() {
32
- return this.callZome('get_sessions', null);
33
- }
34
- notifyLeaveSession(input) {
35
- return this.callZome('notify_leave_session', input);
36
- }
37
- /** Content */
38
- putSnapshot(content) {
39
- return this.callZome('put_snapshot', encode(content));
40
- }
41
- async getSnapshot(snapshotHash) {
42
- const content = await this.callZome('get_snapshot', snapshotHash);
43
- if (!content)
44
- return content;
45
- return decode(content);
46
- }
47
- hashSnapshot(content) {
48
- return this.callZome('hash_snapshot', encode(content));
49
- }
50
- /** Commits */
51
- commitChanges(commitInput) {
52
- const commit = Object.assign(Object.assign({}, commitInput), { commit: Object.assign(Object.assign({}, commitInput.commit), { changes: this.encodeChangeBundle(commitInput.commit.changes) }) });
53
- return this.callZome('commit_changes', commit);
54
- }
55
- async getCommit(commitHash) {
56
- const commit = await this.callZome('get_commit', commitHash);
57
- return this.decodeCommit(commit);
58
- }
59
- async getAllCommits() {
60
- const commits = await this.callZome('get_all_commits', null);
61
- for (const key of Object.keys(commits)) {
62
- commits[key] = this.decodeCommit(commits[key]);
63
- }
64
- return commits;
65
- }
66
- /** Folks */
67
- getFolks() {
68
- return this.callZome('get_folks', null);
69
- }
70
- sendFolkLore(sendFolkLoreInput) {
71
- return this.callZome('send_folk_lore', sendFolkLoreInput);
72
- }
73
- /** Sync */
74
- sendSyncRequest(syncRequestInput) {
75
- return this.callZome('send_sync_request', syncRequestInput);
76
- }
77
- sendSyncResponse(syncResponseInput) {
78
- const input = Object.assign({}, syncResponseInput);
79
- if (input.state.folkMissedLastCommit) {
80
- input.state.folkMissedLastCommit.commit = this.encodeCommit(input.state.folkMissedLastCommit.commit);
81
- input.state.folkMissedLastCommit.commitInitialSnapshot = encode(input.state.folkMissedLastCommit.commitInitialSnapshot);
82
- }
83
- if (input.state.uncommittedChanges) {
84
- input.state.uncommittedChanges = this.encodeChangeBundle(syncResponseInput.state.uncommittedChanges);
85
- }
86
- return this.callZome('send_sync_response', input);
87
- }
88
- /** Changes */
89
- sendChangeRequest(changeRequestInput) {
90
- const input = Object.assign({}, changeRequestInput);
91
- if (input.deltaChanges) {
92
- input.deltaChanges = Object.assign(Object.assign({}, input.deltaChanges), { deltas: input.deltaChanges.deltas.map(d => encode(d)) });
93
- }
94
- return this.callZome('send_change_request', input);
95
- }
96
- sendChange(sendChangeInput) {
97
- const input = Object.assign({}, sendChangeInput);
98
- if (input.deltaChanges) {
99
- input.deltaChanges = this.encodeChangeBundle(input.deltaChanges);
100
- }
101
- return this.callZome('send_change', input);
102
- }
103
- /** Heartbeat */
104
- sendHeartbeat(heartbeatInput) {
105
- return this.callZome('send_heartbeat', heartbeatInput);
106
- }
107
- /** Helpers */
108
- async callZome(fnName, payload) {
109
- return this.cellClient.callZome(this.zomeName, fnName, payload);
110
- }
111
- encodeCommit(commit) {
112
- return Object.assign(Object.assign({}, commit), { changes: this.encodeChangeBundle(commit.changes) });
113
- }
114
- encodeChangeBundle(changes) {
115
- return Object.assign(Object.assign({}, changes), { deltas: changes.deltas.map(d => ({
116
- author: d.author,
117
- delta: encode(d.delta),
118
- })) });
119
- }
120
- decodeCommit(commit) {
121
- return Object.assign(Object.assign({}, commit), { changes: {
122
- authors: commit.changes.authors,
123
- deltas: commit.changes.deltas.map(d => ({
124
- author: d.author,
125
- delta: decode(d.delta),
126
- })),
127
- } });
128
- }
129
- }
130
- //# sourceMappingURL=syn-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"syn-client.js","sourceRoot":"","sources":["../src/syn-client.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import type { AgentPubKeyB64, EntryHashB64, Dictionary } from '@holochain-open-dev/core-types';
2
- export declare type Delta = any;
3
- export interface FolkChanges {
4
- atFolkIndex: number;
5
- commitChanges: Array<number>;
6
- }
7
- export interface AuthoredDelta {
8
- author: AgentPubKeyB64;
9
- delta: Delta;
10
- }
11
- export interface ChangeBundle {
12
- deltas: Array<AuthoredDelta>;
13
- authors: Dictionary<FolkChanges>;
14
- }
15
- export interface SendChangeRequestInput {
16
- sessionHash: EntryHashB64;
17
- scribe: AgentPubKeyB64;
18
- lastDeltaSeen: LastDeltaSeen;
19
- deltaChanges: DeltaChanges;
20
- }
21
- export interface DeltaChanges {
22
- atFolkIndex: number;
23
- deltas: Array<Delta>;
24
- }
25
- export interface LastDeltaSeen {
26
- commitHash: EntryHashB64 | undefined;
27
- deltaIndexInCommit: number;
28
- }
29
- export interface ChangeRequest {
30
- folk: AgentPubKeyB64;
31
- scribe: AgentPubKeyB64;
32
- lastDeltaSeen: LastDeltaSeen;
33
- deltaChanges: DeltaChanges;
34
- }
35
- export interface SendChangeInput {
36
- participants: Array<AgentPubKeyB64>;
37
- sessionHash: EntryHashB64;
38
- lastDeltaSeen: LastDeltaSeen;
39
- deltaChanges: ChangeBundle;
40
- }
41
- export interface ChangeNotice {
42
- lastDeltaSeen: LastDeltaSeen;
43
- deltaChanges: ChangeBundle;
44
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=change.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"change.js","sourceRoot":"","sources":["../../src/types/change.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import type { AgentPubKeyB64, EntryHashB64, HeaderHashB64 } from '@holochain-open-dev/core-types';
2
- import type { ChangeBundle } from './change';
3
- export interface CommitInput {
4
- sessionHash: EntryHashB64;
5
- commit: Commit;
6
- participants: AgentPubKeyB64[];
7
- }
8
- export interface Commit {
9
- changes: ChangeBundle;
10
- createdAt: number;
11
- previousCommitHashes: Array<EntryHashB64>;
12
- previousContentHash: EntryHashB64;
13
- newContentHash: EntryHashB64;
14
- meta: ChangeMeta;
15
- }
16
- export interface CommitNotice {
17
- commitHash: HeaderHashB64;
18
- committedDeltasCount: number;
19
- previousContentHash: EntryHashB64;
20
- newContentHash: EntryHashB64;
21
- meta: ChangeMeta;
22
- }
23
- export interface ChangeMeta {
24
- witnesses: AgentPubKeyB64[];
25
- appSpecific: Content;
26
- }
27
- export declare type Content = any;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=commit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/types/commit.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import type { AgentPubKeyB64, Dictionary, EntryHashB64 } from '@holochain-open-dev/core-types';
2
- export interface SendFolkLoreInput {
3
- sessionHash: EntryHashB64;
4
- participants: Array<AgentPubKeyB64>;
5
- folkLore: FolkLore;
6
- }
7
- export interface FolkInfo {
8
- lastSeen: number;
9
- }
10
- export declare type FolkLore = Dictionary<FolkInfo>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=folks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"folks.js","sourceRoot":"","sources":["../../src/types/folks.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import type { AgentPubKeyB64, EntryHashB64 } from "@holochain-open-dev/core-types";
2
- export interface SendHeartbeatInput {
3
- sessionHash: EntryHashB64;
4
- scribe: AgentPubKeyB64;
5
- data: String;
6
- }
7
- export interface Heartbeat {
8
- fromFolk: AgentPubKeyB64;
9
- data: string;
10
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=heartbeat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/types/heartbeat.ts"],"names":[],"mappings":""}
@@ -1,21 +0,0 @@
1
- import type { AgentPubKeyB64, EntryHashB64 } from '@holochain-open-dev/core-types';
2
- export interface Session {
3
- initialCommitHash: EntryHashB64 | undefined;
4
- scribe: AgentPubKeyB64;
5
- createdAt: number;
6
- }
7
- export interface SessionInfo {
8
- sessionHash: EntryHashB64;
9
- session: Session;
10
- }
11
- export interface NewSessionInput {
12
- initialCommitHash: EntryHashB64 | undefined;
13
- }
14
- export interface CloseSessionInput {
15
- sessionHash: EntryHashB64;
16
- participants: AgentPubKeyB64[];
17
- }
18
- export interface NotifyLeaveSessionInput {
19
- sessionHash: EntryHashB64;
20
- scribe: AgentPubKeyB64;
21
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=session.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- import type { CommitNotice } from './commit';
2
- import type { ChangeNotice, ChangeRequest } from './change';
3
- import type { FolkLore } from './folks';
4
- import type { Heartbeat } from './heartbeat';
5
- import type { RequestSyncInput, StateForSync } from './sync';
6
- import type { AgentPubKeyB64 } from '@holochain-open-dev/core-types';
7
- export declare enum SynMessageType {
8
- SyncReq = "SyncReq",
9
- SyncResp = "SyncResp",
10
- ChangeReq = "ChangeReq",
11
- ChangeNotice = "ChangeNotice",
12
- CommitNotice = "CommitNotice",
13
- Heartbeat = "Heartbeat",
14
- FolkLore = "FolkLore",
15
- SessionClosed = "SessionClosed",
16
- LeaveSessionNotice = "LeaveSessionNotice"
17
- }
18
- export declare const allMessageTypes: SynMessageType[];
19
- export declare type SynSignal = {
20
- sessionHash: string;
21
- message: SynMessage;
22
- };
23
- export interface MessageBody<TYPE, PAYLOAD> {
24
- type: TYPE;
25
- payload: PAYLOAD;
26
- }
27
- export declare type SynMessage = MessageBody<SynMessageType.SyncReq, RequestSyncInput> | MessageBody<SynMessageType.SyncResp, StateForSync> | MessageBody<SynMessageType.ChangeReq, ChangeRequest> | MessageBody<SynMessageType.ChangeNotice, ChangeNotice> | MessageBody<SynMessageType.CommitNotice, CommitNotice> | MessageBody<SynMessageType.Heartbeat, Heartbeat> | MessageBody<SynMessageType.FolkLore, FolkLore> | MessageBody<SynMessageType.LeaveSessionNotice, AgentPubKeyB64> | MessageBody<SynMessageType.SessionClosed, void>;
@@ -1,24 +0,0 @@
1
- export var SynMessageType;
2
- (function (SynMessageType) {
3
- SynMessageType["SyncReq"] = "SyncReq";
4
- SynMessageType["SyncResp"] = "SyncResp";
5
- SynMessageType["ChangeReq"] = "ChangeReq";
6
- SynMessageType["ChangeNotice"] = "ChangeNotice";
7
- SynMessageType["CommitNotice"] = "CommitNotice";
8
- SynMessageType["Heartbeat"] = "Heartbeat";
9
- SynMessageType["FolkLore"] = "FolkLore";
10
- SynMessageType["SessionClosed"] = "SessionClosed";
11
- SynMessageType["LeaveSessionNotice"] = "LeaveSessionNotice";
12
- })(SynMessageType || (SynMessageType = {}));
13
- export const allMessageTypes = [
14
- SynMessageType.SyncReq,
15
- SynMessageType.SyncResp,
16
- SynMessageType.ChangeReq,
17
- SynMessageType.ChangeNotice,
18
- SynMessageType.CommitNotice,
19
- SynMessageType.Heartbeat,
20
- SynMessageType.FolkLore,
21
- SynMessageType.SessionClosed,
22
- SynMessageType.LeaveSessionNotice,
23
- ];
24
- //# sourceMappingURL=signal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/types/signal.ts"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,+CAA6B,CAAA;IAC7B,+CAA6B,CAAA;IAC7B,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,iDAA+B,CAAA;IAC/B,2DAAyC,CAAA;AAC3C,CAAC,EAVW,cAAc,KAAd,cAAc,QAUzB;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,CAAC,OAAO;IACtB,cAAc,CAAC,QAAQ;IACvB,cAAc,CAAC,SAAS;IACxB,cAAc,CAAC,YAAY;IAC3B,cAAc,CAAC,YAAY;IAC3B,cAAc,CAAC,SAAS;IACxB,cAAc,CAAC,QAAQ;IACvB,cAAc,CAAC,aAAa;IAC5B,cAAc,CAAC,kBAAkB;CAClC,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { ChangeBundle, LastDeltaSeen } from './change';
2
- import type { EntryHashB64, AgentPubKeyB64 } from '@holochain-open-dev/core-types';
3
- import type { Commit, Content } from './commit';
4
- export interface SendSyncRequestInput {
5
- sessionHash: EntryHashB64;
6
- scribe: AgentPubKeyB64;
7
- lastDeltaSeen: LastDeltaSeen | undefined;
8
- }
9
- export interface RequestSyncInput {
10
- folk: AgentPubKeyB64;
11
- scribe: AgentPubKeyB64;
12
- lastDeltaSeen: LastDeltaSeen;
13
- }
14
- export interface MissedCommit {
15
- commitHash: EntryHashB64;
16
- commit: Commit;
17
- commitInitialSnapshot: Content;
18
- }
19
- export interface StateForSync {
20
- folkMissedLastCommit: MissedCommit | undefined;
21
- uncommittedChanges: ChangeBundle;
22
- }
23
- export interface SendSyncResponseInput {
24
- sessionHash: EntryHashB64;
25
- participant: AgentPubKeyB64;
26
- state: StateForSync;
27
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/types/sync.ts"],"names":[],"mappings":""}