{"/Users/developer/src/musicglue/pg-ts/__tests__/setup.ts": {"path":"/Users/developer/src/musicglue/pg-ts/__tests__/setup.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"setup.js","sourceRoot":"","sources":["setup.ts"],"names":[],"mappings":"","sourcesContent":[""]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"d6dcc381d95cfa7cdbdda96577a8fd3112bab3ba"}
,"/Users/developer/src/musicglue/pg-ts/src/utils/camelify.ts": {"path":"/Users/developer/src/musicglue/pg-ts/src/utils/camelify.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":17},"end":{"line":3,"column":34}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":50}},"3":{"start":{"line":4,"column":25},"end":{"line":4,"column":49}},"4":{"start":{"line":4,"column":33},"end":{"line":4,"column":48}},"5":{"start":{"line":5,"column":19},"end":{"line":5,"column":84}},"6":{"start":{"line":5,"column":26},"end":{"line":5,"column":84}},"7":{"start":{"line":6,"column":23},"end":{"line":6,"column":25}},"8":{"start":{"line":7,"column":22},"end":{"line":10,"column":1}},"9":{"start":{"line":8,"column":20},"end":{"line":8,"column":37}},"10":{"start":{"line":11,"column":0},"end":{"line":19,"column":2}},"11":{"start":{"line":12,"column":19},"end":{"line":12,"column":60}},"12":{"start":{"line":13,"column":35},"end":{"line":13,"column":41}},"13":{"start":{"line":14,"column":19},"end":{"line":14,"column":68}},"14":{"start":{"line":15,"column":24},"end":{"line":17,"column":114}},"15":{"start":{"line":15,"column":54},"end":{"line":17,"column":113}},"16":{"start":{"line":17,"column":83},"end":{"line":17,"column":110}},"17":{"start":{"line":18,"column":4},"end":{"line":18,"column":23}},"18":{"start":{"line":20,"column":0},"end":{"line":20,"column":43}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":15},"end":{"line":4,"column":16}},"loc":{"start":{"line":4,"column":25},"end":{"line":4,"column":49}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":25},"end":{"line":4,"column":26}},"loc":{"start":{"line":4,"column":33},"end":{"line":4,"column":48}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":19},"end":{"line":5,"column":20}},"loc":{"start":{"line":5,"column":26},"end":{"line":5,"column":84}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":8,"column":13},"end":{"line":8,"column":14}},"loc":{"start":{"line":8,"column":20},"end":{"line":8,"column":37}},"line":8},"4":{"name":"(anonymous_4)","decl":{"start":{"line":11,"column":25},"end":{"line":11,"column":26}},"loc":{"start":{"line":11,"column":55},"end":{"line":19,"column":1}},"line":11},"5":{"name":"(anonymous_5)","decl":{"start":{"line":15,"column":49},"end":{"line":15,"column":50}},"loc":{"start":{"line":15,"column":54},"end":{"line":17,"column":113}},"line":15},"6":{"name":"(anonymous_6)","decl":{"start":{"line":17,"column":71},"end":{"line":17,"column":72}},"loc":{"start":{"line":17,"column":83},"end":{"line":17,"column":110}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":33},"end":{"line":4,"column":48}},"type":"cond-expr","locations":[{"start":{"line":4,"column":40},"end":{"line":4,"column":44}},{"start":{"line":4,"column":47},"end":{"line":4,"column":48}}],"line":4},"1":{"loc":{"start":{"line":5,"column":26},"end":{"line":5,"column":84}},"type":"binary-expr","locations":[{"start":{"line":5,"column":26},"end":{"line":5,"column":35}},{"start":{"line":5,"column":39},"end":{"line":5,"column":60}},{"start":{"line":5,"column":64},"end":{"line":5,"column":84}}],"line":5},"2":{"loc":{"start":{"line":11,"column":26},"end":{"line":11,"column":50}},"type":"default-arg","locations":[{"start":{"line":11,"column":36},"end":{"line":11,"column":50}}],"line":11},"3":{"loc":{"start":{"line":15,"column":54},"end":{"line":17,"column":113}},"type":"cond-expr","locations":[{"start":{"line":16,"column":10},"end":{"line":16,"column":28}},{"start":{"line":17,"column":10},"end":{"line":17,"column":113}}],"line":15}},"s":{"0":1,"1":1,"2":1,"3":6,"4":50,"5":1,"6":39,"7":1,"8":1,"9":7,"10":1,"11":3,"12":3,"13":3,"14":3,"15":20,"16":11,"17":3,"18":1},"f":{"0":6,"1":50,"2":39,"3":7,"4":3,"5":20,"6":11},"b":{"0":[30,20],"1":[39,39,21],"2":[1],"3":[9,11]},"inputSourceMap":{"version":3,"file":"camelify.js","sourceRoot":"","sources":["camelify.ts"],"names":[],"mappings":";;AAAA,mCAA+D;AAWlD,QAAA,IAAI,GAAG,CAAC,CAAc,EAAE,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhF,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;AAE1F,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,aAAa,GAAoB;IACrC,OAAO,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;IACzC,SAAS,EAAE,kBAAS;CACrB,CAAC;AAEW,QAAA,cAAc,GAAG,CAAC,UAAoC,cAAc,EAAE,EAAE;IACnF,MAAM,MAAM,qBAAQ,aAAa,EAAK,OAAO,CAAE,CAAC;IAChD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IACtC,MAAM,MAAM,GAAG,YAAI,CAAC,eAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,YAAI,CACtB,UAAU,EACV,CAAC,CAAC,EAAE,CACF,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;QACpB,CAAC,mBACM,kBAAS,CAAC,gBAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtE,CACR,CAAC;IAEF,MAAM,CAAC,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,kBAAe,sBAAc,EAAE,CAAC","sourcesContent":["import { camelCase, fromPairs, negate, toPairs } from \"lodash\";\n\nexport type PredicateFn = (a: any) => boolean;\nexport type MapFn<A = any, B = any> = (x: A) => B;\nexport type KeyMapFn = MapFn<string, string>;\n\nexport interface CamelifyOptions {\n  exclude: PredicateFn;\n  keyMapper: KeyMapFn;\n}\n\nexport const when = (p: PredicateFn, f: MapFn) => (x: any) => (p(x) ? f(x) : x);\n\nconst isMappable = (x: any) => x != null && typeof x === \"object\" && !(x instanceof Date);\n\nconst defaultOptions = {};\nconst defaultConfig: CamelifyOptions = {\n  exclude: (k: string) => k.startsWith(\"_\"),\n  keyMapper: camelCase,\n};\n\nexport const camelCaseifier = (options: Partial<CamelifyOptions> = defaultOptions) => {\n  const config = { ...defaultConfig, ...options };\n  const { exclude, keyMapper } = config;\n  const mapKey = when(negate(exclude), keyMapper);\n\n  const transformFn = when(\n    isMappable,\n    x =>\n      Array.isArray(x)\n        ? x.map(transformFn)\n        : {\n            ...fromPairs(toPairs(x).map(([k, v]) => [mapKey(k), transformFn(v)])),\n          },\n  );\n\n  return transformFn;\n};\n\nexport default camelCaseifier();\n"]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"51bf67551e86091a4916a3ae99ab2f84a1fdd5f0"}
,"/Users/developer/src/musicglue/pg-ts/src/utils/sql.ts": {"path":"/Users/developer/src/musicglue/pg-ts/src/utils/sql.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":158}},"2":{"start":{"line":3,"column":46},"end":{"line":3,"column":157}},"3":{"start":{"line":3,"column":65},"end":{"line":3,"column":157}},"4":{"start":{"line":3,"column":102},"end":{"line":3,"column":156}},"5":{"start":{"line":4,"column":0},"end":{"line":24,"column":2}},"6":{"start":{"line":5,"column":22},"end":{"line":5,"column":24}},"7":{"start":{"line":6,"column":26},"end":{"line":16,"column":5}},"8":{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},"9":{"start":{"line":8,"column":12},"end":{"line":8,"column":26}},"10":{"start":{"line":10,"column":22},"end":{"line":10,"column":46}},"11":{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},"12":{"start":{"line":12,"column":12},"end":{"line":12,"column":35}},"13":{"start":{"line":14,"column":8},"end":{"line":14,"column":30}},"14":{"start":{"line":15,"column":8},"end":{"line":15,"column":38}},"15":{"start":{"line":17,"column":20},"end":{"line":22,"column":6}},"16":{"start":{"line":18,"column":22},"end":{"line":18,"column":38}},"17":{"start":{"line":19,"column":8},"end":{"line":21,"column":54}},"18":{"start":{"line":23,"column":4},"end":{"line":23,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":22},"end":{"line":3,"column":23}},"loc":{"start":{"line":3,"column":46},"end":{"line":3,"column":157}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":46},"end":{"line":3,"column":47}},"loc":{"start":{"line":3,"column":65},"end":{"line":3,"column":157}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":78},"end":{"line":3,"column":79}},"loc":{"start":{"line":3,"column":102},"end":{"line":3,"column":156}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":14},"end":{"line":4,"column":15}},"loc":{"start":{"line":4,"column":38},"end":{"line":24,"column":1}},"line":4},"4":{"name":"(anonymous_4)","decl":{"start":{"line":6,"column":26},"end":{"line":6,"column":27}},"loc":{"start":{"line":6,"column":37},"end":{"line":16,"column":5}},"line":6},"5":{"name":"(anonymous_5)","decl":{"start":{"line":17,"column":33},"end":{"line":17,"column":34}},"loc":{"start":{"line":17,"column":49},"end":{"line":22,"column":5}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},"type":"if","locations":[{"start":{"line":7,"column":8},"end":{"line":9,"column":9}},{"start":{"line":7,"column":8},"end":{"line":9,"column":9}}],"line":7},"1":{"loc":{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":13,"column":9}},{"start":{"line":11,"column":8},"end":{"line":13,"column":9}}],"line":11},"2":{"loc":{"start":{"line":19,"column":15},"end":{"line":21,"column":53}},"type":"cond-expr","locations":[{"start":{"line":20,"column":14},"end":{"line":20,"column":53}},{"start":{"line":21,"column":14},"end":{"line":21,"column":53}}],"line":19}},"s":{"0":1,"1":1,"2":4,"3":6,"4":6,"5":1,"6":16,"7":16,"8":31,"9":0,"10":31,"11":31,"12":11,"13":20,"14":20,"15":16,"16":31,"17":31,"18":16},"f":{"0":4,"1":6,"2":6,"3":16,"4":31,"5":31},"b":{"0":[0,31],"1":[11,20],"2":[3,28]},"inputSourceMap":{"version":3,"file":"sql.js","sourceRoot":"","sources":["sql.ts"],"names":[],"mappings":";;AAIa,QAAA,WAAW,GAAG,CAAC,KAA2B,EAAE,GAAG,QAAe,EAAE,EAAE,CAAC,CAC9E,aAA0B,EAClB,EAAE,CACV,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAElF,QAAA,GAAG,GAAG,CAAC,KAA2B,EAAE,GAAG,QAAe,EAAkB,EAAE;IACrF,MAAM,SAAS,GAAU,EAAE,CAAC;IAE5B,MAAM,aAAa,GAAG,CAAC,KAAU,EAAU,EAAE;QAC3C,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,KAAK,KAAK,UAAU;YAChC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE;YACzC,CAAC,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC,CAAC","sourcesContent":["import * as pg from \"pg\";\n\ntype IndexGetter = (value: any) => string;\n\nexport const SQLFragment = (parts: TemplateStringsArray, ...inValues: any[]) => (\n  getValueIndex: IndexGetter,\n): string =>\n  parts.reduce((prev, curr, valIdx) => `${prev}${getValueIndex(inValues[valIdx - 1])}${curr}`);\n\nexport const SQL = (parts: TemplateStringsArray, ...inValues: any[]): pg.QueryConfig => {\n  const outValues: any[] = [];\n\n  const getValueIndex = (value: any): string => {\n    if (value == null) {\n      return `NULL`;\n    }\n    const found = outValues.indexOf(value);\n    if (found > -1) {\n      return `$${found + 1}`;\n    }\n    outValues.push(value);\n    return `$${outValues.length}`;\n  };\n\n  const outText = parts.reduce((prev, curr) => {\n    const value = inValues.shift();\n    return typeof value === \"function\"\n      ? `${prev}${value(getValueIndex)}${curr}`\n      : `${prev}${getValueIndex(value)}${curr}`;\n  });\n\n  return { text: outText, values: outValues };\n};\n"]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"7683f503d6f4b0f4e73034d3b00e3500fe532e35"}
}
