@liveblocks/core 3.20.0-perm2 → 3.20.0-perm3
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/index.cjs +38 -26
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +38 -26
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6,7 +6,7 @@ var __export = (target, all) => {
|
|
|
6
6
|
|
|
7
7
|
// src/version.ts
|
|
8
8
|
var PKG_NAME = "@liveblocks/core";
|
|
9
|
-
var PKG_VERSION = "3.20.0-
|
|
9
|
+
var PKG_VERSION = "3.20.0-perm3";
|
|
10
10
|
var PKG_FORMAT = "cjs";
|
|
11
11
|
|
|
12
12
|
// src/dupe-detection.ts
|
|
@@ -5311,29 +5311,16 @@ function hasPermissionCapabilityAccess(capabilities, resource, requiredAccess) {
|
|
|
5311
5311
|
|
|
5312
5312
|
// src/permissions.ts
|
|
5313
5313
|
var VALID_PERMISSIONS = new Set(Object.values(Permission));
|
|
5314
|
-
var DEFAULT_PERMISSIONS = [
|
|
5315
|
-
Permission.RoomRead,
|
|
5316
|
-
Permission.RoomWrite
|
|
5317
|
-
];
|
|
5318
5314
|
var ROOM_PERMISSION_OBJECT_KEYS = /* @__PURE__ */ new Set([
|
|
5319
5315
|
"default",
|
|
5320
5316
|
...ROOM_PERMISSION_RESOURCES
|
|
5321
5317
|
]);
|
|
5322
|
-
|
|
5323
|
-
presence: Object.values(RESOURCE_PERMISSIONS.presence).flat(),
|
|
5324
|
-
storage: Object.values(RESOURCE_PERMISSIONS.storage).flat(),
|
|
5325
|
-
comments: Object.values(RESOURCE_PERMISSIONS.comments).flat(),
|
|
5326
|
-
feeds: Object.values(RESOURCE_PERMISSIONS.feeds).flat()
|
|
5327
|
-
};
|
|
5328
|
-
var RESOURCE_SPECIFIC_PERMISSIONS = ROOM_PERMISSION_RESOURCES.flatMap(
|
|
5329
|
-
(resource) => RESOURCE_SPECIFIC_PERMISSIONS_BY_RESOURCE[resource]
|
|
5330
|
-
);
|
|
5331
|
-
function permissionForAccessLevel(resource, access) {
|
|
5318
|
+
function permissionForAccessLevel(resource, access, field = resource) {
|
|
5332
5319
|
const levels = RESOURCE_PERMISSIONS[resource];
|
|
5333
5320
|
const permissions = levels[access];
|
|
5334
5321
|
if (permissions === void 0 || permissions.length === 0) {
|
|
5335
5322
|
throw new Error(
|
|
5336
|
-
`Invalid permission level for ${
|
|
5323
|
+
`Invalid permission level for ${field}: ${_nullishCoalesce(JSON.stringify(access), () => ( String(access)))}`
|
|
5337
5324
|
);
|
|
5338
5325
|
}
|
|
5339
5326
|
return permissions[0];
|
|
@@ -5393,7 +5380,11 @@ function normalizeRoomPermissionObject(objectInput) {
|
|
|
5393
5380
|
const permissions = [];
|
|
5394
5381
|
if (objectInput.default !== void 0) {
|
|
5395
5382
|
permissions.push(
|
|
5396
|
-
permissionForAccessLevel(
|
|
5383
|
+
permissionForAccessLevel(
|
|
5384
|
+
DEFAULT_PERMISSION_RESOURCE,
|
|
5385
|
+
objectInput.default,
|
|
5386
|
+
"default"
|
|
5387
|
+
)
|
|
5397
5388
|
);
|
|
5398
5389
|
}
|
|
5399
5390
|
for (const resource of ROOM_PERMISSION_RESOURCES) {
|
|
@@ -5429,17 +5420,37 @@ function normalizeRoomAccessesUpdateInput(input) {
|
|
|
5429
5420
|
])
|
|
5430
5421
|
);
|
|
5431
5422
|
}
|
|
5432
|
-
function
|
|
5433
|
-
|
|
5434
|
-
|
|
5423
|
+
function mergePermissionCapabilities(sources) {
|
|
5424
|
+
return {
|
|
5425
|
+
creation: strongestCapabilityAccess(sources, "creation"),
|
|
5426
|
+
presence: strongestCapabilityAccess(sources, "presence"),
|
|
5427
|
+
storage: strongestCapabilityAccess(sources, "storage"),
|
|
5428
|
+
comments: strongestCapabilityAccess(sources, "comments"),
|
|
5429
|
+
feeds: strongestCapabilityAccess(sources, "feeds"),
|
|
5430
|
+
personal: "write"
|
|
5431
|
+
};
|
|
5432
|
+
}
|
|
5433
|
+
function permissionCapabilitiesToScopes(capabilities) {
|
|
5434
|
+
const scopes = [];
|
|
5435
|
+
const baseAccess = capabilities.creation;
|
|
5436
|
+
if (baseAccess !== "none") {
|
|
5437
|
+
scopes.push(
|
|
5438
|
+
permissionForAccessLevel(DEFAULT_PERMISSION_RESOURCE, baseAccess)
|
|
5439
|
+
);
|
|
5435
5440
|
}
|
|
5436
|
-
for (const
|
|
5437
|
-
const
|
|
5438
|
-
if (
|
|
5439
|
-
|
|
5441
|
+
for (const capability of ROOM_PERMISSION_RESOURCES) {
|
|
5442
|
+
const access = capabilities[capability];
|
|
5443
|
+
if (access !== baseAccess) {
|
|
5444
|
+
scopes.push(permissionForAccessLevel(capability, access));
|
|
5440
5445
|
}
|
|
5441
5446
|
}
|
|
5442
|
-
return
|
|
5447
|
+
return scopes;
|
|
5448
|
+
}
|
|
5449
|
+
function strongestCapabilityAccess(sources, resource) {
|
|
5450
|
+
return sources.reduce(
|
|
5451
|
+
(strongest, source) => strongestAccess(strongest, source[resource]),
|
|
5452
|
+
"none"
|
|
5453
|
+
);
|
|
5443
5454
|
}
|
|
5444
5455
|
function strongestAccess(left, right) {
|
|
5445
5456
|
return ACCESS_RANKS[right] > ACCESS_RANKS[left] ? right : left;
|
|
@@ -12730,5 +12741,6 @@ detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
|
|
|
12730
12741
|
|
|
12731
12742
|
|
|
12732
12743
|
|
|
12733
|
-
|
|
12744
|
+
|
|
12745
|
+
exports.ClientMsgCode = ClientMsgCode; exports.CrdtType = CrdtType; exports.DefaultMap = DefaultMap; exports.Deque = Deque; exports.DerivedSignal = DerivedSignal; exports.FeedRequestErrorCode = FeedRequestErrorCode; exports.HttpError = HttpError; exports.LiveList = LiveList; exports.LiveMap = LiveMap; exports.LiveObject = LiveObject; exports.LiveblocksError = LiveblocksError; exports.MENTION_CHARACTER = MENTION_CHARACTER; exports.MutableSignal = MutableSignal; exports.OpCode = OpCode; exports.Permission = Permission; exports.Promise_withResolvers = Promise_withResolvers; exports.ServerMsgCode = ServerMsgCode; exports.Signal = Signal; exports.SortedList = SortedList; exports.TextEditorType = TextEditorType; exports.WebsocketCloseCodes = WebsocketCloseCodes; exports.asPos = asPos; exports.assert = assert; exports.assertNever = assertNever; exports.autoRetry = autoRetry; exports.b64decode = b64decode; exports.batch = batch; exports.checkBounds = checkBounds; exports.chunk = chunk; exports.cloneLson = cloneLson; exports.compactNodesToNodeStream = compactNodesToNodeStream; exports.compactObject = compactObject; exports.console = fancy_console_exports; exports.convertToCommentData = convertToCommentData; exports.convertToCommentUserReaction = convertToCommentUserReaction; exports.convertToGroupData = convertToGroupData; exports.convertToInboxNotificationData = convertToInboxNotificationData; exports.convertToSubscriptionData = convertToSubscriptionData; exports.convertToThreadData = convertToThreadData; exports.convertToUserSubscriptionData = convertToUserSubscriptionData; exports.createClient = createClient; exports.createCommentAttachmentId = createCommentAttachmentId; exports.createCommentId = createCommentId; exports.createInboxNotificationId = createInboxNotificationId; exports.createManagedPool = createManagedPool; exports.createNotificationSettings = createNotificationSettings; exports.createThreadId = createThreadId; exports.deepLiveify = deepLiveify; exports.defineAiTool = defineAiTool; exports.deprecate = deprecate; exports.deprecateIf = deprecateIf; exports.detectDupes = detectDupes; exports.entries = entries; exports.errorIf = errorIf; exports.findLastIndex = findLastIndex; exports.freeze = freeze; exports.generateUrl = generateUrl; exports.getMentionsFromCommentBody = getMentionsFromCommentBody; exports.getSubscriptionKey = getSubscriptionKey; exports.hasPermissionCapability = hasPermissionCapability; exports.hasPermissionCapabilityAccess = hasPermissionCapabilityAccess; exports.html = html; exports.htmlSafe = htmlSafe; exports.isCommentBodyLink = isCommentBodyLink; exports.isCommentBodyMention = isCommentBodyMention; exports.isCommentBodyText = isCommentBodyText; exports.isJsonArray = isJsonArray; exports.isJsonObject = isJsonObject; exports.isJsonScalar = isJsonScalar; exports.isListStorageNode = isListStorageNode; exports.isLiveNode = isLiveNode; exports.isMapStorageNode = isMapStorageNode; exports.isNotificationChannelEnabled = isNotificationChannelEnabled; exports.isNumberOperator = isNumberOperator; exports.isObjectStorageNode = isObjectStorageNode; exports.isPlainObject = isPlainObject; exports.isRegisterStorageNode = isRegisterStorageNode; exports.isRootStorageNode = isRootStorageNode; exports.isStartsWithOperator = isStartsWithOperator; exports.isUrl = isUrl; exports.kInternal = kInternal; exports.keys = keys; exports.makeAbortController = makeAbortController; exports.makeEventSource = makeEventSource; exports.makePoller = makePoller; exports.makePosition = makePosition; exports.mapValues = mapValues; exports.memoizeOnSuccess = memoizeOnSuccess; exports.mergePermissionCapabilities = mergePermissionCapabilities; exports.nanoid = nanoid; exports.nn = nn; exports.nodeStreamToCompactNodes = nodeStreamToCompactNodes; exports.normalizeRoomAccessesInput = normalizeRoomAccessesInput; exports.normalizeRoomAccessesUpdateInput = normalizeRoomAccessesUpdateInput; exports.normalizeRoomPermissionInput = normalizeRoomPermissionInput; exports.objectToQuery = objectToQuery; exports.patchNotificationSettings = patchNotificationSettings; exports.permissionCapabilitiesFromScopes = permissionCapabilitiesFromScopes; exports.permissionCapabilitiesToScopes = permissionCapabilitiesToScopes; exports.raise = raise; exports.resolveMentionsInCommentBody = resolveMentionsInCommentBody; exports.sanitizeUrl = sanitizeUrl; exports.shallow = shallow; exports.shallow2 = shallow2; exports.stableStringify = stableStringify; exports.stringifyCommentBody = stringifyCommentBody; exports.throwUsageError = throwUsageError; exports.toPlainLson = toPlainLson; exports.tryParseJson = tryParseJson; exports.url = url; exports.urljoin = urljoin; exports.wait = wait; exports.warnOnce = warnOnce; exports.warnOnceIf = warnOnceIf; exports.withTimeout = withTimeout;
|
|
12734
12746
|
//# sourceMappingURL=index.cjs.map
|