···5151export interface TealClientAIOConfig extends TealClientConfig {
5252 type: 'tealfm'
5353}
5454-export interface TealArtistCredit {
5555- artistName?: string,
5656- /** The MusicBrainz artist ID URI, formatted as mbid:<uuid> */
5757- artistMbId?: string
5858-}
5959-/**
6060- * https://github.com/teal-fm/teal/blob/main/lexicons/fm.teal.alpha/feed/play.json
6161- * https://github.com/teal-fm/teal/blob/main/lexicons/fm.teal.alpha/feed/defs.json
6262- * */
6363-export interface ScrobbleRecord {
6464- $type: "fm.teal.alpha.feed.play",
6565- trackName: string,
6666- playedTime: string,
6767- duration?: number
6868- artists?: TealArtistCredit[]
6969- /** Album name */
7070- releaseName?: string
7171- /** A metadata string specifying the user agent where the format is `<app-identifier>/<version> (<kernel/OS-base>; <platform/OS-version>; <device-model>)` */
7272- submissionClientAgent: string,
7373- musicServiceBaseDomain?: string
7474- /** The MusicBrainz ID URI of the track, formatted as mbid:<uuid> */
7575- trackMbId?: string
7676- /** The MusicBrainz recording ID URI of the track, formatted as mbid:<uuid> */
7777- recordingMbId?: string
7878- /** The MusicBrainz release ID URI, formatted as mbid:<uuid> */
7979- releaseMbId?: string
8080- isrc?: string,
8181- /** The URL associated with this track */
8282- originUrl?: string
8383- /** Distinguishing information for track variants (e.g. 'Acoustic Version', 'Live at Wembley', 'Radio Edit', 'Demo'). Used to differentiate between different versions of the same base track while maintaining grouping capabilities. */
8484- trackDiscriminant?: string;
8585- /** Distinguishing information for release variants (e.g. 'Deluxe Edition', 'Remastered', '2023 Remaster', 'Special Edition'). Used to differentiate between different versions of the same base release while maintaining grouping capabilities. */
8686- releaseDiscriminant?: string;
8787- [x: string]: unknown
8888-}
8989-9090-export interface StatusRecord {
9191- $type: "fm.teal.alpha.actor.status",
9292- /** item is just ScrobbleRecord, but without $type */
9393- item: Omit<ScrobbleRecord, '$type'>,
9494- time: string,
9595- expiry: string,
9696- [x: string]: unknown
9797-}
98549955export interface ListRecord<T> {
10056 uri: string;
···11+# lexicon sources
22+33+this directory contains lexicon documents pulled from the following sources:
44+55+- https://github.com/teal-fm/teal.git (ref: main)
66+ - commit: f661868af2a56199f1b3cae1ad20cd5831ec4212
+11
src/backend/common/vendor/teal/lexicons/index.ts
···11+export * as FmTealAlphaActorDefs from "./types/fm/teal/alpha/actor/defs.js";
22+export * as FmTealAlphaActorGetProfile from "./types/fm/teal/alpha/actor/getProfile.js";
33+export * as FmTealAlphaActorGetProfiles from "./types/fm/teal/alpha/actor/getProfiles.js";
44+export * as FmTealAlphaActorProfile from "./types/fm/teal/alpha/actor/profile.js";
55+export * as FmTealAlphaActorProfileStatus from "./types/fm/teal/alpha/actor/profileStatus.js";
66+export * as FmTealAlphaActorSearchActors from "./types/fm/teal/alpha/actor/searchActors.js";
77+export * as FmTealAlphaActorStatus from "./types/fm/teal/alpha/actor/status.js";
88+export * as FmTealAlphaFeedDefs from "./types/fm/teal/alpha/feed/defs.js";
99+export * as FmTealAlphaFeedGetActorFeed from "./types/fm/teal/alpha/feed/getActorFeed.js";
1010+export * as FmTealAlphaFeedGetPlay from "./types/fm/teal/alpha/feed/getPlay.js";
1111+export * as FmTealAlphaFeedPlay from "./types/fm/teal/alpha/feed/play.js";
···11+import type {} from "@atcute/lexicons";
22+import * as v from "@atcute/lexicons/validations";
33+import type {} from "@atcute/lexicons/ambient";
44+import * as FmTealAlphaFeedDefs from "../feed/defs.js";
55+66+const _mainSchema = /*#__PURE__*/ v.record(
77+ /*#__PURE__*/ v.literal("self"),
88+ /*#__PURE__*/ v.object({
99+ $type: /*#__PURE__*/ v.literal("fm.teal.alpha.actor.status"),
1010+ /**
1111+ * The RFC 3339 formatted time of the expiry time of the item. If unavailable, default to 10 minutes past the start time.
1212+ */
1313+ expiry: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.datetimeString()),
1414+ get item() {
1515+ return FmTealAlphaFeedDefs.playViewSchema;
1616+ },
1717+ /**
1818+ * The RFC 3339 formatted time of when the item was recorded
1919+ */
2020+ time: /*#__PURE__*/ v.datetimeString(),
2121+ }),
2222+);
2323+2424+type main$schematype = typeof _mainSchema;
2525+2626+export interface mainSchema extends main$schematype {}
2727+2828+export const mainSchema = _mainSchema as mainSchema;
2929+3030+export interface Main extends v.InferInput<typeof mainSchema> {}
3131+3232+declare module "@atcute/lexicons/ambient" {
3333+ interface Records {
3434+ "fm.teal.alpha.actor.status": mainSchema;
3535+ }
3636+}