@alook/daemon 0.1.47 → 0.1.49
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/cli/index.js +445 -328
- package/dist/index.js +441 -323
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12257,9 +12257,9 @@ function cliCommandsSection() {
|
|
|
12257
12257
|
"### Messaging",
|
|
12258
12258
|
"",
|
|
12259
12259
|
`1. \`${CLI} inbox pull\` — fetch unread messages and advance their read waterlines.`,
|
|
12260
|
-
`2. \`${CLI} message send --target <ref> --remind-after <0|Nm|Nh> --stdin\` — send to a ` + `channel, DM, or thread. ` + `The body is required through \`--stdin\` and limited to 1 KiB of UTF-8. ` + `Attach
|
|
12261
|
-
`3. \`${CLI} message attachment upload --
|
|
12262
|
-
`4. \`${CLI} message attachment download --id <id> [--out <path>]\` — download
|
|
12260
|
+
`2. \`${CLI} message send --target <ref> --remind-after <0|Nm|Nh> --stdin\` — send to a ` + `channel, DM, or thread. ` + `The body is required through \`--stdin\` and limited to 1 KiB of UTF-8. ` + `Attach files with \`--attachment <id>\` (repeatable, order matters). ` + `\`--remind-after\` accepts \`0\`, or a whole-number duration from \`1m\` to \`24h\`.`,
|
|
12261
|
+
`3. \`${CLI} message attachment upload --file <path>\` — upload a local file and get a reusable attachment ID.`,
|
|
12262
|
+
`4. \`${CLI} message attachment download --id <id> [--out <path>]\` — download an attachment you can read, including your own unsent uploads.`,
|
|
12263
12263
|
`5. \`${CLI} message property set --target <full-message-ref> --json <json>\` — add a supported property value to a message.`,
|
|
12264
12264
|
`6. \`${CLI} message property list --target <full-message-ref>\` — list the message's current properties and supported capabilities.`,
|
|
12265
12265
|
`7. \`${CLI} message property remove --target <full-message-ref> --json <json>\` — remove a supported property value from a message.`,
|
|
@@ -12320,7 +12320,8 @@ function messagingSection() {
|
|
|
12320
12320
|
"#### Sending mechanics",
|
|
12321
12321
|
"",
|
|
12322
12322
|
`- Send body: use \`${CLI} message send --target <ref> --remind-after T --stdin\` with the ` + "quoted-heredoc form under *Message formatting*.",
|
|
12323
|
-
`- Long detail: upload it with \`${CLI} message attachment upload --
|
|
12323
|
+
`- Long detail: upload it with \`${CLI} message attachment upload --file <path>.md\`; ` + "add the returned id as `--attachment <id>` on the short stdin send.",
|
|
12324
|
+
"- Reuse files: to forward an attachment or send the same file again, pass its existing ID with `--attachment <id>`. " + "Do not download and upload it again. Reuse works across channels, DMs, and threads while you can still read the file. " + "Upload only a new or changed file.",
|
|
12324
12325
|
`- Cite a specific message: add \`--reply "#37"\` — \`--reply\` takes the \`#N\` seq ` + "(within `--target`) of the message you're answering.",
|
|
12325
12326
|
"",
|
|
12326
12327
|
"Reply where the message came from. Post results in the channel that owns the topic. " + "When uncertain, read history (below) or DM the relevant people.",
|
|
@@ -12436,7 +12437,19 @@ function utilsSection() {
|
|
|
12436
12437
|
"",
|
|
12437
12438
|
"### Join a new server",
|
|
12438
12439
|
"",
|
|
12439
|
-
`If a message contains a \`/c/invite/...\` link, just run \`${CLI} server join --invite <link>\`. ` + "The server enforces owner-only: it accepts only invites your owner created and rejects the " + "rest with a reason. Safe to attempt without reasoning about who sent it."
|
|
12440
|
+
`If a message contains a \`/c/invite/...\` link, just run \`${CLI} server join --invite <link>\`. ` + "The server enforces owner-only: it accepts only invites your owner created and rejects the " + "rest with a reason. Safe to attempt without reasoning about who sent it.",
|
|
12441
|
+
"",
|
|
12442
|
+
"### Answer questions about Alook itself",
|
|
12443
|
+
"",
|
|
12444
|
+
"Alook frontend source code: https://github.com/alookai/alook/tree/main/src/web/src",
|
|
12445
|
+
"",
|
|
12446
|
+
"Only when a user specifically asks for Alook product guidance or clarification about " + "the product, read the relevant frontend code before answering. " + "Check the page, visible labels, and interaction handlers to verify the steps.",
|
|
12447
|
+
"",
|
|
12448
|
+
"Give clear UI click instructions in the user's language. Start with the page they are on. " + "Use simple positions such as top-left or left sidebar, visible icons, and button labels " + "to identify exactly where to click. Explain each click in order and what appears next. " + "Keep frontend code names and layout terms out of the user's instructions.",
|
|
12449
|
+
"",
|
|
12450
|
+
'Bad: "Click thisReactButton, on the same layer as serverRailContainer."',
|
|
12451
|
+
"",
|
|
12452
|
+
'Good: "From the channel chat page in XX server, look at the top-left corner. Click the ' + "Home button with the Alook logo. After Home opens, click My Bots near the top-left " + 'of the left sidebar."'
|
|
12440
12453
|
].join(`
|
|
12441
12454
|
`);
|
|
12442
12455
|
}
|
|
@@ -37564,30 +37577,288 @@ function writeStatusFile(path14, snapshot) {
|
|
|
37564
37577
|
renameSync3(tmp, path14);
|
|
37565
37578
|
} catch {}
|
|
37566
37579
|
}
|
|
37567
|
-
// ../shared/src/community-
|
|
37580
|
+
// ../shared/src/community-contract.ts
|
|
37581
|
+
var COMMUNITY_RESOURCE_CONTRACT_VERSION = 3;
|
|
37582
|
+
|
|
37583
|
+
// ../shared/src/community-friend-approval.ts
|
|
37584
|
+
var profile = exports_external.strictObject({
|
|
37585
|
+
id: exports_external.string(),
|
|
37586
|
+
name: exports_external.string(),
|
|
37587
|
+
discriminator: exports_external.string(),
|
|
37588
|
+
image: exports_external.string().nullable(),
|
|
37589
|
+
avatarVersion: exports_external.number().int().nonnegative()
|
|
37590
|
+
});
|
|
37591
|
+
var FriendApprovalPayloadSchema = exports_external.strictObject({
|
|
37592
|
+
friendshipId: exports_external.string(),
|
|
37593
|
+
status: exports_external.enum(["pending", "approved", "denied", "superseded", "cancelled"]),
|
|
37594
|
+
waitingOn: exports_external.enum(["you", "other-owner", "addressee"]).nullable(),
|
|
37595
|
+
otherProfile: profile,
|
|
37596
|
+
botProfile: profile,
|
|
37597
|
+
waitingOnProfile: profile.nullable().optional()
|
|
37598
|
+
});
|
|
37599
|
+
|
|
37600
|
+
// ../shared/src/community-resources.ts
|
|
37568
37601
|
var id = exports_external.string().min(1);
|
|
37569
|
-
var
|
|
37570
|
-
|
|
37602
|
+
var nullableId = id.nullable();
|
|
37603
|
+
var legacyArchivedSchema = exports_external.union([exports_external.boolean(), exports_external.literal(0), exports_external.literal(1)]).transform((value) => value === true || value === 1);
|
|
37604
|
+
var CommunityChannelResourceSchema = exports_external.strictObject({
|
|
37605
|
+
id,
|
|
37606
|
+
type: exports_external.enum(["text", "forum", "thread", "dm"]),
|
|
37607
|
+
serverId: nullableId,
|
|
37608
|
+
categoryId: nullableId,
|
|
37609
|
+
name: exports_external.string().nullable(),
|
|
37610
|
+
topic: exports_external.string(),
|
|
37611
|
+
parentChannelId: nullableId,
|
|
37612
|
+
parentMessageId: nullableId,
|
|
37613
|
+
creatorId: nullableId,
|
|
37614
|
+
position: exports_external.number(),
|
|
37615
|
+
archived: exports_external.boolean(),
|
|
37616
|
+
createdAt: exports_external.string(),
|
|
37617
|
+
lastMessageAt: exports_external.string().nullable(),
|
|
37618
|
+
messageCount: exports_external.number().int().nonnegative()
|
|
37619
|
+
});
|
|
37620
|
+
var CommunityChannelIdentitySchema = CommunityChannelResourceSchema.pick({
|
|
37621
|
+
id: true,
|
|
37622
|
+
type: true,
|
|
37623
|
+
serverId: true,
|
|
37624
|
+
name: true,
|
|
37625
|
+
parentChannelId: true,
|
|
37626
|
+
parentMessageId: true,
|
|
37627
|
+
creatorId: true,
|
|
37628
|
+
archived: true,
|
|
37629
|
+
lastMessageAt: true,
|
|
37630
|
+
createdAt: true
|
|
37631
|
+
}).partial({ createdAt: true }).strip();
|
|
37632
|
+
var legacyChannelIdentitySchema = CommunityChannelIdentitySchema.extend({
|
|
37633
|
+
archived: legacyArchivedSchema,
|
|
37634
|
+
parentChannelId: nullableId.default(null),
|
|
37635
|
+
parentMessageId: nullableId.default(null),
|
|
37636
|
+
creatorId: nullableId.default(null),
|
|
37637
|
+
lastMessageAt: CommunityChannelResourceSchema.shape.lastMessageAt.default(null)
|
|
37638
|
+
});
|
|
37639
|
+
var CommunityAccessDecisionSchema = exports_external.strictObject({
|
|
37640
|
+
channelId: id,
|
|
37641
|
+
canRead: exports_external.boolean(),
|
|
37642
|
+
canSend: exports_external.boolean(),
|
|
37643
|
+
canCreateDiscussion: exports_external.boolean()
|
|
37644
|
+
});
|
|
37645
|
+
var CommunityLegacyMessageAttachmentSchema = exports_external.strictObject({
|
|
37646
|
+
kind: exports_external.enum(["image", "file"]),
|
|
37647
|
+
name: exports_external.string(),
|
|
37648
|
+
url: exports_external.string(),
|
|
37649
|
+
thumbnailUrl: exports_external.string().optional(),
|
|
37650
|
+
contentType: exports_external.string().optional(),
|
|
37651
|
+
size: exports_external.string().optional(),
|
|
37652
|
+
sizeBytes: exports_external.number().nonnegative().optional(),
|
|
37653
|
+
width: exports_external.number().nonnegative().optional(),
|
|
37654
|
+
height: exports_external.number().nonnegative().optional()
|
|
37655
|
+
});
|
|
37656
|
+
var CommunityMessageAttachmentSchema = exports_external.strictObject({
|
|
37657
|
+
id,
|
|
37658
|
+
name: exports_external.string(),
|
|
37659
|
+
url: exports_external.string(),
|
|
37660
|
+
thumbnailUrl: exports_external.string().nullable(),
|
|
37661
|
+
contentType: exports_external.string().nullable(),
|
|
37662
|
+
sizeBytes: exports_external.number().int().nonnegative().nullable(),
|
|
37663
|
+
width: exports_external.number().int().nonnegative().nullable(),
|
|
37664
|
+
height: exports_external.number().int().nonnegative().nullable()
|
|
37665
|
+
});
|
|
37666
|
+
var CommunityMessagePreviewAttachmentSchema = CommunityMessageAttachmentSchema.partial().required({ name: true, url: true });
|
|
37667
|
+
var CommunityResourceProfileSchema = exports_external.strictObject({
|
|
37668
|
+
id,
|
|
37669
|
+
name: exports_external.string(),
|
|
37670
|
+
discriminator: exports_external.string().min(1).nullable(),
|
|
37671
|
+
avatar: exports_external.string().nullable(),
|
|
37672
|
+
avatarVersion: exports_external.number().int().nonnegative(),
|
|
37673
|
+
aboutMe: exports_external.string().optional(),
|
|
37674
|
+
bannerColor: exports_external.string().nullable().optional(),
|
|
37675
|
+
kind: exports_external.enum(["human", "bot"]).optional(),
|
|
37676
|
+
ownerUserId: nullableId.optional(),
|
|
37677
|
+
ownerHandle: exports_external.string().nullable().optional(),
|
|
37678
|
+
mutualServers: exports_external.number().int().nonnegative().optional(),
|
|
37679
|
+
ownedByViewer: exports_external.boolean().optional(),
|
|
37680
|
+
statusEmoji: exports_external.string().nullable().optional(),
|
|
37681
|
+
statusText: exports_external.string().nullable().optional()
|
|
37682
|
+
});
|
|
37683
|
+
var CommunityMessageThreadParticipantSchema = CommunityResourceProfileSchema.pick({ id: true, name: true, avatar: true, avatarVersion: true });
|
|
37684
|
+
var messageThreadSchema = exports_external.strictObject({
|
|
37685
|
+
id,
|
|
37686
|
+
name: CommunityChannelResourceSchema.shape.name,
|
|
37687
|
+
messageCount: CommunityChannelResourceSchema.shape.messageCount,
|
|
37688
|
+
lastReplyAt: CommunityChannelResourceSchema.shape.lastMessageAt.optional(),
|
|
37689
|
+
tags: exports_external.array(exports_external.string()).optional(),
|
|
37690
|
+
preview: exports_external.string().optional(),
|
|
37691
|
+
participants: exports_external.array(CommunityMessageThreadParticipantSchema).optional(),
|
|
37692
|
+
participantCount: exports_external.number().int().nonnegative().optional()
|
|
37693
|
+
});
|
|
37694
|
+
var legacyMessageThreadSchema = messageThreadSchema.extend({
|
|
37695
|
+
name: exports_external.string(),
|
|
37696
|
+
lastReplyAt: exports_external.string().optional(),
|
|
37697
|
+
participants: exports_external.array(CommunityMessageThreadParticipantSchema.extend({ avatar: exports_external.string() })).optional()
|
|
37698
|
+
});
|
|
37699
|
+
var messageThreadPreviewSchema = messageThreadSchema.partial().required({ id: true }).extend({
|
|
37700
|
+
participants: exports_external.array(CommunityMessageThreadParticipantSchema.partial().required({ id: true })).optional()
|
|
37701
|
+
});
|
|
37702
|
+
var CommunityMessageResourceSchema = exports_external.strictObject({
|
|
37703
|
+
id,
|
|
37704
|
+
channelId: id,
|
|
37705
|
+
seq: exports_external.number().int().nonnegative(),
|
|
37706
|
+
authorId: id,
|
|
37707
|
+
createdAt: exports_external.string(),
|
|
37708
|
+
type: exports_external.enum(["chat", "system"]),
|
|
37709
|
+
content: exports_external.string(),
|
|
37710
|
+
replyToId: nullableId,
|
|
37711
|
+
clientNonce: exports_external.string().nullable(),
|
|
37712
|
+
attachments: exports_external.array(CommunityMessageAttachmentSchema),
|
|
37713
|
+
systemKind: exports_external.literal("thread").optional(),
|
|
37714
|
+
authorName: exports_external.string().optional(),
|
|
37715
|
+
authorAvatar: exports_external.string().nullable().optional(),
|
|
37716
|
+
authorAvatarVersion: exports_external.number().int().nonnegative().optional(),
|
|
37717
|
+
mentionType: exports_external.literal("everyone").nullable().optional(),
|
|
37718
|
+
replyTo: exports_external.strictObject({
|
|
37719
|
+
id,
|
|
37720
|
+
authorId: id.optional(),
|
|
37721
|
+
authorName: exports_external.string(),
|
|
37722
|
+
text: exports_external.string(),
|
|
37723
|
+
deleted: exports_external.boolean().optional()
|
|
37724
|
+
}).optional(),
|
|
37725
|
+
embeds: exports_external.array(exports_external.unknown()).optional(),
|
|
37726
|
+
reactions: exports_external.array(exports_external.strictObject({
|
|
37727
|
+
emoji: exports_external.string(),
|
|
37728
|
+
count: exports_external.number().int().nonnegative(),
|
|
37729
|
+
me: exports_external.boolean(),
|
|
37730
|
+
userIds: exports_external.array(id)
|
|
37731
|
+
})).optional(),
|
|
37732
|
+
thread: messageThreadSchema.optional(),
|
|
37733
|
+
approval: FriendApprovalPayloadSchema.optional()
|
|
37734
|
+
});
|
|
37735
|
+
var CommunityMessagePreviewSchema = CommunityMessageResourceSchema.partial().required({
|
|
37736
|
+
id: true,
|
|
37737
|
+
type: true
|
|
37738
|
+
}).extend({ attachments: exports_external.array(CommunityMessagePreviewAttachmentSchema).optional(), thread: messageThreadPreviewSchema.optional() });
|
|
37739
|
+
var CommunityReadStateResourceSchema = exports_external.strictObject({
|
|
37740
|
+
channelId: id,
|
|
37741
|
+
lastReadMessageId: nullableId,
|
|
37742
|
+
lastReadAt: exports_external.string().nullable(),
|
|
37743
|
+
lastReadSeq: exports_external.number().int().nonnegative()
|
|
37744
|
+
});
|
|
37745
|
+
var CommunityMemberRelationSchema = exports_external.strictObject({
|
|
37571
37746
|
channelId: id,
|
|
37572
|
-
|
|
37573
|
-
|
|
37747
|
+
userId: id,
|
|
37748
|
+
relation: exports_external.enum(["access", "notify"]),
|
|
37749
|
+
source: exports_external.string(),
|
|
37750
|
+
isCreator: exports_external.boolean(),
|
|
37751
|
+
role: exports_external.string().nullable(),
|
|
37752
|
+
memberId: nullableId
|
|
37753
|
+
});
|
|
37754
|
+
var CommunityPageSchema = exports_external.strictObject({
|
|
37755
|
+
olderCursor: exports_external.string().nullable(),
|
|
37756
|
+
newerCursor: exports_external.string().nullable(),
|
|
37757
|
+
hasMoreOlder: exports_external.boolean(),
|
|
37758
|
+
hasMoreNewer: exports_external.boolean(),
|
|
37759
|
+
latestSeq: exports_external.number().int().nonnegative()
|
|
37760
|
+
});
|
|
37761
|
+
var envelope = { contractVersion: exports_external.literal(COMMUNITY_RESOURCE_CONTRACT_VERSION), channelId: id };
|
|
37762
|
+
var CommunityChannelReadSchema = exports_external.strictObject({ ...envelope, channel: CommunityChannelResourceSchema, access: CommunityAccessDecisionSchema });
|
|
37763
|
+
var CommunityMessagesReadSchema = exports_external.strictObject({
|
|
37764
|
+
...envelope,
|
|
37765
|
+
messages: exports_external.array(CommunityMessageResourceSchema),
|
|
37766
|
+
page: CommunityPageSchema,
|
|
37767
|
+
surfaceReceipt: exports_external.strictObject({ channelId: id, surfaceKind: exports_external.enum(["channel", "forum", "thread", "dm"]) })
|
|
37768
|
+
});
|
|
37769
|
+
var CommunityMessagePostedSchema = CommunityMessagesReadSchema.pick({ contractVersion: true, channelId: true }).extend({
|
|
37770
|
+
message: CommunityMessageResourceSchema,
|
|
37771
|
+
deduped: exports_external.boolean(),
|
|
37772
|
+
threadId: id.optional()
|
|
37773
|
+
});
|
|
37774
|
+
var CommunityMessageReadSchema = CommunityMessagePostedSchema.omit({ deduped: true, threadId: true });
|
|
37775
|
+
var CommunityReadStateReadSchema = exports_external.strictObject({ ...envelope, readState: CommunityReadStateResourceSchema });
|
|
37776
|
+
var CommunityMembersReadSchema = exports_external.strictObject({ ...envelope, relation: exports_external.enum(["access", "notify"]), members: exports_external.array(CommunityMemberRelationSchema), profiles: exports_external.array(CommunityResourceProfileSchema) });
|
|
37777
|
+
var CommunityThreadsReadSchema = exports_external.strictObject({
|
|
37778
|
+
...envelope,
|
|
37779
|
+
channel: CommunityChannelResourceSchema,
|
|
37780
|
+
threads: exports_external.array(CommunityChannelResourceSchema),
|
|
37781
|
+
included: exports_external.strictObject({
|
|
37782
|
+
messages: exports_external.array(CommunityMessageResourceSchema),
|
|
37783
|
+
members: exports_external.array(CommunityMemberRelationSchema),
|
|
37784
|
+
profiles: exports_external.array(CommunityResourceProfileSchema),
|
|
37785
|
+
tags: exports_external.array(exports_external.strictObject({ messageId: id, tag: exports_external.string() })),
|
|
37786
|
+
participantCounts: exports_external.array(exports_external.strictObject({ channelId: id, count: exports_external.number().int().nonnegative() }))
|
|
37787
|
+
}),
|
|
37788
|
+
page: exports_external.strictObject({ nextCursor: exports_external.string().nullable(), hasMore: exports_external.boolean() })
|
|
37789
|
+
});
|
|
37790
|
+
var CommunityReadAdvanceSchema = exports_external.strictObject({ ...envelope, changed: exports_external.boolean(), targetSeq: exports_external.number().int().nonnegative(), revision: exports_external.number().int().nonnegative() });
|
|
37791
|
+
var CommunityReadErrorSchema = exports_external.strictObject({ contractVersion: exports_external.literal(COMMUNITY_RESOURCE_CONTRACT_VERSION), error: exports_external.strictObject({
|
|
37792
|
+
code: exports_external.enum(["invalid_input", "invalid_reply_target", "unauthenticated", "not_found", "not_allowed", "blocked", "idempotency_conflict", "rate_limited", "temporarily_unavailable"]),
|
|
37793
|
+
message: exports_external.string(),
|
|
37794
|
+
retryable: exports_external.boolean()
|
|
37795
|
+
}) });
|
|
37796
|
+
var legacyProfileSchema = CommunityResourceProfileSchema.pick({
|
|
37797
|
+
id: true,
|
|
37798
|
+
name: true,
|
|
37799
|
+
avatar: true,
|
|
37800
|
+
avatarVersion: true
|
|
37801
|
+
}).extend({ discriminator: exports_external.string().nullable(), statusEmoji: exports_external.string().nullable(), statusText: exports_external.string() });
|
|
37802
|
+
var CommunityLegacyMessageResourceSchema = CommunityMessageResourceSchema.extend({ authorAvatar: exports_external.string().optional(), attachments: exports_external.array(CommunityLegacyMessageAttachmentSchema), thread: legacyMessageThreadSchema.optional() });
|
|
37803
|
+
var legacyEnvelope = { contractVersion: exports_external.literal(2), channelId: id };
|
|
37804
|
+
var legacyReadSchemas = {
|
|
37805
|
+
channel: CommunityChannelReadSchema.extend(legacyEnvelope),
|
|
37806
|
+
messages: CommunityMessagesReadSchema.extend({ ...legacyEnvelope, messages: exports_external.array(CommunityLegacyMessageResourceSchema) }),
|
|
37807
|
+
readState: CommunityReadStateReadSchema.extend(legacyEnvelope),
|
|
37808
|
+
members: CommunityMembersReadSchema.extend({ ...legacyEnvelope, profiles: exports_external.array(legacyProfileSchema) }),
|
|
37809
|
+
threads: CommunityThreadsReadSchema.extend({ ...legacyEnvelope, included: CommunityThreadsReadSchema.shape.included.extend({
|
|
37810
|
+
messages: exports_external.array(CommunityLegacyMessageResourceSchema),
|
|
37811
|
+
profiles: exports_external.array(legacyProfileSchema)
|
|
37812
|
+
}) }),
|
|
37813
|
+
readAdvance: CommunityReadAdvanceSchema.extend(legacyEnvelope),
|
|
37814
|
+
error: CommunityReadErrorSchema.extend({ contractVersion: exports_external.literal(2) })
|
|
37815
|
+
};
|
|
37816
|
+
var legacyChannelResourcePreviewSchema = CommunityChannelResourceSchema.partial().strip().extend({
|
|
37817
|
+
archived: legacyArchivedSchema.optional()
|
|
37818
|
+
});
|
|
37819
|
+
var legacyChannelResourceSchema = CommunityChannelResourceSchema.strip().extend({
|
|
37820
|
+
topic: CommunityChannelResourceSchema.shape.topic.nullish().transform((value) => value ?? ""),
|
|
37821
|
+
position: CommunityChannelResourceSchema.shape.position.nullish().transform((value) => value ?? 0),
|
|
37822
|
+
messageCount: CommunityChannelResourceSchema.shape.messageCount.nullish().transform((value) => value ?? 0),
|
|
37823
|
+
categoryId: nullableId.default(null),
|
|
37824
|
+
parentChannelId: nullableId.default(null),
|
|
37825
|
+
parentMessageId: nullableId.default(null),
|
|
37826
|
+
creatorId: nullableId.default(null),
|
|
37827
|
+
lastMessageAt: CommunityChannelResourceSchema.shape.lastMessageAt.default(null),
|
|
37828
|
+
archived: legacyArchivedSchema
|
|
37829
|
+
});
|
|
37830
|
+
var legacyMessageResourceSchema = CommunityLegacyMessageResourceSchema.strip().extend({
|
|
37831
|
+
channelId: id.optional(),
|
|
37832
|
+
replyToId: nullableId.optional(),
|
|
37833
|
+
clientNonce: CommunityMessageResourceSchema.shape.clientNonce.default(null),
|
|
37834
|
+
attachments: CommunityLegacyMessageResourceSchema.shape.attachments.default([]),
|
|
37835
|
+
embeds: CommunityMessageResourceSchema.shape.embeds.nullable().transform((value) => value ?? undefined)
|
|
37836
|
+
});
|
|
37837
|
+
|
|
37838
|
+
// ../shared/src/community-attention.ts
|
|
37839
|
+
var id2 = exports_external.string().min(1);
|
|
37840
|
+
var AttentionScopeSchema = exports_external.strictObject({
|
|
37841
|
+
scopeId: id2,
|
|
37842
|
+
channelId: id2,
|
|
37843
|
+
serverId: id2.nullable().optional(),
|
|
37844
|
+
parentChannelId: id2.nullable().optional(),
|
|
37574
37845
|
ordinaryUnread: exports_external.boolean(),
|
|
37575
37846
|
lastUnreadSeq: exports_external.number().int().nonnegative(),
|
|
37576
37847
|
lastAttentionSeq: exports_external.number().int().nonnegative().nullable().optional(),
|
|
37577
37848
|
attentionCount: exports_external.number().int().nonnegative()
|
|
37578
37849
|
});
|
|
37579
37850
|
var AttentionItemSchema = exports_external.strictObject({
|
|
37580
|
-
id,
|
|
37851
|
+
id: id2,
|
|
37581
37852
|
kind: exports_external.enum(["mention", "reply", "friend_request", "forum_post"]),
|
|
37582
|
-
sourceId:
|
|
37583
|
-
scopeId:
|
|
37584
|
-
messageId:
|
|
37585
|
-
actorUserId:
|
|
37853
|
+
sourceId: id2,
|
|
37854
|
+
scopeId: id2.nullable().optional(),
|
|
37855
|
+
messageId: id2.nullable().optional(),
|
|
37856
|
+
actorUserId: id2.nullable().optional(),
|
|
37586
37857
|
createdAt: exports_external.string(),
|
|
37587
|
-
childChannelId:
|
|
37858
|
+
childChannelId: id2.optional(),
|
|
37588
37859
|
openerSeq: exports_external.number().int().nonnegative().optional(),
|
|
37589
37860
|
readTarget: exports_external.strictObject({
|
|
37590
|
-
channelId:
|
|
37861
|
+
channelId: id2,
|
|
37591
37862
|
seq: exports_external.number().int().nonnegative()
|
|
37592
37863
|
}).optional()
|
|
37593
37864
|
}).superRefine((item, ctx) => {
|
|
@@ -37617,26 +37888,30 @@ var AttentionItemSchema = exports_external.strictObject({
|
|
|
37617
37888
|
}
|
|
37618
37889
|
});
|
|
37619
37890
|
var AttentionIncludedServerSchema = exports_external.strictObject({
|
|
37620
|
-
id,
|
|
37891
|
+
id: id2,
|
|
37621
37892
|
name: exports_external.string(),
|
|
37622
37893
|
discriminator: exports_external.string()
|
|
37623
37894
|
});
|
|
37624
|
-
var AttentionIncludedChannelSchema =
|
|
37625
|
-
id,
|
|
37626
|
-
serverId:
|
|
37627
|
-
name:
|
|
37628
|
-
type:
|
|
37629
|
-
parentChannelId:
|
|
37630
|
-
parentMessageId:
|
|
37631
|
-
creatorId:
|
|
37632
|
-
archived:
|
|
37633
|
-
lastMessageAt:
|
|
37895
|
+
var AttentionIncludedChannelSchema = CommunityChannelResourceSchema.pick({
|
|
37896
|
+
id: true,
|
|
37897
|
+
serverId: true,
|
|
37898
|
+
name: true,
|
|
37899
|
+
type: true,
|
|
37900
|
+
parentChannelId: true,
|
|
37901
|
+
parentMessageId: true,
|
|
37902
|
+
creatorId: true,
|
|
37903
|
+
archived: true,
|
|
37904
|
+
lastMessageAt: true
|
|
37905
|
+
}).extend({
|
|
37906
|
+
serverId: CommunityChannelResourceSchema.shape.serverId.unwrap(),
|
|
37907
|
+
name: CommunityChannelResourceSchema.shape.name.unwrap(),
|
|
37908
|
+
type: CommunityChannelResourceSchema.shape.type.extract(["text", "forum", "thread"]),
|
|
37634
37909
|
openerSeq: exports_external.number().int().nonnegative().optional(),
|
|
37635
37910
|
openerUnread: exports_external.boolean().optional()
|
|
37636
37911
|
});
|
|
37637
37912
|
var AttentionIncludedDmSchema = exports_external.strictObject({
|
|
37638
|
-
id,
|
|
37639
|
-
userId:
|
|
37913
|
+
id: id2,
|
|
37914
|
+
userId: id2,
|
|
37640
37915
|
name: exports_external.string(),
|
|
37641
37916
|
discriminator: exports_external.string(),
|
|
37642
37917
|
avatar: exports_external.string(),
|
|
@@ -37645,22 +37920,21 @@ var AttentionIncludedDmSchema = exports_external.strictObject({
|
|
|
37645
37920
|
lastUnreadSeq: exports_external.number().int().nonnegative()
|
|
37646
37921
|
});
|
|
37647
37922
|
var AttentionIncludedProfileSchema = exports_external.strictObject({
|
|
37648
|
-
userId: id,
|
|
37649
|
-
name:
|
|
37923
|
+
userId: CommunityResourceProfileSchema.shape.id,
|
|
37924
|
+
...CommunityResourceProfileSchema.pick({ name: true, discriminator: true, avatar: true, avatarVersion: true }).shape,
|
|
37650
37925
|
discriminator: exports_external.string(),
|
|
37651
|
-
avatar: exports_external.string()
|
|
37652
|
-
avatarVersion: exports_external.number().int().nonnegative()
|
|
37653
|
-
});
|
|
37654
|
-
var AttentionIncludedMessageSchema = exports_external.strictObject({
|
|
37655
|
-
id,
|
|
37656
|
-
channelId: id,
|
|
37657
|
-
type: exports_external.enum(["chat", "system"]),
|
|
37658
|
-
authorId: id.optional(),
|
|
37659
|
-
authorName: exports_external.string().optional(),
|
|
37660
|
-
seq: exports_external.number().int().nonnegative(),
|
|
37661
|
-
createdAt: exports_external.string(),
|
|
37662
|
-
content: exports_external.string()
|
|
37926
|
+
avatar: exports_external.string()
|
|
37663
37927
|
});
|
|
37928
|
+
var AttentionIncludedMessageSchema = CommunityMessagePreviewSchema.pick({
|
|
37929
|
+
id: true,
|
|
37930
|
+
channelId: true,
|
|
37931
|
+
type: true,
|
|
37932
|
+
authorId: true,
|
|
37933
|
+
authorName: true,
|
|
37934
|
+
seq: true,
|
|
37935
|
+
createdAt: true,
|
|
37936
|
+
content: true
|
|
37937
|
+
}).required({ channelId: true, seq: true, createdAt: true, content: true });
|
|
37664
37938
|
var AttentionIncludedSchema = exports_external.strictObject({
|
|
37665
37939
|
servers: exports_external.array(AttentionIncludedServerSchema),
|
|
37666
37940
|
channels: exports_external.array(AttentionIncludedChannelSchema),
|
|
@@ -37686,7 +37960,7 @@ var AccountAttentionSnapshotSchema = exports_external.strictObject({
|
|
|
37686
37960
|
const serverById = new Map(snapshot.included.servers.map((server) => [server.id, server]));
|
|
37687
37961
|
const channelById = new Map(snapshot.included.channels.map((channel2) => [channel2.id, channel2]));
|
|
37688
37962
|
const dmById = new Map(snapshot.included.dms.map((dm) => [dm.id, dm]));
|
|
37689
|
-
const profileById = new Map(snapshot.included.profiles.map((
|
|
37963
|
+
const profileById = new Map(snapshot.included.profiles.map((profile2) => [profile2.userId, profile2]));
|
|
37690
37964
|
const messageById = new Map(snapshot.included.messages.map((message2) => [message2.id, message2]));
|
|
37691
37965
|
const rejectDuplicates = (values, kind) => {
|
|
37692
37966
|
const seen = new Set;
|
|
@@ -37699,7 +37973,7 @@ var AccountAttentionSnapshotSchema = exports_external.strictObject({
|
|
|
37699
37973
|
rejectDuplicates(snapshot.included.servers.map((server) => server.id), "server");
|
|
37700
37974
|
rejectDuplicates(snapshot.included.channels.map((channel2) => channel2.id), "channel");
|
|
37701
37975
|
rejectDuplicates(snapshot.included.dms.map((dm) => dm.id), "dm");
|
|
37702
|
-
rejectDuplicates(snapshot.included.profiles.map((
|
|
37976
|
+
rejectDuplicates(snapshot.included.profiles.map((profile2) => profile2.userId), "profile");
|
|
37703
37977
|
rejectDuplicates(snapshot.included.messages.map((message2) => message2.id), "message");
|
|
37704
37978
|
for (const scope of snapshot.scopes) {
|
|
37705
37979
|
if (scope.serverId) {
|
|
@@ -38510,15 +38784,15 @@ var CommunityMachineRuntimeListSchema = exports_external.array(CommunityMachineR
|
|
|
38510
38784
|
var CommunityRunningAgentListSchema = exports_external.array(exports_external.string()).transform((list) => {
|
|
38511
38785
|
const seen = new Set;
|
|
38512
38786
|
const out = [];
|
|
38513
|
-
for (const
|
|
38514
|
-
if (seen.has(
|
|
38787
|
+
for (const id3 of list) {
|
|
38788
|
+
if (seen.has(id3))
|
|
38515
38789
|
continue;
|
|
38516
|
-
seen.add(
|
|
38517
|
-
out.push(
|
|
38790
|
+
seen.add(id3);
|
|
38791
|
+
out.push(id3);
|
|
38518
38792
|
}
|
|
38519
38793
|
return out;
|
|
38520
38794
|
});
|
|
38521
|
-
var CommunityMachineSummarySchema = exports_external.
|
|
38795
|
+
var CommunityMachineSummarySchema = exports_external.strictObject({
|
|
38522
38796
|
id: exports_external.string(),
|
|
38523
38797
|
hostname: exports_external.string(),
|
|
38524
38798
|
displayName: exports_external.string(),
|
|
@@ -38528,8 +38802,8 @@ var CommunityMachineSummarySchema = exports_external.object({
|
|
|
38528
38802
|
daemonVersion: exports_external.string(),
|
|
38529
38803
|
lastSeenAt: exports_external.string().nullable(),
|
|
38530
38804
|
status: exports_external.enum(["online", "offline"]),
|
|
38531
|
-
availableRuntimes: exports_external.array(CommunityMachineRuntimeSchema
|
|
38532
|
-
lastRuntimeError: exports_external.
|
|
38805
|
+
availableRuntimes: exports_external.array(CommunityMachineRuntimeSchema.strict()),
|
|
38806
|
+
lastRuntimeError: exports_external.strictObject({
|
|
38533
38807
|
requested: exports_external.string(),
|
|
38534
38808
|
available: exports_external.array(exports_external.string()),
|
|
38535
38809
|
at: exports_external.string()
|
|
@@ -38912,6 +39186,7 @@ __export(exports_community_schema, {
|
|
|
38912
39186
|
communityMessageTag: () => communityMessageTag,
|
|
38913
39187
|
communityMessageSeq: () => communityMessageSeq,
|
|
38914
39188
|
communityMessageMark: () => communityMessageMark,
|
|
39189
|
+
communityMessageAttachment: () => communityMessageAttachment,
|
|
38915
39190
|
communityMessage: () => communityMessage,
|
|
38916
39191
|
communityMention: () => communityMention,
|
|
38917
39192
|
communityFriendship: () => communityFriendship,
|
|
@@ -39087,11 +39362,7 @@ var communityReaction = sqliteTable("community_reaction", {
|
|
|
39087
39362
|
]);
|
|
39088
39363
|
var communityAttachment = sqliteTable("community_attachment", {
|
|
39089
39364
|
id: text2("id").primaryKey().$defaultFn(() => nanoid3()),
|
|
39090
|
-
messageId: text2("message_id").references(() => communityMessage.id, {
|
|
39091
|
-
onDelete: "cascade"
|
|
39092
|
-
}),
|
|
39093
39365
|
uploaderId: text2("uploader_id").notNull(),
|
|
39094
|
-
targetId: text2("target_id").notNull(),
|
|
39095
39366
|
r2Key: text2("r2_key").notNull(),
|
|
39096
39367
|
thumbnailR2Key: text2("thumbnail_r2_key"),
|
|
39097
39368
|
filename: text2("filename").notNull(),
|
|
@@ -39099,10 +39370,20 @@ var communityAttachment = sqliteTable("community_attachment", {
|
|
|
39099
39370
|
size: integer2("size"),
|
|
39100
39371
|
width: integer2("width"),
|
|
39101
39372
|
height: integer2("height"),
|
|
39102
|
-
position: integer2("position"),
|
|
39103
39373
|
createdAt: text2("created_at").notNull().$defaultFn(() => new Date().toISOString())
|
|
39104
39374
|
}, (t) => [
|
|
39105
|
-
index("
|
|
39375
|
+
index("idx_attachment_uploader").on(t.uploaderId),
|
|
39376
|
+
index("idx_attachment_r2_key").on(t.r2Key),
|
|
39377
|
+
index("idx_attachment_thumbnail_r2_key").on(t.thumbnailR2Key)
|
|
39378
|
+
]);
|
|
39379
|
+
var communityMessageAttachment = sqliteTable("community_message_attachment", {
|
|
39380
|
+
messageId: text2("message_id").notNull().references(() => communityMessage.id, { onDelete: "cascade" }),
|
|
39381
|
+
attachmentId: text2("attachment_id").notNull().references(() => communityAttachment.id, { onDelete: "restrict" }),
|
|
39382
|
+
position: integer2("position").notNull()
|
|
39383
|
+
}, (t) => [
|
|
39384
|
+
primaryKey({ columns: [t.messageId, t.attachmentId] }),
|
|
39385
|
+
unique("uq_message_attachment_position").on(t.messageId, t.position),
|
|
39386
|
+
index("idx_message_attachment_file").on(t.attachmentId, t.messageId)
|
|
39106
39387
|
]);
|
|
39107
39388
|
var communityPin = sqliteTable("community_pin", {
|
|
39108
39389
|
id: text2("id").primaryKey().$defaultFn(() => nanoid3()),
|
|
@@ -39224,6 +39505,41 @@ var communityMessageTag = sqliteTable("community_message_tag", {
|
|
|
39224
39505
|
index("idx_message_tag_tag").on(t.tag, t.messageId)
|
|
39225
39506
|
]);
|
|
39226
39507
|
|
|
39508
|
+
// ../shared/src/db/queries/_chunk.ts
|
|
39509
|
+
var D1_MAX_BIND_PARAMS = 100;
|
|
39510
|
+
function maxInParams(fixedParams) {
|
|
39511
|
+
if (!Number.isInteger(fixedParams) || fixedParams < 0) {
|
|
39512
|
+
throw new Error("fixed params must be a non-negative integer");
|
|
39513
|
+
}
|
|
39514
|
+
if (fixedParams >= D1_MAX_BIND_PARAMS) {
|
|
39515
|
+
throw new Error("fixed params must leave room for at least one IN parameter");
|
|
39516
|
+
}
|
|
39517
|
+
return D1_MAX_BIND_PARAMS - fixedParams;
|
|
39518
|
+
}
|
|
39519
|
+
function maxRowsPerInsert(paramsPerRow) {
|
|
39520
|
+
if (paramsPerRow < 1)
|
|
39521
|
+
throw new Error("paramsPerRow must be >= 1");
|
|
39522
|
+
return Math.floor(D1_MAX_BIND_PARAMS / paramsPerRow);
|
|
39523
|
+
}
|
|
39524
|
+
|
|
39525
|
+
// ../shared/src/db/queries/community/channel.ts
|
|
39526
|
+
var CHANNEL_COLUMNS = {
|
|
39527
|
+
id: communityChannel.id,
|
|
39528
|
+
serverId: communityChannel.serverId,
|
|
39529
|
+
categoryId: communityChannel.categoryId,
|
|
39530
|
+
name: communityChannel.name,
|
|
39531
|
+
type: communityChannel.type,
|
|
39532
|
+
topic: communityChannel.topic,
|
|
39533
|
+
position: communityChannel.position,
|
|
39534
|
+
parentChannelId: communityChannel.parentChannelId,
|
|
39535
|
+
creatorId: communityChannel.creatorId,
|
|
39536
|
+
messageCount: communityChannel.messageCount,
|
|
39537
|
+
archived: communityChannel.archived,
|
|
39538
|
+
parentMessageId: communityChannel.parentMessageId,
|
|
39539
|
+
lastMessageAt: communityChannel.lastMessageAt,
|
|
39540
|
+
createdAt: communityChannel.createdAt
|
|
39541
|
+
};
|
|
39542
|
+
|
|
39227
39543
|
// ../shared/src/logger.ts
|
|
39228
39544
|
var LEVELS = {
|
|
39229
39545
|
debug: 0,
|
|
@@ -39304,23 +39620,6 @@ function createLogger2(opts) {
|
|
|
39304
39620
|
return new Logger(opts);
|
|
39305
39621
|
}
|
|
39306
39622
|
|
|
39307
|
-
// ../shared/src/db/queries/_chunk.ts
|
|
39308
|
-
var D1_MAX_BIND_PARAMS = 100;
|
|
39309
|
-
function maxInParams(fixedParams) {
|
|
39310
|
-
if (!Number.isInteger(fixedParams) || fixedParams < 0) {
|
|
39311
|
-
throw new Error("fixed params must be a non-negative integer");
|
|
39312
|
-
}
|
|
39313
|
-
if (fixedParams >= D1_MAX_BIND_PARAMS) {
|
|
39314
|
-
throw new Error("fixed params must leave room for at least one IN parameter");
|
|
39315
|
-
}
|
|
39316
|
-
return D1_MAX_BIND_PARAMS - fixedParams;
|
|
39317
|
-
}
|
|
39318
|
-
function maxRowsPerInsert(paramsPerRow) {
|
|
39319
|
-
if (paramsPerRow < 1)
|
|
39320
|
-
throw new Error("paramsPerRow must be >= 1");
|
|
39321
|
-
return Math.floor(D1_MAX_BIND_PARAMS / paramsPerRow);
|
|
39322
|
-
}
|
|
39323
|
-
|
|
39324
39623
|
// ../shared/src/db/queries/community/message.ts
|
|
39325
39624
|
var log = createLogger2({ service: "community-queries" });
|
|
39326
39625
|
var messageProjection = {
|
|
@@ -39419,24 +39718,6 @@ var userProductPlan = sqliteTable("user_product_plan", {
|
|
|
39419
39718
|
updatedAt: text2("updated_at").notNull().$defaultFn(() => new Date().toISOString())
|
|
39420
39719
|
}, (t) => [index("idx_user_product_plan_plan").on(t.planId)]);
|
|
39421
39720
|
|
|
39422
|
-
// ../shared/src/db/queries/community/channel.ts
|
|
39423
|
-
var CHANNEL_COLUMNS = {
|
|
39424
|
-
id: communityChannel.id,
|
|
39425
|
-
serverId: communityChannel.serverId,
|
|
39426
|
-
categoryId: communityChannel.categoryId,
|
|
39427
|
-
name: communityChannel.name,
|
|
39428
|
-
type: communityChannel.type,
|
|
39429
|
-
topic: communityChannel.topic,
|
|
39430
|
-
position: communityChannel.position,
|
|
39431
|
-
parentChannelId: communityChannel.parentChannelId,
|
|
39432
|
-
creatorId: communityChannel.creatorId,
|
|
39433
|
-
messageCount: communityChannel.messageCount,
|
|
39434
|
-
archived: communityChannel.archived,
|
|
39435
|
-
parentMessageId: communityChannel.parentMessageId,
|
|
39436
|
-
lastMessageAt: communityChannel.lastMessageAt,
|
|
39437
|
-
createdAt: communityChannel.createdAt
|
|
39438
|
-
};
|
|
39439
|
-
|
|
39440
39721
|
// ../shared/src/db/queries/community/thread.ts
|
|
39441
39722
|
var NOTIFY_CONFLICT_TARGET = [
|
|
39442
39723
|
communityChannelMember.channelId,
|
|
@@ -39462,203 +39743,6 @@ var AGENT_UNREAD_CHANNEL_CHUNK_SIZE = maxInParams(13);
|
|
|
39462
39743
|
|
|
39463
39744
|
// ../shared/src/db/queries/community/mention.ts
|
|
39464
39745
|
var MENTION_INSERT_MAX_ROWS = maxRowsPerInsert(5);
|
|
39465
|
-
// ../shared/src/community-friend-approval.ts
|
|
39466
|
-
var profile = exports_external.strictObject({
|
|
39467
|
-
id: exports_external.string(),
|
|
39468
|
-
name: exports_external.string(),
|
|
39469
|
-
discriminator: exports_external.string(),
|
|
39470
|
-
image: exports_external.string().nullable(),
|
|
39471
|
-
avatarVersion: exports_external.number().int().nonnegative()
|
|
39472
|
-
});
|
|
39473
|
-
var FriendApprovalPayloadSchema = exports_external.strictObject({
|
|
39474
|
-
friendshipId: exports_external.string(),
|
|
39475
|
-
status: exports_external.enum(["pending", "approved", "denied", "superseded", "cancelled"]),
|
|
39476
|
-
waitingOn: exports_external.enum(["you", "other-owner", "addressee"]).nullable(),
|
|
39477
|
-
otherProfile: profile,
|
|
39478
|
-
botProfile: profile,
|
|
39479
|
-
waitingOnProfile: profile.nullable().optional()
|
|
39480
|
-
});
|
|
39481
|
-
|
|
39482
|
-
// ../shared/src/community-contract.ts
|
|
39483
|
-
var COMMUNITY_CONTRACT_VERSION = 2;
|
|
39484
|
-
|
|
39485
|
-
// ../shared/src/community-resources.ts
|
|
39486
|
-
var id2 = exports_external.string().min(1);
|
|
39487
|
-
var nullableId = id2.nullable();
|
|
39488
|
-
var legacyArchivedSchema = exports_external.union([exports_external.boolean(), exports_external.literal(0), exports_external.literal(1)]).transform((value) => value === true || value === 1);
|
|
39489
|
-
var CommunityChannelResourceSchema = exports_external.strictObject({
|
|
39490
|
-
id: id2,
|
|
39491
|
-
type: exports_external.enum(["text", "forum", "thread", "dm"]),
|
|
39492
|
-
serverId: nullableId,
|
|
39493
|
-
categoryId: nullableId,
|
|
39494
|
-
name: exports_external.string().nullable(),
|
|
39495
|
-
topic: exports_external.string(),
|
|
39496
|
-
parentChannelId: nullableId,
|
|
39497
|
-
parentMessageId: nullableId,
|
|
39498
|
-
creatorId: nullableId,
|
|
39499
|
-
position: exports_external.number(),
|
|
39500
|
-
archived: exports_external.boolean(),
|
|
39501
|
-
createdAt: exports_external.string(),
|
|
39502
|
-
lastMessageAt: exports_external.string().nullable(),
|
|
39503
|
-
messageCount: exports_external.number().int().nonnegative()
|
|
39504
|
-
});
|
|
39505
|
-
var CommunityChannelIdentitySchema = CommunityChannelResourceSchema.pick({
|
|
39506
|
-
id: true,
|
|
39507
|
-
type: true,
|
|
39508
|
-
serverId: true,
|
|
39509
|
-
name: true,
|
|
39510
|
-
parentChannelId: true,
|
|
39511
|
-
parentMessageId: true,
|
|
39512
|
-
creatorId: true,
|
|
39513
|
-
archived: true,
|
|
39514
|
-
lastMessageAt: true,
|
|
39515
|
-
createdAt: true
|
|
39516
|
-
}).partial({ createdAt: true }).strip();
|
|
39517
|
-
var legacyChannelIdentitySchema = CommunityChannelIdentitySchema.extend({
|
|
39518
|
-
archived: legacyArchivedSchema,
|
|
39519
|
-
parentChannelId: nullableId.default(null),
|
|
39520
|
-
parentMessageId: nullableId.default(null),
|
|
39521
|
-
creatorId: nullableId.default(null),
|
|
39522
|
-
lastMessageAt: CommunityChannelResourceSchema.shape.lastMessageAt.default(null)
|
|
39523
|
-
});
|
|
39524
|
-
var CommunityAccessDecisionSchema = exports_external.strictObject({
|
|
39525
|
-
channelId: id2,
|
|
39526
|
-
canRead: exports_external.boolean(),
|
|
39527
|
-
canSend: exports_external.boolean(),
|
|
39528
|
-
canCreateDiscussion: exports_external.boolean()
|
|
39529
|
-
});
|
|
39530
|
-
var CommunityMessageAttachmentSchema = exports_external.strictObject({
|
|
39531
|
-
kind: exports_external.enum(["image", "file"]),
|
|
39532
|
-
name: exports_external.string(),
|
|
39533
|
-
url: exports_external.string(),
|
|
39534
|
-
thumbnailUrl: exports_external.string().optional(),
|
|
39535
|
-
contentType: exports_external.string().optional(),
|
|
39536
|
-
size: exports_external.string().optional(),
|
|
39537
|
-
sizeBytes: exports_external.number().nonnegative().optional(),
|
|
39538
|
-
width: exports_external.number().nonnegative().optional(),
|
|
39539
|
-
height: exports_external.number().nonnegative().optional()
|
|
39540
|
-
});
|
|
39541
|
-
var CommunityMessageResourceSchema = exports_external.strictObject({
|
|
39542
|
-
id: id2,
|
|
39543
|
-
channelId: id2,
|
|
39544
|
-
seq: exports_external.number().int().nonnegative(),
|
|
39545
|
-
authorId: id2,
|
|
39546
|
-
createdAt: exports_external.string(),
|
|
39547
|
-
type: exports_external.enum(["chat", "system"]),
|
|
39548
|
-
content: exports_external.string(),
|
|
39549
|
-
replyToId: nullableId,
|
|
39550
|
-
clientNonce: exports_external.string().nullable(),
|
|
39551
|
-
attachments: exports_external.array(CommunityMessageAttachmentSchema),
|
|
39552
|
-
systemKind: exports_external.literal("thread").optional(),
|
|
39553
|
-
authorName: exports_external.string().optional(),
|
|
39554
|
-
authorAvatar: exports_external.string().optional(),
|
|
39555
|
-
authorAvatarVersion: exports_external.number().int().nonnegative().optional(),
|
|
39556
|
-
mentionType: exports_external.literal("everyone").nullable().optional(),
|
|
39557
|
-
replyTo: exports_external.strictObject({
|
|
39558
|
-
id: id2,
|
|
39559
|
-
authorId: id2.optional(),
|
|
39560
|
-
authorName: exports_external.string(),
|
|
39561
|
-
text: exports_external.string(),
|
|
39562
|
-
deleted: exports_external.boolean().optional()
|
|
39563
|
-
}).optional(),
|
|
39564
|
-
embeds: exports_external.array(exports_external.unknown()).optional(),
|
|
39565
|
-
reactions: exports_external.array(exports_external.strictObject({
|
|
39566
|
-
emoji: exports_external.string(),
|
|
39567
|
-
count: exports_external.number().int().nonnegative(),
|
|
39568
|
-
me: exports_external.boolean(),
|
|
39569
|
-
userIds: exports_external.array(id2)
|
|
39570
|
-
})).optional(),
|
|
39571
|
-
thread: exports_external.strictObject({
|
|
39572
|
-
id: id2,
|
|
39573
|
-
name: exports_external.string(),
|
|
39574
|
-
messageCount: exports_external.number().int().nonnegative(),
|
|
39575
|
-
lastReplyAt: exports_external.string().optional(),
|
|
39576
|
-
tags: exports_external.array(exports_external.string()).optional(),
|
|
39577
|
-
preview: exports_external.string().optional(),
|
|
39578
|
-
participants: exports_external.array(exports_external.strictObject({ id: id2, name: exports_external.string(), avatar: exports_external.string(), avatarVersion: exports_external.number().int().nonnegative() })).optional(),
|
|
39579
|
-
participantCount: exports_external.number().int().nonnegative().optional()
|
|
39580
|
-
}).optional(),
|
|
39581
|
-
approval: FriendApprovalPayloadSchema.optional()
|
|
39582
|
-
});
|
|
39583
|
-
var CommunityReadStateResourceSchema = exports_external.strictObject({
|
|
39584
|
-
channelId: id2,
|
|
39585
|
-
lastReadMessageId: nullableId,
|
|
39586
|
-
lastReadAt: exports_external.string().nullable(),
|
|
39587
|
-
lastReadSeq: exports_external.number().int().nonnegative()
|
|
39588
|
-
});
|
|
39589
|
-
var CommunityMemberRelationSchema = exports_external.strictObject({
|
|
39590
|
-
channelId: id2,
|
|
39591
|
-
userId: id2,
|
|
39592
|
-
relation: exports_external.enum(["access", "notify"]),
|
|
39593
|
-
source: exports_external.string(),
|
|
39594
|
-
isCreator: exports_external.boolean(),
|
|
39595
|
-
role: exports_external.string().nullable(),
|
|
39596
|
-
memberId: nullableId
|
|
39597
|
-
});
|
|
39598
|
-
var CommunityResourceProfileSchema = exports_external.strictObject({
|
|
39599
|
-
id: id2,
|
|
39600
|
-
name: exports_external.string(),
|
|
39601
|
-
discriminator: exports_external.string().nullable(),
|
|
39602
|
-
avatar: exports_external.string().nullable(),
|
|
39603
|
-
avatarVersion: exports_external.number().int().nonnegative(),
|
|
39604
|
-
statusEmoji: exports_external.string().nullable(),
|
|
39605
|
-
statusText: exports_external.string()
|
|
39606
|
-
});
|
|
39607
|
-
var CommunityPageSchema = exports_external.strictObject({
|
|
39608
|
-
olderCursor: exports_external.string().nullable(),
|
|
39609
|
-
newerCursor: exports_external.string().nullable(),
|
|
39610
|
-
hasMoreOlder: exports_external.boolean(),
|
|
39611
|
-
hasMoreNewer: exports_external.boolean(),
|
|
39612
|
-
latestSeq: exports_external.number().int().nonnegative()
|
|
39613
|
-
});
|
|
39614
|
-
var envelope = { contractVersion: exports_external.literal(COMMUNITY_CONTRACT_VERSION), channelId: id2 };
|
|
39615
|
-
var CommunityChannelReadSchema = exports_external.strictObject({ ...envelope, channel: CommunityChannelResourceSchema, access: CommunityAccessDecisionSchema });
|
|
39616
|
-
var CommunityMessagesReadSchema = exports_external.strictObject({
|
|
39617
|
-
...envelope,
|
|
39618
|
-
messages: exports_external.array(CommunityMessageResourceSchema),
|
|
39619
|
-
page: CommunityPageSchema,
|
|
39620
|
-
surfaceReceipt: exports_external.strictObject({ channelId: id2, surfaceKind: exports_external.enum(["channel", "forum", "thread", "dm"]) })
|
|
39621
|
-
});
|
|
39622
|
-
var CommunityReadStateReadSchema = exports_external.strictObject({ ...envelope, readState: CommunityReadStateResourceSchema });
|
|
39623
|
-
var CommunityMembersReadSchema = exports_external.strictObject({ ...envelope, relation: exports_external.enum(["access", "notify"]), members: exports_external.array(CommunityMemberRelationSchema), profiles: exports_external.array(CommunityResourceProfileSchema) });
|
|
39624
|
-
var CommunityThreadsReadSchema = exports_external.strictObject({
|
|
39625
|
-
...envelope,
|
|
39626
|
-
channel: CommunityChannelResourceSchema,
|
|
39627
|
-
threads: exports_external.array(CommunityChannelResourceSchema),
|
|
39628
|
-
included: exports_external.strictObject({
|
|
39629
|
-
messages: exports_external.array(CommunityMessageResourceSchema),
|
|
39630
|
-
members: exports_external.array(CommunityMemberRelationSchema),
|
|
39631
|
-
profiles: exports_external.array(CommunityResourceProfileSchema),
|
|
39632
|
-
tags: exports_external.array(exports_external.strictObject({ messageId: id2, tag: exports_external.string() })),
|
|
39633
|
-
participantCounts: exports_external.array(exports_external.strictObject({ channelId: id2, count: exports_external.number().int().nonnegative() }))
|
|
39634
|
-
}),
|
|
39635
|
-
page: exports_external.strictObject({ nextCursor: exports_external.string().nullable(), hasMore: exports_external.boolean() })
|
|
39636
|
-
});
|
|
39637
|
-
var CommunityReadAdvanceSchema = exports_external.strictObject({ ...envelope, changed: exports_external.boolean(), targetSeq: exports_external.number().int().nonnegative(), revision: exports_external.number().int().nonnegative() });
|
|
39638
|
-
var CommunityReadErrorSchema = exports_external.strictObject({ contractVersion: exports_external.literal(COMMUNITY_CONTRACT_VERSION), error: exports_external.strictObject({
|
|
39639
|
-
code: exports_external.enum(["invalid_input", "invalid_reply_target", "unauthenticated", "not_found", "not_allowed", "blocked", "idempotency_conflict", "rate_limited", "temporarily_unavailable"]),
|
|
39640
|
-
message: exports_external.string(),
|
|
39641
|
-
retryable: exports_external.boolean()
|
|
39642
|
-
}) });
|
|
39643
|
-
var legacyChannelResourceSchema = CommunityChannelResourceSchema.strip().extend({
|
|
39644
|
-
topic: CommunityChannelResourceSchema.shape.topic.nullish().transform((value) => value ?? ""),
|
|
39645
|
-
position: CommunityChannelResourceSchema.shape.position.nullish().transform((value) => value ?? 0),
|
|
39646
|
-
messageCount: CommunityChannelResourceSchema.shape.messageCount.nullish().transform((value) => value ?? 0),
|
|
39647
|
-
categoryId: nullableId.default(null),
|
|
39648
|
-
parentChannelId: nullableId.default(null),
|
|
39649
|
-
parentMessageId: nullableId.default(null),
|
|
39650
|
-
creatorId: nullableId.default(null),
|
|
39651
|
-
lastMessageAt: CommunityChannelResourceSchema.shape.lastMessageAt.default(null),
|
|
39652
|
-
archived: legacyArchivedSchema
|
|
39653
|
-
});
|
|
39654
|
-
var legacyMessageResourceSchema = CommunityMessageResourceSchema.strip().extend({
|
|
39655
|
-
channelId: id2.optional(),
|
|
39656
|
-
replyToId: nullableId.optional(),
|
|
39657
|
-
clientNonce: CommunityMessageResourceSchema.shape.clientNonce.default(null),
|
|
39658
|
-
attachments: CommunityMessageResourceSchema.shape.attachments.default([]),
|
|
39659
|
-
embeds: CommunityMessageResourceSchema.shape.embeds.nullable().transform((value) => value ?? undefined)
|
|
39660
|
-
});
|
|
39661
|
-
|
|
39662
39746
|
// ../shared/src/community-ws-events.ts
|
|
39663
39747
|
var string4 = exports_external.string();
|
|
39664
39748
|
var nullableString = string4.nullable();
|
|
@@ -39688,6 +39772,7 @@ var messageSchema = CommunityMessageResourceSchema.pick({
|
|
|
39688
39772
|
seq: exports_external.number(),
|
|
39689
39773
|
authorId: string4,
|
|
39690
39774
|
authorName: string4,
|
|
39775
|
+
authorAvatar: string4.optional(),
|
|
39691
39776
|
authorAvatarVersion: CommunityMessageResourceSchema.shape.authorAvatarVersion.unwrap(),
|
|
39692
39777
|
replyToId: nullableString.optional(),
|
|
39693
39778
|
replyTo: CommunityMessageResourceSchema.shape.replyTo.unwrap().extend({
|
|
@@ -39697,7 +39782,7 @@ var messageSchema = CommunityMessageResourceSchema.pick({
|
|
|
39697
39782
|
attachments: exports_external.array(messageAttachmentSchema).optional(),
|
|
39698
39783
|
clientNonce: string4.optional()
|
|
39699
39784
|
});
|
|
39700
|
-
var
|
|
39785
|
+
var CommunityLegacyMessageCreateSchema = exports_external.strictObject({
|
|
39701
39786
|
type: exports_external.literal("community:message.create"),
|
|
39702
39787
|
channelId: string4,
|
|
39703
39788
|
serverId: string4.optional(),
|
|
@@ -40009,29 +40094,9 @@ var communityProfileUpdateSchema = exports_external.strictObject({
|
|
|
40009
40094
|
kind: exports_external.enum(["human", "bot"]),
|
|
40010
40095
|
ownerUserId: nullableString
|
|
40011
40096
|
});
|
|
40012
|
-
var machineRuntimeSchema = CommunityMachineRuntimeSchema.strict();
|
|
40013
|
-
var CommunityMachineSummarySchema2 = exports_external.strictObject({
|
|
40014
|
-
id: string4,
|
|
40015
|
-
hostname: string4,
|
|
40016
|
-
displayName: string4,
|
|
40017
|
-
platform: string4,
|
|
40018
|
-
arch: string4,
|
|
40019
|
-
osRelease: string4,
|
|
40020
|
-
daemonVersion: string4,
|
|
40021
|
-
lastSeenAt: nullableString,
|
|
40022
|
-
status: exports_external.enum(["online", "offline"]),
|
|
40023
|
-
availableRuntimes: exports_external.array(machineRuntimeSchema),
|
|
40024
|
-
lastRuntimeError: exports_external.strictObject({
|
|
40025
|
-
requested: string4,
|
|
40026
|
-
available: exports_external.array(string4),
|
|
40027
|
-
at: string4
|
|
40028
|
-
}).optional(),
|
|
40029
|
-
createdAt: string4,
|
|
40030
|
-
updatedAt: string4
|
|
40031
|
-
});
|
|
40032
40097
|
var communityMachineCreatedSchema = exports_external.strictObject({
|
|
40033
40098
|
type: exports_external.literal("community:machine.created"),
|
|
40034
|
-
machine:
|
|
40099
|
+
machine: CommunityMachineSummarySchema,
|
|
40035
40100
|
tokenId: string4
|
|
40036
40101
|
});
|
|
40037
40102
|
var communityMachineStatusSchema = exports_external.strictObject({
|
|
@@ -40042,7 +40107,7 @@ var communityMachineStatusSchema = exports_external.strictObject({
|
|
|
40042
40107
|
});
|
|
40043
40108
|
var communityMachineUpdatedSchema = exports_external.strictObject({
|
|
40044
40109
|
type: exports_external.literal("community:machine.updated"),
|
|
40045
|
-
machine:
|
|
40110
|
+
machine: CommunityMachineSummarySchema
|
|
40046
40111
|
});
|
|
40047
40112
|
var communityMachineRemovedSchema = exports_external.strictObject({
|
|
40048
40113
|
type: exports_external.literal("community:machine.removed"),
|
|
@@ -40058,8 +40123,7 @@ var communityBotAuditEventSchema = exports_external.strictObject({
|
|
|
40058
40123
|
launchId: nullableString.optional(),
|
|
40059
40124
|
createdAt: string4
|
|
40060
40125
|
}).refine((event) => Object.prototype.hasOwnProperty.call(event, "payload"));
|
|
40061
|
-
var
|
|
40062
|
-
communityMessageCreateSchema,
|
|
40126
|
+
var commonCommunityEventSchemas = [
|
|
40063
40127
|
communityMessageUpdatedSchema,
|
|
40064
40128
|
communityMessageEditedSchema,
|
|
40065
40129
|
communityReactionAddSchema,
|
|
@@ -40068,12 +40132,8 @@ var CommunityWsEventDiscriminatedSchema = exports_external.discriminatedUnion("t
|
|
|
40068
40132
|
communityPinRemoveSchema,
|
|
40069
40133
|
communityTypingStartSchema,
|
|
40070
40134
|
communityTypingStopSchema,
|
|
40071
|
-
communityChildChannelCreateSchema,
|
|
40072
|
-
communityChildChannelUpdateSchema,
|
|
40073
40135
|
communityServerUpdateSchema,
|
|
40074
40136
|
communityServerDeleteSchema,
|
|
40075
|
-
communityChannelCreateSchema,
|
|
40076
|
-
communityChannelUpdateSchema,
|
|
40077
40137
|
communityChannelDeleteSchema,
|
|
40078
40138
|
communityChannelReorderSchema,
|
|
40079
40139
|
communityChannelMemberAddSchema,
|
|
@@ -40098,15 +40158,34 @@ var CommunityWsEventDiscriminatedSchema = exports_external.discriminatedUnion("t
|
|
|
40098
40158
|
communityInboxChangedSchema,
|
|
40099
40159
|
communityPresenceUpdateSchema,
|
|
40100
40160
|
communityStatusUpdateSchema,
|
|
40101
|
-
communityIdentityUpdateSchema,
|
|
40102
|
-
communityProfileUpdateSchema,
|
|
40103
40161
|
communityMachineCreatedSchema,
|
|
40104
40162
|
communityMachineStatusSchema,
|
|
40105
40163
|
communityMachineUpdatedSchema,
|
|
40106
40164
|
communityMachineRemovedSchema,
|
|
40107
40165
|
communityBotAuditEventSchema
|
|
40166
|
+
];
|
|
40167
|
+
var CommunityWsEventDiscriminatedSchema = exports_external.discriminatedUnion("type", [
|
|
40168
|
+
...commonCommunityEventSchemas,
|
|
40169
|
+
CommunityLegacyMessageCreateSchema,
|
|
40170
|
+
communityChildChannelCreateSchema,
|
|
40171
|
+
communityChannelCreateSchema,
|
|
40172
|
+
communityChildChannelUpdateSchema,
|
|
40173
|
+
communityChannelUpdateSchema,
|
|
40174
|
+
communityIdentityUpdateSchema,
|
|
40175
|
+
communityProfileUpdateSchema
|
|
40176
|
+
]);
|
|
40177
|
+
var CommunityResourceWsEventDiscriminatedSchema = exports_external.discriminatedUnion("type", [
|
|
40178
|
+
...commonCommunityEventSchemas,
|
|
40179
|
+
CommunityLegacyMessageCreateSchema.extend({ message: CommunityMessageResourceSchema.required({ authorName: true, authorAvatarVersion: true }) }).refine((event) => event.message.channelId === event.channelId),
|
|
40180
|
+
communityChildChannelCreateSchema.extend({ channel: CommunityChannelResourceSchema.extend({ type: exports_external.literal("thread") }) }).refine((event) => event.channel.parentChannelId === event.parentChannelId && (event.parentMessageId === undefined || event.parentMessageId === event.channel.parentMessageId)),
|
|
40181
|
+
communityChannelCreateSchema.extend({ channel: CommunityChannelResourceSchema.extend({ type: channelTypeSchema }) }).refine((event) => event.channel.serverId === event.serverId),
|
|
40182
|
+
communityChildChannelUpdateSchema.extend({ changes: CommunityChannelResourceSchema.pick({ name: true, archived: true, lastMessageAt: true, messageCount: true }).partial().extend({ tags: exports_external.array(string4).nullable().optional() }) }),
|
|
40183
|
+
communityChannelUpdateSchema.extend({ changes: CommunityChannelResourceSchema.pick({ name: true, topic: true, categoryId: true, type: true }).partial().extend({ type: channelTypeSchema.optional() }) }),
|
|
40184
|
+
communityIdentityUpdateSchema.extend({ avatar: CommunityResourceProfileSchema.shape.avatar, avatarVersion: CommunityResourceProfileSchema.shape.avatarVersion.refine((version3) => version3 > 0) }),
|
|
40185
|
+
CommunityResourceProfileSchema.pick({ name: true, discriminator: true, aboutMe: true, bannerColor: true, kind: true, ownerUserId: true }).required().extend({ type: exports_external.literal("community:profile.update"), userId: string4 })
|
|
40108
40186
|
]);
|
|
40109
40187
|
var CommunityWsEventSchema = CommunityWsEventDiscriminatedSchema.transform((event) => event);
|
|
40188
|
+
var CommunityResourceWsEventSchema = CommunityResourceWsEventDiscriminatedSchema.transform((event) => event);
|
|
40110
40189
|
var WS_EVENTS = {
|
|
40111
40190
|
MESSAGE_CREATE: "community:message.create",
|
|
40112
40191
|
MESSAGE_UPDATED: "community:message.updated",
|
|
@@ -40190,6 +40269,7 @@ var memberAddedSchema = exports_external.strictObject({
|
|
|
40190
40269
|
channelId: exports_external.string().min(1)
|
|
40191
40270
|
});
|
|
40192
40271
|
var batchShape = exports_external.strictObject({
|
|
40272
|
+
communityContract: exports_external.literal(3).optional(),
|
|
40193
40273
|
messageId: exports_external.string().min(1),
|
|
40194
40274
|
messageEvent: exports_external.unknown(),
|
|
40195
40275
|
contentUserIds: targetList,
|
|
@@ -40306,8 +40386,46 @@ var communityFunnelAnalyticsEvent = sqliteTable("community_funnel_analytics_even
|
|
|
40306
40386
|
index("idx_community_funnel_analytics_owner_claimed_created").on(t.ownerUserId, t.claimedAt, t.createdAt)
|
|
40307
40387
|
]);
|
|
40308
40388
|
|
|
40389
|
+
// ../shared/src/db/product-analytics-schema.ts
|
|
40390
|
+
var exports_product_analytics_schema = {};
|
|
40391
|
+
__export(exports_product_analytics_schema, {
|
|
40392
|
+
productAnalyticsEvent: () => productAnalyticsEvent,
|
|
40393
|
+
PRODUCT_ANALYTICS_EVENTS: () => PRODUCT_ANALYTICS_EVENTS
|
|
40394
|
+
});
|
|
40395
|
+
var PRODUCT_ANALYTICS_EVENTS = [
|
|
40396
|
+
"landing_cta_clicked",
|
|
40397
|
+
"login_page_view",
|
|
40398
|
+
"sign_up",
|
|
40399
|
+
"sign_in_success",
|
|
40400
|
+
"sign_in_failed",
|
|
40401
|
+
"onboarding_enter_clicked",
|
|
40402
|
+
"onboarding_first_message",
|
|
40403
|
+
"invitation_link_visit"
|
|
40404
|
+
];
|
|
40405
|
+
var productAnalyticsEvent = sqliteTable("product_analytics_event", {
|
|
40406
|
+
id: text2("id").primaryKey(),
|
|
40407
|
+
eventName: text2("event_name").notNull().$type(),
|
|
40408
|
+
actorUserId: text2("actor_user_id").references(() => user.id, { onDelete: "cascade" }),
|
|
40409
|
+
serverId: text2("server_id").references(() => communityServer.id, { onDelete: "cascade" }),
|
|
40410
|
+
sourceId: text2("source_id"),
|
|
40411
|
+
dedupeKey: text2("dedupe_key").notNull(),
|
|
40412
|
+
clientId: text2("client_id").notNull(),
|
|
40413
|
+
sessionId: text2("session_id").notNull(),
|
|
40414
|
+
method: text2("method"),
|
|
40415
|
+
accountKind: text2("account_kind").$type(),
|
|
40416
|
+
ctaName: text2("cta_name"),
|
|
40417
|
+
failureStage: text2("failure_stage").$type(),
|
|
40418
|
+
createdAt: text2("created_at").notNull(),
|
|
40419
|
+
deliveryStatus: text2("delivery_status").notNull().default("pending").$type(),
|
|
40420
|
+
deliveryReason: text2("delivery_reason"),
|
|
40421
|
+
attemptedAt: text2("attempted_at")
|
|
40422
|
+
}, (t) => [
|
|
40423
|
+
uniqueIndex("uq_product_analytics_dedupe").on(t.dedupeKey),
|
|
40424
|
+
index("idx_product_analytics_actor_server_event").on(t.actorUserId, t.serverId, t.eventName)
|
|
40425
|
+
]);
|
|
40426
|
+
|
|
40309
40427
|
// ../shared/src/db/index.ts
|
|
40310
|
-
var allSchema = { ...exports_schema, ...exports_community_schema, ...exports_community_machine_schema, ...exports_product_plan_schema, ...exports_billing_schema, ...exports_community_funnel_analytics_schema };
|
|
40428
|
+
var allSchema = { ...exports_schema, ...exports_community_schema, ...exports_community_machine_schema, ...exports_product_plan_schema, ...exports_billing_schema, ...exports_community_funnel_analytics_schema, ...exports_product_analytics_schema };
|
|
40311
40429
|
// ../shared/src/community-server-rail.ts
|
|
40312
40430
|
var MAX_SERVER_RAIL_COMMANDS = 3;
|
|
40313
40431
|
var idSchema = exports_external.string().trim().min(1);
|