@builder6/rooms 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +25 -0
- package/.prettierrc +4 -0
- package/README.md +7 -0
- package/dist/plugin.module.d.ts +2 -0
- package/dist/plugin.module.js +21 -0
- package/dist/plugin.module.js.map +1 -0
- package/dist/rooms/globals/augmentation.d.ts +25 -0
- package/dist/rooms/globals/augmentation.js +3 -0
- package/dist/rooms/globals/augmentation.js.map +1 -0
- package/dist/rooms/index.d.ts +5 -0
- package/dist/rooms/index.js +22 -0
- package/dist/rooms/index.js.map +1 -0
- package/dist/rooms/lib/DateToString.d.ts +3 -0
- package/dist/rooms/lib/DateToString.js +3 -0
- package/dist/rooms/lib/DateToString.js.map +1 -0
- package/dist/rooms/lib/Json.d.ts +9 -0
- package/dist/rooms/lib/Json.js +18 -0
- package/dist/rooms/lib/Json.js.map +1 -0
- package/dist/rooms/lib/utils.d.ts +33 -0
- package/dist/rooms/lib/utils.js +122 -0
- package/dist/rooms/lib/utils.js.map +1 -0
- package/dist/rooms/protocol/AuthToken.d.ts +50 -0
- package/dist/rooms/protocol/AuthToken.js +49 -0
- package/dist/rooms/protocol/AuthToken.js.map +1 -0
- package/dist/rooms/protocol/Authentication.d.ts +22 -0
- package/dist/rooms/protocol/Authentication.js +3 -0
- package/dist/rooms/protocol/Authentication.js.map +1 -0
- package/dist/rooms/protocol/BaseActivitiesData.d.ts +4 -0
- package/dist/rooms/protocol/BaseActivitiesData.js +3 -0
- package/dist/rooms/protocol/BaseActivitiesData.js.map +1 -0
- package/dist/rooms/protocol/BaseRoomInfo.d.ts +6 -0
- package/dist/rooms/protocol/BaseRoomInfo.js +3 -0
- package/dist/rooms/protocol/BaseRoomInfo.js.map +1 -0
- package/dist/rooms/protocol/BaseUserMeta.d.ts +10 -0
- package/dist/rooms/protocol/BaseUserMeta.js +3 -0
- package/dist/rooms/protocol/BaseUserMeta.js.map +1 -0
- package/dist/rooms/protocol/ClientMsg.d.ts +41 -0
- package/dist/rooms/protocol/ClientMsg.js +13 -0
- package/dist/rooms/protocol/ClientMsg.js.map +1 -0
- package/dist/rooms/protocol/Comments.d.ts +146 -0
- package/dist/rooms/protocol/Comments.js +3 -0
- package/dist/rooms/protocol/Comments.js.map +1 -0
- package/dist/rooms/protocol/InboxNotifications.d.ts +49 -0
- package/dist/rooms/protocol/InboxNotifications.js +3 -0
- package/dist/rooms/protocol/InboxNotifications.js.map +1 -0
- package/dist/rooms/protocol/Op.d.ts +82 -0
- package/dist/rooms/protocol/Op.js +28 -0
- package/dist/rooms/protocol/Op.js.map +1 -0
- package/dist/rooms/protocol/SerializedCrdt.d.ts +40 -0
- package/dist/rooms/protocol/SerializedCrdt.js +19 -0
- package/dist/rooms/protocol/SerializedCrdt.js.map +1 -0
- package/dist/rooms/protocol/ServerMsg.d.ts +128 -0
- package/dist/rooms/protocol/ServerMsg.js +25 -0
- package/dist/rooms/protocol/ServerMsg.js.map +1 -0
- package/dist/rooms/protocol/VersionHistory.d.ts +9 -0
- package/dist/rooms/protocol/VersionHistory.js +3 -0
- package/dist/rooms/protocol/VersionHistory.js.map +1 -0
- package/dist/rooms/rooms.controller.d.ts +64 -0
- package/dist/rooms/rooms.controller.js +401 -0
- package/dist/rooms/rooms.controller.js.map +1 -0
- package/dist/rooms/rooms.gateway.d.ts +30 -0
- package/dist/rooms/rooms.gateway.js +188 -0
- package/dist/rooms/rooms.gateway.js.map +1 -0
- package/dist/rooms/rooms.guard.d.ts +9 -0
- package/dist/rooms/rooms.guard.js +48 -0
- package/dist/rooms/rooms.guard.js.map +1 -0
- package/dist/rooms/rooms.module.d.ts +2 -0
- package/dist/rooms/rooms.module.js +36 -0
- package/dist/rooms/rooms.module.js.map +1 -0
- package/dist/rooms/rooms.service.d.ts +51 -0
- package/dist/rooms/rooms.service.js +225 -0
- package/dist/rooms/rooms.service.js.map +1 -0
- package/package.json +35 -0
- package/src/plugin.module.ts +3 -0
- package/src/rooms/globals/augmentation.ts +89 -0
- package/src/rooms/index.ts +5 -0
- package/src/rooms/lib/DateToString.ts +9 -0
- package/src/rooms/lib/Json.ts +34 -0
- package/src/rooms/lib/utils.ts +240 -0
- package/src/rooms/protocol/AuthToken.ts +126 -0
- package/src/rooms/protocol/Authentication.ts +18 -0
- package/src/rooms/protocol/BaseActivitiesData.ts +5 -0
- package/src/rooms/protocol/BaseRoomInfo.ts +15 -0
- package/src/rooms/protocol/BaseUserMeta.ts +28 -0
- package/src/rooms/protocol/ClientMsg.ts +94 -0
- package/src/rooms/protocol/Comments.ts +202 -0
- package/src/rooms/protocol/InboxNotifications.ts +75 -0
- package/src/rooms/protocol/Op.ts +143 -0
- package/src/rooms/protocol/SerializedCrdt.ts +61 -0
- package/src/rooms/protocol/ServerMsg.ts +307 -0
- package/src/rooms/protocol/VersionHistory.ts +9 -0
- package/src/rooms/rooms.controller.ts +373 -0
- package/src/rooms/rooms.gateway.ts +255 -0
- package/src/rooms/rooms.guard.ts +38 -0
- package/src/rooms/rooms.module.ts +24 -0
- package/src/rooms/rooms.service.ts +359 -0
- package/tsconfig.json +8 -0
package/.eslintrc.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
parser: '@typescript-eslint/parser',
|
|
3
|
+
parserOptions: {
|
|
4
|
+
project: 'tsconfig.json',
|
|
5
|
+
tsconfigRootDir: __dirname,
|
|
6
|
+
sourceType: 'module',
|
|
7
|
+
},
|
|
8
|
+
plugins: ['@typescript-eslint/eslint-plugin'],
|
|
9
|
+
extends: [
|
|
10
|
+
'plugin:@typescript-eslint/recommended',
|
|
11
|
+
'plugin:prettier/recommended',
|
|
12
|
+
],
|
|
13
|
+
root: true,
|
|
14
|
+
env: {
|
|
15
|
+
node: true,
|
|
16
|
+
jest: true,
|
|
17
|
+
},
|
|
18
|
+
ignorePatterns: ['.eslintrc.js'],
|
|
19
|
+
rules: {
|
|
20
|
+
'@typescript-eslint/interface-name-prefix': 'off',
|
|
21
|
+
'@typescript-eslint/explicit-function-return-type': 'off',
|
|
22
|
+
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
|
23
|
+
'@typescript-eslint/no-explicit-any': 'off',
|
|
24
|
+
},
|
|
25
|
+
};
|
package/.prettierrc
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.default = void 0;
|
|
18
|
+
var rooms_module_1 = require("./rooms/rooms.module");
|
|
19
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return rooms_module_1.RoomsModule; } });
|
|
20
|
+
__exportStar(require("./rooms"), exports);
|
|
21
|
+
//# sourceMappingURL=plugin.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.module.js","sourceRoot":"","sources":["../src/plugin.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAA8D;AAArD,uGAAA,WAAW,OAAW;AAE/B,0CAAwB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Json, JsonObject } from '../lib/Json';
|
|
2
|
+
import type { BaseActivitiesData } from '../protocol/BaseActivitiesData';
|
|
3
|
+
import type { BaseRoomInfo } from '../protocol/BaseRoomInfo';
|
|
4
|
+
import type { BaseUserMeta } from '../protocol/BaseUserMeta';
|
|
5
|
+
import type { BaseMetadata } from '../protocol/Comments';
|
|
6
|
+
declare global {
|
|
7
|
+
export interface Liveblocks {
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
type ExtendableTypes = 'Presence' | 'Storage' | 'UserMeta' | 'RoomEvent' | 'ThreadMetadata' | 'RoomInfo' | 'ActivitiesData';
|
|
12
|
+
type MakeErrorString<K extends ExtendableTypes, Reason extends string = 'does not match its requirements'> = `The type you provided for '${K}' ${Reason}. To learn how to fix this, see https://liveblocks.io/docs/errors/${K}`;
|
|
13
|
+
type GetOverride<K extends ExtendableTypes, B, Reason extends string = 'does not match its requirements'> = GetOverrideOrErrorValue<K, B, MakeErrorString<K, Reason>>;
|
|
14
|
+
type GetOverrideOrErrorValue<K extends ExtendableTypes, B, ErrorType> = unknown extends Liveblocks[K] ? B : Liveblocks[K] extends B ? Liveblocks[K] : ErrorType;
|
|
15
|
+
export type DP = GetOverride<'Presence', JsonObject, 'is not a valid JSON object'>;
|
|
16
|
+
export type DS = GetOverride<'Storage', JsonObject, 'is not a valid LSON value'>;
|
|
17
|
+
export type DU = GetOverrideOrErrorValue<'UserMeta', BaseUserMeta, Record<'id' | 'info', MakeErrorString<'UserMeta'>>>;
|
|
18
|
+
export type DE = GetOverride<'RoomEvent', Json, 'is not a valid JSON value'>;
|
|
19
|
+
export type DM = GetOverride<'ThreadMetadata', BaseMetadata>;
|
|
20
|
+
export type DRI = GetOverride<'RoomInfo', BaseRoomInfo>;
|
|
21
|
+
export type DAD = GetOverrideOrErrorValue<'ActivitiesData', BaseActivitiesData, {
|
|
22
|
+
[K in keyof Liveblocks['ActivitiesData']]: "At least one of the custom notification kinds you provided for 'ActivitiesData' does not match its requirements. To learn how to fix this, see https://liveblocks.io/docs/errors/ActivitiesData";
|
|
23
|
+
}>;
|
|
24
|
+
export type KDAD = keyof DAD extends `$${string}` ? keyof DAD : "Custom notification kinds must start with '$' but your custom 'ActivitiesData' type contains at least one kind which doesn't. To learn how to fix this, see https://liveblocks.io/docs/errors/ActivitiesData";
|
|
25
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augmentation.js","sourceRoot":"","sources":["../../../src/rooms/globals/augmentation.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./rooms.controller"), exports);
|
|
18
|
+
__exportStar(require("./rooms.module"), exports);
|
|
19
|
+
__exportStar(require("./rooms.service"), exports);
|
|
20
|
+
__exportStar(require("./rooms.guard"), exports);
|
|
21
|
+
__exportStar(require("./rooms.gateway"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rooms/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,iDAA+B;AAC/B,kDAAgC;AAChC,gDAA8B;AAC9B,kDAAgC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateToString.js","sourceRoot":"","sources":["../../../src/rooms/lib/DateToString.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type Json = JsonScalar | JsonArray | JsonObject;
|
|
2
|
+
export type JsonScalar = string | number | boolean | null;
|
|
3
|
+
export type JsonArray = Json[];
|
|
4
|
+
export type JsonObject = {
|
|
5
|
+
[key: string]: Json | undefined;
|
|
6
|
+
};
|
|
7
|
+
export declare function isJsonScalar(data: Json): data is JsonScalar;
|
|
8
|
+
export declare function isJsonArray(data: Json): data is JsonArray;
|
|
9
|
+
export declare function isJsonObject(data: Json): data is JsonObject;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isJsonScalar = isJsonScalar;
|
|
4
|
+
exports.isJsonArray = isJsonArray;
|
|
5
|
+
exports.isJsonObject = isJsonObject;
|
|
6
|
+
function isJsonScalar(data) {
|
|
7
|
+
return (data === null ||
|
|
8
|
+
typeof data === 'string' ||
|
|
9
|
+
typeof data === 'number' ||
|
|
10
|
+
typeof data === 'boolean');
|
|
11
|
+
}
|
|
12
|
+
function isJsonArray(data) {
|
|
13
|
+
return Array.isArray(data);
|
|
14
|
+
}
|
|
15
|
+
function isJsonObject(data) {
|
|
16
|
+
return !isJsonScalar(data) && !isJsonArray(data);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Json.js","sourceRoot":"","sources":["../../../src/rooms/lib/Json.ts"],"names":[],"mappings":";;AAkBA,oCAOC;AAED,kCAEC;AAED,oCAEC;AAfD,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,CACL,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,KAAK,SAAS,CAC1B,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Json } from './Json';
|
|
2
|
+
declare const brand: unique symbol;
|
|
3
|
+
export type Brand<T, TBrand extends string> = T & {
|
|
4
|
+
[brand]: TBrand;
|
|
5
|
+
};
|
|
6
|
+
export type DistributiveOmit<T, K extends PropertyKey> = T extends any ? Omit<T, K> : never;
|
|
7
|
+
export declare function raise(msg: string): never;
|
|
8
|
+
export declare function isPlainObject(blob: unknown): blob is {
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
};
|
|
11
|
+
export declare function entries<O extends {
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}, K extends keyof O>(obj: O): [K, O[K]][];
|
|
14
|
+
export declare function keys<O extends {
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
}, K extends keyof O>(obj: O): K[];
|
|
17
|
+
export declare function values<O extends Record<string, unknown>>(obj: O): O[keyof O][];
|
|
18
|
+
export declare function mapValues<V, O extends Record<string, unknown>>(obj: O, mapFn: (value: O[keyof O], key: keyof O) => V): {
|
|
19
|
+
[K in keyof O]: V;
|
|
20
|
+
};
|
|
21
|
+
export declare function tryParseJson(rawMessage: string): Json | undefined;
|
|
22
|
+
export declare function deepClone<T extends Json>(value: T): T;
|
|
23
|
+
export declare function b64decode(b64value: string): string;
|
|
24
|
+
export declare function remove<T>(array: T[], item: T): void;
|
|
25
|
+
export declare function compact<T>(items: readonly T[]): NonNullable<T>[];
|
|
26
|
+
export type RemoveUndefinedValues<T> = {
|
|
27
|
+
[K in keyof T]-?: Exclude<T[K], undefined>;
|
|
28
|
+
};
|
|
29
|
+
export declare function compactObject<O extends Record<string, unknown>>(obj: O): RemoveUndefinedValues<O>;
|
|
30
|
+
export declare function wait(millis: number): Promise<void>;
|
|
31
|
+
export declare function withTimeout<T>(promise: Promise<T>, millis: number, errmsg: string): Promise<T>;
|
|
32
|
+
export declare function memoizeOnSuccess<T>(factoryFn: () => Promise<T>): () => Promise<T>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.raise = raise;
|
|
4
|
+
exports.isPlainObject = isPlainObject;
|
|
5
|
+
exports.entries = entries;
|
|
6
|
+
exports.keys = keys;
|
|
7
|
+
exports.values = values;
|
|
8
|
+
exports.mapValues = mapValues;
|
|
9
|
+
exports.tryParseJson = tryParseJson;
|
|
10
|
+
exports.deepClone = deepClone;
|
|
11
|
+
exports.b64decode = b64decode;
|
|
12
|
+
exports.remove = remove;
|
|
13
|
+
exports.compact = compact;
|
|
14
|
+
exports.compactObject = compactObject;
|
|
15
|
+
exports.wait = wait;
|
|
16
|
+
exports.withTimeout = withTimeout;
|
|
17
|
+
exports.memoizeOnSuccess = memoizeOnSuccess;
|
|
18
|
+
function raise(msg) {
|
|
19
|
+
throw new Error(msg);
|
|
20
|
+
}
|
|
21
|
+
function isPlainObject(blob) {
|
|
22
|
+
return (blob !== null &&
|
|
23
|
+
typeof blob === 'object' &&
|
|
24
|
+
Object.prototype.toString.call(blob) === '[object Object]');
|
|
25
|
+
}
|
|
26
|
+
function entries(obj) {
|
|
27
|
+
return Object.entries(obj);
|
|
28
|
+
}
|
|
29
|
+
function keys(obj) {
|
|
30
|
+
return Object.keys(obj);
|
|
31
|
+
}
|
|
32
|
+
function values(obj) {
|
|
33
|
+
return Object.values(obj);
|
|
34
|
+
}
|
|
35
|
+
function mapValues(obj, mapFn) {
|
|
36
|
+
const result = {};
|
|
37
|
+
for (const pair of Object.entries(obj)) {
|
|
38
|
+
const key = pair[0];
|
|
39
|
+
if (key === '__proto__') {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const value = pair[1];
|
|
43
|
+
result[key] = mapFn(value, key);
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
function tryParseJson(rawMessage) {
|
|
48
|
+
try {
|
|
49
|
+
return JSON.parse(rawMessage);
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function deepClone(value) {
|
|
56
|
+
return JSON.parse(JSON.stringify(value));
|
|
57
|
+
}
|
|
58
|
+
function b64decode(b64value) {
|
|
59
|
+
try {
|
|
60
|
+
const formattedValue = b64value.replace(/-/g, '+').replace(/_/g, '/');
|
|
61
|
+
const decodedValue = decodeURIComponent(atob(formattedValue)
|
|
62
|
+
.split('')
|
|
63
|
+
.map(function (c) {
|
|
64
|
+
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
|
65
|
+
})
|
|
66
|
+
.join(''));
|
|
67
|
+
return decodedValue;
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
return atob(b64value);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function remove(array, item) {
|
|
74
|
+
for (let i = 0; i < array.length; i++) {
|
|
75
|
+
if (array[i] === item) {
|
|
76
|
+
array.splice(i, 1);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function compact(items) {
|
|
82
|
+
return items.filter((item) => item !== null && item !== undefined);
|
|
83
|
+
}
|
|
84
|
+
function compactObject(obj) {
|
|
85
|
+
const newObj = { ...obj };
|
|
86
|
+
Object.keys(obj).forEach((k) => {
|
|
87
|
+
const key = k;
|
|
88
|
+
if (newObj[key] === undefined) {
|
|
89
|
+
delete newObj[key];
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
return newObj;
|
|
93
|
+
}
|
|
94
|
+
function wait(millis) {
|
|
95
|
+
return new Promise((res) => setTimeout(res, millis));
|
|
96
|
+
}
|
|
97
|
+
async function withTimeout(promise, millis, errmsg) {
|
|
98
|
+
let timerID;
|
|
99
|
+
const timer$ = new Promise((_, reject) => {
|
|
100
|
+
timerID = setTimeout(() => {
|
|
101
|
+
reject(new Error(errmsg));
|
|
102
|
+
}, millis);
|
|
103
|
+
});
|
|
104
|
+
return (Promise
|
|
105
|
+
.race([promise, timer$])
|
|
106
|
+
.finally(() => clearTimeout(timerID)));
|
|
107
|
+
}
|
|
108
|
+
function memoizeOnSuccess(factoryFn) {
|
|
109
|
+
let cached = null;
|
|
110
|
+
return () => {
|
|
111
|
+
if (cached === null) {
|
|
112
|
+
cached = factoryFn().catch((err) => {
|
|
113
|
+
setTimeout(() => {
|
|
114
|
+
cached = null;
|
|
115
|
+
}, 5_000);
|
|
116
|
+
throw err;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
return cached;
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/rooms/lib/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Json } from '../lib/Json';
|
|
2
|
+
import type { IUserInfo } from './BaseUserMeta';
|
|
3
|
+
export declare enum Permission {
|
|
4
|
+
Read = "room:read",
|
|
5
|
+
Write = "room:write",
|
|
6
|
+
PresenceWrite = "room:presence:write",
|
|
7
|
+
CommentsWrite = "comments:write",
|
|
8
|
+
CommentsRead = "comments:read"
|
|
9
|
+
}
|
|
10
|
+
export type LiveblocksPermissions = Record<string, Permission[]>;
|
|
11
|
+
export declare enum TokenKind {
|
|
12
|
+
SECRET_LEGACY = "sec-legacy",
|
|
13
|
+
ACCESS_TOKEN = "acc",
|
|
14
|
+
ID_TOKEN = "id"
|
|
15
|
+
}
|
|
16
|
+
export declare function canWriteStorage(scopes: readonly string[]): boolean;
|
|
17
|
+
export declare function canComment(scopes: readonly string[]): boolean;
|
|
18
|
+
type JwtMeta = {
|
|
19
|
+
iat: number;
|
|
20
|
+
exp: number;
|
|
21
|
+
};
|
|
22
|
+
export type LegacySecretToken = {
|
|
23
|
+
k: TokenKind.SECRET_LEGACY;
|
|
24
|
+
roomId: string;
|
|
25
|
+
scopes: string[];
|
|
26
|
+
id?: string;
|
|
27
|
+
info?: IUserInfo;
|
|
28
|
+
[other: string]: Json | undefined;
|
|
29
|
+
} & JwtMeta;
|
|
30
|
+
export type AccessToken = {
|
|
31
|
+
k: TokenKind.ACCESS_TOKEN;
|
|
32
|
+
pid: string;
|
|
33
|
+
uid: string;
|
|
34
|
+
perms: LiveblocksPermissions;
|
|
35
|
+
ui?: IUserInfo;
|
|
36
|
+
} & JwtMeta;
|
|
37
|
+
export type IDToken = {
|
|
38
|
+
k: TokenKind.ID_TOKEN;
|
|
39
|
+
pid: string;
|
|
40
|
+
uid: string;
|
|
41
|
+
gids?: string[];
|
|
42
|
+
ui?: IUserInfo;
|
|
43
|
+
} & JwtMeta;
|
|
44
|
+
export type AuthToken = AccessToken | IDToken | LegacySecretToken;
|
|
45
|
+
export type ParsedAuthToken = {
|
|
46
|
+
readonly raw: string;
|
|
47
|
+
readonly parsed: AuthToken;
|
|
48
|
+
};
|
|
49
|
+
export declare function parseAuthToken(rawTokenString: string): ParsedAuthToken;
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenKind = exports.Permission = void 0;
|
|
4
|
+
exports.canWriteStorage = canWriteStorage;
|
|
5
|
+
exports.canComment = canComment;
|
|
6
|
+
exports.parseAuthToken = parseAuthToken;
|
|
7
|
+
const utils_1 = require("../lib/utils");
|
|
8
|
+
var Permission;
|
|
9
|
+
(function (Permission) {
|
|
10
|
+
Permission["Read"] = "room:read";
|
|
11
|
+
Permission["Write"] = "room:write";
|
|
12
|
+
Permission["PresenceWrite"] = "room:presence:write";
|
|
13
|
+
Permission["CommentsWrite"] = "comments:write";
|
|
14
|
+
Permission["CommentsRead"] = "comments:read";
|
|
15
|
+
})(Permission || (exports.Permission = Permission = {}));
|
|
16
|
+
var TokenKind;
|
|
17
|
+
(function (TokenKind) {
|
|
18
|
+
TokenKind["SECRET_LEGACY"] = "sec-legacy";
|
|
19
|
+
TokenKind["ACCESS_TOKEN"] = "acc";
|
|
20
|
+
TokenKind["ID_TOKEN"] = "id";
|
|
21
|
+
})(TokenKind || (exports.TokenKind = TokenKind = {}));
|
|
22
|
+
function canWriteStorage(scopes) {
|
|
23
|
+
return scopes.includes(Permission.Write);
|
|
24
|
+
}
|
|
25
|
+
function canComment(scopes) {
|
|
26
|
+
return (scopes.includes(Permission.CommentsWrite) ||
|
|
27
|
+
scopes.includes(Permission.Write));
|
|
28
|
+
}
|
|
29
|
+
function isValidAuthTokenPayload(data) {
|
|
30
|
+
return ((0, utils_1.isPlainObject)(data) &&
|
|
31
|
+
(data.k === TokenKind.ACCESS_TOKEN ||
|
|
32
|
+
data.k === TokenKind.ID_TOKEN ||
|
|
33
|
+
data.k === TokenKind.SECRET_LEGACY));
|
|
34
|
+
}
|
|
35
|
+
function parseAuthToken(rawTokenString) {
|
|
36
|
+
const tokenParts = rawTokenString.split('.');
|
|
37
|
+
if (tokenParts.length !== 3) {
|
|
38
|
+
throw new Error('Authentication error: invalid JWT token');
|
|
39
|
+
}
|
|
40
|
+
const payload = (0, utils_1.tryParseJson)((0, utils_1.b64decode)(tokenParts[1]));
|
|
41
|
+
if (!(payload && isValidAuthTokenPayload(payload))) {
|
|
42
|
+
throw new Error('Authentication error: expected a valid token but did not get one. Hint: if you are using a callback, ensure the room is passed when creating the token. For more information: https://liveblocks.io/docs/api-reference/liveblocks-client#createClientCallback');
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
raw: rawTokenString,
|
|
46
|
+
parsed: payload,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=AuthToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthToken.js","sourceRoot":"","sources":["../../../src/rooms/protocol/AuthToken.ts"],"names":[],"mappings":";;;AAwBA,0CAEC;AAED,gCAKC;AA2ED,wCAiBC;AA5HD,wCAAsE;AAGtE,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,gCAAkB,CAAA;IAClB,kCAAoB,CAAA;IACpB,mDAAqC,CAAA;IACrC,8CAAgC,CAAA;IAChC,4CAA8B,CAAA;AAChC,CAAC,EANW,UAAU,0BAAV,UAAU,QAMrB;AAID,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,yCAA4B,CAAA;IAC5B,iCAAoB,CAAA;IACpB,4BAAe,CAAA;AACjB,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAMD,SAAgB,eAAe,CAAC,MAAyB;IACvD,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,UAAU,CAAC,MAAyB;IAClD,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QACzC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAClC,CAAC;AACJ,CAAC;AAyDD,SAAS,uBAAuB,CAC9B,IAAU;IAEV,OAAO,CACL,IAAA,qBAAa,EAAC,IAAI,CAAC;QACnB,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,YAAY;YAChC,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ;YAC7B,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC,aAAa,CAAC,CACtC,CAAC;AACJ,CAAC;AASD,SAAgB,cAAc,CAAC,cAAsB;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,+PAA+P,CAChQ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,cAAc;QACnB,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type CustomAuthenticationResult = {
|
|
2
|
+
token: string;
|
|
3
|
+
error?: never;
|
|
4
|
+
} | {
|
|
5
|
+
token?: never;
|
|
6
|
+
error: 'forbidden';
|
|
7
|
+
reason: string;
|
|
8
|
+
} | {
|
|
9
|
+
token?: never;
|
|
10
|
+
error: string;
|
|
11
|
+
reason: string;
|
|
12
|
+
};
|
|
13
|
+
export type Authentication = {
|
|
14
|
+
type: 'public';
|
|
15
|
+
publicApiKey: string;
|
|
16
|
+
} | {
|
|
17
|
+
type: 'private';
|
|
18
|
+
url: string;
|
|
19
|
+
} | {
|
|
20
|
+
type: 'custom';
|
|
21
|
+
callback: (room?: string) => Promise<CustomAuthenticationResult>;
|
|
22
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Authentication.js","sourceRoot":"","sources":["../../../src/rooms/protocol/Authentication.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseActivitiesData.js","sourceRoot":"","sources":["../../../src/rooms/protocol/BaseActivitiesData.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseRoomInfo.js","sourceRoot":"","sources":["../../../src/rooms/protocol/BaseRoomInfo.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseUserMeta.js","sourceRoot":"","sources":["../../../src/rooms/protocol/BaseUserMeta.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Json, JsonObject } from '../lib/Json';
|
|
2
|
+
import type { Op } from './Op';
|
|
3
|
+
export declare enum ClientMsgCode {
|
|
4
|
+
UPDATE_PRESENCE = 100,
|
|
5
|
+
BROADCAST_EVENT = 103,
|
|
6
|
+
FETCH_STORAGE = 200,
|
|
7
|
+
UPDATE_STORAGE = 201,
|
|
8
|
+
FETCH_YDOC = 300,
|
|
9
|
+
UPDATE_YDOC = 301
|
|
10
|
+
}
|
|
11
|
+
export type ClientMsg<P extends JsonObject, E extends Json> = BroadcastEventClientMsg<E> | UpdatePresenceClientMsg<P> | UpdateStorageClientMsg | FetchStorageClientMsg | FetchYDocClientMsg | UpdateYDocClientMsg;
|
|
12
|
+
export type BroadcastEventClientMsg<E extends Json> = {
|
|
13
|
+
type: ClientMsgCode.BROADCAST_EVENT;
|
|
14
|
+
event: E;
|
|
15
|
+
};
|
|
16
|
+
export type UpdatePresenceClientMsg<P extends JsonObject> = {
|
|
17
|
+
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
18
|
+
readonly targetActor: number;
|
|
19
|
+
readonly data: P;
|
|
20
|
+
} | {
|
|
21
|
+
readonly type: ClientMsgCode.UPDATE_PRESENCE;
|
|
22
|
+
readonly targetActor?: undefined;
|
|
23
|
+
readonly data: Partial<P>;
|
|
24
|
+
};
|
|
25
|
+
export type UpdateStorageClientMsg = {
|
|
26
|
+
readonly type: ClientMsgCode.UPDATE_STORAGE;
|
|
27
|
+
readonly ops: Op[];
|
|
28
|
+
};
|
|
29
|
+
export type FetchStorageClientMsg = {
|
|
30
|
+
readonly type: ClientMsgCode.FETCH_STORAGE;
|
|
31
|
+
};
|
|
32
|
+
export type FetchYDocClientMsg = {
|
|
33
|
+
readonly type: ClientMsgCode.FETCH_YDOC;
|
|
34
|
+
readonly vector: string;
|
|
35
|
+
readonly guid?: string;
|
|
36
|
+
};
|
|
37
|
+
export type UpdateYDocClientMsg = {
|
|
38
|
+
readonly type: ClientMsgCode.UPDATE_YDOC;
|
|
39
|
+
readonly update: string;
|
|
40
|
+
readonly guid?: string;
|
|
41
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientMsgCode = void 0;
|
|
4
|
+
var ClientMsgCode;
|
|
5
|
+
(function (ClientMsgCode) {
|
|
6
|
+
ClientMsgCode[ClientMsgCode["UPDATE_PRESENCE"] = 100] = "UPDATE_PRESENCE";
|
|
7
|
+
ClientMsgCode[ClientMsgCode["BROADCAST_EVENT"] = 103] = "BROADCAST_EVENT";
|
|
8
|
+
ClientMsgCode[ClientMsgCode["FETCH_STORAGE"] = 200] = "FETCH_STORAGE";
|
|
9
|
+
ClientMsgCode[ClientMsgCode["UPDATE_STORAGE"] = 201] = "UPDATE_STORAGE";
|
|
10
|
+
ClientMsgCode[ClientMsgCode["FETCH_YDOC"] = 300] = "FETCH_YDOC";
|
|
11
|
+
ClientMsgCode[ClientMsgCode["UPDATE_YDOC"] = 301] = "UPDATE_YDOC";
|
|
12
|
+
})(ClientMsgCode || (exports.ClientMsgCode = ClientMsgCode = {}));
|
|
13
|
+
//# sourceMappingURL=ClientMsg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientMsg.js","sourceRoot":"","sources":["../../../src/rooms/protocol/ClientMsg.ts"],"names":[],"mappings":";;;AAGA,IAAY,aAYX;AAZD,WAAY,aAAa;IAEvB,yEAAqB,CAAA;IACrB,yEAAqB,CAAA;IAGrB,qEAAmB,CAAA;IACnB,uEAAoB,CAAA;IAGpB,+DAAgB,CAAA;IAChB,iEAAiB,CAAA;AACnB,CAAC,EAZW,aAAa,6BAAb,aAAa,QAYxB"}
|