{
  "version": 3,
  "sources": ["../../src/records/TLAsset.ts"],
  "sourcesContent": ["import { createRecordType, defineMigrations, RecordId } from '@bigbluebutton/store'\nimport { T } from '@bigbluebutton/validate'\nimport { TLBaseAsset } from '../assets/TLBaseAsset'\nimport {\n\tbookmarkAssetMigrations,\n\tbookmarkAssetValidator,\n\tTLBookmarkAsset,\n} from '../assets/TLBookmarkAsset'\nimport { imageAssetMigrations, imageAssetValidator, TLImageAsset } from '../assets/TLImageAsset'\nimport { TLVideoAsset, videoAssetMigrations, videoAssetValidator } from '../assets/TLVideoAsset'\nimport { TLShape } from './TLShape'\n\n/** @public */\nexport type TLAsset = TLImageAsset | TLVideoAsset | TLBookmarkAsset\n\n/** @internal */\nexport const assetValidator: T.Validator<TLAsset> = T.model(\n\t'asset',\n\tT.union('type', {\n\t\timage: imageAssetValidator,\n\t\tvideo: videoAssetValidator,\n\t\tbookmark: bookmarkAssetValidator,\n\t})\n)\n\n/** @internal */\nexport const assetVersions = {\n\tAddMeta: 1,\n}\n\n/** @internal */\nexport const assetMigrations = defineMigrations({\n\tsubTypeKey: 'type',\n\tsubTypeMigrations: {\n\t\timage: imageAssetMigrations,\n\t\tvideo: videoAssetMigrations,\n\t\tbookmark: bookmarkAssetMigrations,\n\t},\n\tcurrentVersion: assetVersions.AddMeta,\n\tmigrators: {\n\t\t[assetVersions.AddMeta]: {\n\t\t\tup: (record) => {\n\t\t\t\treturn {\n\t\t\t\t\t...record,\n\t\t\t\t\tmeta: {},\n\t\t\t\t}\n\t\t\t},\n\t\t\tdown: ({ meta: _, ...record }) => {\n\t\t\t\treturn {\n\t\t\t\t\t...record,\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n})\n\n/** @public */\nexport type TLAssetPartial<T extends TLAsset = TLAsset> = T extends T\n\t? {\n\t\t\tid: TLAssetId\n\t\t\ttype: T['type']\n\t\t\tprops?: Partial<T['props']>\n\t\t\tmeta?: Partial<T['meta']>\n\t  } & Partial<Omit<T, 'type' | 'id' | 'props' | 'meta'>>\n\t: never\n\n/** @public */\nexport const AssetRecordType = createRecordType<TLAsset>('asset', {\n\tmigrations: assetMigrations,\n\tvalidator: assetValidator,\n\tscope: 'document',\n}).withDefaultProperties(() => ({\n\tmeta: {},\n}))\n\n/** @public */\nexport type TLAssetId = RecordId<TLBaseAsset<any, any>>\n\n/** @public */\nexport type TLAssetShape = Extract<TLShape, { props: { assetId: TLAssetId } }>\n"],
  "mappings": "AAAA,SAAS,kBAAkB,wBAAkC;AAC7D,SAAS,SAAS;AAElB;AAAA,EACC;AAAA,EACA;AAAA,OAEM;AACP,SAAS,sBAAsB,2BAAyC;AACxE,SAAuB,sBAAsB,2BAA2B;AAOjE,MAAM,iBAAuC,EAAE;AAAA,EACrD;AAAA,EACA,EAAE,MAAM,QAAQ;AAAA,IACf,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,EACX,CAAC;AACF;AAGO,MAAM,gBAAgB;AAAA,EAC5B,SAAS;AACV;AAGO,MAAM,kBAAkB,iBAAiB;AAAA,EAC/C,YAAY;AAAA,EACZ,mBAAmB;AAAA,IAClB,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,gBAAgB,cAAc;AAAA,EAC9B,WAAW;AAAA,IACV,CAAC,cAAc,OAAO,GAAG;AAAA,MACxB,IAAI,CAAC,WAAW;AACf,eAAO;AAAA,UACN,GAAG;AAAA,UACH,MAAM,CAAC;AAAA,QACR;AAAA,MACD;AAAA,MACA,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,OAAO,MAAM;AACjC,eAAO;AAAA,UACN,GAAG;AAAA,QACJ;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;AAaM,MAAM,kBAAkB,iBAA0B,SAAS;AAAA,EACjE,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AACR,CAAC,EAAE,sBAAsB,OAAO;AAAA,EAC/B,MAAM,CAAC;AACR,EAAE;",
  "names": []
}
