{"version":3,"sources":["jsdelivr-header.js","/npm/@ecommerce-builder/spycameracctv-mini-cms-firestore-lib@0.1.0/lib/index.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ixKCoBA,IAAA,OAAA,WAGE,SAAA,EAAY,GACV,KAAK,GAAK,C,CA0Cd,OAvCS,EAAA,QAAP,WACI,MAAO,O,EAGL,EAAA,UAAA,cAAN,SAAoB,EAAmB,G,qFACrC,IACE,KAAK,GAAG,WAAW,YAAY,IAAI,GAAW,IAAI,E,CAClD,MAAO,GACP,MAAM,C,kBAIJ,EAAA,UAAA,eAAN,SAAqB,G,oHAEP,O,sBAAA,GAAM,KAAK,GAAG,WAAW,YAAY,IAAI,GAAW,O,OAC9D,IADI,EAAM,EAAA,QACF,OAAQ,CAEd,GADI,EAAO,EAAI,OAEb,SAAO,CACL,GAAI,EACJ,IAAK,EAAK,IACV,KAAM,EAAK,KACX,IAAK,EAAK,IACV,KAAM,EAAK,KACX,OAAQ,EAAK,OACb,QAAS,EAAK,QACd,SAAU,EAAK,SACf,cAAe,EAAK,cACpB,SAAU,EAAK,SACf,KAAM,EAAK,OAGf,MAAM,IAAI,MAAM,oC,CAElB,MAAM,IAAI,MAAM,cAAc,EAAS,mB,OAEvC,M,kCAGN,C,CA9CA,G","file":"/npm/@ecommerce-builder/spycameracctv-mini-cms-firestore-lib@0.1.0/dist/index.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@ecommerce-builder/spycameracctv-mini-cms-firestore-lib@0.1.0/dist/index.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import * as firebase from 'firebase/app';\nimport \"firebase/firestore\";\n\ntype HasProductId = {\n    id: string\n}\n\ntype HasCreateProduct = {\n  sku: string\n  path: string\n  ean: string\n  name: string\n  videos: string[]\n  manuals: string[]\n  software: string[]\n  specification: string\n  inTheBox: string\n  meta: {\n      title: string\n      description: string\n  }\n};\n\ntype CreateProduct = HasCreateProduct;\ntype Product = HasProductId & HasCreateProduct;\n\nclass Client {\n  db: firebase.firestore.Firestore;\n\n  constructor(db: firebase.firestore.Firestore) {\n    this.db = db;\n  }\n\n  static version() {\n      return 'VERSION';\n  }\n\n  async updateProduct(productId: string, product: CreateProduct): Promise<void> {\n    try {\n      this.db.collection('products').doc(productId).set(product);\n    } catch (err) {\n      throw err;\n    }\n  }\n\n  async getProductByID(productId: string): Promise<Product> {\n    try {\n      let doc = await this.db.collection('products').doc(productId).get();\n      if (doc.exists) {\n        let data = doc.data();\n        if (data) {\n          return {\n            id: productId,\n            sku: data.sku,\n            path: data.path,\n            ean: data.ean,\n            name: data.name,\n            videos: data.videos,\n            manuals: data.manuals,\n            software: data.software,\n            specification: data.specification,\n            inTheBox: data.inTheBox,\n            meta: data.meta\n          };\n        }\n        throw new Error('failed to read data from document');\n      }\n      throw new Error(`product id ${productId} does not exist`);\n    } catch (err) {\n      throw err;\n    }\n  }\n}\n\nexport default Client;\n"]}