{"version":3,"sources":["jsdelivr-header.js","/npm/nodejs-dependency-list@0.1.1/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,IAAI,KAAO,QAAQ,sBAEnB,SAAS,QAAQ,EAAG,GAChB,EAAE,UAAY,OAAO,OAAO,EAAE,UAAW,CACrC,YAAe,CACX,MAAO,EACP,YAAY,EACZ,cAAc,EACd,UAAU,IAGtB,CAEA,SAAS,iBACL,KAAK,KAAK,MACV,KAAK,WAAa,IAAI,IAC1B,CA8CA,SAAS,WAAW,EAAe,EAAW,EAAa,GAGvD,GAFA,EAAU,QAAQ,EAAc,IAE5B,EAAU,WACV,OAAO,CAEf,CAgCA,SAAS,sBAAsB,EAAM,GACjC,EAAK,KAAK,KAAK,EAAM,KACzB,CAYA,SAAS,aACL,KAAK,aAAe,CAAC,EACrB,KAAK,WAAa,CAAC,CACvB,CAnGA,QAAQ,eAAgB,MAExB,eAAe,UAAU,QAAU,WAC/B,KAAK,WAAW,UAChB,KAAK,WAAa,KAClB,KAAK,UAAU,QAAQ,KAAK,KAChC,EAEA,eAAe,sBAAwB,WACnC,OAAO,UACX,EAEA,eAAe,UAAU,iBAAmB,WACxC,OAAO,IAAI,UACf,EAEA,eAAe,UAAU,sBAAwB,SAAU,GACvD,OAAO,EAAW,IACtB,EAEA,eAAe,UAAU,gBAAkB,SAAU,EAAiB,GAClE,KAAK,SAAS,EAAY,EAC9B,EAEA,eAAe,UAAU,SAAW,SAAU,EAAY,GACtD,IAAI,EAAgB,IAAI,KACpB,EAAa,IAAI,KACjB,EAAyB,KAAK,UAAU,IAAI,KAAK,KAAM,EAAY,GAEvE,KAAK,WAAW,QACZ,KAAK,YAAY,KACb,KACA,EACA,EACA,EACA,IAGR,EAAc,QAAQ,KAAK,WAAW,UAAU,KAAK,KAAK,aAC1D,EAAW,QAAQ,KAAK,gBAAgB,KAAK,KAAM,IACnD,EAAc,UACd,EAAW,SACf,EAUA,eAAe,UAAU,IAAM,SAAU,GACrC,IAAI,EAAW,KAAK,qBAChB,WAAW,KAAK,KAAM,KAAK,sBAAsB,KAAK,MAAO,IAG7D,EACA,KAAK,SAAS,EAAY,GACnB,EAAW,WAClB,KAAK,SAAS,GAEd,KAAK,WAAW,IAAI,EAE5B,EAEA,eAAe,UAAU,YAAc,SACnC,EACA,EACA,EACA,EACA,EACA,GAEA,EAAqB,QAAQ,EAAc,MAEvC,EAAqB,aACrB,EAAc,IAAI,GAClB,EAAW,IAAI,GAEvB,EAMA,eAAe,UAAU,iBAAmB,WACxC,IAAI,EAAO,CACP,KAAM,IAKV,OAFA,KAAK,WAAW,QAAQ,sBAAsB,KAAK,KAAM,IAElD,EAAK,KAAK,KAAK,IAC1B,EAOA,WAAW,UAAU,QAAU,WAC3B,KAAK,aAAe,KACpB,KAAK,WAAa,IACtB,EAEA,WAAW,UAAU,kBAAoB,SAAU,GAC/C,IAAK,IAAI,KAAK,EACV,KAAK,aAAa,GAAK,EAAI,GAC3B,KAAK,WAAW,IAAK,CAE7B,EAEA,WAAW,UAAU,QAAU,SAAU,UAC9B,KAAK,WAAW,EAC3B,EAEA,WAAW,UAAU,SAAW,WAC5B,IAAK,IAAI,KAAK,KAAK,WACf,OAAO,EAGX,OAAO,CACX,EAEA,OAAO,QAAU","file":"/npm/nodejs-dependency-list@0.1.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/nodejs-dependency-list@0.1.1/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';\n\nvar List = require('nodejs-linked-list');\n\nfunction inherit(a, b) {\n    a.prototype = Object.create(b.prototype, {\n        'constructor': {\n            value: a,\n            enumerable: false,\n            configurable: false,\n            writable: false\n        }\n    });\n}\n\nfunction DependencyList() {\n    List.call(this);\n    this.unResolved = new List();\n}\n\ninherit(DependencyList, List);\n\nDependencyList.prototype.destroy = function () {\n    this.unResolved.destroy();\n    this.unResolved = null;\n    List.prototype.destroy.call(this);\n};\n\nDependencyList.dependencyConstructor = function () {\n    return Dependency;\n};\n\nDependencyList.prototype.createDependency = function () {\n    return new Dependency();\n};\n\nDependencyList.prototype.getDependencyProperty = function (dependency) {\n    return dependency.name;\n};\n\nDependencyList.prototype.plainAddReverse = function (afterDependency, dependency) {\n    this.plainAdd(dependency, afterDependency);\n};\n\nDependencyList.prototype.plainAdd = function (dependency, afterDependency) {\n    var listForRemove = new List(),\n        listForAdd = new List(),\n        newDependencyContainer = List.prototype.add.call(this, dependency, afterDependency);\n\n    this.unResolved.forEach(\n        this.lateResolve.bind(\n            this,\n            listForRemove,\n            listForAdd,\n            newDependencyContainer,\n            dependency\n        )\n    );\n    listForRemove.forEach(this.unResolved.removeOne.bind(this.unResolved));\n    listForAdd.forEach(this.plainAddReverse.bind(this, newDependencyContainer));\n    listForRemove.destroy();\n    listForAdd.destroy();\n};\n\nfunction depChecker(targetProFunc, targetDep, depFromList, depFromListContainer) {\n    targetDep.resolve(targetProFunc(depFromList));\n\n    if (targetDep.resolved()) {\n        return depFromListContainer;\n    }\n}\n\nDependencyList.prototype.add = function (dependency) {\n    var depCheck = this.forEachWithCondition(\n        depChecker.bind(null, this.getDependencyProperty.bind(this), dependency)\n    );\n\n    if (depCheck) {\n        this.plainAdd(dependency, depCheck);\n    } else if (dependency.resolved()) {\n        this.plainAdd(dependency);\n    } else {\n        this.unResolved.add(dependency);\n    }\n};\n\nDependencyList.prototype.lateResolve = function (\n    listForRemove,\n    listForAdd,\n    newDependencyContainer,\n    newDependency,\n    unResolvedDependency,\n    unResolvedContainer) {\n    \n    unResolvedDependency.resolve(newDependency.name);\n\n    if (unResolvedDependency.resolved()) {\n        listForRemove.add(unResolvedContainer);\n        listForAdd.add(unResolvedDependency);\n    }\n};\n\nfunction addToListOfUnResolved(lObj, unRes) {\n    lObj.list.push(unRes.name);\n}\n\nDependencyList.prototype.listOfUnResolved = function () {\n    var lObj = {\n        list: []\n    };\n\n    this.unResolved.forEach(addToListOfUnResolved.bind(null, lObj));\n\n    return lObj.list.join(',');\n};\n\nfunction Dependency() {\n    this.dependencies = {};\n    this.unResolved = {};\n}\n\nDependency.prototype.destroy = function () {\n    this.dependencies = null;\n    this.unResolved = null;\n};\n\nDependency.prototype.cloneDependencies = function (obj) {\n    for (var i in obj) {\n        this.dependencies[i] = obj[i];\n        this.unResolved[i] = true;\n    }\n};\n\nDependency.prototype.resolve = function (depName) {\n    delete this.unResolved[depName];\n};\n\nDependency.prototype.resolved = function () {\n    for (var i in this.unResolved) {\n        return false;\n    }\n\n    return true;\n};\n\nmodule.exports = DependencyList;"]}