@liveblocks/core 3.1.1 → 3.1.2
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 +66 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -13
- package/dist/index.d.ts +17 -13
- package/dist/index.js +65 -28
- 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.1.
|
|
9
|
+
var PKG_VERSION = "3.1.2";
|
|
10
10
|
var PKG_FORMAT = "cjs";
|
|
11
11
|
|
|
12
12
|
// src/dupe-detection.ts
|
|
@@ -1087,6 +1087,9 @@ function quote(input) {
|
|
|
1087
1087
|
}
|
|
1088
1088
|
|
|
1089
1089
|
// src/lib/url.ts
|
|
1090
|
+
var PLACEHOLDER_BASE_URL = "https://localhost:9999";
|
|
1091
|
+
var ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
|
|
1092
|
+
var TRAILING_SLASH_URL_REGEX = /\/(?:(?:\?|#).*)?$/;
|
|
1090
1093
|
function toURLSearchParams(params) {
|
|
1091
1094
|
const result = new URLSearchParams();
|
|
1092
1095
|
for (const [key, value] of Object.entries(params)) {
|
|
@@ -1108,6 +1111,53 @@ function url(strings, ...values2) {
|
|
|
1108
1111
|
(result, str, i) => result + encodeURIComponent(_nullishCoalesce(values2[i - 1], () => ( ""))) + str
|
|
1109
1112
|
);
|
|
1110
1113
|
}
|
|
1114
|
+
function sanitizeUrl(url2) {
|
|
1115
|
+
if (url2.startsWith("www.")) {
|
|
1116
|
+
url2 = "https://" + url2;
|
|
1117
|
+
}
|
|
1118
|
+
try {
|
|
1119
|
+
const isAbsolute = ABSOLUTE_URL_REGEX.test(url2);
|
|
1120
|
+
const urlObject = new URL(
|
|
1121
|
+
url2,
|
|
1122
|
+
isAbsolute ? void 0 : PLACEHOLDER_BASE_URL
|
|
1123
|
+
);
|
|
1124
|
+
if (urlObject.protocol !== "http:" && urlObject.protocol !== "https:") {
|
|
1125
|
+
return null;
|
|
1126
|
+
}
|
|
1127
|
+
const hasTrailingSlash = TRAILING_SLASH_URL_REGEX.test(url2);
|
|
1128
|
+
const sanitizedUrl = (
|
|
1129
|
+
// 1. Origin, only for absolute URLs
|
|
1130
|
+
(isAbsolute ? urlObject.origin : "") + // 2. Pathname, with a trailing slash if the original URL had one
|
|
1131
|
+
(urlObject.pathname === "/" ? (
|
|
1132
|
+
// 2.a. Domain-only URLs, they always have their pathname set to "/"
|
|
1133
|
+
hasTrailingSlash ? "/" : ""
|
|
1134
|
+
) : (
|
|
1135
|
+
// 2.b. URLs with a path
|
|
1136
|
+
hasTrailingSlash && !urlObject.pathname.endsWith("/") ? urlObject.pathname + "/" : urlObject.pathname
|
|
1137
|
+
)) + // 3. Search params
|
|
1138
|
+
urlObject.search + // 4. Hash
|
|
1139
|
+
urlObject.hash
|
|
1140
|
+
);
|
|
1141
|
+
return sanitizedUrl !== "" ? sanitizedUrl : null;
|
|
1142
|
+
} catch (e4) {
|
|
1143
|
+
return null;
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
function generateUrl(url2, params, hash) {
|
|
1147
|
+
const isAbsolute = ABSOLUTE_URL_REGEX.test(url2);
|
|
1148
|
+
const urlObject = new URL(url2, isAbsolute ? void 0 : PLACEHOLDER_BASE_URL);
|
|
1149
|
+
if (params !== void 0) {
|
|
1150
|
+
for (const [param, value] of Object.entries(params)) {
|
|
1151
|
+
if (value) {
|
|
1152
|
+
urlObject.searchParams.set(param, String(value));
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1156
|
+
if (!urlObject.hash && hash !== void 0) {
|
|
1157
|
+
urlObject.hash = `#${hash}`;
|
|
1158
|
+
}
|
|
1159
|
+
return isAbsolute ? urlObject.href : urlObject.href.replace(PLACEHOLDER_BASE_URL, "");
|
|
1160
|
+
}
|
|
1111
1161
|
|
|
1112
1162
|
// src/api-client.ts
|
|
1113
1163
|
function createApiClient({
|
|
@@ -2099,7 +2149,7 @@ var HttpClient = class {
|
|
|
2099
2149
|
let body;
|
|
2100
2150
|
try {
|
|
2101
2151
|
body = await response.json();
|
|
2102
|
-
} catch (
|
|
2152
|
+
} catch (e5) {
|
|
2103
2153
|
body = {};
|
|
2104
2154
|
}
|
|
2105
2155
|
return body;
|
|
@@ -3228,7 +3278,7 @@ var ManagedSocket = class {
|
|
|
3228
3278
|
getStatus() {
|
|
3229
3279
|
try {
|
|
3230
3280
|
return toNewConnectionStatus(this.#machine);
|
|
3231
|
-
} catch (
|
|
3281
|
+
} catch (e6) {
|
|
3232
3282
|
return "initial";
|
|
3233
3283
|
}
|
|
3234
3284
|
}
|
|
@@ -9973,14 +10023,6 @@ var MarkdownSafeString = class {
|
|
|
9973
10023
|
function markdown(strings, ...values2) {
|
|
9974
10024
|
return new MarkdownSafeString(strings, values2);
|
|
9975
10025
|
}
|
|
9976
|
-
function toAbsoluteUrl(url2) {
|
|
9977
|
-
if (url2.startsWith("http://") || url2.startsWith("https://")) {
|
|
9978
|
-
return url2;
|
|
9979
|
-
} else if (url2.startsWith("www.")) {
|
|
9980
|
-
return "https://" + url2;
|
|
9981
|
-
}
|
|
9982
|
-
return;
|
|
9983
|
-
}
|
|
9984
10026
|
var stringifyCommentBodyPlainElements = {
|
|
9985
10027
|
paragraph: ({ children }) => children,
|
|
9986
10028
|
text: ({ element }) => element.text,
|
|
@@ -10076,11 +10118,22 @@ async function stringifyCommentBody(body, options) {
|
|
|
10076
10118
|
] : [];
|
|
10077
10119
|
}
|
|
10078
10120
|
if (isCommentBodyLink(inline)) {
|
|
10121
|
+
const href = sanitizeUrl(inline.url);
|
|
10122
|
+
if (href === null) {
|
|
10123
|
+
return [
|
|
10124
|
+
elements.text(
|
|
10125
|
+
{
|
|
10126
|
+
element: { text: _nullishCoalesce(inline.text, () => ( inline.url)) }
|
|
10127
|
+
},
|
|
10128
|
+
inlineIndex
|
|
10129
|
+
)
|
|
10130
|
+
];
|
|
10131
|
+
}
|
|
10079
10132
|
return [
|
|
10080
10133
|
elements.link(
|
|
10081
10134
|
{
|
|
10082
10135
|
element: inline,
|
|
10083
|
-
href
|
|
10136
|
+
href
|
|
10084
10137
|
},
|
|
10085
10138
|
inlineIndex
|
|
10086
10139
|
)
|
|
@@ -10105,22 +10158,6 @@ async function stringifyCommentBody(body, options) {
|
|
|
10105
10158
|
return blocks.join(separator);
|
|
10106
10159
|
}
|
|
10107
10160
|
|
|
10108
|
-
// src/comments/comment-url.ts
|
|
10109
|
-
var PLACEHOLDER_BASE_URL = "https://localhost:9999";
|
|
10110
|
-
var ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
|
|
10111
|
-
function generateCommentUrl({
|
|
10112
|
-
roomUrl,
|
|
10113
|
-
commentId
|
|
10114
|
-
}) {
|
|
10115
|
-
const isAbsolute = ABSOLUTE_URL_REGEX.test(roomUrl);
|
|
10116
|
-
const urlObject = new URL(
|
|
10117
|
-
roomUrl,
|
|
10118
|
-
isAbsolute ? void 0 : PLACEHOLDER_BASE_URL
|
|
10119
|
-
);
|
|
10120
|
-
urlObject.hash = `#${commentId}`;
|
|
10121
|
-
return isAbsolute ? urlObject.href : urlObject.href.replace(PLACEHOLDER_BASE_URL, "");
|
|
10122
|
-
}
|
|
10123
|
-
|
|
10124
10161
|
// src/crdts/utils.ts
|
|
10125
10162
|
function toPlainLson(lson) {
|
|
10126
10163
|
if (lson instanceof LiveObject) {
|
|
@@ -10715,5 +10752,5 @@ detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
|
|
|
10715
10752
|
|
|
10716
10753
|
|
|
10717
10754
|
|
|
10718
|
-
exports.ClientMsgCode = ClientMsgCode; exports.CrdtType = CrdtType; exports.DefaultMap = DefaultMap; exports.Deque = Deque; exports.DerivedSignal = DerivedSignal; exports.HttpError = HttpError; exports.LiveList = LiveList; exports.LiveMap = LiveMap; exports.LiveObject = LiveObject; exports.LiveblocksError = LiveblocksError; 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.ackOp = ackOp; 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.compactObject = compactObject; exports.console = fancy_console_exports; exports.convertToCommentData = convertToCommentData; exports.convertToCommentUserReaction = convertToCommentUserReaction; 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.defineAiTool = defineAiTool; exports.deprecate = deprecate; exports.deprecateIf = deprecateIf; exports.detectDupes = detectDupes; exports.entries = entries; exports.errorIf = errorIf; exports.freeze = freeze; exports.
|
|
10755
|
+
exports.ClientMsgCode = ClientMsgCode; exports.CrdtType = CrdtType; exports.DefaultMap = DefaultMap; exports.Deque = Deque; exports.DerivedSignal = DerivedSignal; exports.HttpError = HttpError; exports.LiveList = LiveList; exports.LiveMap = LiveMap; exports.LiveObject = LiveObject; exports.LiveblocksError = LiveblocksError; 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.ackOp = ackOp; 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.compactObject = compactObject; exports.console = fancy_console_exports; exports.convertToCommentData = convertToCommentData; exports.convertToCommentUserReaction = convertToCommentUserReaction; 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.defineAiTool = defineAiTool; exports.deprecate = deprecate; exports.deprecateIf = deprecateIf; exports.detectDupes = detectDupes; exports.entries = entries; exports.errorIf = errorIf; exports.freeze = freeze; exports.generateUrl = generateUrl; exports.getMentionsFromCommentBody = getMentionsFromCommentBody; exports.getSubscriptionKey = getSubscriptionKey; exports.html = html; exports.htmlSafe = htmlSafe; exports.isChildCrdt = isChildCrdt; exports.isCommentBodyLink = isCommentBodyLink; exports.isCommentBodyMention = isCommentBodyMention; exports.isCommentBodyText = isCommentBodyText; exports.isJsonArray = isJsonArray; exports.isJsonObject = isJsonObject; exports.isJsonScalar = isJsonScalar; exports.isLiveNode = isLiveNode; exports.isNotificationChannelEnabled = isNotificationChannelEnabled; exports.isPlainObject = isPlainObject; exports.isRootCrdt = isRootCrdt; exports.isStartsWithOperator = isStartsWithOperator; exports.kInternal = kInternal; exports.keys = keys; exports.legacy_patchImmutableObject = legacy_patchImmutableObject; exports.lsonToJson = lsonToJson; exports.makeAbortController = makeAbortController; exports.makeEventSource = makeEventSource; exports.makePoller = makePoller; exports.makePosition = makePosition; exports.mapValues = mapValues; exports.memoizeOnSuccess = memoizeOnSuccess; exports.nanoid = nanoid; exports.nn = nn; exports.objectToQuery = objectToQuery; exports.patchLiveObjectKey = patchLiveObjectKey; exports.patchNotificationSettings = patchNotificationSettings; exports.raise = raise; exports.resolveUsersInCommentBody = resolveUsersInCommentBody; 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.withTimeout = withTimeout;
|
|
10719
10756
|
//# sourceMappingURL=index.cjs.map
|