An experimental TypeSpec syntax for Lexicon

convert tests

Changed files
+129 -147
packages
emitter
test
integration
atproto
input
app
com
atproto
moderation
tools
ozone
moderation
report
team
output
tools
ozone
moderation
team
+1 -1
packages/emitter/test/integration/atproto/input/app/bsky/actor/defs.tsp
··· 358 358 model StatusView { 359 359 /** The status for the account. */ 360 360 @required 361 - status: "app.bsky.actor.status#live" | string; 361 + status: app.bsky.actor.status.Live | string; 362 362 363 363 @required record: unknown; 364 364
+1 -1
packages/emitter/test/integration/atproto/input/app/bsky/actor/status.tsp
··· 6 6 model Main { 7 7 /** The status for the account. */ 8 8 @required 9 - status: "app.bsky.actor.status#live" | string; 9 + status: Live | string; 10 10 11 11 /** An optional embed associated with the status. */ 12 12 embed?: (app.bsky.embed.external.Main | unknown);
+13 -13
packages/emitter/test/integration/atproto/input/app/bsky/feed/defs.tsp
··· 133 133 acceptsInteractions?: boolean; 134 134 labels?: com.atproto.label.defs.Label[]; 135 135 viewer?: GeneratorViewerState; 136 - contentMode?: "app.bsky.feed.defs#contentModeUnspecified" | "app.bsky.feed.defs#contentModeVideo" | string; 136 + contentMode?: ContentModeUnspecified | ContentModeVideo | string; 137 137 138 138 @required indexedAt: datetime; 139 139 } ··· 167 167 168 168 model Interaction { 169 169 item?: atUri; 170 - event?: "app.bsky.feed.defs#requestLess" 171 - | "app.bsky.feed.defs#requestMore" 172 - | "app.bsky.feed.defs#clickthroughItem" 173 - | "app.bsky.feed.defs#clickthroughAuthor" 174 - | "app.bsky.feed.defs#clickthroughReposter" 175 - | "app.bsky.feed.defs#clickthroughEmbed" 176 - | "app.bsky.feed.defs#interactionSeen" 177 - | "app.bsky.feed.defs#interactionLike" 178 - | "app.bsky.feed.defs#interactionRepost" 179 - | "app.bsky.feed.defs#interactionReply" 180 - | "app.bsky.feed.defs#interactionQuote" 181 - | "app.bsky.feed.defs#interactionShare" 170 + event?: RequestLess 171 + | RequestMore 172 + | ClickthroughItem 173 + | ClickthroughAuthor 174 + | ClickthroughReposter 175 + | ClickthroughEmbed 176 + | InteractionSeen 177 + | InteractionLike 178 + | InteractionRepost 179 + | InteractionReply 180 + | InteractionQuote 181 + | InteractionShare 182 182 | string; 183 183 184 184 /** Context on a feed item that was originally supplied by the feed generator on getFeedSkeleton. */
+1 -1
packages/emitter/test/integration/atproto/input/app/bsky/feed/generator.tsp
··· 25 25 /** Self-label values */ 26 26 labels?: (com.atproto.label.defs.SelfLabels | unknown); 27 27 28 - contentMode?: "app.bsky.feed.defs#contentModeUnspecified" | "app.bsky.feed.defs#contentModeVideo" | string; 28 + contentMode?: app.bsky.feed.defs.ContentModeUnspecified | app.bsky.feed.defs.ContentModeVideo | string; 29 29 30 30 @required createdAt: datetime; 31 31 }
+3 -4
packages/emitter/test/integration/atproto/input/app/bsky/graph/defs.tsp
··· 97 97 98 98 union ListPurpose { 99 99 string, 100 - 101 - Modlist: "app.bsky.graph.defs#modlist", 102 - Curatelist: "app.bsky.graph.defs#curatelist", 103 - Referencelist: "app.bsky.graph.defs#referencelist", 100 + Modlist, 101 + Curatelist, 102 + Referencelist, 104 103 } 105 104 106 105 /** A list of actors to apply an aggregate moderation action (mute/block) on. */
+52 -61
packages/emitter/test/integration/atproto/input/com/atproto/moderation/defs.tsp
··· 3 3 namespace com.atproto.moderation.defs { 4 4 union ReasonType { 5 5 string, 6 - 7 - ReasonSpam: "com.atproto.moderation.defs#reasonSpam", 8 - ReasonViolation: "com.atproto.moderation.defs#reasonViolation", 9 - ReasonMisleading: "com.atproto.moderation.defs#reasonMisleading", 10 - ReasonSexual: "com.atproto.moderation.defs#reasonSexual", 11 - ReasonRude: "com.atproto.moderation.defs#reasonRude", 12 - ReasonOther: "com.atproto.moderation.defs#reasonOther", 13 - ReasonAppeal: "com.atproto.moderation.defs#reasonAppeal", 14 - 15 - ToolsOzoneReportReasonAppeal: "tools.ozone.report.defs#reasonAppeal", 16 - 17 - ToolsOzoneReportReasonViolenceAnimalWelfare: "tools.ozone.report.defs#reasonViolenceAnimalWelfare", 18 - ToolsOzoneReportReasonViolenceThreats: "tools.ozone.report.defs#reasonViolenceThreats", 19 - ToolsOzoneReportReasonViolenceGraphicContent: "tools.ozone.report.defs#reasonViolenceGraphicContent", 20 - ToolsOzoneReportReasonViolenceSelfHarm: "tools.ozone.report.defs#reasonViolenceSelfHarm", 21 - ToolsOzoneReportReasonViolenceGlorification: "tools.ozone.report.defs#reasonViolenceGlorification", 22 - ToolsOzoneReportReasonViolenceExtremistContent: "tools.ozone.report.defs#reasonViolenceExtremistContent", 23 - ToolsOzoneReportReasonViolenceTrafficking: "tools.ozone.report.defs#reasonViolenceTrafficking", 24 - ToolsOzoneReportReasonViolenceOther: "tools.ozone.report.defs#reasonViolenceOther", 25 - 26 - ToolsOzoneReportReasonSexualAbuseContent: "tools.ozone.report.defs#reasonSexualAbuseContent", 27 - ToolsOzoneReportReasonSexualNCII: "tools.ozone.report.defs#reasonSexualNCII", 28 - ToolsOzoneReportReasonSexualSextortion: "tools.ozone.report.defs#reasonSexualSextortion", 29 - ToolsOzoneReportReasonSexualDeepfake: "tools.ozone.report.defs#reasonSexualDeepfake", 30 - ToolsOzoneReportReasonSexualAnimal: "tools.ozone.report.defs#reasonSexualAnimal", 31 - ToolsOzoneReportReasonSexualUnlabeled: "tools.ozone.report.defs#reasonSexualUnlabeled", 32 - ToolsOzoneReportReasonSexualOther: "tools.ozone.report.defs#reasonSexualOther", 33 - 34 - ToolsOzoneReportReasonChildSafetyCSAM: "tools.ozone.report.defs#reasonChildSafetyCSAM", 35 - ToolsOzoneReportReasonChildSafetyGroom: "tools.ozone.report.defs#reasonChildSafetyGroom", 36 - ToolsOzoneReportReasonChildSafetyMinorPrivacy: "tools.ozone.report.defs#reasonChildSafetyMinorPrivacy", 37 - ToolsOzoneReportReasonChildSafetyEndangerment: "tools.ozone.report.defs#reasonChildSafetyEndangerment", 38 - ToolsOzoneReportReasonChildSafetyHarassment: "tools.ozone.report.defs#reasonChildSafetyHarassment", 39 - ToolsOzoneReportReasonChildSafetyPromotion: "tools.ozone.report.defs#reasonChildSafetyPromotion", 40 - ToolsOzoneReportReasonChildSafetyOther: "tools.ozone.report.defs#reasonChildSafetyOther", 41 - 42 - ToolsOzoneReportReasonHarassmentTroll: "tools.ozone.report.defs#reasonHarassmentTroll", 43 - ToolsOzoneReportReasonHarassmentTargeted: "tools.ozone.report.defs#reasonHarassmentTargeted", 44 - ToolsOzoneReportReasonHarassmentHateSpeech: "tools.ozone.report.defs#reasonHarassmentHateSpeech", 45 - ToolsOzoneReportReasonHarassmentDoxxing: "tools.ozone.report.defs#reasonHarassmentDoxxing", 46 - ToolsOzoneReportReasonHarassmentOther: "tools.ozone.report.defs#reasonHarassmentOther", 47 - 48 - ToolsOzoneReportReasonMisleadingBot: "tools.ozone.report.defs#reasonMisleadingBot", 49 - ToolsOzoneReportReasonMisleadingImpersonation: "tools.ozone.report.defs#reasonMisleadingImpersonation", 50 - ToolsOzoneReportReasonMisleadingSpam: "tools.ozone.report.defs#reasonMisleadingSpam", 51 - ToolsOzoneReportReasonMisleadingScam: "tools.ozone.report.defs#reasonMisleadingScam", 52 - ToolsOzoneReportReasonMisleadingSyntheticContent: "tools.ozone.report.defs#reasonMisleadingSyntheticContent", 53 - ToolsOzoneReportReasonMisleadingMisinformation: "tools.ozone.report.defs#reasonMisleadingMisinformation", 54 - ToolsOzoneReportReasonMisleadingOther: "tools.ozone.report.defs#reasonMisleadingOther", 55 - 56 - ToolsOzoneReportReasonRuleSiteSecurity: "tools.ozone.report.defs#reasonRuleSiteSecurity", 57 - ToolsOzoneReportReasonRuleStolenContent: "tools.ozone.report.defs#reasonRuleStolenContent", 58 - ToolsOzoneReportReasonRuleProhibitedSales: "tools.ozone.report.defs#reasonRuleProhibitedSales", 59 - ToolsOzoneReportReasonRuleBanEvasion: "tools.ozone.report.defs#reasonRuleBanEvasion", 60 - ToolsOzoneReportReasonRuleOther: "tools.ozone.report.defs#reasonRuleOther", 61 - 62 - ToolsOzoneReportReasonCivicElectoralProcess: "tools.ozone.report.defs#reasonCivicElectoralProcess", 63 - ToolsOzoneReportReasonCivicDisclosure: "tools.ozone.report.defs#reasonCivicDisclosure", 64 - ToolsOzoneReportReasonCivicInterference: "tools.ozone.report.defs#reasonCivicInterference", 65 - ToolsOzoneReportReasonCivicMisinformation: "tools.ozone.report.defs#reasonCivicMisinformation", 66 - ToolsOzoneReportReasonCivicImpersonation: "tools.ozone.report.defs#reasonCivicImpersonation", 6 + ReasonSpam, 7 + ReasonViolation, 8 + ReasonMisleading, 9 + ReasonSexual, 10 + ReasonRude, 11 + ReasonOther, 12 + ReasonAppeal, 13 + tools.ozone.report.defs.ReasonAppeal, 14 + tools.ozone.report.defs.ReasonViolenceAnimalWelfare, 15 + tools.ozone.report.defs.ReasonViolenceThreats, 16 + tools.ozone.report.defs.ReasonViolenceGraphicContent, 17 + tools.ozone.report.defs.ReasonViolenceSelfHarm, 18 + tools.ozone.report.defs.ReasonViolenceGlorification, 19 + tools.ozone.report.defs.ReasonViolenceExtremistContent, 20 + tools.ozone.report.defs.ReasonViolenceTrafficking, 21 + tools.ozone.report.defs.ReasonViolenceOther, 22 + tools.ozone.report.defs.ReasonSexualAbuseContent, 23 + tools.ozone.report.defs.ReasonSexualNCII, 24 + tools.ozone.report.defs.ReasonSexualSextortion, 25 + tools.ozone.report.defs.ReasonSexualDeepfake, 26 + tools.ozone.report.defs.ReasonSexualAnimal, 27 + tools.ozone.report.defs.ReasonSexualUnlabeled, 28 + tools.ozone.report.defs.ReasonSexualOther, 29 + tools.ozone.report.defs.ReasonChildSafetyCSAM, 30 + tools.ozone.report.defs.ReasonChildSafetyGroom, 31 + tools.ozone.report.defs.ReasonChildSafetyMinorPrivacy, 32 + tools.ozone.report.defs.ReasonChildSafetyEndangerment, 33 + tools.ozone.report.defs.ReasonChildSafetyHarassment, 34 + tools.ozone.report.defs.ReasonChildSafetyPromotion, 35 + tools.ozone.report.defs.ReasonChildSafetyOther, 36 + tools.ozone.report.defs.ReasonHarassmentTroll, 37 + tools.ozone.report.defs.ReasonHarassmentTargeted, 38 + tools.ozone.report.defs.ReasonHarassmentHateSpeech, 39 + tools.ozone.report.defs.ReasonHarassmentDoxxing, 40 + tools.ozone.report.defs.ReasonHarassmentOther, 41 + tools.ozone.report.defs.ReasonMisleadingBot, 42 + tools.ozone.report.defs.ReasonMisleadingImpersonation, 43 + tools.ozone.report.defs.ReasonMisleadingSpam, 44 + tools.ozone.report.defs.ReasonMisleadingScam, 45 + tools.ozone.report.defs.ReasonMisleadingSyntheticContent, 46 + tools.ozone.report.defs.ReasonMisleadingMisinformation, 47 + tools.ozone.report.defs.ReasonMisleadingOther, 48 + tools.ozone.report.defs.ReasonRuleSiteSecurity, 49 + tools.ozone.report.defs.ReasonRuleStolenContent, 50 + tools.ozone.report.defs.ReasonRuleProhibitedSales, 51 + tools.ozone.report.defs.ReasonRuleBanEvasion, 52 + tools.ozone.report.defs.ReasonRuleOther, 53 + tools.ozone.report.defs.ReasonCivicElectoralProcess, 54 + tools.ozone.report.defs.ReasonCivicDisclosure, 55 + tools.ozone.report.defs.ReasonCivicInterference, 56 + tools.ozone.report.defs.ReasonCivicMisinformation, 57 + tools.ozone.report.defs.ReasonCivicImpersonation, 67 58 } 68 59 69 60 /** Spam: frequent unwanted promotion, replies, mentions. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingSpam`. */
+4 -4
packages/emitter/test/integration/atproto/input/tools/ozone/moderation/defs.tsp
··· 198 198 } 199 199 200 200 union SubjectReviewState { 201 - "#reviewOpen", 202 - "#reviewEscalated", 203 - "#reviewClosed", 204 - "#reviewNone", 201 + ReviewOpen, 202 + ReviewEscalated, 203 + ReviewClosed, 204 + ReviewNone, 205 205 string, 206 206 } 207 207
+45 -53
packages/emitter/test/integration/atproto/input/tools/ozone/report/defs.tsp
··· 3 3 namespace tools.ozone.report.defs { 4 4 union ReasonType { 5 5 string, 6 - 7 - ReasonAppeal: "tools.ozone.report.defs#reasonAppeal", 8 - 9 - ReasonViolenceAnimalWelfare: "tools.ozone.report.defs#reasonViolenceAnimalWelfare", 10 - ReasonViolenceThreats: "tools.ozone.report.defs#reasonViolenceThreats", 11 - ReasonViolenceGraphicContent: "tools.ozone.report.defs#reasonViolenceGraphicContent", 12 - ReasonViolenceSelfHarm: "tools.ozone.report.defs#reasonViolenceSelfHarm", 13 - ReasonViolenceGlorification: "tools.ozone.report.defs#reasonViolenceGlorification", 14 - ReasonViolenceExtremistContent: "tools.ozone.report.defs#reasonViolenceExtremistContent", 15 - ReasonViolenceTrafficking: "tools.ozone.report.defs#reasonViolenceTrafficking", 16 - ReasonViolenceOther: "tools.ozone.report.defs#reasonViolenceOther", 17 - 18 - ReasonSexualAbuseContent: "tools.ozone.report.defs#reasonSexualAbuseContent", 19 - ReasonSexualNCII: "tools.ozone.report.defs#reasonSexualNCII", 20 - ReasonSexualSextortion: "tools.ozone.report.defs#reasonSexualSextortion", 21 - ReasonSexualDeepfake: "tools.ozone.report.defs#reasonSexualDeepfake", 22 - ReasonSexualAnimal: "tools.ozone.report.defs#reasonSexualAnimal", 23 - ReasonSexualUnlabeled: "tools.ozone.report.defs#reasonSexualUnlabeled", 24 - ReasonSexualOther: "tools.ozone.report.defs#reasonSexualOther", 25 - 26 - ReasonChildSafetyCSAM: "tools.ozone.report.defs#reasonChildSafetyCSAM", 27 - ReasonChildSafetyGroom: "tools.ozone.report.defs#reasonChildSafetyGroom", 28 - ReasonChildSafetyMinorPrivacy: "tools.ozone.report.defs#reasonChildSafetyMinorPrivacy", 29 - ReasonChildSafetyEndangerment: "tools.ozone.report.defs#reasonChildSafetyEndangerment", 30 - ReasonChildSafetyHarassment: "tools.ozone.report.defs#reasonChildSafetyHarassment", 31 - ReasonChildSafetyPromotion: "tools.ozone.report.defs#reasonChildSafetyPromotion", 32 - ReasonChildSafetyOther: "tools.ozone.report.defs#reasonChildSafetyOther", 33 - 34 - ReasonHarassmentTroll: "tools.ozone.report.defs#reasonHarassmentTroll", 35 - ReasonHarassmentTargeted: "tools.ozone.report.defs#reasonHarassmentTargeted", 36 - ReasonHarassmentHateSpeech: "tools.ozone.report.defs#reasonHarassmentHateSpeech", 37 - ReasonHarassmentDoxxing: "tools.ozone.report.defs#reasonHarassmentDoxxing", 38 - ReasonHarassmentOther: "tools.ozone.report.defs#reasonHarassmentOther", 39 - 40 - ReasonMisleadingBot: "tools.ozone.report.defs#reasonMisleadingBot", 41 - ReasonMisleadingImpersonation: "tools.ozone.report.defs#reasonMisleadingImpersonation", 42 - ReasonMisleadingSpam: "tools.ozone.report.defs#reasonMisleadingSpam", 43 - ReasonMisleadingScam: "tools.ozone.report.defs#reasonMisleadingScam", 44 - ReasonMisleadingSyntheticContent: "tools.ozone.report.defs#reasonMisleadingSyntheticContent", 45 - ReasonMisleadingMisinformation: "tools.ozone.report.defs#reasonMisleadingMisinformation", 46 - ReasonMisleadingOther: "tools.ozone.report.defs#reasonMisleadingOther", 47 - 48 - ReasonRuleSiteSecurity: "tools.ozone.report.defs#reasonRuleSiteSecurity", 49 - ReasonRuleStolenContent: "tools.ozone.report.defs#reasonRuleStolenContent", 50 - ReasonRuleProhibitedSales: "tools.ozone.report.defs#reasonRuleProhibitedSales", 51 - ReasonRuleBanEvasion: "tools.ozone.report.defs#reasonRuleBanEvasion", 52 - ReasonRuleOther: "tools.ozone.report.defs#reasonRuleOther", 53 - 54 - ReasonCivicElectoralProcess: "tools.ozone.report.defs#reasonCivicElectoralProcess", 55 - ReasonCivicDisclosure: "tools.ozone.report.defs#reasonCivicDisclosure", 56 - ReasonCivicInterference: "tools.ozone.report.defs#reasonCivicInterference", 57 - ReasonCivicMisinformation: "tools.ozone.report.defs#reasonCivicMisinformation", 58 - ReasonCivicImpersonation: "tools.ozone.report.defs#reasonCivicImpersonation", 6 + ReasonAppeal, 7 + ReasonViolenceAnimalWelfare, 8 + ReasonViolenceThreats, 9 + ReasonViolenceGraphicContent, 10 + ReasonViolenceSelfHarm, 11 + ReasonViolenceGlorification, 12 + ReasonViolenceExtremistContent, 13 + ReasonViolenceTrafficking, 14 + ReasonViolenceOther, 15 + ReasonSexualAbuseContent, 16 + ReasonSexualNCII, 17 + ReasonSexualSextortion, 18 + ReasonSexualDeepfake, 19 + ReasonSexualAnimal, 20 + ReasonSexualUnlabeled, 21 + ReasonSexualOther, 22 + ReasonChildSafetyCSAM, 23 + ReasonChildSafetyGroom, 24 + ReasonChildSafetyMinorPrivacy, 25 + ReasonChildSafetyEndangerment, 26 + ReasonChildSafetyHarassment, 27 + ReasonChildSafetyPromotion, 28 + ReasonChildSafetyOther, 29 + ReasonHarassmentTroll, 30 + ReasonHarassmentTargeted, 31 + ReasonHarassmentHateSpeech, 32 + ReasonHarassmentDoxxing, 33 + ReasonHarassmentOther, 34 + ReasonMisleadingBot, 35 + ReasonMisleadingImpersonation, 36 + ReasonMisleadingSpam, 37 + ReasonMisleadingScam, 38 + ReasonMisleadingSyntheticContent, 39 + ReasonMisleadingMisinformation, 40 + ReasonMisleadingOther, 41 + ReasonRuleSiteSecurity, 42 + ReasonRuleStolenContent, 43 + ReasonRuleProhibitedSales, 44 + ReasonRuleBanEvasion, 45 + ReasonRuleOther, 46 + ReasonCivicElectoralProcess, 47 + ReasonCivicDisclosure, 48 + ReasonCivicInterference, 49 + ReasonCivicMisinformation, 50 + ReasonCivicImpersonation, 59 51 } 60 52 61 53 /** Appeal a previously taken moderation action */
+1 -1
packages/emitter/test/integration/atproto/input/tools/ozone/team/defs.tsp
··· 8 8 createdAt?: datetime; 9 9 updatedAt?: datetime; 10 10 lastUpdatedBy?: string; 11 - @required role: "#roleAdmin" | "#roleModerator" | "#roleTriage" | "#roleVerifier" | string; 11 + @required role: RoleAdmin | RoleModerator | RoleTriage | RoleVerifier | string; 12 12 } 13 13 14 14 /** Admin role. Highest level of access, can perform all actions. */
+4 -4
packages/emitter/test/integration/atproto/output/tools/ozone/moderation/defs.json
··· 319 319 "subjectReviewState": { 320 320 "type": "string", 321 321 "knownValues": [ 322 - "#reviewOpen", 323 - "#reviewEscalated", 324 - "#reviewClosed", 325 - "#reviewNone" 322 + "tools.ozone.moderation.defs#reviewOpen", 323 + "tools.ozone.moderation.defs#reviewEscalated", 324 + "tools.ozone.moderation.defs#reviewClosed", 325 + "tools.ozone.moderation.defs#reviewNone" 326 326 ] 327 327 }, 328 328 "reviewOpen": {
+4 -4
packages/emitter/test/integration/atproto/output/tools/ozone/team/defs.json
··· 18 18 "role": { 19 19 "type": "string", 20 20 "knownValues": [ 21 - "#roleAdmin", 22 - "#roleModerator", 23 - "#roleTriage", 24 - "#roleVerifier" 21 + "tools.ozone.team.defs#roleAdmin", 22 + "tools.ozone.team.defs#roleModerator", 23 + "tools.ozone.team.defs#roleTriage", 24 + "tools.ozone.team.defs#roleVerifier" 25 25 ] 26 26 } 27 27 }