@builder6/server 0.6.5 → 0.7.0
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/dist/app.express.js +0 -1
- package/dist/app.express.js.map +1 -1
- package/dist/app.module.js +4 -4
- package/dist/app.module.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -15
- package/dist/index.js.map +1 -1
- package/dist/oidc/oidc.service.js +1 -1
- package/dist/oidc/oidc.service.js.map +1 -1
- package/dist/plugin/plugin.module.js +1 -3
- package/dist/plugin/plugin.module.js.map +1 -1
- package/package.json +8 -7
- package/dist/files/files.controller.d.ts +0 -11
- package/dist/files/files.controller.js +0 -148
- package/dist/files/files.controller.js.map +0 -1
- package/dist/files/files.module.d.ts +0 -2
- package/dist/files/files.module.js +0 -26
- package/dist/files/files.module.js.map +0 -1
- package/dist/files/files.moleculer.d.ts +0 -10
- package/dist/files/files.moleculer.js +0 -53
- package/dist/files/files.moleculer.js.map +0 -1
- package/dist/files/files.service.d.ts +0 -30
- package/dist/files/files.service.js +0 -207
- package/dist/files/files.service.js.map +0 -1
- package/dist/files/index.d.ts +0 -3
- package/dist/files/index.js +0 -20
- package/dist/files/index.js.map +0 -1
- package/dist/rooms/globals/augmentation.d.ts +0 -25
- package/dist/rooms/globals/augmentation.js +0 -3
- package/dist/rooms/globals/augmentation.js.map +0 -1
- package/dist/rooms/lib/DateToString.d.ts +0 -3
- package/dist/rooms/lib/DateToString.js +0 -3
- package/dist/rooms/lib/DateToString.js.map +0 -1
- package/dist/rooms/lib/Json.d.ts +0 -9
- package/dist/rooms/lib/Json.js +0 -18
- package/dist/rooms/lib/Json.js.map +0 -1
- package/dist/rooms/lib/utils.d.ts +0 -33
- package/dist/rooms/lib/utils.js +0 -122
- package/dist/rooms/lib/utils.js.map +0 -1
- package/dist/rooms/protocol/AuthToken.d.ts +0 -50
- package/dist/rooms/protocol/AuthToken.js +0 -49
- package/dist/rooms/protocol/AuthToken.js.map +0 -1
- package/dist/rooms/protocol/Authentication.d.ts +0 -22
- package/dist/rooms/protocol/Authentication.js +0 -3
- package/dist/rooms/protocol/Authentication.js.map +0 -1
- package/dist/rooms/protocol/BaseActivitiesData.d.ts +0 -4
- package/dist/rooms/protocol/BaseActivitiesData.js +0 -3
- package/dist/rooms/protocol/BaseActivitiesData.js.map +0 -1
- package/dist/rooms/protocol/BaseRoomInfo.d.ts +0 -6
- package/dist/rooms/protocol/BaseRoomInfo.js +0 -3
- package/dist/rooms/protocol/BaseRoomInfo.js.map +0 -1
- package/dist/rooms/protocol/BaseUserMeta.d.ts +0 -10
- package/dist/rooms/protocol/BaseUserMeta.js +0 -3
- package/dist/rooms/protocol/BaseUserMeta.js.map +0 -1
- package/dist/rooms/protocol/ClientMsg.d.ts +0 -41
- package/dist/rooms/protocol/ClientMsg.js +0 -13
- package/dist/rooms/protocol/ClientMsg.js.map +0 -1
- package/dist/rooms/protocol/Comments.d.ts +0 -146
- package/dist/rooms/protocol/Comments.js +0 -3
- package/dist/rooms/protocol/Comments.js.map +0 -1
- package/dist/rooms/protocol/InboxNotifications.d.ts +0 -49
- package/dist/rooms/protocol/InboxNotifications.js +0 -3
- package/dist/rooms/protocol/InboxNotifications.js.map +0 -1
- package/dist/rooms/protocol/Op.d.ts +0 -82
- package/dist/rooms/protocol/Op.js +0 -28
- package/dist/rooms/protocol/Op.js.map +0 -1
- package/dist/rooms/protocol/SerializedCrdt.d.ts +0 -40
- package/dist/rooms/protocol/SerializedCrdt.js +0 -19
- package/dist/rooms/protocol/SerializedCrdt.js.map +0 -1
- package/dist/rooms/protocol/ServerMsg.d.ts +0 -128
- package/dist/rooms/protocol/ServerMsg.js +0 -25
- package/dist/rooms/protocol/ServerMsg.js.map +0 -1
- package/dist/rooms/protocol/VersionHistory.d.ts +0 -9
- package/dist/rooms/protocol/VersionHistory.js +0 -3
- package/dist/rooms/protocol/VersionHistory.js.map +0 -1
- package/dist/rooms/rooms.controller.d.ts +0 -64
- package/dist/rooms/rooms.controller.js +0 -401
- package/dist/rooms/rooms.controller.js.map +0 -1
- package/dist/rooms/rooms.gateway.d.ts +0 -30
- package/dist/rooms/rooms.gateway.js +0 -188
- package/dist/rooms/rooms.gateway.js.map +0 -1
- package/dist/rooms/rooms.guard.d.ts +0 -9
- package/dist/rooms/rooms.guard.js +0 -48
- package/dist/rooms/rooms.guard.js.map +0 -1
- package/dist/rooms/rooms.module.d.ts +0 -2
- package/dist/rooms/rooms.module.js +0 -36
- package/dist/rooms/rooms.module.js.map +0 -1
- package/dist/rooms/rooms.service.d.ts +0 -51
- package/dist/rooms/rooms.service.js +0 -225
- package/dist/rooms/rooms.service.js.map +0 -1
- package/views/ag-grid/README.md +0 -15
- package/views/ag-grid/ag-grid.hbs +0 -1099
- package/views/devextreme/datagrid.hbs +0 -240
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.FilesService = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const AWS = require("aws-sdk");
|
|
15
|
-
const fs = require("fs-extra");
|
|
16
|
-
const uuid_1 = require("uuid");
|
|
17
|
-
const path = require("path");
|
|
18
|
-
const core_1 = require("@builder6/core");
|
|
19
|
-
const mime = require("mime-types");
|
|
20
|
-
const config_1 = require("@nestjs/config");
|
|
21
|
-
let FilesService = class FilesService {
|
|
22
|
-
constructor(configService, mongodbService) {
|
|
23
|
-
this.configService = configService;
|
|
24
|
-
this.mongodbService = mongodbService;
|
|
25
|
-
this.rootUrl = configService.get('root.url');
|
|
26
|
-
this.storageDir = configService.get('storage.dir') || './steedos-storage';
|
|
27
|
-
this.cfsStore = configService.get('cfs.store') || 'local';
|
|
28
|
-
if (this.cfsStore === 'S3') {
|
|
29
|
-
this.s3 = new AWS.S3({
|
|
30
|
-
endpoint: configService.get('cfs.aws.s3.endpoint'),
|
|
31
|
-
accessKeyId: configService.get('cfs.aws.s3.access.key.id'),
|
|
32
|
-
secretAccessKey: configService.get('cfs.aws.s3.secret.access.key'),
|
|
33
|
-
region: configService.get('cfs.aws.s3.region'),
|
|
34
|
-
signatureVersion: 'v4',
|
|
35
|
-
});
|
|
36
|
-
this.s3Bucket = configService.get('cfs.aws.s3.bucket');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
getCollectionFolderName(collectionName) {
|
|
40
|
-
let collectionFolderName = collectionName;
|
|
41
|
-
const collectionNameParts = collectionName.split('.');
|
|
42
|
-
if (collectionNameParts.length === 3 &&
|
|
43
|
-
collectionNameParts[0] === 'cfs' &&
|
|
44
|
-
collectionNameParts[2] === 'filerecord') {
|
|
45
|
-
collectionFolderName = collectionNameParts[1];
|
|
46
|
-
}
|
|
47
|
-
return collectionFolderName;
|
|
48
|
-
}
|
|
49
|
-
async uploadFile(collectionName = 'cfs.files.filerecord', file, metadata) {
|
|
50
|
-
const { _id = (0, uuid_1.v4)(), objectName = 'default', userId, spaceId, recordId, parentId, } = metadata;
|
|
51
|
-
const mimeType = file.mimetype ||
|
|
52
|
-
mime.lookup(file.originalname) ||
|
|
53
|
-
'application/octet-stream';
|
|
54
|
-
let fileUrl;
|
|
55
|
-
let relativeKey;
|
|
56
|
-
const currentDate = new Date();
|
|
57
|
-
const year = currentDate.getFullYear();
|
|
58
|
-
const month = (currentDate.getMonth() + 1).toString().padStart(2, '0');
|
|
59
|
-
const uniqueFileName = `${_id}-${file.originalname}`;
|
|
60
|
-
const collectionFolderName = this.getCollectionFolderName(collectionName);
|
|
61
|
-
if (this.cfsStore === 'local') {
|
|
62
|
-
const fileDir = path.join(this.storageDir, 'files', collectionFolderName, objectName, year.toString(), month);
|
|
63
|
-
relativeKey = path.join(objectName, year.toString(), month, uniqueFileName);
|
|
64
|
-
const filePath = path.join(fileDir, uniqueFileName);
|
|
65
|
-
try {
|
|
66
|
-
await fs.ensureDir(fileDir);
|
|
67
|
-
await fs.writeFile(filePath, file.buffer);
|
|
68
|
-
fileUrl = filePath;
|
|
69
|
-
}
|
|
70
|
-
catch (err) {
|
|
71
|
-
throw new Error(`文件保存到本地失败: ${err.message}`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else if (this.cfsStore === 'S3') {
|
|
75
|
-
const collectionFolderName = this.getCollectionFolderName(collectionName);
|
|
76
|
-
relativeKey = `${collectionFolderName}/${objectName}/${year}/${month}/${uniqueFileName}`;
|
|
77
|
-
const params = {
|
|
78
|
-
Bucket: this.s3Bucket,
|
|
79
|
-
Key: relativeKey,
|
|
80
|
-
Body: file.buffer,
|
|
81
|
-
ContentType: mimeType,
|
|
82
|
-
};
|
|
83
|
-
try {
|
|
84
|
-
const data = await this.s3.upload(params).promise();
|
|
85
|
-
fileUrl = data.Location;
|
|
86
|
-
}
|
|
87
|
-
catch (err) {
|
|
88
|
-
throw new Error(`文件上传失败: ${err.message}`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
throw new Error('未知的文件存储类型');
|
|
93
|
-
}
|
|
94
|
-
const savedRecord = await this.mongodbService.insertOne(collectionName, {
|
|
95
|
-
_id,
|
|
96
|
-
link: fileUrl,
|
|
97
|
-
original: {
|
|
98
|
-
type: mimeType,
|
|
99
|
-
size: file.size,
|
|
100
|
-
name: file.originalname,
|
|
101
|
-
},
|
|
102
|
-
metadata: {
|
|
103
|
-
owner: userId,
|
|
104
|
-
space: spaceId,
|
|
105
|
-
record_id: recordId,
|
|
106
|
-
object_name: objectName,
|
|
107
|
-
parent: parentId,
|
|
108
|
-
},
|
|
109
|
-
copies: {
|
|
110
|
-
files: {
|
|
111
|
-
name: file.originalname,
|
|
112
|
-
type: mimeType,
|
|
113
|
-
size: file.size,
|
|
114
|
-
key: relativeKey,
|
|
115
|
-
updatedAt: new Date(),
|
|
116
|
-
createdAt: new Date(),
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
});
|
|
120
|
-
return savedRecord;
|
|
121
|
-
}
|
|
122
|
-
async getFile(collectionName, fileId) {
|
|
123
|
-
const fileRecord = await this.mongodbService.findOne(collectionName, {
|
|
124
|
-
_id: fileId,
|
|
125
|
-
});
|
|
126
|
-
return fileRecord;
|
|
127
|
-
}
|
|
128
|
-
async getPreSignedUrl(collectionName, fileId) {
|
|
129
|
-
const fileRecord = await this.mongodbService.findOne(collectionName, {
|
|
130
|
-
_id: fileId,
|
|
131
|
-
});
|
|
132
|
-
if (!fileRecord) {
|
|
133
|
-
throw new Error('未找到指定的文件记录');
|
|
134
|
-
}
|
|
135
|
-
if (this.cfsStore === 'S3') {
|
|
136
|
-
const key = fileRecord.copies.files.key;
|
|
137
|
-
const params = {
|
|
138
|
-
Bucket: this.s3Bucket,
|
|
139
|
-
Key: key,
|
|
140
|
-
Expires: 60 * 5,
|
|
141
|
-
};
|
|
142
|
-
try {
|
|
143
|
-
return this.s3.getSignedUrl('getObject', params);
|
|
144
|
-
}
|
|
145
|
-
catch (err) {
|
|
146
|
-
throw new Error(`生成 S3 签名 URL 失败: ${err.message}`);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
else if (this.cfsStore === 'local') {
|
|
150
|
-
return (this.rootUrl +
|
|
151
|
-
'/api/v6/files/' +
|
|
152
|
-
collectionName +
|
|
153
|
-
'/' +
|
|
154
|
-
fileId +
|
|
155
|
-
'/' +
|
|
156
|
-
fileRecord.original.name);
|
|
157
|
-
}
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
async downloadFileStream(collectionName, fileId) {
|
|
161
|
-
const fileRecord = await this.mongodbService.findOne(collectionName, {
|
|
162
|
-
_id: fileId,
|
|
163
|
-
});
|
|
164
|
-
if (!fileRecord) {
|
|
165
|
-
throw new Error('未找到指定的文件记录');
|
|
166
|
-
}
|
|
167
|
-
if (this.cfsStore === 'local') {
|
|
168
|
-
try {
|
|
169
|
-
const key = fileRecord.copies.files.key;
|
|
170
|
-
const collectionFolderName = this.getCollectionFolderName(collectionName);
|
|
171
|
-
const fileUrl = path.join(this.storageDir, 'files', collectionFolderName, key);
|
|
172
|
-
if (!(await fs.pathExists(fileUrl))) {
|
|
173
|
-
throw new Error('文件不存在');
|
|
174
|
-
}
|
|
175
|
-
return fs.createReadStream(fileUrl);
|
|
176
|
-
}
|
|
177
|
-
catch (err) {
|
|
178
|
-
throw new Error(`文件下载失败: ${err.message}`);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
else if (this.cfsStore === 'S3') {
|
|
182
|
-
const key = fileRecord.copies.files.key;
|
|
183
|
-
const params = {
|
|
184
|
-
Bucket: this.s3Bucket,
|
|
185
|
-
Key: key,
|
|
186
|
-
Expires: 60 * 60,
|
|
187
|
-
};
|
|
188
|
-
try {
|
|
189
|
-
const s3Object = this.s3.getObject(params);
|
|
190
|
-
return s3Object.createReadStream();
|
|
191
|
-
}
|
|
192
|
-
catch (err) {
|
|
193
|
-
throw new Error(`文件下载失败: ${err.message}`);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
throw new Error('未知的文件存储类型');
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
exports.FilesService = FilesService;
|
|
202
|
-
exports.FilesService = FilesService = __decorate([
|
|
203
|
-
(0, common_1.Injectable)(),
|
|
204
|
-
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
205
|
-
core_1.MongodbService])
|
|
206
|
-
], FilesService);
|
|
207
|
-
//# sourceMappingURL=files.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"files.service.js","sourceRoot":"","sources":["../../src/files/files.service.ts"],"names":[],"mappings":"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"}
|
package/dist/files/index.d.ts
DELETED
package/dist/files/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
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("./files.controller"), exports);
|
|
18
|
-
__exportStar(require("./files.module"), exports);
|
|
19
|
-
__exportStar(require("./files.service"), exports);
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
package/dist/files/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/files/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,iDAA+B;AAC/B,kDAAgC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
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 {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"augmentation.js","sourceRoot":"","sources":["../../../src/rooms/globals/augmentation.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateToString.js","sourceRoot":"","sources":["../../../src/rooms/lib/DateToString.ts"],"names":[],"mappings":""}
|
package/dist/rooms/lib/Json.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
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;
|
package/dist/rooms/lib/Json.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
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 {};
|
package/dist/rooms/lib/utils.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/rooms/lib/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
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 {};
|
|
@@ -1,49 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Authentication.js","sourceRoot":"","sources":["../../../src/rooms/protocol/Authentication.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseActivitiesData.js","sourceRoot":"","sources":["../../../src/rooms/protocol/BaseActivitiesData.ts"],"names":[],"mappings":""}
|