{"version":3,"sources":["../../src/utils/Sentence.ts"],"sourcesContent":["import type { Text } from '../types/Text';\nimport { text } from '../types/Template';\nimport { Id } from '../types/Id';\n\nexport class Sentence implements Text {\n  constructor(\n    word: Text,\n    pre?: Sentence,\n    private sentence: Text[] = (pre?.sentence ?? []).concat(word)\n  ) {}\n\n  toString(): string {\n    return text(this.sentence.join(' ')).sentence.toString();\n  }\n}\n\nclass Topic extends Sentence {\n  it = new Sentence('it', this);\n  anything = new Sentence('anything', this);\n  id = (id: Id) => new Sentence(`id '${id}'`, this);\n  your = (subject?: Text) => new Sentence(`your ${subject ?? 'item'}`, this);\n  a = (subject?: Text) => new Sentence(subject ? `a ${subject}` : 'an item', this);\n  an = (subject?: Text) => new Sentence(`an ${subject ?? 'item'}`, this);\n  any = (subjects?: Text) => new Sentence(`any ${subjects ?? 'items'}`, this);\n}\n\nclass Verb extends Sentence {\n  add = new Topic('add', this);\n  check = new Topic('check', this);\n  fetch = new Topic('fetch', this);\n  find = new Topic('find', this);\n  like = new Topic('like', this);\n  process = new Topic('process', this);\n  remove = new Topic('remove', this);\n  translate = new Topic('translate', this);\n  update = new Topic('update', this);\n  validate = new Topic('validate', this);\n}\n\nclass Not extends Verb {}\n\nclass SupportVerb extends Verb {\n  not = new Not('not', this);\n}\n\nclass We extends Sentence {\n  could = new SupportVerb('could', this);\n  did = new SupportVerb('did', this);\n\n  added = new Topic('added', this);\n  checked = new Topic('checked', this);\n  fetched = new Topic('fetched', this);\n  found = new Topic('found', this);\n  liked = new Topic('liked', this);\n  processed = new Topic('processed', this);\n  removed = new Topic('removed', this);\n  translated = new Topic('translated', this);\n  updated = new Topic('updated', this);\n  validated = new Topic('validated', this);\n}\n\nexport const we = new We('we');\n"],"mappings":";;;;;;;;;;;;;;;;;AAIO,IAAM,WAAN,MAA+B;AAAA,EACpC,YACE,MACA,KACQ,YAAoB,KAAK,YAAY,CAAC,GAAG,OAAO,IAAI,GAC5D;AADQ;AAAA,EACP;AAAA,EAEH,WAAmB;AACjB,WAAO,KAAK,KAAK,SAAS,KAAK,GAAG,CAAC,EAAE,SAAS,SAAS;AAAA,EACzD;AACF;AAEA,IAAM,QAAN,cAAoB,SAAS;AAAA,EAC3B,KAAK,IAAI,SAAS,MAAM,IAAI;AAAA,EAC5B,WAAW,IAAI,SAAS,YAAY,IAAI;AAAA,EACxC,KAAK,CAAC,OAAW,IAAI,SAAS,OAAO,EAAE,KAAK,IAAI;AAAA,EAChD,OAAO,CAAC,YAAmB,IAAI,SAAS,QAAQ,WAAW,MAAM,IAAI,IAAI;AAAA,EACzE,IAAI,CAAC,YAAmB,IAAI,SAAS,UAAU,KAAK,OAAO,KAAK,WAAW,IAAI;AAAA,EAC/E,KAAK,CAAC,YAAmB,IAAI,SAAS,MAAM,WAAW,MAAM,IAAI,IAAI;AAAA,EACrE,MAAM,CAAC,aAAoB,IAAI,SAAS,OAAO,YAAY,OAAO,IAAI,IAAI;AAC5E;AAEA,IAAM,OAAN,cAAmB,SAAS;AAAA,EAC1B,MAAM,IAAI,MAAM,OAAO,IAAI;AAAA,EAC3B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,EAC7B,OAAO,IAAI,MAAM,QAAQ,IAAI;AAAA,EAC7B,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,SAAS,IAAI,MAAM,UAAU,IAAI;AAAA,EACjC,YAAY,IAAI,MAAM,aAAa,IAAI;AAAA,EACvC,SAAS,IAAI,MAAM,UAAU,IAAI;AAAA,EACjC,WAAW,IAAI,MAAM,YAAY,IAAI;AACvC;AAEA,IAAM,MAAN,cAAkB,KAAK;AAAC;AAExB,IAAM,cAAN,cAA0B,KAAK;AAAA,EAC7B,MAAM,IAAI,IAAI,OAAO,IAAI;AAC3B;AAEA,IAAM,KAAN,cAAiB,SAAS;AAAA,EACxB,QAAQ,IAAI,YAAY,SAAS,IAAI;AAAA,EACrC,MAAM,IAAI,YAAY,OAAO,IAAI;AAAA,EAEjC,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,QAAQ,IAAI,MAAM,SAAS,IAAI;AAAA,EAC/B,YAAY,IAAI,MAAM,aAAa,IAAI;AAAA,EACvC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,aAAa,IAAI,MAAM,cAAc,IAAI;AAAA,EACzC,UAAU,IAAI,MAAM,WAAW,IAAI;AAAA,EACnC,YAAY,IAAI,MAAM,aAAa,IAAI;AACzC;AAEO,IAAM,KAAK,IAAI,GAAG,IAAI;","names":[]}