{
  "version": 3,
  "sources": ["../../src/records/TLDocument.ts"],
  "sourcesContent": ["import { BaseRecord, createRecordType, defineMigrations, RecordId } from '@bigbluebutton/store'\nimport { JsonObject } from '@bigbluebutton/utils'\nimport { T } from '@bigbluebutton/validate'\n\n/**\n * TLDocument\n *\n * @public\n */\nexport interface TLDocument extends BaseRecord<'document', RecordId<TLDocument>> {\n\tgridSize: number\n\tname: string\n\tmeta: JsonObject\n}\n\n/** @internal */\nexport const documentValidator: T.Validator<TLDocument> = T.model(\n\t'document',\n\tT.object({\n\t\ttypeName: T.literal('document'),\n\t\tid: T.literal('document:document' as RecordId<TLDocument>),\n\t\tgridSize: T.number,\n\t\tname: T.string,\n\t\tmeta: T.jsonValue as T.ObjectValidator<JsonObject>,\n\t})\n)\n\n/** @internal */\nexport const documentVersions = {\n\tAddName: 1,\n\tAddMeta: 2,\n} as const\n\n/** @internal */\nexport const documentMigrations = defineMigrations({\n\tcurrentVersion: documentVersions.AddMeta,\n\tmigrators: {\n\t\t[documentVersions.AddName]: {\n\t\t\tup: (document: TLDocument) => {\n\t\t\t\treturn { ...document, name: '' }\n\t\t\t},\n\t\t\tdown: ({ name: _, ...document }: TLDocument) => {\n\t\t\t\treturn document\n\t\t\t},\n\t\t},\n\t\t[documentVersions.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 const DocumentRecordType = createRecordType<TLDocument>('document', {\n\tmigrations: documentMigrations,\n\tvalidator: documentValidator,\n\tscope: 'document',\n}).withDefaultProperties(\n\t(): Omit<TLDocument, 'id' | 'typeName'> => ({\n\t\tgridSize: 10,\n\t\tname: '',\n\t\tmeta: {},\n\t})\n)\n\n// all document records have the same ID: 'document:document'\n/** @public */\nexport const TLDOCUMENT_ID: RecordId<TLDocument> = DocumentRecordType.createId('document')\n"],
  "mappings": "AAAA,SAAqB,kBAAkB,wBAAkC;AAEzE,SAAS,SAAS;AAcX,MAAM,oBAA6C,EAAE;AAAA,EAC3D;AAAA,EACA,EAAE,OAAO;AAAA,IACR,UAAU,EAAE,QAAQ,UAAU;AAAA,IAC9B,IAAI,EAAE,QAAQ,mBAA2C;AAAA,IACzD,UAAU,EAAE;AAAA,IACZ,MAAM,EAAE;AAAA,IACR,MAAM,EAAE;AAAA,EACT,CAAC;AACF;AAGO,MAAM,mBAAmB;AAAA,EAC/B,SAAS;AAAA,EACT,SAAS;AACV;AAGO,MAAM,qBAAqB,iBAAiB;AAAA,EAClD,gBAAgB,iBAAiB;AAAA,EACjC,WAAW;AAAA,IACV,CAAC,iBAAiB,OAAO,GAAG;AAAA,MAC3B,IAAI,CAAC,aAAyB;AAC7B,eAAO,EAAE,GAAG,UAAU,MAAM,GAAG;AAAA,MAChC;AAAA,MACA,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,SAAS,MAAkB;AAC/C,eAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,CAAC,iBAAiB,OAAO,GAAG;AAAA,MAC3B,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;AAGM,MAAM,qBAAqB,iBAA6B,YAAY;AAAA,EAC1E,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AACR,CAAC,EAAE;AAAA,EACF,OAA4C;AAAA,IAC3C,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM,CAAC;AAAA,EACR;AACD;AAIO,MAAM,gBAAsC,mBAAmB,SAAS,UAAU;",
  "names": []
}
