@atproto/bsky 0.0.233 → 0.0.234
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/CHANGELOG.md +11 -0
- package/dist/api/app/bsky/embed/getEmbedExternalView.js +5 -3
- package/dist/api/app/bsky/embed/getEmbedExternalView.js.map +1 -1
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js +48 -5
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/lexicons/app/bsky/embed/external.defs.d.ts +5 -0
- package/dist/lexicons/app/bsky/embed/external.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/embed/external.defs.js +4 -0
- package/dist/lexicons/app/bsky/embed/external.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.js +1 -1
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts +8 -0
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.js +2 -0
- package/dist/lexicons/chat/bsky/convo/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.d.ts +3 -3
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.js +2 -2
- package/dist/lexicons/chat/bsky/convo/listConvoRequests.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts +26 -0
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.js +23 -0
- package/dist/lexicons/chat/bsky/group/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.js +22 -0
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.js +6 -0
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.js.map +1 -0
- package/dist/lexicons/chat/bsky/group.d.ts +1 -1
- package/dist/lexicons/chat/bsky/group.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group.js +1 -1
- package/dist/lexicons/chat/bsky/group.js.map +1 -1
- package/dist/logger.d.ts +1 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +1 -0
- package/dist/logger.js.map +1 -1
- package/dist/util/standard-site.d.ts +12 -5
- package/dist/util/standard-site.d.ts.map +1 -1
- package/dist/util/standard-site.js +30 -9
- package/dist/util/standard-site.js.map +1 -1
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +13 -0
- package/dist/views/index.js.map +1 -1
- package/package.json +3 -3
- package/src/api/app/bsky/embed/getEmbedExternalView.ts +5 -3
- package/src/hydration/hydrator.ts +53 -5
- package/src/logger.ts +2 -0
- package/src/util/standard-site.test.ts +109 -24
- package/src/util/standard-site.ts +30 -11
- package/src/views/index.ts +19 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreview.d.ts +0 -3
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreview.d.ts.map +0 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreview.defs.d.ts +0 -22
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreview.defs.d.ts.map +0 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreview.defs.js +0 -18
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreview.defs.js.map +0 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreview.js +0 -6
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreview.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/group/defs.defs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,MAAM,KAAK,GAAG,sBAAsB,CAAA;AAEpC,OAAO,EAAE,KAAK,EAAE,CAAA;AAMhB,MAAM,iBAAiB,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,EAE5C,CAAA;AAEJ,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAM5B,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,EAEnC,CAAA;AAEJ,OAAO,EAAE,QAAQ,EAAE,CAAA;AAanB,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAC9C,KAAK,EACL,cAAc;AACd,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE;IAC9B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAChC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAQ,CACjC;IACD,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE;IAC1C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAQ,CAAC;IAChE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;CAC1D,CAAC,CACH,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"defs.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/group/defs.defs.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from '@atproto/lex'\nimport * as ActorDefs from '../actor/defs.defs.js'\nimport * as ConvoDefs from '../convo/defs.defs.js'\n\nconst $nsid = 'chat.bsky.group.defs'\n\nexport { $nsid }\n\ntype LinkEnabledStatus = 'enabled' | 'disabled' | l.UnknownString\n\nexport type { LinkEnabledStatus }\n\nconst linkEnabledStatus = /*#__PURE__*/ l.string<{\n knownValues: ['enabled', 'disabled']\n}>()\n\nexport { linkEnabledStatus }\n\ntype JoinRule = 'anyone' | 'followedByOwner' | l.UnknownString\n\nexport type { JoinRule }\n\nconst joinRule = /*#__PURE__*/ l.string<{\n knownValues: ['anyone', 'followedByOwner']\n}>()\n\nexport { joinRule }\n\ntype JoinLinkView = {\n $type?: 'chat.bsky.group.defs#joinLinkView'\n code: string\n enabledStatus: LinkEnabledStatus\n requireApproval: boolean\n joinRule: JoinRule\n createdAt: l.DatetimeString\n}\n\nexport type { JoinLinkView }\n\nconst joinLinkView = /*#__PURE__*/ l.typedObject<JoinLinkView>(\n $nsid,\n 'joinLinkView',\n /*#__PURE__*/ l.object({\n code: /*#__PURE__*/ l.string(),\n enabledStatus: /*#__PURE__*/ l.ref<LinkEnabledStatus>(\n (() => linkEnabledStatus) as any,\n ),\n requireApproval: /*#__PURE__*/ l.boolean(),\n joinRule: /*#__PURE__*/ l.ref<JoinRule>((() => joinRule) as any),\n createdAt: /*#__PURE__*/ l.string({ format: 'datetime' }),\n }),\n)\n\nexport { joinLinkView }\n\ntype JoinLinkPreviewView = {\n $type?: 'chat.bsky.group.defs#joinLinkPreviewView'\n code: string\n name: string\n owner: ActorDefs.ProfileViewBasic\n memberCount: number\n memberLimit: number\n requireApproval: boolean\n joinRule: JoinRule\n enabledStatus: LinkEnabledStatus\n\n /**\n * Present only if the request is authenticated and the user is a member of the group.\n */\n convo?: ConvoDefs.ConvoView\n viewer?: JoinLinkViewerState\n}\n\nexport type { JoinLinkPreviewView }\n\nconst joinLinkPreviewView = /*#__PURE__*/ l.typedObject<JoinLinkPreviewView>(\n $nsid,\n 'joinLinkPreviewView',\n /*#__PURE__*/ l.object({\n code: /*#__PURE__*/ l.string(),\n name: /*#__PURE__*/ l.string(),\n owner: /*#__PURE__*/ l.ref<ActorDefs.ProfileViewBasic>(\n (() => ActorDefs.profileViewBasic) as any,\n ),\n memberCount: /*#__PURE__*/ l.integer(),\n memberLimit: /*#__PURE__*/ l.integer(),\n requireApproval: /*#__PURE__*/ l.boolean(),\n joinRule: /*#__PURE__*/ l.ref<JoinRule>((() => joinRule) as any),\n enabledStatus: /*#__PURE__*/ l.ref<LinkEnabledStatus>(\n (() => linkEnabledStatus) as any,\n ),\n convo: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.ref<ConvoDefs.ConvoView>(\n (() => ConvoDefs.convoView) as any,\n ),\n ),\n viewer: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.ref<JoinLinkViewerState>(\n (() => joinLinkViewerState) as any,\n ),\n ),\n }),\n)\n\nexport { joinLinkPreviewView }\n\ntype JoinLinkViewerState = {\n $type?: 'chat.bsky.group.defs#joinLinkViewerState'\n requestedAt?: l.DatetimeString\n}\n\nexport type { JoinLinkViewerState }\n\nconst joinLinkViewerState = /*#__PURE__*/ l.typedObject<JoinLinkViewerState>(\n $nsid,\n 'joinLinkViewerState',\n /*#__PURE__*/ l.object({\n requestedAt: /*#__PURE__*/ l.optional(\n /*#__PURE__*/ l.string({ format: 'datetime' }),\n ),\n }),\n)\n\nexport { joinLinkViewerState }\n\ntype JoinRequestView = {\n $type?: 'chat.bsky.group.defs#joinRequestView'\n convoId: string\n requestedBy: ActorDefs.ProfileViewBasic\n requestedAt: l.DatetimeString\n}\n\nexport type { JoinRequestView }\n\nconst joinRequestView = /*#__PURE__*/ l.typedObject<JoinRequestView>(\n $nsid,\n 'joinRequestView',\n /*#__PURE__*/ l.object({\n convoId: /*#__PURE__*/ l.string(),\n requestedBy: /*#__PURE__*/ l.ref<ActorDefs.ProfileViewBasic>(\n (() => ActorDefs.profileViewBasic) as any,\n ),\n requestedAt: /*#__PURE__*/ l.string({ format: 'datetime' }),\n }),\n)\n\nexport { joinRequestView }\n\n/** A join request from the perspective of the requester, including enough group context to render the request in a list (e.g. group name, owner, member count). */\ntype JoinRequestConvoView = {\n $type?: 'chat.bsky.group.defs#joinRequestConvoView'\n convoId: string\n name: string\n owner: ActorDefs.ProfileViewBasic\n memberCount: number\n memberLimit: number\n requestedAt: l.DatetimeString\n}\n\nexport type { JoinRequestConvoView }\n\n/** A join request from the perspective of the requester, including enough group context to render the request in a list (e.g. group name, owner, member count). */\nconst joinRequestConvoView = /*#__PURE__*/ l.typedObject<JoinRequestConvoView>(\n $nsid,\n 'joinRequestConvoView',\n /*#__PURE__*/ l.object({\n convoId: /*#__PURE__*/ l.string(),\n name: /*#__PURE__*/ l.string(),\n owner: /*#__PURE__*/ l.ref<ActorDefs.ProfileViewBasic>(\n (() => ActorDefs.profileViewBasic) as any,\n ),\n memberCount: /*#__PURE__*/ l.integer(),\n memberLimit: /*#__PURE__*/ l.integer(),\n requestedAt: /*#__PURE__*/ l.string({ format: 'datetime' }),\n }),\n)\n\nexport { joinRequestConvoView }\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getJoinLinkPreviews.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/group/getJoinLinkPreviews.ts"],"names":[],"mappings":"AAIA,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,+BAA+B,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { l } from '@atproto/lex';
|
|
2
|
+
import * as GroupDefs from './defs.defs.js';
|
|
3
|
+
declare const $nsid = "chat.bsky.group.getJoinLinkPreviews";
|
|
4
|
+
export { $nsid };
|
|
5
|
+
export declare const $params: l.ParamsSchema<{
|
|
6
|
+
readonly codes: l.ArraySchema<l.StringSchema<{}>>;
|
|
7
|
+
}>;
|
|
8
|
+
export type $Params = l.InferOutput<typeof $params>;
|
|
9
|
+
export declare const $output: l.Payload<"application/json", l.ObjectSchema<{
|
|
10
|
+
joinLinkPreviews: l.ArraySchema<l.RefSchema<l.Validator<GroupDefs.JoinLinkPreviewView, GroupDefs.JoinLinkPreviewView>>>;
|
|
11
|
+
}>>;
|
|
12
|
+
export type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>;
|
|
13
|
+
export type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<typeof $output, B>;
|
|
14
|
+
/** [NOTE: This is under active development and should be considered unstable while this note is here]. Get public information about groups from join links. Invalid or disabled codes are silently omitted from results. */
|
|
15
|
+
declare const main: l.Query<"chat.bsky.group.getJoinLinkPreviews", l.ParamsSchema<{
|
|
16
|
+
readonly codes: l.ArraySchema<l.StringSchema<{}>>;
|
|
17
|
+
}>, l.Payload<"application/json", l.ObjectSchema<{
|
|
18
|
+
joinLinkPreviews: l.ArraySchema<l.RefSchema<l.Validator<GroupDefs.JoinLinkPreviewView, GroupDefs.JoinLinkPreviewView>>>;
|
|
19
|
+
}>>, undefined>;
|
|
20
|
+
export { main };
|
|
21
|
+
export declare const $lxm = "chat.bsky.group.getJoinLinkPreviews";
|
|
22
|
+
//# sourceMappingURL=getJoinLinkPreviews.defs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getJoinLinkPreviews.defs.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,QAAA,MAAM,KAAK,wCAAwC,CAAA;AAEnD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,eAAO,MAAM,OAAO;;EAKlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,CAAA;AAEnD,eAAO,MAAM,OAAO;;GAMlB,CAAA;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAA;AACzE,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,gBAAgB,CAC5D,OAAO,OAAO,EACd,CAAC,CACF,CAAA;AAED,4NAA4N;AAC5N,QAAA,MAAM,IAAI;;;;eAAiD,CAAA;AAE3D,OAAO,EAAE,IAAI,EAAE,CAAA;AAEf,eAAO,MAAM,IAAI,wCAAQ,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
import { l } from '@atproto/lex';
|
|
5
|
+
import * as GroupDefs from './defs.defs.js';
|
|
6
|
+
const $nsid = 'chat.bsky.group.getJoinLinkPreviews';
|
|
7
|
+
export { $nsid };
|
|
8
|
+
export const $params = /*#__PURE__*/ l.params({
|
|
9
|
+
codes: /*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), {
|
|
10
|
+
minLength: 1,
|
|
11
|
+
maxLength: 50,
|
|
12
|
+
}),
|
|
13
|
+
});
|
|
14
|
+
export const $output = /*#__PURE__*/ l.jsonPayload({
|
|
15
|
+
joinLinkPreviews: /*#__PURE__*/ l.array(
|
|
16
|
+
/*#__PURE__*/ l.ref((() => GroupDefs.joinLinkPreviewView))),
|
|
17
|
+
});
|
|
18
|
+
/** [NOTE: This is under active development and should be considered unstable while this note is here]. Get public information about groups from join links. Invalid or disabled codes are silently omitted from results. */
|
|
19
|
+
const main = /*#__PURE__*/ l.query($nsid, $params, $output);
|
|
20
|
+
export { main };
|
|
21
|
+
export const $lxm = $nsid;
|
|
22
|
+
//# sourceMappingURL=getJoinLinkPreviews.defs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getJoinLinkPreviews.defs.js","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAChC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,MAAM,KAAK,GAAG,qCAAqC,CAAA;AAEnD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;QACrD,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,EAAE;KACd,CAAC;CACH,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IACjD,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK;IACrC,aAAa,CAAC,CAAC,CAAC,GAAG,CACjB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,CAAQ,CAC7C,CACF;CACF,CAAC,CAAA;AAQF,4NAA4N;AAC5N,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAE3D,OAAO,EAAE,IAAI,EAAE,CAAA;AAEf,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAA","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nimport { l } from '@atproto/lex'\nimport * as GroupDefs from './defs.defs.js'\n\nconst $nsid = 'chat.bsky.group.getJoinLinkPreviews'\n\nexport { $nsid }\n\nexport const $params = /*#__PURE__*/ l.params({\n codes: /*#__PURE__*/ l.array(/*#__PURE__*/ l.string(), {\n minLength: 1,\n maxLength: 50,\n }),\n})\n\nexport type $Params = l.InferOutput<typeof $params>\n\nexport const $output = /*#__PURE__*/ l.jsonPayload({\n joinLinkPreviews: /*#__PURE__*/ l.array(\n /*#__PURE__*/ l.ref<GroupDefs.JoinLinkPreviewView>(\n (() => GroupDefs.joinLinkPreviewView) as any,\n ),\n ),\n})\n\nexport type $Output<B = l.BinaryData> = l.InferPayload<typeof $output, B>\nexport type $OutputBody<B = l.BinaryData> = l.InferPayloadBody<\n typeof $output,\n B\n>\n\n/** [NOTE: This is under active development and should be considered unstable while this note is here]. Get public information about groups from join links. Invalid or disabled codes are silently omitted from results. */\nconst main = /*#__PURE__*/ l.query($nsid, $params, $output)\n\nexport { main }\n\nexport const $lxm = $nsid\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getJoinLinkPreviews.js","sourceRoot":"","sources":["../../../../../src/lexicons/chat/bsky/group/getJoinLinkPreviews.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,+BAA+B,CAAA","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * from './getJoinLinkPreviews.defs.js'\nexport { main as default } from './getJoinLinkPreviews.defs.js'\n"]}
|
|
@@ -7,7 +7,7 @@ export * as disableJoinLink from './group/disableJoinLink.js';
|
|
|
7
7
|
export * as editGroup from './group/editGroup.js';
|
|
8
8
|
export * as editJoinLink from './group/editJoinLink.js';
|
|
9
9
|
export * as enableJoinLink from './group/enableJoinLink.js';
|
|
10
|
-
export * as
|
|
10
|
+
export * as getJoinLinkPreviews from './group/getJoinLinkPreviews.js';
|
|
11
11
|
export * as listJoinRequests from './group/listJoinRequests.js';
|
|
12
12
|
export * as listMutualGroups from './group/listMutualGroups.js';
|
|
13
13
|
export * as rejectJoinRequest from './group/rejectJoinRequest.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../../src/lexicons/chat/bsky/group.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../../src/lexicons/chat/bsky/group.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAA;AACrE,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,iBAAiB,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAA"}
|
|
@@ -10,7 +10,7 @@ export * as disableJoinLink from './group/disableJoinLink.js';
|
|
|
10
10
|
export * as editGroup from './group/editGroup.js';
|
|
11
11
|
export * as editJoinLink from './group/editJoinLink.js';
|
|
12
12
|
export * as enableJoinLink from './group/enableJoinLink.js';
|
|
13
|
-
export * as
|
|
13
|
+
export * as getJoinLinkPreviews from './group/getJoinLinkPreviews.js';
|
|
14
14
|
export * as listJoinRequests from './group/listJoinRequests.js';
|
|
15
15
|
export * as listMutualGroups from './group/listMutualGroups.js';
|
|
16
16
|
export * as rejectJoinRequest from './group/rejectJoinRequest.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../../src/lexicons/chat/bsky/group.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../../src/lexicons/chat/bsky/group.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,kBAAkB,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAA;AACrE,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,iBAAiB,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAA","sourcesContent":["/*\n * THIS FILE WAS GENERATED BY \"@atproto/lex\". DO NOT EDIT.\n */\n\nexport * as addMembers from './group/addMembers.js'\nexport * as approveJoinRequest from './group/approveJoinRequest.js'\nexport * as createGroup from './group/createGroup.js'\nexport * as createJoinLink from './group/createJoinLink.js'\nexport * as defs from './group/defs.js'\nexport * as disableJoinLink from './group/disableJoinLink.js'\nexport * as editGroup from './group/editGroup.js'\nexport * as editJoinLink from './group/editJoinLink.js'\nexport * as enableJoinLink from './group/enableJoinLink.js'\nexport * as getJoinLinkPreviews from './group/getJoinLinkPreviews.js'\nexport * as listJoinRequests from './group/listJoinRequests.js'\nexport * as listMutualGroups from './group/listMutualGroups.js'\nexport * as rejectJoinRequest from './group/rejectJoinRequest.js'\nexport * as removeMembers from './group/removeMembers.js'\nexport * as requestJoin from './group/requestJoin.js'\n"]}
|
package/dist/logger.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const hydrationLogger: ReturnType<typeof subsystemLogger>;
|
|
|
8
8
|
export declare const featureGatesLogger: ReturnType<typeof subsystemLogger>;
|
|
9
9
|
export declare const dataplaneLogger: ReturnType<typeof subsystemLogger>;
|
|
10
10
|
export declare const ageAssuranceLogger: ReturnType<typeof subsystemLogger>;
|
|
11
|
+
export declare const viewsLogger: ReturnType<typeof subsystemLogger>;
|
|
11
12
|
export declare const httpLogger: ReturnType<typeof subsystemLogger>;
|
|
12
13
|
export declare const loggerMiddleware: import("pino-http").HttpLogger<IncomingMessage, import("http").ServerResponse<IncomingMessage>, never>;
|
|
13
14
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C,OAAO,EAAoB,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEnE,eAAO,MAAM,QAAQ,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AAC5B,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AAC/B,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AAC7B,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AACjC,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AACnC,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AACtC,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,OAAO,eAAe,CACnC,CAAA;AAC5B,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,OAAO,eAAe,CACtC,CAAA;AAC5B,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,OAAO,eAAe,CACjC,CAAA;AAEzB,eAAO,MAAM,gBAAgB,wGAa3B,CAAA"}
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C,OAAO,EAAoB,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEnE,eAAO,MAAM,QAAQ,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AAC5B,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AAC/B,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AAC7B,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AACjC,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AACnC,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AACtC,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,OAAO,eAAe,CACnC,CAAA;AAC5B,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,OAAO,eAAe,CACtC,CAAA;AAC5B,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAC5B,CAAA;AAC/B,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,OAAO,eAAe,CACjC,CAAA;AAEzB,eAAO,MAAM,gBAAgB,wGAa3B,CAAA"}
|
package/dist/logger.js
CHANGED
|
@@ -9,6 +9,7 @@ export const hydrationLogger = subsystemLogger('bsky:hydration');
|
|
|
9
9
|
export const featureGatesLogger = subsystemLogger('bsky:featuregates');
|
|
10
10
|
export const dataplaneLogger = subsystemLogger('bsky:dp');
|
|
11
11
|
export const ageAssuranceLogger = subsystemLogger('bsky:aa');
|
|
12
|
+
export const viewsLogger = subsystemLogger('bsky:views');
|
|
12
13
|
export const httpLogger = subsystemLogger('bsky');
|
|
13
14
|
export const loggerMiddleware = pinoHttp({
|
|
14
15
|
logger: httpLogger,
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEnE,MAAM,CAAC,MAAM,QAAQ,GACnB,eAAe,CAAC,SAAS,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,WAAW,GACtB,eAAe,CAAC,YAAY,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,SAAS,GACpB,eAAe,CAAC,UAAU,CAAC,CAAA;AAC7B,MAAM,CAAC,MAAM,aAAa,GACxB,eAAe,CAAC,cAAc,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,eAAe,GAC1B,eAAe,CAAC,gBAAgB,CAAC,CAAA;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAC7B,eAAe,CAAC,mBAAmB,CAAC,CAAA;AACtC,MAAM,CAAC,MAAM,eAAe,GAC1B,eAAe,CAAC,SAAS,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAC7B,eAAe,CAAC,SAAS,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,UAAU,GACrB,eAAe,CAAC,MAAM,CAAC,CAAA;AAEzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACvC,MAAM,EAAE,UAAU;IAClB,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;SAC1B,CAAC;QACF,GAAG,EAAE,CAAC,GAAoB,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YACpD,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAA;QACnC,CAAC;KACF;CACF,CAAC,CAAA","sourcesContent":["import { IncomingMessage } from 'node:http'\nimport { stdSerializers } from 'pino'\nimport { pinoHttp } from 'pino-http'\nimport { obfuscateHeaders, subsystemLogger } from '@atproto/common'\n\nexport const dbLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:db')\nexport const cacheLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:cache')\nexport const subLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:sub')\nexport const labelerLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:labeler')\nexport const hydrationLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:hydration')\nexport const featureGatesLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:featuregates')\nexport const dataplaneLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:dp')\nexport const ageAssuranceLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:aa')\nexport const httpLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky')\n\nexport const loggerMiddleware = pinoHttp({\n logger: httpLogger,\n serializers: {\n err: (err: unknown) => ({\n code: err?.['code'],\n message: err?.['message'],\n }),\n req: (req: IncomingMessage) => {\n const serialized = stdSerializers.req(req)\n const headers = obfuscateHeaders(serialized.headers)\n return { ...serialized, headers }\n },\n },\n})\n"]}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEnE,MAAM,CAAC,MAAM,QAAQ,GACnB,eAAe,CAAC,SAAS,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,WAAW,GACtB,eAAe,CAAC,YAAY,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,SAAS,GACpB,eAAe,CAAC,UAAU,CAAC,CAAA;AAC7B,MAAM,CAAC,MAAM,aAAa,GACxB,eAAe,CAAC,cAAc,CAAC,CAAA;AACjC,MAAM,CAAC,MAAM,eAAe,GAC1B,eAAe,CAAC,gBAAgB,CAAC,CAAA;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAC7B,eAAe,CAAC,mBAAmB,CAAC,CAAA;AACtC,MAAM,CAAC,MAAM,eAAe,GAC1B,eAAe,CAAC,SAAS,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,kBAAkB,GAC7B,eAAe,CAAC,SAAS,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,WAAW,GACtB,eAAe,CAAC,YAAY,CAAC,CAAA;AAC/B,MAAM,CAAC,MAAM,UAAU,GACrB,eAAe,CAAC,MAAM,CAAC,CAAA;AAEzB,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACvC,MAAM,EAAE,UAAU;IAClB,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;SAC1B,CAAC;QACF,GAAG,EAAE,CAAC,GAAoB,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YACpD,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAA;QACnC,CAAC;KACF;CACF,CAAC,CAAA","sourcesContent":["import { IncomingMessage } from 'node:http'\nimport { stdSerializers } from 'pino'\nimport { pinoHttp } from 'pino-http'\nimport { obfuscateHeaders, subsystemLogger } from '@atproto/common'\n\nexport const dbLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:db')\nexport const cacheLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:cache')\nexport const subLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:sub')\nexport const labelerLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:labeler')\nexport const hydrationLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:hydration')\nexport const featureGatesLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:featuregates')\nexport const dataplaneLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:dp')\nexport const ageAssuranceLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:aa')\nexport const viewsLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky:views')\nexport const httpLogger: ReturnType<typeof subsystemLogger> =\n subsystemLogger('bsky')\n\nexport const loggerMiddleware = pinoHttp({\n logger: httpLogger,\n serializers: {\n err: (err: unknown) => ({\n code: err?.['code'],\n message: err?.['message'],\n }),\n req: (req: IncomingMessage) => {\n const serialized = stdSerializers.req(req)\n const headers = obfuscateHeaders(serialized.headers)\n return { ...serialized, headers }\n },\n },\n})\n"]}
|
|
@@ -12,11 +12,18 @@ export declare const parseSiteStandardRecordKey: (key: string) => {
|
|
|
12
12
|
cid: string;
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
|
-
* Confirm that the supplied SS records actually back `assumedUrl`.
|
|
16
|
-
*
|
|
17
|
-
* the document's `path`
|
|
18
|
-
*
|
|
19
|
-
*
|
|
15
|
+
* Confirm that the supplied SS records actually back `assumedUrl`. The
|
|
16
|
+
* record-side URL is built by concatenating the publication URL (or the
|
|
17
|
+
* loose-doc site) with the document's `path` field, then both sides are
|
|
18
|
+
* canonicalized for equality: lowercase host, query/fragment dropped,
|
|
19
|
+
* trailing slash stripped.
|
|
20
|
+
*
|
|
21
|
+
* Path concatenation is `base + '/' + path` semantics — a leading `/` on
|
|
22
|
+
* `path` does NOT swallow the base's pathname (the way
|
|
23
|
+
* `new URL(path, base)` would). So
|
|
24
|
+
* `'https://atproto.com/blog' + '/indexing-standard-site'` resolves to
|
|
25
|
+
* `https://atproto.com/blog/indexing-standard-site` regardless of which
|
|
26
|
+
* side carries the slash.
|
|
20
27
|
*
|
|
21
28
|
* Structural validation of the doc/pub pair (matching `site` ↔ pub URI,
|
|
22
29
|
* no orphan docs that claim a missing publication) happens upstream in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-site.d.ts","sourceRoot":"","sources":["../../src/util/standard-site.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,eAAO,MAAM,yBAAyB,mBAAmB,CAAA;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,WAC7C,CAAA;AAEjB,eAAO,MAAM,0BAA0B,GACrC,KAAK,MAAM,KACV;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAMjC,CAAA;
|
|
1
|
+
{"version":3,"file":"standard-site.d.ts","sourceRoot":"","sources":["../../src/util/standard-site.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,eAAO,MAAM,yBAAyB,mBAAmB,CAAA;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,WAC7C,CAAA;AAEjB,eAAO,MAAM,0BAA0B,GACrC,KAAK,MAAM,KACV;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAMjC,CAAA;AAkCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,0BAA0B,GACrC,UACI;IACE,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACpB,IAAI,EAAE;QAAE,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAClD,GACD,SAAS,EACb,aACI;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE;QAAE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAC3D,SAAS,EACb,YAAY,MAAM,KACjB,OAoBF,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GACrC,MAAM,MAAM,KACX,MAAM,GAAG,SAIX,CAAA"}
|
|
@@ -19,10 +19,10 @@ export const parseSiteStandardRecordKey = (key) => {
|
|
|
19
19
|
* strips a trailing slash from the path, and drops query/fragment. Returns
|
|
20
20
|
* `null` when the input isn't a valid HTTP(S) URL.
|
|
21
21
|
*/
|
|
22
|
-
const canonicalizeHttpUrl = (url
|
|
22
|
+
const canonicalizeHttpUrl = (url) => {
|
|
23
23
|
let parsed;
|
|
24
24
|
try {
|
|
25
|
-
parsed = new URL(url
|
|
25
|
+
parsed = new URL(url);
|
|
26
26
|
}
|
|
27
27
|
catch {
|
|
28
28
|
return null;
|
|
@@ -33,11 +33,32 @@ const canonicalizeHttpUrl = (url, base) => {
|
|
|
33
33
|
return `${parsed.protocol}//${parsed.host}${path}`;
|
|
34
34
|
};
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
36
|
+
* Append `path` to `base` with exactly one slash between, or return `base`
|
|
37
|
+
* unchanged when `path` is empty. Unlike `new URL(path, base)`, a leading
|
|
38
|
+
* slash on `path` does NOT swallow `base`'s pathname — so
|
|
39
|
+
* `joinPath('https://x.com/blog', '/foo')` is `https://x.com/blog/foo`,
|
|
40
|
+
* not `https://x.com/foo`.
|
|
41
|
+
*/
|
|
42
|
+
const joinPath = (base, path) => {
|
|
43
|
+
if (!path)
|
|
44
|
+
return base;
|
|
45
|
+
const baseTrimmed = base.endsWith('/') ? base.slice(0, -1) : base;
|
|
46
|
+
const pathTrimmed = path.startsWith('/') ? path.slice(1) : path;
|
|
47
|
+
return `${baseTrimmed}/${pathTrimmed}`;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Confirm that the supplied SS records actually back `assumedUrl`. The
|
|
51
|
+
* record-side URL is built by concatenating the publication URL (or the
|
|
52
|
+
* loose-doc site) with the document's `path` field, then both sides are
|
|
53
|
+
* canonicalized for equality: lowercase host, query/fragment dropped,
|
|
54
|
+
* trailing slash stripped.
|
|
55
|
+
*
|
|
56
|
+
* Path concatenation is `base + '/' + path` semantics — a leading `/` on
|
|
57
|
+
* `path` does NOT swallow the base's pathname (the way
|
|
58
|
+
* `new URL(path, base)` would). So
|
|
59
|
+
* `'https://atproto.com/blog' + '/indexing-standard-site'` resolves to
|
|
60
|
+
* `https://atproto.com/blog/indexing-standard-site` regardless of which
|
|
61
|
+
* side carries the slash.
|
|
41
62
|
*
|
|
42
63
|
* Structural validation of the doc/pub pair (matching `site` ↔ pub URI,
|
|
43
64
|
* no orphan docs that claim a missing publication) happens upstream in
|
|
@@ -62,11 +83,11 @@ export const validateStandardSiteForUrl = (document, publication, assumedUrl) =>
|
|
|
62
83
|
if (canonicalAssumed === null)
|
|
63
84
|
return false;
|
|
64
85
|
if (document && publication) {
|
|
65
|
-
const joined = canonicalizeHttpUrl(document.info.record.path ?? ''
|
|
86
|
+
const joined = canonicalizeHttpUrl(joinPath(publication.info.record.url, document.info.record.path ?? ''));
|
|
66
87
|
return joined === canonicalAssumed;
|
|
67
88
|
}
|
|
68
89
|
if (document) {
|
|
69
|
-
const joined = canonicalizeHttpUrl(document.info.record.
|
|
90
|
+
const joined = canonicalizeHttpUrl(joinPath(document.info.record.site, document.info.record.path ?? ''));
|
|
70
91
|
return joined === canonicalAssumed;
|
|
71
92
|
}
|
|
72
93
|
if (publication) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-site.js","sourceRoot":"","sources":["../../src/util/standard-site.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAA;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAChE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;AAEjB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,GAAW,EACwB,EAAE;IACrC,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC/B,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAgB;QACpC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;KACvB,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,CAAC,GAAW,
|
|
1
|
+
{"version":3,"file":"standard-site.js","sourceRoot":"","sources":["../../src/util/standard-site.ts"],"names":[],"mappings":"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","sourcesContent":["import { AtUriString } from '@atproto/syntax'\n\nexport const SITE_STANDARD_NSID_PREFIX = 'site.standard.'\n\n/**\n * Composes a stable map key from an `(uri, cid)` pair. A single hydration\n * batch can pull more than one version of the same SS record URI (different\n * posts pinning different cids), so the composite is needed for O(1)\n * version-exact lookups.\n */\nexport const siteStandardRecordKey = (uri: string, cid: string) =>\n `${uri}@${cid}`\n\nexport const parseSiteStandardRecordKey = (\n key: string,\n): { uri: AtUriString; cid: string } => {\n const at = key.lastIndexOf('@')\n return {\n uri: key.slice(0, at) as AtUriString,\n cid: key.slice(at + 1),\n }\n}\n\n/**\n * Parse `url` as HTTP(S) and reduce it to a canonical\n * `protocol://host/path` string for equality comparison: lowercases host,\n * strips a trailing slash from the path, and drops query/fragment. Returns\n * `null` when the input isn't a valid HTTP(S) URL.\n */\nconst canonicalizeHttpUrl = (url: string): string | null => {\n let parsed: URL\n try {\n parsed = new URL(url)\n } catch {\n return null\n }\n if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') return null\n const path = parsed.pathname === '/' ? '' : parsed.pathname.replace(/\\/$/, '')\n return `${parsed.protocol}//${parsed.host}${path}`\n}\n\n/**\n * Append `path` to `base` with exactly one slash between, or return `base`\n * unchanged when `path` is empty. Unlike `new URL(path, base)`, a leading\n * slash on `path` does NOT swallow `base`'s pathname — so\n * `joinPath('https://x.com/blog', '/foo')` is `https://x.com/blog/foo`,\n * not `https://x.com/foo`.\n */\nconst joinPath = (base: string, path: string): string => {\n if (!path) return base\n const baseTrimmed = base.endsWith('/') ? base.slice(0, -1) : base\n const pathTrimmed = path.startsWith('/') ? path.slice(1) : path\n return `${baseTrimmed}/${pathTrimmed}`\n}\n\n/**\n * Confirm that the supplied SS records actually back `assumedUrl`. The\n * record-side URL is built by concatenating the publication URL (or the\n * loose-doc site) with the document's `path` field, then both sides are\n * canonicalized for equality: lowercase host, query/fragment dropped,\n * trailing slash stripped.\n *\n * Path concatenation is `base + '/' + path` semantics — a leading `/` on\n * `path` does NOT swallow the base's pathname (the way\n * `new URL(path, base)` would). So\n * `'https://atproto.com/blog' + '/indexing-standard-site'` resolves to\n * `https://atproto.com/blog/indexing-standard-site` regardless of which\n * side carries the slash.\n *\n * Structural validation of the doc/pub pair (matching `site` ↔ pub URI,\n * no orphan docs that claim a missing publication) happens upstream in\n * `getSiteStandardRecordsFromHydrationMapsByRefs` /\n * `…ByDocumentUri` (see `hydration/external.ts`); by the time this\n * function runs the pair is already known to be structurally consistent,\n * so we only check whether the records back the URL.\n *\n * Cases:\n * - Document + publication: `publication.url + document.path` must\n * canonicalize to `assumedUrl`.\n * - Loose document (web-URL `site`): `document.site + document.path`\n * must canonicalize to `assumedUrl`. (Doc with at-uri `site` but no\n * publication can't reach this function — the lookups reject it.)\n * - Publication only: `publication.url` must canonicalize to\n * `assumedUrl`.\n * - Neither: vacuously valid; the caller short-circuits before we get\n * here.\n */\nexport const validateStandardSiteForUrl = (\n document:\n | {\n ref: { uri: string }\n info: { record: { site: string; path?: string } }\n }\n | undefined,\n publication:\n | { ref: { uri: string }; info: { record: { url: string } } }\n | undefined,\n assumedUrl: string,\n): boolean => {\n const canonicalAssumed = canonicalizeHttpUrl(assumedUrl)\n if (canonicalAssumed === null) return false\n\n if (document && publication) {\n const joined = canonicalizeHttpUrl(\n joinPath(publication.info.record.url, document.info.record.path ?? ''),\n )\n return joined === canonicalAssumed\n }\n if (document) {\n const joined = canonicalizeHttpUrl(\n joinPath(document.info.record.site, document.info.record.path ?? ''),\n )\n return joined === canonicalAssumed\n }\n if (publication) {\n return canonicalizeHttpUrl(publication.info.record.url) === canonicalAssumed\n }\n return true\n}\n\nconst WORDS_PER_MINUTE = 200\n\n/**\n * Estimate reading time in minutes from a plaintext document body. Returns\n * `undefined` when the input has no countable words. Uses a coarse\n * `WORDS_PER_MINUTE` heuristic; swap in a more accurate library here if\n * needed (e.g. `reading-time`).\n */\nexport const estimateReadingTimeMinutes = (\n text: string,\n): number | undefined => {\n const words = text.trim().split(/\\s+/).filter(Boolean).length\n if (!words) return undefined\n return Math.max(1, Math.ceil(words / WORDS_PER_MINUTE))\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,QAAQ,EACR,mBAAmB,EACnB,SAAS,EAEV,MAAM,cAAc,CAAA;AACrB,OAAO,EAEL,WAAW,EAEX,SAAS,EAGV,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EAExB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAc,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":"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"}
|
package/dist/views/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { AtUri, INVALID_HANDLE, normalizeDatetimeAlways, } from '@atproto/syntax
|
|
|
4
4
|
import { getSiteStandardRecordsFromHydrationMapsByRefs, } from '../hydration/external.js';
|
|
5
5
|
import { parseString } from '../hydration/util.js';
|
|
6
6
|
import { app, site } from '../lexicons/index.js';
|
|
7
|
+
import { viewsLogger } from '../logger.js';
|
|
7
8
|
import { estimateReadingTimeMinutes, validateStandardSiteForUrl, } from '../util/standard-site.js';
|
|
8
9
|
import { postUriToPostgateUri, postUriToThreadgateUri, safePinnedPost, uriToDid, uriToDid as creatorFromUri, } from '../util/uris.js';
|
|
9
10
|
import { sortTrimFlattenThreadTree, } from './threads-v2.js';
|
|
@@ -1484,6 +1485,11 @@ export class Views {
|
|
|
1484
1485
|
state,
|
|
1485
1486
|
assumedUrl: embed.external.uri,
|
|
1486
1487
|
});
|
|
1488
|
+
// Profiles of the owners of pinned `associatedRefs`. Hydrator covers
|
|
1489
|
+
// these DIDs alongside post-author profiles, so misses here only
|
|
1490
|
+
// happen when an actor is unavailable (suspended, deleted, etc.) —
|
|
1491
|
+
// drop those rather than emit `undefined` slots.
|
|
1492
|
+
const associatedProfiles = mapDefined(embed.external.associatedRefs ?? [], (ref) => this.profileBasic(uriToDid(ref.uri), state));
|
|
1487
1493
|
return app.bsky.embed.external.view.$build({
|
|
1488
1494
|
external: {
|
|
1489
1495
|
uri: embed.external.uri,
|
|
@@ -1494,6 +1500,9 @@ export class Views {
|
|
|
1494
1500
|
: undefined,
|
|
1495
1501
|
...ssView,
|
|
1496
1502
|
associatedRefs: embed.external.associatedRefs,
|
|
1503
|
+
associatedProfiles: associatedProfiles.length
|
|
1504
|
+
? associatedProfiles
|
|
1505
|
+
: undefined,
|
|
1497
1506
|
},
|
|
1498
1507
|
});
|
|
1499
1508
|
}
|
|
@@ -1560,6 +1569,10 @@ export class Views {
|
|
|
1560
1569
|
if (!document && !publication)
|
|
1561
1570
|
return undefined;
|
|
1562
1571
|
if (!validateStandardSiteForUrl(document, publication, assumedUrl)) {
|
|
1572
|
+
viewsLogger.warn({
|
|
1573
|
+
documentUri: document?.ref.uri,
|
|
1574
|
+
publicationUri: publication?.ref.uri,
|
|
1575
|
+
}, 'SS record(s) failed URL validation for external embed');
|
|
1563
1576
|
return undefined;
|
|
1564
1577
|
}
|
|
1565
1578
|
// viewExternal requires `title` and `description`. If neither side of
|