{"version":3,"sources":["jsdelivr-header.js","/npm/bookshelf-soft-delete@5.0.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,SAAS,cAAc,GACrB,OAAO,GAAQ,EAAK,eAAe,gBAAkB,EAAK,UAC5D,CAEA,SAAS,iBAAiB,GACxB,IAAI,EAAiB,EAAW,GAC5B,EAAkB,EAAW,GAGjC,GAAI,KAAK,MAAO,CACd,IAAI,EAAQ,KAAK,MAAM,QAAQ,MAG/B,EAAiB,EAAQ,IAAM,EAAW,GAC1C,EAAkB,EAAQ,IAAM,EAAW,EAC7C,CAEA,KAAK,OAAM,SAAU,GACnB,EAAG,OAAM,WACP,IAAI,EAAQ,KAAK,UAAU,GACvB,EAAW,IACb,EAAM,eAAe,EAEzB,GACF,GACF,CAEA,SAAS,qBAAqB,GACxB,MAAM,QAAQ,IAChB,KAAK,WAAa,EAClB,KAAK,eAAgB,IACH,IAAT,GACT,KAAK,WAAa,CAAC,aAAc,eACjC,KAAK,eAAgB,IAErB,KAAK,YAAa,EAClB,KAAK,cAAgB,KAEzB,CAEA,OAAO,QAAU,SAAU,GAEzB,IAAI,EAAS,EAAU,MAAM,UAC3B,EAAS,EAAU,WAAW,UAEhC,EAAU,MAAQ,EAAU,MAAM,OAAO,CAEvC,WAAY,WAEV,OADA,qBAAqB,KAAK,KAAM,KAAK,MAC9B,EAAO,WAAW,MAAM,KAAM,UACvC,EAEA,MAAO,SAAU,GAIf,OAHI,KAAK,gBAAkB,cAAc,IACvC,iBAAiB,KAAK,KAAM,KAAK,YAE5B,EAAO,MAAM,MAAM,KAAM,UAClC,EAEA,QAAS,SAAU,GAGjB,GAFA,EAAO,GAAQ,CAAC,GAEZ,KAAK,cAaP,MAAM,IAAI,UAAU,0EAZpB,GAAI,KAAK,IAAI,KAAK,WAAW,IAQ3B,OAPI,KAAK,WAAW,GAElB,KAAK,IAAI,KAAK,WAAW,GAAI,IAAI,MAGjC,KAAK,IAAI,KAAK,WAAW,GAAI,MAExB,KAAK,KAAK,KAAM,EAO7B,EAEA,QAAS,SAAU,GAGjB,GAFA,EAAO,GAAQ,CAAC,EAEZ,KAAK,gBAAkB,cAAc,GAAO,CAC9C,IAAI,EAAQ,KACR,EAAa,EAAM,WACvB,OAAO,EAAM,YAAY,aAAc,EAAO,GAC3C,MAAK,WAKJ,OAJI,EAAW,IACb,EAAM,IAAI,EAAW,GAAI,MAE3B,EAAM,IAAI,EAAW,GAAI,IAAI,MACtB,EAAM,KAAK,KAAM,EAC1B,IACC,MAAK,WACJ,OAAO,EAAM,YAAY,YAAa,OAAO,EAAW,EAC1D,GACJ,CACE,OAAO,EAAO,QAAQ,MAAM,KAAM,UAEtC,IAGF,EAAU,WAAa,EAAU,WAAW,OAAO,CACjD,MAAO,SAAU,GACf,IAAI,EAAY,CAAC,EAMjB,OALA,qBAAqB,KAAK,EAAW,KAAK,MAAM,UAAU,MAEtD,EAAU,gBAAkB,cAAc,IAC5C,iBAAiB,KAAK,KAAM,EAAU,YAEjC,EAAO,MAAM,MAAM,KAAM,UAClC,EAEA,MAAO,SAAU,EAAO,GACtB,EAAO,GAAQ,EAEf,IAAI,EAAY,CAAC,EAOjB,OANA,qBAAqB,KAAK,EAAW,KAAK,MAAM,UAAU,MAEtD,EAAU,gBAAkB,cAAc,IAC5C,iBAAiB,KAAK,KAAM,EAAU,YAGjC,EAAO,MAAM,MAAM,KAAM,UAClC,GAEJ","file":"/npm/bookshelf-soft-delete@5.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/bookshelf-soft-delete@5.0.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\r\n\r\nfunction shouldDisable(opts) {\r\n  return opts && opts.hasOwnProperty('softDelete') && !opts.softDelete;\r\n}\r\n\r\nfunction addDeletionCheck(softFields) {\r\n  var deletedAtField = softFields[0];\r\n  var restoredAtField = softFields[1];\r\n\r\n  /*eslint-disable no-underscore-dangle*/\r\n  if (this._knex) {\r\n    var table = this._knex._single.table;\r\n    /*eslint-enable no-underscore-dangle*/\r\n\r\n    deletedAtField = table + '.' + softFields[0];\r\n    restoredAtField = table + '.' + softFields[1];\r\n  }\r\n\r\n  this.query(function (qb) {\r\n    qb.where(function () {\r\n      var query = this.whereNull(deletedAtField);\r\n      if (softFields[1]) {\r\n        query.orWhereNotNull(restoredAtField);\r\n      }\r\n    });\r\n  });\r\n}\r\n\r\nfunction setSoftDeleteOptions(soft) {\r\n  if (Array.isArray(soft)) {\r\n    this.softFields = soft;\r\n    this.softActivated = true;\r\n  } else if (soft === true) {\r\n    this.softFields = ['deleted_at', 'restored_at'];\r\n    this.softActivated = true;\r\n  } else {\r\n    this.softFields = false;\r\n    this.softActivated = null;\r\n  }\r\n}\r\n\r\nmodule.exports = function (Bookshelf) {\r\n\r\n  var mProto = Bookshelf.Model.prototype,\r\n    cProto = Bookshelf.Collection.prototype;\r\n\r\n  Bookshelf.Model = Bookshelf.Model.extend({\r\n\r\n    initialize: function () {\r\n      setSoftDeleteOptions.call(this, this.soft);\r\n      return mProto.initialize.apply(this, arguments);\r\n    },\r\n\r\n    fetch: function (opts) {\r\n      if (this.softActivated && !shouldDisable(opts)) {\r\n        addDeletionCheck.call(this, this.softFields);\r\n      }\r\n      return mProto.fetch.apply(this, arguments);\r\n    },\r\n\r\n    restore: function (opts) {\r\n      opts = opts || {};\r\n\r\n      if (this.softActivated) {\r\n        if (this.get(this.softFields[0])) {\r\n          if (this.softFields[1]) {\r\n            // Set restored_at\r\n            this.set(this.softFields[1], new Date());\r\n          } else {\r\n            // If restored_at does not exist, remove the deleted_at\r\n            this.set(this.softFields[0], null);\r\n          }\r\n          return this.save(null, opts);\r\n        }\r\n      }\r\n      else {\r\n        throw new TypeError('restore can not be used if the model does not ' +\r\n        'have soft delete enabled');\r\n      }\r\n    },\r\n\r\n    destroy: function (opts) {\r\n      opts = opts || {};\r\n\r\n      if (this.softActivated && !shouldDisable(opts)) {\r\n        var model = this;\r\n        var softFields = model.softFields;\r\n        return model.triggerThen('destroying', model, opts)\r\n          .then(function () {\r\n            if (softFields[1]) {\r\n              model.set(softFields[1], null);\r\n            }\r\n            model.set(softFields[0], new Date());\r\n            return model.save(null, opts);\r\n          })\r\n          .then(function () {\r\n            return model.triggerThen('destroyed', model, undefined, opts);\r\n          });\r\n      } else {\r\n        return mProto.destroy.apply(this, arguments);\r\n      }\r\n    }\r\n  });\r\n\r\n  Bookshelf.Collection = Bookshelf.Collection.extend({\r\n    fetch: function (opts) {\r\n      var modelOpts = {};\r\n      setSoftDeleteOptions.call(modelOpts, this.model.prototype.soft);\r\n\r\n      if (modelOpts.softActivated && !shouldDisable(opts)) {\r\n        addDeletionCheck.call(this, modelOpts.softFields);\r\n      }\r\n      return cProto.fetch.apply(this, arguments);\r\n    },\r\n\r\n    count: function (field, opts) {\r\n      opts = opts || field;\r\n\r\n      var modelOpts = {};\r\n      setSoftDeleteOptions.call(modelOpts, this.model.prototype.soft);\r\n\r\n      if (modelOpts.softActivated && !shouldDisable(opts)) {\r\n        addDeletionCheck.call(this, modelOpts.softFields);\r\n      }\r\n\r\n      return cProto.count.apply(this, arguments);\r\n    }\r\n  });\r\n};\r\n"]}