From 73f518ecc748b2dab2de88f17aa93b5483bad62c Mon Sep 17 00:00:00 2001
From: znetsixe <73483679+znetsixe@users.noreply.github.com>
Date: Wed, 25 Jun 2025 17:27:32 +0200
Subject: [PATCH] Updates for machine
---
convert/definitions/angle.js | 49 --
convert/definitions/apparentPower.js | 49 --
convert/definitions/area.js | 93 ---
convert/definitions/current.js | 35 --
convert/definitions/digital.js | 93 ---
convert/definitions/each.js | 30 -
convert/definitions/energy.js | 63 --
convert/definitions/frequency.js | 78 ---
convert/definitions/illuminance.js | 37 --
convert/definitions/length.js | 86 ---
convert/definitions/mass.js | 78 ---
convert/definitions/pace.js | 51 --
convert/definitions/partsPer.js | 44 --
convert/definitions/power.js | 49 --
convert/definitions/pressure.js | 86 ---
convert/definitions/reactiveEnergy.js | 49 --
convert/definitions/reactivePower.js | 49 --
convert/definitions/speed.js | 58 --
convert/definitions/temperature.js | 55 --
convert/definitions/time.js | 86 ---
convert/definitions/voltage.js | 35 --
convert/definitions/volume.js | 200 ------
convert/definitions/volumeFlowRate.js | 282 ---------
convert/fysics.js | 160 -----
convert/index.js | 304 ---------
convert/lodash/lodash._basebind/LICENSE.txt | 22 -
convert/lodash/lodash._basebind/README.md | 15 -
convert/lodash/lodash._basebind/index.js | 58 --
convert/lodash/lodash._basebind/package.json | 21 -
convert/lodash/lodash._basecreate/LICENSE.txt | 22 -
convert/lodash/lodash._basecreate/README.md | 15 -
convert/lodash/lodash._basecreate/index.js | 42 --
.../lodash/lodash._basecreate/package.json | 21 -
.../lodash._basecreatecallback/LICENSE.txt | 22 -
.../lodash._basecreatecallback/README.md | 15 -
.../lodash._basecreatecallback/index.js | 80 ---
.../lodash._basecreatecallback/package.json | 22 -
.../lodash._basecreatewrapper/LICENSE.txt | 22 -
.../lodash._basecreatewrapper/README.md | 15 -
.../lodash/lodash._basecreatewrapper/index.js | 78 ---
.../lodash._basecreatewrapper/package.json | 22 -
.../lodash/lodash._createwrapper/LICENSE.txt | 22 -
.../lodash/lodash._createwrapper/README.md | 15 -
convert/lodash/lodash._createwrapper/index.js | 98 ---
.../lodash/lodash._createwrapper/package.json | 21 -
.../lodash/lodash._objecttypes/LICENSE.txt | 22 -
convert/lodash/lodash._objecttypes/README.md | 15 -
convert/lodash/lodash._objecttypes/index.js | 20 -
.../lodash/lodash._objecttypes/package.json | 16 -
convert/lodash/lodash._renative/LICENSE.txt | 22 -
convert/lodash/lodash._renative/README.md | 15 -
convert/lodash/lodash._renative/index.js | 23 -
convert/lodash/lodash._renative/package.json | 16 -
.../lodash/lodash._setbinddata/LICENSE.txt | 22 -
convert/lodash/lodash._setbinddata/README.md | 15 -
convert/lodash/lodash._setbinddata/index.js | 43 --
.../lodash/lodash._setbinddata/package.json | 20 -
convert/lodash/lodash._shimkeys/LICENSE.txt | 22 -
convert/lodash/lodash._shimkeys/README.md | 15 -
convert/lodash/lodash._shimkeys/index.js | 38 --
convert/lodash/lodash._shimkeys/package.json | 19 -
convert/lodash/lodash._slice/LICENSE.txt | 22 -
convert/lodash/lodash._slice/README.md | 15 -
convert/lodash/lodash._slice/index.js | 38 --
convert/lodash/lodash._slice/package.json | 16 -
convert/lodash/lodash.bind/LICENSE.txt | 22 -
convert/lodash/lodash.bind/README.md | 15 -
convert/lodash/lodash.bind/index.js | 41 --
convert/lodash/lodash.bind/package.json | 22 -
convert/lodash/lodash.foreach/LICENSE.txt | 22 -
convert/lodash/lodash.foreach/README.md | 15 -
convert/lodash/lodash.foreach/index.js | 55 --
convert/lodash/lodash.foreach/package.json | 21 -
convert/lodash/lodash.forown/LICENSE.txt | 22 -
convert/lodash/lodash.forown/README.md | 15 -
convert/lodash/lodash.forown/index.js | 50 --
convert/lodash/lodash.forown/package.json | 22 -
convert/lodash/lodash.identity/LICENSE.txt | 22 -
convert/lodash/lodash.identity/README.md | 15 -
convert/lodash/lodash.identity/index.js | 28 -
convert/lodash/lodash.identity/package.json | 17 -
convert/lodash/lodash.isfunction/LICENSE.txt | 22 -
convert/lodash/lodash.isfunction/README.md | 15 -
convert/lodash/lodash.isfunction/index.js | 27 -
convert/lodash/lodash.isfunction/package.json | 17 -
convert/lodash/lodash.isobject/LICENSE.txt | 22 -
convert/lodash/lodash.isobject/README.md | 15 -
convert/lodash/lodash.isobject/index.js | 39 --
convert/lodash/lodash.isobject/package.json | 20 -
convert/lodash/lodash.keys/LICENSE.txt | 22 -
convert/lodash/lodash.keys/README.md | 15 -
convert/lodash/lodash.keys/index.js | 36 --
convert/lodash/lodash.keys/package.json | 22 -
convert/lodash/lodash.noop/LICENSE.txt | 22 -
convert/lodash/lodash.noop/README.md | 15 -
convert/lodash/lodash.noop/index.js | 26 -
convert/lodash/lodash.noop/package.json | 17 -
convert/lodash/lodash.support/LICENSE.txt | 22 -
convert/lodash/lodash.support/README.md | 15 -
convert/lodash/lodash.support/index.js | 40 --
convert/lodash/lodash.support/package.json | 20 -
convert/percentError.js | 3 -
index.js | 12 +-
src/configs/rotatingMachine.json | 402 ++++++++++++
src/predict/interpolation.js | 387 ++++++++++++
src/predict/predictConfig.json | 199 ++++++
src/predict/predict_class.js | 593 ++++++++++++++++++
107 files changed, 1590 insertions(+), 4140 deletions(-)
delete mode 100644 convert/definitions/angle.js
delete mode 100644 convert/definitions/apparentPower.js
delete mode 100644 convert/definitions/area.js
delete mode 100644 convert/definitions/current.js
delete mode 100644 convert/definitions/digital.js
delete mode 100644 convert/definitions/each.js
delete mode 100644 convert/definitions/energy.js
delete mode 100644 convert/definitions/frequency.js
delete mode 100644 convert/definitions/illuminance.js
delete mode 100644 convert/definitions/length.js
delete mode 100644 convert/definitions/mass.js
delete mode 100644 convert/definitions/pace.js
delete mode 100644 convert/definitions/partsPer.js
delete mode 100644 convert/definitions/power.js
delete mode 100644 convert/definitions/pressure.js
delete mode 100644 convert/definitions/reactiveEnergy.js
delete mode 100644 convert/definitions/reactivePower.js
delete mode 100644 convert/definitions/speed.js
delete mode 100644 convert/definitions/temperature.js
delete mode 100644 convert/definitions/time.js
delete mode 100644 convert/definitions/voltage.js
delete mode 100644 convert/definitions/volume.js
delete mode 100644 convert/definitions/volumeFlowRate.js
delete mode 100644 convert/fysics.js
delete mode 100644 convert/index.js
delete mode 100644 convert/lodash/lodash._basebind/LICENSE.txt
delete mode 100644 convert/lodash/lodash._basebind/README.md
delete mode 100644 convert/lodash/lodash._basebind/index.js
delete mode 100644 convert/lodash/lodash._basebind/package.json
delete mode 100644 convert/lodash/lodash._basecreate/LICENSE.txt
delete mode 100644 convert/lodash/lodash._basecreate/README.md
delete mode 100644 convert/lodash/lodash._basecreate/index.js
delete mode 100644 convert/lodash/lodash._basecreate/package.json
delete mode 100644 convert/lodash/lodash._basecreatecallback/LICENSE.txt
delete mode 100644 convert/lodash/lodash._basecreatecallback/README.md
delete mode 100644 convert/lodash/lodash._basecreatecallback/index.js
delete mode 100644 convert/lodash/lodash._basecreatecallback/package.json
delete mode 100644 convert/lodash/lodash._basecreatewrapper/LICENSE.txt
delete mode 100644 convert/lodash/lodash._basecreatewrapper/README.md
delete mode 100644 convert/lodash/lodash._basecreatewrapper/index.js
delete mode 100644 convert/lodash/lodash._basecreatewrapper/package.json
delete mode 100644 convert/lodash/lodash._createwrapper/LICENSE.txt
delete mode 100644 convert/lodash/lodash._createwrapper/README.md
delete mode 100644 convert/lodash/lodash._createwrapper/index.js
delete mode 100644 convert/lodash/lodash._createwrapper/package.json
delete mode 100644 convert/lodash/lodash._objecttypes/LICENSE.txt
delete mode 100644 convert/lodash/lodash._objecttypes/README.md
delete mode 100644 convert/lodash/lodash._objecttypes/index.js
delete mode 100644 convert/lodash/lodash._objecttypes/package.json
delete mode 100644 convert/lodash/lodash._renative/LICENSE.txt
delete mode 100644 convert/lodash/lodash._renative/README.md
delete mode 100644 convert/lodash/lodash._renative/index.js
delete mode 100644 convert/lodash/lodash._renative/package.json
delete mode 100644 convert/lodash/lodash._setbinddata/LICENSE.txt
delete mode 100644 convert/lodash/lodash._setbinddata/README.md
delete mode 100644 convert/lodash/lodash._setbinddata/index.js
delete mode 100644 convert/lodash/lodash._setbinddata/package.json
delete mode 100644 convert/lodash/lodash._shimkeys/LICENSE.txt
delete mode 100644 convert/lodash/lodash._shimkeys/README.md
delete mode 100644 convert/lodash/lodash._shimkeys/index.js
delete mode 100644 convert/lodash/lodash._shimkeys/package.json
delete mode 100644 convert/lodash/lodash._slice/LICENSE.txt
delete mode 100644 convert/lodash/lodash._slice/README.md
delete mode 100644 convert/lodash/lodash._slice/index.js
delete mode 100644 convert/lodash/lodash._slice/package.json
delete mode 100644 convert/lodash/lodash.bind/LICENSE.txt
delete mode 100644 convert/lodash/lodash.bind/README.md
delete mode 100644 convert/lodash/lodash.bind/index.js
delete mode 100644 convert/lodash/lodash.bind/package.json
delete mode 100644 convert/lodash/lodash.foreach/LICENSE.txt
delete mode 100644 convert/lodash/lodash.foreach/README.md
delete mode 100644 convert/lodash/lodash.foreach/index.js
delete mode 100644 convert/lodash/lodash.foreach/package.json
delete mode 100644 convert/lodash/lodash.forown/LICENSE.txt
delete mode 100644 convert/lodash/lodash.forown/README.md
delete mode 100644 convert/lodash/lodash.forown/index.js
delete mode 100644 convert/lodash/lodash.forown/package.json
delete mode 100644 convert/lodash/lodash.identity/LICENSE.txt
delete mode 100644 convert/lodash/lodash.identity/README.md
delete mode 100644 convert/lodash/lodash.identity/index.js
delete mode 100644 convert/lodash/lodash.identity/package.json
delete mode 100644 convert/lodash/lodash.isfunction/LICENSE.txt
delete mode 100644 convert/lodash/lodash.isfunction/README.md
delete mode 100644 convert/lodash/lodash.isfunction/index.js
delete mode 100644 convert/lodash/lodash.isfunction/package.json
delete mode 100644 convert/lodash/lodash.isobject/LICENSE.txt
delete mode 100644 convert/lodash/lodash.isobject/README.md
delete mode 100644 convert/lodash/lodash.isobject/index.js
delete mode 100644 convert/lodash/lodash.isobject/package.json
delete mode 100644 convert/lodash/lodash.keys/LICENSE.txt
delete mode 100644 convert/lodash/lodash.keys/README.md
delete mode 100644 convert/lodash/lodash.keys/index.js
delete mode 100644 convert/lodash/lodash.keys/package.json
delete mode 100644 convert/lodash/lodash.noop/LICENSE.txt
delete mode 100644 convert/lodash/lodash.noop/README.md
delete mode 100644 convert/lodash/lodash.noop/index.js
delete mode 100644 convert/lodash/lodash.noop/package.json
delete mode 100644 convert/lodash/lodash.support/LICENSE.txt
delete mode 100644 convert/lodash/lodash.support/README.md
delete mode 100644 convert/lodash/lodash.support/index.js
delete mode 100644 convert/lodash/lodash.support/package.json
delete mode 100644 convert/percentError.js
create mode 100644 src/configs/rotatingMachine.json
create mode 100644 src/predict/interpolation.js
create mode 100644 src/predict/predictConfig.json
create mode 100644 src/predict/predict_class.js
diff --git a/convert/definitions/angle.js b/convert/definitions/angle.js
deleted file mode 100644
index a2f091f..0000000
--- a/convert/definitions/angle.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var angle;
-
-angle = {
- rad: {
- name: {
- singular: 'radian'
- , plural: 'radians'
- }
- , to_anchor: 180/Math.PI
- }
-, deg: {
- name: {
- singular: 'degree'
- , plural: 'degrees'
- }
- , to_anchor: 1
- }
-, grad: {
- name: {
- singular: 'gradian'
- , plural: 'gradians'
- }
- , to_anchor: 9/10
- }
-, arcmin: {
- name: {
- singular: 'arcminute'
- , plural: 'arcminutes'
- }
- , to_anchor: 1/60
- }
-, arcsec: {
- name: {
- singular: 'arcsecond'
- , plural: 'arcseconds'
- }
- , to_anchor: 1/3600
- }
-};
-
-module.exports = {
- metric: angle
-, _anchors: {
- metric: {
- unit: 'deg'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/apparentPower.js b/convert/definitions/apparentPower.js
deleted file mode 100644
index 58d35c6..0000000
--- a/convert/definitions/apparentPower.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var apparentPower;
-
-apparentPower = {
- VA: {
- name: {
- singular: 'Volt-Ampere'
- , plural: 'Volt-Amperes'
- }
- , to_anchor: 1
- }
-, mVA: {
- name: {
- singular: 'Millivolt-Ampere'
- , plural: 'Millivolt-Amperes'
- }
- , to_anchor: .001
- }
-, kVA: {
- name: {
- singular: 'Kilovolt-Ampere'
- , plural: 'Kilovolt-Amperes'
- }
- , to_anchor: 1000
- }
-, MVA: {
- name: {
- singular: 'Megavolt-Ampere'
- , plural: 'Megavolt-Amperes'
- }
- , to_anchor: 1000000
- }
-, GVA: {
- name: {
- singular: 'Gigavolt-Ampere'
- , plural: 'Gigavolt-Amperes'
- }
- , to_anchor: 1000000000
- }
-};
-
-module.exports = {
- metric: apparentPower
-, _anchors: {
- metric: {
- unit: 'VA'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/area.js b/convert/definitions/area.js
deleted file mode 100644
index 20b374d..0000000
--- a/convert/definitions/area.js
+++ /dev/null
@@ -1,93 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- mm2: {
- name: {
- singular: 'Square Millimeter'
- , plural: 'Square Millimeters'
- }
- , to_anchor: 1/1000000
- }
-, cm2: {
- name: {
- singular: 'Centimeter'
- , plural: 'Centimeters'
- }
- , to_anchor: 1/10000
- }
-, m2: {
- name: {
- singular: 'Square Meter'
- , plural: 'Square Meters'
- }
- , to_anchor: 1
- }
-, ha: {
- name: {
- singular: 'Hectare'
- , plural: 'Hectares'
- }
- , to_anchor: 10000
- }
-, km2: {
- name: {
- singular: 'Square Kilometer'
- , plural: 'Square Kilometers'
- }
- , to_anchor: 1000000
- }
-};
-
-imperial = {
- 'in2': {
- name: {
- singular: 'Square Inch'
- , plural: 'Square Inches'
- }
- , to_anchor: 1/144
- }
-, yd2: {
- name: {
- singular: 'Square Yard'
- , plural: 'Square Yards'
- }
- , to_anchor: 9
- }
-, ft2: {
- name: {
- singular: 'Square Foot'
- , plural: 'Square Feet'
- }
- , to_anchor: 1
- }
-, ac: {
- name: {
- singular: 'Acre'
- , plural: 'Acres'
- }
- , to_anchor: 43560
- }
-, mi2: {
- name: {
- singular: 'Square Mile'
- , plural: 'Square Miles'
- }
- , to_anchor: 27878400
- }
-};
-
-module.exports = {
- metric: metric
-, imperial: imperial
-, _anchors: {
- metric: {
- unit: 'm2'
- , ratio: 10.7639
- }
- , imperial: {
- unit: 'ft2'
- , ratio: 1/10.7639
- }
- }
-};
diff --git a/convert/definitions/current.js b/convert/definitions/current.js
deleted file mode 100644
index 05775df..0000000
--- a/convert/definitions/current.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var current;
-
-current = {
- A: {
- name: {
- singular: 'Ampere'
- , plural: 'Amperes'
- }
- , to_anchor: 1
- }
-, mA: {
- name: {
- singular: 'Milliampere'
- , plural: 'Milliamperes'
- }
- , to_anchor: .001
- }
-, kA: {
- name: {
- singular: 'Kiloampere'
- , plural: 'Kiloamperes'
- }
- , to_anchor: 1000
- }
-};
-
-module.exports = {
- metric: current
-, _anchors: {
- metric: {
- unit: 'A'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/digital.js b/convert/definitions/digital.js
deleted file mode 100644
index e63a4a6..0000000
--- a/convert/definitions/digital.js
+++ /dev/null
@@ -1,93 +0,0 @@
-var bits
- , bytes;
-
-bits = {
- b: {
- name: {
- singular: 'Bit'
- , plural: 'Bits'
- }
- , to_anchor: 1
- }
-, Kb: {
- name: {
- singular: 'Kilobit'
- , plural: 'Kilobits'
- }
- , to_anchor: 1024
- }
-, Mb: {
- name: {
- singular: 'Megabit'
- , plural: 'Megabits'
- }
- , to_anchor: 1048576
- }
-, Gb: {
- name: {
- singular: 'Gigabit'
- , plural: 'Gigabits'
- }
- , to_anchor: 1073741824
- }
-, Tb: {
- name: {
- singular: 'Terabit'
- , plural: 'Terabits'
- }
- , to_anchor: 1099511627776
- }
-};
-
-bytes = {
- B: {
- name: {
- singular: 'Byte'
- , plural: 'Bytes'
- }
- , to_anchor: 1
- }
-, KB: {
- name: {
- singular: 'Kilobyte'
- , plural: 'Kilobytes'
- }
- , to_anchor: 1024
- }
-, MB: {
- name: {
- singular: 'Megabyte'
- , plural: 'Megabytes'
- }
- , to_anchor: 1048576
- }
-, GB: {
- name: {
- singular: 'Gigabyte'
- , plural: 'Gigabytes'
- }
- , to_anchor: 1073741824
- }
-, TB: {
- name: {
- singular: 'Terabyte'
- , plural: 'Terabytes'
- }
- , to_anchor: 1099511627776
- }
-};
-
-module.exports = {
- bits: bits
-, bytes: bytes
-, _anchors: {
- bits: {
- unit: 'b'
- , ratio: 1/8
- }
- , bytes: {
- unit: 'B'
- , ratio: 8
- }
- }
-};
diff --git a/convert/definitions/each.js b/convert/definitions/each.js
deleted file mode 100644
index 0f4f331..0000000
--- a/convert/definitions/each.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- ea: {
- name: {
- singular: 'Each'
- , plural: 'Each'
- }
- , to_anchor: 1
- },
- dz: {
- name: {
- singular: 'Dozen'
- , plural: 'Dozens'
- }
- , to_anchor: 12
- }
-};
-
-module.exports = {
- metric: metric
-, imperial: {}
-, _anchors: {
- metric: {
- unit: 'ea'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/energy.js b/convert/definitions/energy.js
deleted file mode 100644
index f885df7..0000000
--- a/convert/definitions/energy.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var energy;
-
-energy = {
- Wh: {
- name: {
- singular: 'Watt-hour'
- , plural: 'Watt-hours'
- }
- , to_anchor: 3600
- }
-, mWh: {
- name: {
- singular: 'Milliwatt-hour'
- , plural: 'Milliwatt-hours'
- }
- , to_anchor: 3.6
- }
-, kWh: {
- name: {
- singular: 'Kilowatt-hour'
- , plural: 'Kilowatt-hours'
- }
- , to_anchor: 3600000
- }
-, MWh: {
- name: {
- singular: 'Megawatt-hour'
- , plural: 'Megawatt-hours'
- }
- , to_anchor: 3600000000
- }
-, GWh: {
- name: {
- singular: 'Gigawatt-hour'
- , plural: 'Gigawatt-hours'
- }
- , to_anchor: 3600000000000
- }
-, J: {
- name: {
- singular: 'Joule'
- , plural: 'Joules'
- }
- , to_anchor: 1
- }
-, kJ: {
- name: {
- singular: 'Kilojoule'
- , plural: 'Kilojoules'
- }
- , to_anchor: 1000
- }
-};
-
-module.exports = {
- metric: energy
-, _anchors: {
- metric: {
- unit: 'J'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/frequency.js b/convert/definitions/frequency.js
deleted file mode 100644
index c292e8b..0000000
--- a/convert/definitions/frequency.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var frequency;
-
-frequency = {
- mHz: {
- name: {
- singular: 'millihertz'
- , plural: 'millihertz'
- }
- , to_anchor: 1/1000
- }
-, Hz: {
- name: {
- singular: 'hertz'
- , plural: 'hertz'
- }
- , to_anchor: 1
- }
-, kHz: {
- name: {
- singular: 'kilohertz'
- , plural: 'kilohertz'
- }
- , to_anchor: 1000
- }
-, MHz: {
- name: {
- singular: 'megahertz'
- , plural: 'megahertz'
- }
- , to_anchor: 1000 * 1000
- }
-, GHz: {
- name: {
- singular: 'gigahertz'
- , plural: 'gigahertz'
- }
- , to_anchor: 1000 * 1000 * 1000
- }
-, THz: {
- name: {
- singular: 'terahertz'
- , plural: 'terahertz'
- }
- , to_anchor: 1000 * 1000 * 1000 * 1000
- }
-, rpm: {
- name: {
- singular: 'rotation per minute'
- , plural: 'rotations per minute'
- }
- , to_anchor: 1/60
- }
-, "deg/s": {
- name: {
- singular: 'degree per second'
- , plural: 'degrees per second'
- }
- , to_anchor: 1/360
- }
-, "rad/s": {
- name: {
- singular: 'radian per second'
- , plural: 'radians per second'
- }
- , to_anchor: 1/(Math.PI * 2)
- }
-};
-
-
-module.exports = {
- metric: frequency
-, _anchors: {
- frequency: {
- unit: 'hz'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/illuminance.js b/convert/definitions/illuminance.js
deleted file mode 100644
index eefb1f3..0000000
--- a/convert/definitions/illuminance.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var metric,
-imperial;
-
-metric = {
- 'lx': {
- name: {
- singular: 'Lux',
- plural: 'Lux'
- },
- to_anchor: 1
- }
-};
-
-imperial = {
- 'ft-cd': {
- name: {
- singular: 'Foot-candle',
- plural: 'Foot-candles'
- },
- to_anchor: 1
- }
-};
-
-module.exports = {
- metric: metric,
- imperial: imperial,
- _anchors: {
- metric: {
- unit: 'lx',
- ratio: 1/10.76391
- },
- imperial: {
- unit: 'ft-cd',
- ratio: 10.76391
- }
- }
-};
diff --git a/convert/definitions/length.js b/convert/definitions/length.js
deleted file mode 100644
index 84a7adf..0000000
--- a/convert/definitions/length.js
+++ /dev/null
@@ -1,86 +0,0 @@
-var metric,
-imperial;
-
-metric = {
- mm: {
- name: {
- singular: 'Millimeter',
- plural: 'Millimeters'
- },
- to_anchor: 1/1000
- },
- cm: {
- name: {
- singular: 'Centimeter',
- plural: 'Centimeters'
- },
- to_anchor: 1/100
- },
- m: {
- name: {
- singular: 'Meter',
- plural: 'Meters'
- },
- to_anchor: 1
- },
- km: {
- name: {
- singular: 'Kilometer',
- plural: 'Kilometers'
- },
- to_anchor: 1000
- }
-};
-
-imperial = {
- 'in': {
- name: {
- singular: 'Inch',
- plural: 'Inches'
- },
- to_anchor: 1/12
- },
- yd: {
- name: {
- singular: 'Yard',
- plural: 'Yards'
- },
- to_anchor: 3
- },
- 'ft-us': {
- name: {
- singular: 'US Survey Foot',
- plural: 'US Survey Feet'
- },
- to_anchor: 1.000002
- },
- ft: {
- name: {
- singular: 'Foot',
- plural: 'Feet'
- },
- to_anchor: 1
- },
- mi: {
- name: {
- singular: 'Mile',
- plural: 'Miles'
- },
- to_anchor: 5280
- }
-};
-
-module.exports = {
- metric: metric,
- imperial: imperial,
- _anchors: {
- metric: {
- unit: 'm',
- ratio: 3.28084
- },
- imperial: {
- unit: 'ft',
- ratio: 1/3.28084
- }
- }
-};
diff --git a/convert/definitions/mass.js b/convert/definitions/mass.js
deleted file mode 100644
index 7c60cb8..0000000
--- a/convert/definitions/mass.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- mcg: {
- name: {
- singular: 'Microgram'
- , plural: 'Micrograms'
- }
- , to_anchor: 1/1000000
- }
-, mg: {
- name: {
- singular: 'Milligram'
- , plural: 'Milligrams'
- }
- , to_anchor: 1/1000
- }
-, g: {
- name: {
- singular: 'Gram'
- , plural: 'Grams'
- }
- , to_anchor: 1
- }
-, kg: {
- name: {
- singular: 'Kilogram'
- , plural: 'Kilograms'
- }
- , to_anchor: 1000
-}
-, mt: {
- name: {
- singular: 'Metric Tonne'
- , plural: 'Metric Tonnes'
- }
- , to_anchor: 1000000
- }
-};
-
-imperial = {
- oz: {
- name: {
- singular: 'Ounce'
- , plural: 'Ounces'
- }
- , to_anchor: 1/16
- }
-, lb: {
- name: {
- singular: 'Pound'
- , plural: 'Pounds'
- }
- , to_anchor: 1
-}, t: {
- name: {
- singular: 'Ton',
- plural: 'Tons',
- },
- to_anchor: 2000,
- },
-};
-
-module.exports = {
- metric: metric
-, imperial: imperial
-, _anchors: {
- metric: {
- unit: 'g'
- , ratio: 1/453.592
- }
- , imperial: {
- unit: 'lb'
- , ratio: 453.592
- }
- }
-};
diff --git a/convert/definitions/pace.js b/convert/definitions/pace.js
deleted file mode 100644
index 1b5cdfa..0000000
--- a/convert/definitions/pace.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- 'min/km': {
- name: {
- singular: 'Minute per kilometre'
- , plural: 'Minutes per kilometre'
- }
- , to_anchor: 0.06
- }
- ,'s/m': {
- name: {
- singular: 'Second per metre'
- , plural: 'Seconds per metre'
- }
- , to_anchor: 1
- }
-}
-
-imperial = {
- 'min/mi': {
- name: {
- singular: 'Minute per mile'
- , plural: 'Minutes per mile'
- }
- , to_anchor: 0.0113636
- }
- , 's/ft': {
- name: {
- singular: 'Second per foot'
- , plural: 'Seconds per foot'
- }
- , to_anchor: 1
- }
-};
-
-module.exports = {
- metric: metric
-, imperial: imperial
-, _anchors: {
- metric: {
- unit: 's/m'
- , ratio: 0.3048
- }
- , imperial: {
- unit: 's/ft'
- , ratio: 1/0.3048
- }
- }
-};
diff --git a/convert/definitions/partsPer.js b/convert/definitions/partsPer.js
deleted file mode 100644
index 333a203..0000000
--- a/convert/definitions/partsPer.js
+++ /dev/null
@@ -1,44 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- ppm: {
- name: {
- singular: 'Part-per Million'
- , plural: 'Parts-per Million'
- }
- , to_anchor: 1
- }
- , ppb: {
- name: {
- singular: 'Part-per Billion'
- , plural: 'Parts-per Billion'
- }
- , to_anchor: .001
- }
- , ppt: {
- name: {
- singular: 'Part-per Trillion'
- , plural: 'Parts-per Trillion'
- }
- , to_anchor: .000001
- }
- , ppq: {
- name: {
- singular: 'Part-per Quadrillion'
- , plural: 'Parts-per Quadrillion'
- }
- , to_anchor: .000000001
- }
-};
-
-module.exports = {
- metric: metric
- , imperial: {}
- , _anchors: {
- metric: {
- unit: 'ppm'
- , ratio: .000001
- }
- }
-};
diff --git a/convert/definitions/power.js b/convert/definitions/power.js
deleted file mode 100644
index 36896cc..0000000
--- a/convert/definitions/power.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var power;
-
-power = {
- W: {
- name: {
- singular: 'Watt'
- , plural: 'Watts'
- }
- , to_anchor: 1
- }
-, mW: {
- name: {
- singular: 'Milliwatt'
- , plural: 'Milliwatts'
- }
- , to_anchor: .001
- }
-, kW: {
- name: {
- singular: 'Kilowatt'
- , plural: 'Kilowatts'
- }
- , to_anchor: 1000
- }
-, MW: {
- name: {
- singular: 'Megawatt'
- , plural: 'Megawatts'
- }
- , to_anchor: 1000000
- }
-, GW: {
- name: {
- singular: 'Gigawatt'
- , plural: 'Gigawatts'
- }
- , to_anchor: 1000000000
- }
-};
-
-module.exports = {
- metric: power
-, _anchors: {
- metric: {
- unit: 'W'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/pressure.js b/convert/definitions/pressure.js
deleted file mode 100644
index 91519ff..0000000
--- a/convert/definitions/pressure.js
+++ /dev/null
@@ -1,86 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- Pa: {
- name: {
- singular: 'pascal'
- , plural: 'pascals'
- }
- , to_anchor: 1/1000
- }
-, kPa: {
- name: {
- singular: 'kilopascal'
- , plural: 'kilopascals'
- }
- , to_anchor: 1
- }
-, MPa: {
- name: {
- singular: 'megapascal'
- , plural: 'megapascals'
- }
- , to_anchor: 1000
- }
-, hPa: {
- name: {
- singular: 'hectopascal'
- , plural: 'hectopascals'
- }
- , to_anchor: 1/10
- }
-, bar: {
- name: {
- singular: 'bar'
- , plural: 'bar'
- }
- , to_anchor: 100
- }
- , mbar: {
- name: {
- singular: 'mbar'
- , plural: 'mbar'
- }
- , to_anchor: 1/10
- }
-, torr: {
- name: {
- singular: 'torr'
- , plural: 'torr'
- }
- , to_anchor: 101325/760000
- }
-};
-
-imperial = {
- psi: {
- name: {
- singular: 'pound per square inch'
- , plural: 'pounds per square inch'
- }
- , to_anchor: 1/1000
- }
-, ksi: {
- name: {
- singular: 'kilopound per square inch'
- , plural: 'kilopound per square inch'
- }
- , to_anchor: 1
- }
-};
-
-module.exports = {
- metric: metric
-, imperial: imperial
-, _anchors: {
- metric: {
- unit: 'kPa'
- , ratio: 0.00014503768078
- }
- , imperial: {
- unit: 'psi'
- , ratio: 1/0.00014503768078
- }
- }
-};
diff --git a/convert/definitions/reactiveEnergy.js b/convert/definitions/reactiveEnergy.js
deleted file mode 100644
index 3d7e1a8..0000000
--- a/convert/definitions/reactiveEnergy.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var reactiveEnergy;
-
-reactiveEnergy = {
- VARh: {
- name: {
- singular: 'Volt-Ampere Reactive Hour'
- , plural: 'Volt-Amperes Reactive Hour'
- }
- , to_anchor: 1
- }
-, mVARh: {
- name: {
- singular: 'Millivolt-Ampere Reactive Hour'
- , plural: 'Millivolt-Amperes Reactive Hour'
- }
- , to_anchor: .001
- }
-, kVARh: {
- name: {
- singular: 'Kilovolt-Ampere Reactive Hour'
- , plural: 'Kilovolt-Amperes Reactive Hour'
- }
- , to_anchor: 1000
- }
-, MVARh: {
- name: {
- singular: 'Megavolt-Ampere Reactive Hour'
- , plural: 'Megavolt-Amperes Reactive Hour'
- }
- , to_anchor: 1000000
- }
-, GVARh: {
- name: {
- singular: 'Gigavolt-Ampere Reactive Hour'
- , plural: 'Gigavolt-Amperes Reactive Hour'
- }
- , to_anchor: 1000000000
- }
-};
-
-module.exports = {
- metric: reactiveEnergy
-, _anchors: {
- metric: {
- unit: 'VARh'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/reactivePower.js b/convert/definitions/reactivePower.js
deleted file mode 100644
index 348da53..0000000
--- a/convert/definitions/reactivePower.js
+++ /dev/null
@@ -1,49 +0,0 @@
-var reactivePower;
-
-reactivePower = {
- VAR: {
- name: {
- singular: 'Volt-Ampere Reactive'
- , plural: 'Volt-Amperes Reactive'
- }
- , to_anchor: 1
- }
-, mVAR: {
- name: {
- singular: 'Millivolt-Ampere Reactive'
- , plural: 'Millivolt-Amperes Reactive'
- }
- , to_anchor: .001
- }
-, kVAR: {
- name: {
- singular: 'Kilovolt-Ampere Reactive'
- , plural: 'Kilovolt-Amperes Reactive'
- }
- , to_anchor: 1000
- }
-, MVAR: {
- name: {
- singular: 'Megavolt-Ampere Reactive'
- , plural: 'Megavolt-Amperes Reactive'
- }
- , to_anchor: 1000000
- }
-, GVAR: {
- name: {
- singular: 'Gigavolt-Ampere Reactive'
- , plural: 'Gigavolt-Amperes Reactive'
- }
- , to_anchor: 1000000000
- }
-};
-
-module.exports = {
- metric: reactivePower
-, _anchors: {
- metric: {
- unit: 'VAR'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/speed.js b/convert/definitions/speed.js
deleted file mode 100644
index 81b3567..0000000
--- a/convert/definitions/speed.js
+++ /dev/null
@@ -1,58 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- 'm/s': {
- name: {
- singular: 'Metre per second'
- , plural: 'Metres per second'
- }
- , to_anchor: 3.6
- }
-, 'km/h': {
- name: {
- singular: 'Kilometre per hour'
- , plural: 'Kilometres per hour'
- }
- , to_anchor: 1
- }
-}
-
- imperial = {
- 'm/h': {
- name: {
- singular: 'Mile per hour'
- , plural: 'Miles per hour'
- }
- , to_anchor: 1
- }
- , knot: {
- name: {
- singular: 'Knot'
- , plural: 'Knots'
- }
- , to_anchor: 1.150779
- }
- , 'ft/s': {
- name: {
- singular: 'Foot per second'
- , plural: 'Feet per second'
- }
- , to_anchor: 0.681818
- }
-};
-
-module.exports = {
- metric: metric
-, imperial: imperial
-, _anchors: {
- metric: {
- unit: 'km/h'
- , ratio: 1/1.609344
- }
- , imperial: {
- unit: 'm/h'
- , ratio: 1.609344
- }
- }
-};
diff --git a/convert/definitions/temperature.js b/convert/definitions/temperature.js
deleted file mode 100644
index a118dbf..0000000
--- a/convert/definitions/temperature.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- C: {
- name: {
- singular: 'degree Celsius'
- , plural: 'degrees Celsius'
- }
- , to_anchor: 1
- , anchor_shift: 0
- },
- K: {
- name: {
- singular: 'degree Kelvin'
- , plural: 'degrees Kelvin'
- }
- , to_anchor: 1
- , anchor_shift: 273.15
- }
-};
-
-imperial = {
- F: {
- name: {
- singular: 'degree Fahrenheit'
- , plural: 'degrees Fahrenheit'
- }
- , to_anchor: 1
- },
- R: {
- name: {
- singular: 'degree Rankine'
- , plural: 'degrees Rankine'
- }
- , to_anchor: 1
- , anchor_shift: 459.67
- }
-};
-
-module.exports = {
- metric: metric
-, imperial: imperial
-, _anchors: {
- metric: {
- unit: 'C'
- , transform: function (C) { return C / (5/9) + 32 }
- }
- , imperial: {
- unit: 'F'
- , transform: function (F) { return (F - 32) * (5/9) }
- }
- }
-};
-
diff --git a/convert/definitions/time.js b/convert/definitions/time.js
deleted file mode 100644
index fc1ad32..0000000
--- a/convert/definitions/time.js
+++ /dev/null
@@ -1,86 +0,0 @@
-var time;
-var daysInYear = 365.25;
-
-time = {
- ns: {
- name: {
- singular: 'Nanosecond'
- , plural: 'Nanoseconds'
- }
- , to_anchor: 1/1000000000
- }
-, mu: {
- name: {
- singular: 'Microsecond'
- , plural: 'Microseconds'
- }
- , to_anchor: 1/1000000
- }
-, ms: {
- name: {
- singular: 'Millisecond'
- , plural: 'Milliseconds'
- }
- , to_anchor: 1/1000
- }
-, s: {
- name: {
- singular: 'Second'
- , plural: 'Seconds'
- }
- , to_anchor: 1
- }
-, min: {
- name: {
- singular: 'Minute'
- , plural: 'Minutes'
- }
- , to_anchor: 60
- }
-, h: {
- name: {
- singular: 'Hour'
- , plural: 'Hours'
- }
- , to_anchor: 60 * 60
- }
-, d: {
- name: {
- singular: 'Day'
- , plural: 'Days'
- }
- , to_anchor: 60 * 60 * 24
- }
-, week: {
- name: {
- singular: 'Week'
- , plural: 'Weeks'
- }
- , to_anchor: 60 * 60 * 24 * 7
- }
-, month: {
- name: {
- singular: 'Month'
- , plural: 'Months'
- }
- , to_anchor: 60 * 60 * 24 * daysInYear / 12
- }
-, year: {
- name: {
- singular: 'Year'
- , plural: 'Years'
- }
- , to_anchor: 60 * 60 * 24 * daysInYear
- }
-};
-
-
-module.exports = {
- metric: time
-, _anchors: {
- metric: {
- unit: 's'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/voltage.js b/convert/definitions/voltage.js
deleted file mode 100644
index 9234f42..0000000
--- a/convert/definitions/voltage.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var voltage;
-
-voltage = {
- V: {
- name: {
- singular: 'Volt'
- , plural: 'Volts'
- }
- , to_anchor: 1
- }
-, mV: {
- name: {
- singular: 'Millivolt'
- , plural: 'Millivolts'
- }
- , to_anchor: .001
- }
-, kV: {
- name: {
- singular: 'Kilovolt'
- , plural: 'Kilovolts'
- }
- , to_anchor: 1000
- }
-};
-
-module.exports = {
- metric: voltage
-, _anchors: {
- metric: {
- unit: 'V'
- , ratio: 1
- }
- }
-};
diff --git a/convert/definitions/volume.js b/convert/definitions/volume.js
deleted file mode 100644
index ee35057..0000000
--- a/convert/definitions/volume.js
+++ /dev/null
@@ -1,200 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- mm3: {
- name: {
- singular: 'Cubic Millimeter'
- , plural: 'Cubic Millimeters'
- }
- , to_anchor: 1/1000000
- }
-, cm3: {
- name: {
- singular: 'Cubic Centimeter'
- , plural: 'Cubic Centimeters'
- }
- , to_anchor: 1/1000
- }
-, ml: {
- name: {
- singular: 'Millilitre'
- , plural: 'Millilitres'
- }
- , to_anchor: 1/1000
- }
-, cl: {
- name: {
- singular: 'Centilitre'
- , plural: 'Centilitres'
- }
- , to_anchor: 1/100
- }
-, dl: {
- name: {
- singular: 'Decilitre'
- , plural: 'Decilitres'
- }
- , to_anchor: 1/10
- }
-, l: {
- name: {
- singular: 'Litre'
- , plural: 'Litres'
- }
- , to_anchor: 1
- }
-, kl: {
- name: {
- singular: 'Kilolitre'
- , plural: 'Kilolitres'
- }
- , to_anchor: 1000
- }
-, m3: {
- name: {
- singular: 'Cubic meter'
- , plural: 'Cubic meters'
- }
- , to_anchor: 1000
- }
-, km3: {
- name: {
- singular: 'Cubic kilometer'
- , plural: 'Cubic kilometers'
- }
- , to_anchor: 1000000000000
- }
-
-// Swedish units
-, krm: {
- name: {
- singular: 'Matsked'
- , plural: 'Matskedar'
- }
- , to_anchor: 1/1000
-}
-, tsk: {
- name: {
- singular: 'Tesked'
- , plural: 'Teskedar'
- }
- , to_anchor: 5/1000
- }
-, msk: {
- name: {
- singular: 'Matsked'
- , plural: 'Matskedar'
- }
- , to_anchor: 15/1000
- }
-, kkp: {
- name: {
- singular: 'Kaffekopp'
- , plural: 'Kaffekoppar'
- }
- , to_anchor: 150/1000
- }
-, glas: {
- name: {
- singular: 'Glas'
- , plural: 'Glas'
- }
- , to_anchor: 200/1000
- }
-, kanna: {
- name: {
- singular: 'Kanna'
- , plural: 'Kannor'
- }
- , to_anchor: 2.617
- }
-};
-
-imperial = {
- tsp: {
- name: {
- singular: 'Teaspoon'
- , plural: 'Teaspoons'
- }
- , to_anchor: 1/6
- }
-, Tbs: {
- name: {
- singular: 'Tablespoon'
- , plural: 'Tablespoons'
- }
- , to_anchor: 1/2
- }
-, in3: {
- name: {
- singular: 'Cubic inch'
- , plural: 'Cubic inches'
- }
- , to_anchor: 0.55411
- }
-, 'fl-oz': {
- name: {
- singular: 'Fluid Ounce'
- , plural: 'Fluid Ounces'
- }
- , to_anchor: 1
- }
-, cup: {
- name: {
- singular: 'Cup'
- , plural: 'Cups'
- }
- , to_anchor: 8
- }
-, pnt: {
- name: {
- singular: 'Pint'
- , plural: 'Pints'
- }
- , to_anchor: 16
- }
-, qt: {
- name: {
- singular: 'Quart'
- , plural: 'Quarts'
- }
- , to_anchor: 32
- }
-, gal: {
- name: {
- singular: 'Gallon'
- , plural: 'Gallons'
- }
- , to_anchor: 128
- }
-, ft3: {
- name: {
- singular: 'Cubic foot'
- , plural: 'Cubic feet'
- }
- , to_anchor: 957.506
- }
-, yd3: {
- name: {
- singular: 'Cubic yard'
- , plural: 'Cubic yards'
- }
- , to_anchor: 25852.7
- }
-};
-
-module.exports = {
- metric: metric
-, imperial: imperial
-, _anchors: {
- metric: {
- unit: 'l'
- , ratio: 33.8140226
- }
- , imperial: {
- unit: 'fl-oz'
- , ratio: 1/33.8140226
- }
- }
-};
diff --git a/convert/definitions/volumeFlowRate.js b/convert/definitions/volumeFlowRate.js
deleted file mode 100644
index b6cd84f..0000000
--- a/convert/definitions/volumeFlowRate.js
+++ /dev/null
@@ -1,282 +0,0 @@
-var metric
- , imperial;
-
-metric = {
- 'mm3/s': {
- name: {
- singular: 'Cubic Millimeter per second'
- , plural: 'Cubic Millimeters per second'
- }
- , to_anchor: 1/1000000
- }
-, 'cm3/s': {
- name: {
- singular: 'Cubic Centimeter per second'
- , plural: 'Cubic Centimeters per second'
- }
- , to_anchor: 1/1000
- }
-, 'ml/s': {
- name: {
- singular: 'Millilitre per second'
- , plural: 'Millilitres per second'
- }
- , to_anchor: 1/1000
- }
-, 'cl/s': {
- name: {
- singular: 'Centilitre per second'
- , plural: 'Centilitres per second'
- }
- , to_anchor: 1/100
- }
-, 'dl/s': {
- name: {
- singular: 'Decilitre per second'
- , plural: 'Decilitres per second'
- }
- , to_anchor: 1/10
- }
-, 'l/s': {
- name: {
- singular: 'Litre per second'
- , plural: 'Litres per second'
- }
- , to_anchor: 1
- }
-, 'l/min': {
- name: {
- singular: 'Litre per minute'
- , plural: 'Litres per minute'
- }
- , to_anchor: 1/60
- }
-, 'l/h': {
- name: {
- singular: 'Litre per hour'
- , plural: 'Litres per hour'
- }
- , to_anchor: 1/3600
- }
-, 'kl/s': {
- name: {
- singular: 'Kilolitre per second'
- , plural: 'Kilolitres per second'
- }
- , to_anchor: 1000
- }
-, 'kl/min': {
- name: {
- singular: 'Kilolitre per minute'
- , plural: 'Kilolitres per minute'
- }
- , to_anchor: 50/3
- }
-, 'kl/h': {
- name: {
- singular: 'Kilolitre per hour'
- , plural: 'Kilolitres per hour'
- }
- , to_anchor: 5/18
- }
-, 'm3/s': {
- name: {
- singular: 'Cubic meter per second'
- , plural: 'Cubic meters per second'
- }
- , to_anchor: 1000
- }
-, 'm3/min': {
- name: {
- singular: 'Cubic meter per minute'
- , plural: 'Cubic meters per minute'
- }
- , to_anchor: 50/3
- }
-, 'm3/h': {
- name: {
- singular: 'Cubic meter per hour'
- , plural: 'Cubic meters per hour'
- }
- , to_anchor: 5/18
- }
-, 'km3/s': {
- name: {
- singular: 'Cubic kilometer per second'
- , plural: 'Cubic kilometers per second'
- }
- , to_anchor: 1000000000000
- }
-};
-
-imperial = {
- 'tsp/s': {
- name: {
- singular: 'Teaspoon per second'
- , plural: 'Teaspoons per second'
- }
- , to_anchor: 1/6
- }
-, 'Tbs/s': {
- name: {
- singular: 'Tablespoon per second'
- , plural: 'Tablespoons per second'
- }
- , to_anchor: 1/2
- }
-, 'in3/s': {
- name: {
- singular: 'Cubic inch per second'
- , plural: 'Cubic inches per second'
- }
- , to_anchor: 0.55411
- }
-, 'in3/min': {
- name: {
- singular: 'Cubic inch per minute'
- , plural: 'Cubic inches per minute'
- }
- , to_anchor: 0.55411/60
- }
-, 'in3/h': {
- name: {
- singular: 'Cubic inch per hour'
- , plural: 'Cubic inches per hour'
- }
- , to_anchor: 0.55411/3600
- }
-, 'fl-oz/s': {
- name: {
- singular: 'Fluid Ounce per second'
- , plural: 'Fluid Ounces per second'
- }
- , to_anchor: 1
- }
-, 'fl-oz/min': {
- name: {
- singular: 'Fluid Ounce per minute'
- , plural: 'Fluid Ounces per minute'
- }
- , to_anchor: 1/60
- }
-, 'fl-oz/h': {
- name: {
- singular: 'Fluid Ounce per hour'
- , plural: 'Fluid Ounces per hour'
- }
- , to_anchor: 1/3600
- }
-, 'cup/s': {
- name: {
- singular: 'Cup per second'
- , plural: 'Cups per second'
- }
- , to_anchor: 8
- }
-, 'pnt/s': {
- name: {
- singular: 'Pint per second'
- , plural: 'Pints per second'
- }
- , to_anchor: 16
- }
-, 'pnt/min': {
- name: {
- singular: 'Pint per minute'
- , plural: 'Pints per minute'
- }
- , to_anchor: 4/15
- }
-, 'pnt/h': {
- name: {
- singular: 'Pint per hour'
- , plural: 'Pints per hour'
- }
- , to_anchor: 1/225
- }
-, 'qt/s': {
- name: {
- singular: 'Quart per second'
- , plural: 'Quarts per second'
- }
- , to_anchor: 32
- }
-, 'gal/s': {
- name: {
- singular: 'Gallon per second'
- , plural: 'Gallons per second'
- }
- , to_anchor: 128
- }
-, 'gal/min': {
- name: {
- singular: 'Gallon per minute'
- , plural: 'Gallons per minute'
- }
- , to_anchor: 32/15
- }
-, 'gal/h': {
- name: {
- singular: 'Gallon per hour'
- , plural: 'Gallons per hour'
- }
- , to_anchor: 8/225
- }
-, 'ft3/s': {
- name: {
- singular: 'Cubic foot per second'
- , plural: 'Cubic feet per second'
- }
- , to_anchor: 957.506
- }
-, 'ft3/min': {
- name: {
- singular: 'Cubic foot per minute'
- , plural: 'Cubic feet per minute'
- }
- , to_anchor: 957.506/60
- }
-, 'ft3/h': {
- name: {
- singular: 'Cubic foot per hour'
- , plural: 'Cubic feet per hour'
- }
- , to_anchor: 957.506/3600
- }
-, 'yd3/s': {
- name: {
- singular: 'Cubic yard per second'
- , plural: 'Cubic yards per second'
- }
- , to_anchor: 25852.7
- }
-, 'yd3/min': {
- name: {
- singular: 'Cubic yard per minute'
- , plural: 'Cubic yards per minute'
- }
- , to_anchor: 25852.7/60
- }
-, 'yd3/h': {
- name: {
- singular: 'Cubic yard per hour'
- , plural: 'Cubic yards per hour'
- }
- , to_anchor: 25852.7/3600
- }
-};
-
-module.exports = {
- metric: metric
-, imperial: imperial
-, _anchors: {
- metric: {
- unit: 'l/s'
- , ratio: 33.8140227
- }
- , imperial: {
- unit: 'fl-oz/s'
- , ratio: 1/33.8140227
- }
- }
-};
diff --git a/convert/fysics.js b/convert/fysics.js
deleted file mode 100644
index be9b9bc..0000000
--- a/convert/fysics.js
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
-Copyright:
-Year : (c) 2023
-Author : Rene De Ren
-Contact details : zn375ix3@gmail.com
-Location : The Netherlands
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
-(the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
-merge, publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-The author shall be notified of any and all improvements or adaptations this software.
-
-THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
-INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-class Fysics{
-
- constructor(){
-
- //gasses
- this.air_density = 0; // weight of air
- this.atm_pressure = 1.01325 ; //atm pressure at sea level
- this.earth_gravity = 9.80665 ; // acceleration of standard gravity on earth in m/s2
- this.water_molar_mass = 18.01528 // g/mol
- this.num_moles_water = 6.022 * 1023; // number of moles in water
- this.water_density = 997 ; // this.water_molar_mass * this.num_moles_water // water density in kg/m3;
-
- //load converter
- this.convert = require('./index');
-
- // o2 solubility curve based on pressure and temp
- this.o2Solubility = {
- 1: // abs bar
- {
- x:[0,5,10,15,20,25,30,35,40,45,50], // temp in degrees celcius
- y:[14.6,12.8,11.3,10.1,9.1,8.3,7.6,7,6.5,6,5.6], // mg/l
- },
- 2: // abs bar
- {
- x:[0,5,10,15,20,25,30,35,40,45,50], // temp in degrees celcius
- y:[29.2,25.5,22.6,20.2,18.2,16.5,15.2,14,12.9,12,11.3], // mg/l
- },
- 4: // abs bar
- {
- x:[0,5,10,15,20,25,30,35,40,45,50], // temp in degrees celcius
- y:[58.4,51.1,45.1,40.3,36.4,33.1,30.3,27.9,25.9,24,22.7], // mg/l
- },
- }
-
- }
-
- /*------------------- functions -------------------*/
- //use input to calculate air density in kg/m3 is valid up to 100 degrees
- //pressure in bar RH in % and temp in degrees celcius
- // Antoine Equation is, Log P = A - B / ( T + C )
- // D8 = temp , d7 = RH , pressure in mbar = d6
- //=1.2923*(273.15/(273.15+temp))*(((pressure*100000)-0.3783*((((MACHT(10,(8.07-(1730.63/(233.43+temp)))))*1000/760)*RH)*100))/(1.01325*100000))
- /*
- calc_air_dens(pressure,RH,temp){
-
- let air_density =
- 1.2923 *
- (
- 273.15 / ( 273.15 + temp )
- )
- *
- (
- (
- (
- pressure * 100000
- )
- - 0.3783 *
- (
- (
- (
- (
- Math.pow( 10, ( 8.07 - ( 1730.63 / ( 233.43 + temp) ) ) )
- )
- *1000/760
- )
- *RH
- )
- *100
- )
- )
- / (this.atm_pressure * 100000 )
- );
-
- return air_density ;
- }
- */
-
- calc_air_dens(pressure, RH, temp) {
- const Rd = 287.05; // Specific gas constant for dry air in J/(kg·K)
- const Rv = 461.495; // Specific gas constant for water vapor in J/(kg·K)
-
- // Convert temperature to Kelvin
- const T = temp + 273.15;
-
- // Antoine constants for water vapor
- const A = 8.07131;
- const B = 1730.63;
- const C = 233.426;
-
- // Calculate saturation vapor pressure (e_s) using the Antoine equation (in hPa)
- const e_s = Math.pow(10, (A - (B / (C + temp))));
-
- // Actual vapor pressure (e) in hPa
- const e = RH * e_s / 100;
-
- // Convert pressure to Pascals
- const pressurePa = this.convert(pressure).from('mbar').to('Pa');
-
- // Partial pressure of dry air (Pa)
- const p_d = pressurePa - (e * 100);
-
- // Air density (kg/m³)
- const air_density = (p_d / (Rd * T)) + ((e * 100) / (Rv * T));
-
- return air_density;
- }
-
- //convert height to pressure ( density => kg/m3 , height => meter) output is in bar
- heigth_to_pressure(density,height){
-
- //calc pressure
- let pressure = density * this.earth_gravity * height;
- //convert Pa to bar
- pressure = this.convert(pressure).from('Pa').to('mbar');
-
- return pressure;
- }
-
- //input is in meters !
- calc_volume(height,width,length){
- let result = 0;
- result = height * width * length;
- return result ;
- }
-
-
-}
-
-/*
-let fysics = new Fysics();
-console.log("converted pressure : " + fysics.heigth_to_pressure(fysics.water_density,10) + " mbar ");
-console.log( "air density : " + fysics.calc_air_dens(1.012,0,0) + " kg / m3" );
-
-//*/
-
-module.exports = Fysics;
\ No newline at end of file
diff --git a/convert/index.js b/convert/index.js
deleted file mode 100644
index 0734221..0000000
--- a/convert/index.js
+++ /dev/null
@@ -1,304 +0,0 @@
-var convert
- , keys = require('./lodash/lodash.keys')
- , each = require('./lodash/lodash.foreach')
- , measures = {
- length: require('./definitions/length')
- , area: require('./definitions/area')
- , mass: require('./definitions/mass')
- , volume: require('./definitions/volume')
- , each: require('./definitions/each')
- , temperature: require('./definitions/temperature')
- , time: require('./definitions/time')
- , digital: require('./definitions/digital')
- , partsPer: require('./definitions/partsPer')
- , speed: require('./definitions/speed')
- , pace: require('./definitions/pace')
- , pressure: require('./definitions/pressure')
- , current: require('./definitions/current')
- , voltage: require('./definitions/voltage')
- , power: require('./definitions/power')
- , reactivePower: require('./definitions/reactivePower')
- , apparentPower: require('./definitions/apparentPower')
- , energy: require('./definitions/energy')
- , reactiveEnergy: require('./definitions/reactiveEnergy')
- , volumeFlowRate: require('./definitions/volumeFlowRate')
- , illuminance: require('./definitions/illuminance')
- , frequency: require('./definitions/frequency')
- , angle : require('./definitions/angle')
- }
- , Converter;
-
-Converter = function (numerator, denominator) {
- if(denominator)
- this.val = numerator / denominator;
- else
- this.val = numerator;
-};
-
-/**
-* Lets the converter know the source unit abbreviation
-*/
-Converter.prototype.from = function (from) {
- if(this.destination)
- throw new Error('.from must be called before .to');
-
- this.origin = this.getUnit(from);
-
- if(!this.origin) {
- this.throwUnsupportedUnitError(from);
- }
-
- return this;
-};
-
-/**
-* Converts the unit and returns the value
-*/
-Converter.prototype.to = function (to) {
- if(!this.origin)
- throw new Error('.to must be called after .from');
-
- this.destination = this.getUnit(to);
-
- var result
- , transform;
-
- if(!this.destination) {
- this.throwUnsupportedUnitError(to);
- }
-
- // Don't change the value if origin and destination are the same
- if (this.origin.abbr === this.destination.abbr) {
- return this.val;
- }
-
- // You can't go from liquid to mass, for example
- if(this.destination.measure != this.origin.measure) {
- throw new Error('Cannot convert incompatible measures of '
- + this.destination.measure + ' and ' + this.origin.measure);
- }
-
- /**
- * Convert from the source value to its anchor inside the system
- */
- result = this.val * this.origin.unit.to_anchor;
-
- /**
- * For some changes it's a simple shift (C to K)
- * So we'll add it when convering into the unit (later)
- * and subtract it when converting from the unit
- */
- if (this.origin.unit.anchor_shift) {
- result -= this.origin.unit.anchor_shift
- }
-
- /**
- * Convert from one system to another through the anchor ratio. Some conversions
- * aren't ratio based or require more than a simple shift. We can provide a custom
- * transform here to provide the direct result
- */
- if(this.origin.system != this.destination.system) {
- transform = measures[this.origin.measure]._anchors[this.origin.system].transform;
- if (typeof transform === 'function') {
- result = transform(result)
- }
- else {
- result *= measures[this.origin.measure]._anchors[this.origin.system].ratio;
- }
- }
-
- /**
- * This shift has to be done after the system conversion business
- */
- if (this.destination.unit.anchor_shift) {
- result += this.destination.unit.anchor_shift;
- }
-
- /**
- * Convert to another unit inside the destination system
- */
- return result / this.destination.unit.to_anchor;
-};
-
-/**
-* Converts the unit to the best available unit.
-*/
-Converter.prototype.toBest = function(options) {
- if(!this.origin)
- throw new Error('.toBest must be called after .from');
-
- var options = Object.assign({
- exclude: [],
- cutOffNumber: 1,
- }, options)
-
- var best;
- /**
- Looks through every possibility for the 'best' available unit.
- i.e. Where the value has the fewest numbers before the decimal point,
- but is still higher than 1.
- */
- each(this.possibilities(), function(possibility) {
- var unit = this.describe(possibility);
- var isIncluded = options.exclude.indexOf(possibility) === -1;
-
- if (isIncluded && unit.system === this.origin.system) {
- var result = this.to(possibility);
- if (!best || (result >= options.cutOffNumber && result < best.val)) {
- best = {
- val: result,
- unit: possibility,
- singular: unit.singular,
- plural: unit.plural
- };
- }
- }
- }.bind(this));
-
- return best;
-}
-
-/**
-* Finds the unit
-*/
-Converter.prototype.getUnit = function (abbr) {
- var found;
-
- each(measures, function (systems, measure) {
- each(systems, function (units, system) {
- if(system == '_anchors')
- return false;
-
- each(units, function (unit, testAbbr) {
- if(testAbbr == abbr) {
- found = {
- abbr: abbr
- , measure: measure
- , system: system
- , unit: unit
- };
- return false;
- }
- });
-
- if(found)
- return false;
- });
-
- if(found)
- return false;
- });
-
- return found;
-};
-
-var describe = function(resp) {
- return {
- abbr: resp.abbr
- , measure: resp.measure
- , system: resp.system
- , singular: resp.unit.name.singular
- , plural: resp.unit.name.plural
- };
-}
-
-/**
-* An alias for getUnit
-*/
-Converter.prototype.describe = function (abbr) {
- var resp = Converter.prototype.getUnit(abbr);
- var desc = null;
-
- try {
- desc = describe(resp);
- } catch(err) {
- this.throwUnsupportedUnitError(abbr);
- }
-
- return desc;
-};
-
-/**
-* Detailed list of all supported units
-*/
-Converter.prototype.list = function (measure) {
- var list = [];
-
- each(measures, function (systems, testMeasure) {
- if(measure && measure !== testMeasure)
- return;
-
- each(systems, function (units, system) {
- if(system == '_anchors')
- return false;
-
- each(units, function (unit, abbr) {
- list = list.concat(describe({
- abbr: abbr,
- measure: testMeasure
- , system: system
- , unit: unit
- }));
- });
- });
- });
-
- return list;
-};
-
-Converter.prototype.throwUnsupportedUnitError = function (what) {
- var validUnits = [];
-
- each(measures, function (systems, measure) {
- each(systems, function (units, system) {
- if(system == '_anchors')
- return false;
-
- validUnits = validUnits.concat(keys(units));
- });
- });
-
- throw new Error('Unsupported unit ' + what + ', use one of: ' + validUnits.join(', '));
-}
-
-/**
-* Returns the abbreviated measures that the value can be
-* converted to.
-*/
-Converter.prototype.possibilities = function (measure) {
- var possibilities = [];
- if(!this.origin && !measure) {
- each(keys(measures), function (measure){
- each(measures[measure], function (units, system) {
- if(system == '_anchors')
- return false;
-
- possibilities = possibilities.concat(keys(units));
- });
- });
- } else {
- measure = measure || this.origin.measure;
- each(measures[measure], function (units, system) {
- if(system == '_anchors')
- return false;
-
- possibilities = possibilities.concat(keys(units));
- });
- }
-
- return possibilities;
-};
-
-/**
-* Returns the abbreviated measures that the value can be
-* converted to.
-*/
-Converter.prototype.measures = function () {
- return keys(measures);
-};
-
-convert = function (value) {
- return new Converter(value);
-};
-
-module.exports = convert;
diff --git a/convert/lodash/lodash._basebind/LICENSE.txt b/convert/lodash/lodash._basebind/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._basebind/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._basebind/README.md b/convert/lodash/lodash._basebind/README.md
deleted file mode 100644
index 55d05fb..0000000
--- a/convert/lodash/lodash._basebind/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._basebind v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) function `baseBind` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._basebind/index.js b/convert/lodash/lodash._basebind/index.js
deleted file mode 100644
index 6cf782d..0000000
--- a/convert/lodash/lodash._basebind/index.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseCreate = require('./../lodash._basecreate'),
- isObject = require('./../lodash.isobject'),
- setBindData = require('./../lodash._setbinddata');
-
-/**
- * Used for `Array` method references.
- *
- * Normally `Array.prototype` would suffice, however, using an array literal
- * avoids issues in Narwhal.
- */
-var arrayRef = [];
-
-/** Native method shortcuts */
-var push = arrayRef.push;
-
-/**
- * The base implementation of `_.bind` that creates the bound function and
- * sets its meta data.
- *
- * @private
- * @param {Array} bindData The bind data array.
- * @returns {Function} Returns the new bound function.
- */
-function baseBind(bindData) {
- var func = bindData[0],
- partialArgs = bindData[2],
- thisArg = bindData[4];
-
- function bound() {
- // `Function#bind` spec
- // http://es5.github.io/#x15.3.4.5
- if (partialArgs) {
- var args = partialArgs.slice();
- push.apply(args, arguments);
- }
- // mimic the constructor's `return` behavior
- // http://es5.github.io/#x13.2.2
- if (this instanceof bound) {
- // ensure `new bound` is an instance of `func`
- var thisBinding = baseCreate(func.prototype),
- result = func.apply(thisBinding, args || arguments);
- return isObject(result) ? result : thisBinding;
- }
- return func.apply(thisArg, args || arguments);
- }
- setBindData(bound, bindData);
- return bound;
-}
-
-module.exports = baseBind;
diff --git a/convert/lodash/lodash._basebind/package.json b/convert/lodash/lodash._basebind/package.json
deleted file mode 100644
index e452d30..0000000
--- a/convert/lodash/lodash._basebind/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "lodash._basebind",
- "version": "2.3.0",
- "description": "The internal Lo-Dash function `baseBind` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._basecreate": "~2.3.0",
- "lodash.isobject": "~2.3.0",
- "lodash._setbinddata": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._basecreate/LICENSE.txt b/convert/lodash/lodash._basecreate/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._basecreate/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._basecreate/README.md b/convert/lodash/lodash._basecreate/README.md
deleted file mode 100644
index 6c039a8..0000000
--- a/convert/lodash/lodash._basecreate/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._basecreate v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) function `baseCreate` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._basecreate/index.js b/convert/lodash/lodash._basecreate/index.js
deleted file mode 100644
index c6fc38a..0000000
--- a/convert/lodash/lodash._basecreate/index.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var isObject = require('./../lodash.isobject'),
- noop = require('./../lodash.noop'),
- reNative = require('./../lodash._renative');
-
-/* Native method shortcuts for methods with the same name as other `lodash` methods */
-var nativeCreate = reNative.test(nativeCreate = Object.create) && nativeCreate;
-
-/**
- * The base implementation of `_.create` without support for assigning
- * properties to the created object.
- *
- * @private
- * @param {Object} prototype The object to inherit from.
- * @returns {Object} Returns the new object.
- */
-function baseCreate(prototype, properties) {
- return isObject(prototype) ? nativeCreate(prototype) : {};
-}
-// fallback for browsers without `Object.create`
-if (!nativeCreate) {
- baseCreate = (function() {
- function Object() {}
- return function(prototype) {
- if (isObject(prototype)) {
- Object.prototype = prototype;
- var result = new Object;
- Object.prototype = null;
- }
- return result || global.Object();
- };
- }());
-}
-
-module.exports = baseCreate;
diff --git a/convert/lodash/lodash._basecreate/package.json b/convert/lodash/lodash._basecreate/package.json
deleted file mode 100644
index 6a72ca2..0000000
--- a/convert/lodash/lodash._basecreate/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "lodash._basecreate",
- "version": "2.3.0",
- "description": "The internal Lo-Dash function `baseCreate` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash.isobject": "~2.3.0",
- "lodash.noop": "~2.3.0",
- "lodash._renative": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._basecreatecallback/LICENSE.txt b/convert/lodash/lodash._basecreatecallback/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._basecreatecallback/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._basecreatecallback/README.md b/convert/lodash/lodash._basecreatecallback/README.md
deleted file mode 100644
index ff8a676..0000000
--- a/convert/lodash/lodash._basecreatecallback/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._basecreatecallback v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) function `baseCreateCallback` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._basecreatecallback/index.js b/convert/lodash/lodash._basecreatecallback/index.js
deleted file mode 100644
index e60dc44..0000000
--- a/convert/lodash/lodash._basecreatecallback/index.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var bind = require('./../lodash.bind'),
- identity = require('./../lodash.identity'),
- setBindData = require('./../lodash._setbinddata'),
- support = require('./../lodash.support');
-
-/** Used to detected named functions */
-var reFuncName = /^\s*function[ \n\r\t]+\w/;
-
-/** Used to detect functions containing a `this` reference */
-var reThis = /\bthis\b/;
-
-/** Native method shortcuts */
-var fnToString = Function.prototype.toString;
-
-/**
- * The base implementation of `_.createCallback` without support for creating
- * "_.pluck" or "_.where" style callbacks.
- *
- * @private
- * @param {*} [func=identity] The value to convert to a callback.
- * @param {*} [thisArg] The `this` binding of the created callback.
- * @param {number} [argCount] The number of arguments the callback accepts.
- * @returns {Function} Returns a callback function.
- */
-function baseCreateCallback(func, thisArg, argCount) {
- if (typeof func != 'function') {
- return identity;
- }
- // exit early for no `thisArg` or already bound by `Function#bind`
- if (typeof thisArg == 'undefined' || !('prototype' in func)) {
- return func;
- }
- var bindData = func.__bindData__;
- if (typeof bindData == 'undefined') {
- if (support.funcNames) {
- bindData = !func.name;
- }
- bindData = bindData || !support.funcDecomp;
- if (!bindData) {
- var source = fnToString.call(func);
- if (!support.funcNames) {
- bindData = !reFuncName.test(source);
- }
- if (!bindData) {
- // checks if `func` references the `this` keyword and stores the result
- bindData = reThis.test(source);
- setBindData(func, bindData);
- }
- }
- }
- // exit early if there are no `this` references or `func` is bound
- if (bindData === false || (bindData !== true && bindData[1] & 1)) {
- return func;
- }
- switch (argCount) {
- case 1: return function(value) {
- return func.call(thisArg, value);
- };
- case 2: return function(a, b) {
- return func.call(thisArg, a, b);
- };
- case 3: return function(value, index, collection) {
- return func.call(thisArg, value, index, collection);
- };
- case 4: return function(accumulator, value, index, collection) {
- return func.call(thisArg, accumulator, value, index, collection);
- };
- }
- return bind(func, thisArg);
-}
-
-module.exports = baseCreateCallback;
diff --git a/convert/lodash/lodash._basecreatecallback/package.json b/convert/lodash/lodash._basecreatecallback/package.json
deleted file mode 100644
index c969bad..0000000
--- a/convert/lodash/lodash._basecreatecallback/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "lodash._basecreatecallback",
- "version": "2.3.0",
- "description": "The internal Lo-Dash function `baseCreateCallback` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash.bind": "~2.3.0",
- "lodash.identity": "~2.3.0",
- "lodash._setbinddata": "~2.3.0",
- "lodash.support": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._basecreatewrapper/LICENSE.txt b/convert/lodash/lodash._basecreatewrapper/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._basecreatewrapper/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._basecreatewrapper/README.md b/convert/lodash/lodash._basecreatewrapper/README.md
deleted file mode 100644
index 8400ff6..0000000
--- a/convert/lodash/lodash._basecreatewrapper/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._basecreatewrapper v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) function `baseCreateWrapper` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._basecreatewrapper/index.js b/convert/lodash/lodash._basecreatewrapper/index.js
deleted file mode 100644
index 50309fb..0000000
--- a/convert/lodash/lodash._basecreatewrapper/index.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseCreate = require('./../lodash._basecreate'),
- isObject = require('./../lodash.isobject'),
- setBindData = require('./../lodash._setbinddata'),
- slice = require('./../lodash._slice');
-
-/**
- * Used for `Array` method references.
- *
- * Normally `Array.prototype` would suffice, however, using an array literal
- * avoids issues in Narwhal.
- */
-var arrayRef = [];
-
-/** Native method shortcuts */
-var push = arrayRef.push;
-
-/**
- * The base implementation of `createWrapper` that creates the wrapper and
- * sets its meta data.
- *
- * @private
- * @param {Array} bindData The bind data array.
- * @returns {Function} Returns the new function.
- */
-function baseCreateWrapper(bindData) {
- var func = bindData[0],
- bitmask = bindData[1],
- partialArgs = bindData[2],
- partialRightArgs = bindData[3],
- thisArg = bindData[4],
- arity = bindData[5];
-
- var isBind = bitmask & 1,
- isBindKey = bitmask & 2,
- isCurry = bitmask & 4,
- isCurryBound = bitmask & 8,
- key = func;
-
- function bound() {
- var thisBinding = isBind ? thisArg : this;
- if (partialArgs) {
- var args = partialArgs.slice();
- push.apply(args, arguments);
- }
- if (partialRightArgs || isCurry) {
- args || (args = slice(arguments));
- if (partialRightArgs) {
- push.apply(args, partialRightArgs);
- }
- if (isCurry && args.length < arity) {
- bitmask |= 16 & ~32;
- return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);
- }
- }
- args || (args = arguments);
- if (isBindKey) {
- func = thisBinding[key];
- }
- if (this instanceof bound) {
- thisBinding = baseCreate(func.prototype);
- var result = func.apply(thisBinding, args);
- return isObject(result) ? result : thisBinding;
- }
- return func.apply(thisBinding, args);
- }
- setBindData(bound, bindData);
- return bound;
-}
-
-module.exports = baseCreateWrapper;
diff --git a/convert/lodash/lodash._basecreatewrapper/package.json b/convert/lodash/lodash._basecreatewrapper/package.json
deleted file mode 100644
index 13ad4a2..0000000
--- a/convert/lodash/lodash._basecreatewrapper/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "lodash._basecreatewrapper",
- "version": "2.3.0",
- "description": "The internal Lo-Dash function `baseCreateWrapper` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._basecreate": "~2.3.0",
- "lodash.isobject": "~2.3.0",
- "lodash._setbinddata": "~2.3.0",
- "lodash._slice": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._createwrapper/LICENSE.txt b/convert/lodash/lodash._createwrapper/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._createwrapper/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._createwrapper/README.md b/convert/lodash/lodash._createwrapper/README.md
deleted file mode 100644
index 649ef36..0000000
--- a/convert/lodash/lodash._createwrapper/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._createwrapper v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) function `createWrapper` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._createwrapper/index.js b/convert/lodash/lodash._createwrapper/index.js
deleted file mode 100644
index b2b8de3..0000000
--- a/convert/lodash/lodash._createwrapper/index.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseBind = require('./../lodash._basebind'),
- baseCreateWrapper = require('./../lodash._basecreatewrapper'),
- isFunction = require('./../lodash.isfunction');
-
-/**
- * Used for `Array` method references.
- *
- * Normally `Array.prototype` would suffice, however, using an array literal
- * avoids issues in Narwhal.
- */
-var arrayRef = [];
-
-/** Native method shortcuts */
-var push = arrayRef.push;
-
-/**
- * Creates a function that, when called, either curries or invokes `func`
- * with an optional `this` binding and partially applied arguments.
- *
- * @private
- * @param {Function|string} func The function or method name to reference.
- * @param {number} bitmask The bitmask of method flags to compose.
- * The bitmask may be composed of the following flags:
- * 1 - `_.bind`
- * 2 - `_.bindKey`
- * 4 - `_.curry`
- * 8 - `_.curry` (bound)
- * 16 - `_.partial`
- * 32 - `_.partialRight`
- * @param {Array} [partialArgs] An array of arguments to prepend to those
- * provided to the new function.
- * @param {Array} [partialRightArgs] An array of arguments to append to those
- * provided to the new function.
- * @param {*} [thisArg] The `this` binding of `func`.
- * @param {number} [arity] The arity of `func`.
- * @returns {Function} Returns the new function.
- */
-function createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {
- var isBind = bitmask & 1,
- isBindKey = bitmask & 2,
- isCurry = bitmask & 4,
- isCurryBound = bitmask & 8,
- isPartial = bitmask & 16,
- isPartialRight = bitmask & 32;
-
- if (!isBindKey && !isFunction(func)) {
- throw new TypeError;
- }
- if (isPartial && !partialArgs.length) {
- bitmask &= ~16;
- isPartial = partialArgs = false;
- }
- if (isPartialRight && !partialRightArgs.length) {
- bitmask &= ~32;
- isPartialRight = partialRightArgs = false;
- }
- var bindData = func && func.__bindData__;
- if (bindData && bindData !== true) {
- bindData = bindData.slice();
-
- // set `thisBinding` is not previously bound
- if (isBind && !(bindData[1] & 1)) {
- bindData[4] = thisArg;
- }
- // set if previously bound but not currently (subsequent curried functions)
- if (!isBind && bindData[1] & 1) {
- bitmask |= 8;
- }
- // set curried arity if not yet set
- if (isCurry && !(bindData[1] & 4)) {
- bindData[5] = arity;
- }
- // append partial left arguments
- if (isPartial) {
- push.apply(bindData[2] || (bindData[2] = []), partialArgs);
- }
- // append partial right arguments
- if (isPartialRight) {
- push.apply(bindData[3] || (bindData[3] = []), partialRightArgs);
- }
- // merge flags
- bindData[1] |= bitmask;
- return createWrapper.apply(null, bindData);
- }
- // fast path for `_.bind`
- var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;
- return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);
-}
-
-module.exports = createWrapper;
diff --git a/convert/lodash/lodash._createwrapper/package.json b/convert/lodash/lodash._createwrapper/package.json
deleted file mode 100644
index 509eccb..0000000
--- a/convert/lodash/lodash._createwrapper/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "lodash._createwrapper",
- "version": "2.3.0",
- "description": "The internal Lo-Dash function `createWrapper` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._basebind": "~2.3.0",
- "lodash._basecreatewrapper": "~2.3.0",
- "lodash.isfunction": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._objecttypes/LICENSE.txt b/convert/lodash/lodash._objecttypes/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._objecttypes/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._objecttypes/README.md b/convert/lodash/lodash._objecttypes/README.md
deleted file mode 100644
index 58bd76e..0000000
--- a/convert/lodash/lodash._objecttypes/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._objecttypes v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) variable `objectTypes` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._objecttypes/index.js b/convert/lodash/lodash._objecttypes/index.js
deleted file mode 100644
index f24fa98..0000000
--- a/convert/lodash/lodash._objecttypes/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used to determine if values are of the language type Object */
-var objectTypes = {
- 'boolean': false,
- 'function': true,
- 'object': true,
- 'number': false,
- 'string': false,
- 'undefined': false
-};
-
-module.exports = objectTypes;
diff --git a/convert/lodash/lodash._objecttypes/package.json b/convert/lodash/lodash._objecttypes/package.json
deleted file mode 100644
index 2dc2610..0000000
--- a/convert/lodash/lodash._objecttypes/package.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "lodash._objecttypes",
- "version": "2.3.0",
- "description": "The internal Lo-Dash variable `objectTypes` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._renative/LICENSE.txt b/convert/lodash/lodash._renative/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._renative/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._renative/README.md b/convert/lodash/lodash._renative/README.md
deleted file mode 100644
index 0d9a605..0000000
--- a/convert/lodash/lodash._renative/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._renative v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) variable `reNative` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._renative/index.js b/convert/lodash/lodash._renative/index.js
deleted file mode 100644
index 41c1476..0000000
--- a/convert/lodash/lodash._renative/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/** Used for native method references */
-var objectProto = Object.prototype;
-
-/** Used to resolve the internal [[Class]] of values */
-var toString = objectProto.toString;
-
-/** Used to detect if a method is native */
-var reNative = RegExp('^' +
- String(toString)
- .replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
- .replace(/toString| for [^\]]+/g, '.*?') + '$'
-);
-
-module.exports = reNative;
diff --git a/convert/lodash/lodash._renative/package.json b/convert/lodash/lodash._renative/package.json
deleted file mode 100644
index 24bdaaf..0000000
--- a/convert/lodash/lodash._renative/package.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "lodash._renative",
- "version": "2.3.0",
- "description": "The internal Lo-Dash variable `reNative` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._setbinddata/LICENSE.txt b/convert/lodash/lodash._setbinddata/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._setbinddata/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._setbinddata/README.md b/convert/lodash/lodash._setbinddata/README.md
deleted file mode 100644
index e7ab45d..0000000
--- a/convert/lodash/lodash._setbinddata/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._setbinddata v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) function `setBindData` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._setbinddata/index.js b/convert/lodash/lodash._setbinddata/index.js
deleted file mode 100644
index 7e86d4c..0000000
--- a/convert/lodash/lodash._setbinddata/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var noop = require('./../lodash.noop'),
- reNative = require('./../lodash._renative');
-
-/** Used as the property descriptor for `__bindData__` */
-var descriptor = {
- 'configurable': false,
- 'enumerable': false,
- 'value': null,
- 'writable': false
-};
-
-/** Used to set meta data on functions */
-var defineProperty = (function() {
- // IE 8 only accepts DOM elements
- try {
- var o = {},
- func = reNative.test(func = Object.defineProperty) && func,
- result = func(o, o, o) && func;
- } catch(e) { }
- return result;
-}());
-
-/**
- * Sets `this` binding data on a given function.
- *
- * @private
- * @param {Function} func The function to set data on.
- * @param {Array} value The data array to set.
- */
-var setBindData = !defineProperty ? noop : function(func, value) {
- descriptor.value = value;
- defineProperty(func, '__bindData__', descriptor);
-};
-
-module.exports = setBindData;
diff --git a/convert/lodash/lodash._setbinddata/package.json b/convert/lodash/lodash._setbinddata/package.json
deleted file mode 100644
index 4185301..0000000
--- a/convert/lodash/lodash._setbinddata/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "lodash._setbinddata",
- "version": "2.3.0",
- "description": "The internal Lo-Dash function `setBindData` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash.noop": "~2.3.0",
- "lodash._renative": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._shimkeys/LICENSE.txt b/convert/lodash/lodash._shimkeys/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._shimkeys/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._shimkeys/README.md b/convert/lodash/lodash._shimkeys/README.md
deleted file mode 100644
index 4ce09c9..0000000
--- a/convert/lodash/lodash._shimkeys/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._shimkeys v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) function `shimKeys` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._shimkeys/index.js b/convert/lodash/lodash._shimkeys/index.js
deleted file mode 100644
index 4f3e9eb..0000000
--- a/convert/lodash/lodash._shimkeys/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var objectTypes = require('./../lodash._objecttypes');
-
-/** Used for native method references */
-var objectProto = Object.prototype;
-
-/** Native method shortcuts */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * A fallback implementation of `Object.keys` which produces an array of the
- * given object's own enumerable property names.
- *
- * @private
- * @type Function
- * @param {Object} object The object to inspect.
- * @returns {Array} Returns an array of property names.
- */
-var shimKeys = function(object) {
- var index, iterable = object, result = [];
- if (!iterable) return result;
- if (!(objectTypes[typeof object])) return result;
- for (index in iterable) {
- if (hasOwnProperty.call(iterable, index)) {
- result.push(index);
- }
- }
- return result
-};
-
-module.exports = shimKeys;
diff --git a/convert/lodash/lodash._shimkeys/package.json b/convert/lodash/lodash._shimkeys/package.json
deleted file mode 100644
index 99b6f68..0000000
--- a/convert/lodash/lodash._shimkeys/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "lodash._shimkeys",
- "version": "2.3.0",
- "description": "The internal Lo-Dash function `shimKeys` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._objecttypes": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash._slice/LICENSE.txt b/convert/lodash/lodash._slice/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash._slice/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash._slice/README.md b/convert/lodash/lodash._slice/README.md
deleted file mode 100644
index f771fbe..0000000
--- a/convert/lodash/lodash._slice/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash._slice v2.3.0
-
-The internal [Lo-Dash](http://lodash.com/) function `slice` as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash._slice/index.js b/convert/lodash/lodash._slice/index.js
deleted file mode 100644
index bb3f449..0000000
--- a/convert/lodash/lodash._slice/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * Slices the `collection` from the `start` index up to, but not including,
- * the `end` index.
- *
- * Note: This function is used instead of `Array#slice` to support node lists
- * in IE < 9 and to ensure dense arrays are returned.
- *
- * @private
- * @param {Array|Object|string} collection The collection to slice.
- * @param {number} start The start index.
- * @param {number} end The end index.
- * @returns {Array} Returns the new array.
- */
-function slice(array, start, end) {
- start || (start = 0);
- if (typeof end == 'undefined') {
- end = array ? array.length : 0;
- }
- var index = -1,
- length = end - start || 0,
- result = Array(length < 0 ? 0 : length);
-
- while (++index < length) {
- result[index] = array[start + index];
- }
- return result;
-}
-
-module.exports = slice;
diff --git a/convert/lodash/lodash._slice/package.json b/convert/lodash/lodash._slice/package.json
deleted file mode 100644
index 4ad7827..0000000
--- a/convert/lodash/lodash._slice/package.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "lodash._slice",
- "version": "2.3.0",
- "description": "The internal Lo-Dash function `slice` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.bind/LICENSE.txt b/convert/lodash/lodash.bind/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.bind/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.bind/README.md b/convert/lodash/lodash.bind/README.md
deleted file mode 100644
index d2ef202..0000000
--- a/convert/lodash/lodash.bind/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.bind v2.3.0
-
-The [Lo-Dash](http://lodash.com/) function [`_.bind`](http://lodash.com/docs#bind) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.bind/index.js b/convert/lodash/lodash.bind/index.js
deleted file mode 100644
index dc87bee..0000000
--- a/convert/lodash/lodash.bind/index.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var createWrapper = require('./../lodash._createwrapper'),
- reNative = require('./../lodash._renative'),
- slice = require('./../lodash._slice');
-
-/**
- * Creates a function that, when called, invokes `func` with the `this`
- * binding of `thisArg` and prepends any additional `bind` arguments to those
- * provided to the bound function.
- *
- * @static
- * @memberOf _
- * @category Functions
- * @param {Function} func The function to bind.
- * @param {*} [thisArg] The `this` binding of `func`.
- * @param {...*} [arg] Arguments to be partially applied.
- * @returns {Function} Returns the new bound function.
- * @example
- *
- * var func = function(greeting) {
- * return greeting + ' ' + this.name;
- * };
- *
- * func = _.bind(func, { 'name': 'fred' }, 'hi');
- * func();
- * // => 'hi fred'
- */
-function bind(func, thisArg) {
- return arguments.length > 2
- ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)
- : createWrapper(func, 1, null, null, thisArg);
-}
-
-module.exports = bind;
diff --git a/convert/lodash/lodash.bind/package.json b/convert/lodash/lodash.bind/package.json
deleted file mode 100644
index 734669a..0000000
--- a/convert/lodash/lodash.bind/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "lodash.bind",
- "version": "2.3.0",
- "description": "The Lo-Dash function `_.bind` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._createwrapper": "~2.3.0",
- "lodash._renative": "~2.3.0",
- "lodash._slice": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.foreach/LICENSE.txt b/convert/lodash/lodash.foreach/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.foreach/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.foreach/README.md b/convert/lodash/lodash.foreach/README.md
deleted file mode 100644
index 2fbd249..0000000
--- a/convert/lodash/lodash.foreach/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.foreach v2.3.0
-
-The [Lo-Dash](http://lodash.com/) function [`_.forEach`](http://lodash.com/docs#forEach) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.foreach/index.js b/convert/lodash/lodash.foreach/index.js
deleted file mode 100644
index ac2818f..0000000
--- a/convert/lodash/lodash.foreach/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseCreateCallback = require('./../lodash._basecreatecallback'),
- forOwn = require('./../lodash.forown');
-
-/**
- * Iterates over elements of a collection, executing the callback for each
- * element. The callback is bound to `thisArg` and invoked with three arguments;
- * (value, index|key, collection). Callbacks may exit iteration early by
- * explicitly returning `false`.
- *
- * Note: As with other "Collections" methods, objects with a `length` property
- * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`
- * may be used for object iteration.
- *
- * @static
- * @memberOf _
- * @alias each
- * @category Collections
- * @param {Array|Object|string} collection The collection to iterate over.
- * @param {Function} [callback=identity] The function called per iteration.
- * @param {*} [thisArg] The `this` binding of `callback`.
- * @returns {Array|Object|string} Returns `collection`.
- * @example
- *
- * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');
- * // => logs each number and returns '1,2,3'
- *
- * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });
- * // => logs each number and returns the object (property order is not guaranteed across environments)
- */
-function forEach(collection, callback, thisArg) {
- var index = -1,
- length = collection ? collection.length : 0;
-
- callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
- if (typeof length == 'number') {
- while (++index < length) {
- if (callback(collection[index], index, collection) === false) {
- break;
- }
- }
- } else {
- forOwn(collection, callback);
- }
- return collection;
-}
-
-module.exports = forEach;
diff --git a/convert/lodash/lodash.foreach/package.json b/convert/lodash/lodash.foreach/package.json
deleted file mode 100644
index 0a2f005..0000000
--- a/convert/lodash/lodash.foreach/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "lodash.foreach",
- "version": "2.3.0",
- "description": "The Lo-Dash function `_.forEach` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._basecreatecallback": "~2.3.0",
- "lodash.forown": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.forown/LICENSE.txt b/convert/lodash/lodash.forown/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.forown/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.forown/README.md b/convert/lodash/lodash.forown/README.md
deleted file mode 100644
index dd2d34c..0000000
--- a/convert/lodash/lodash.forown/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.forown v2.3.0
-
-The [Lo-Dash](http://lodash.com/) function [`_.forOwn`](http://lodash.com/docs#forOwn) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.forown/index.js b/convert/lodash/lodash.forown/index.js
deleted file mode 100644
index b76999e..0000000
--- a/convert/lodash/lodash.forown/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var baseCreateCallback = require('./../lodash._basecreatecallback'),
- keys = require('./../lodash.keys'),
- objectTypes = require('./../lodash._objecttypes');
-
-/**
- * Iterates over own enumerable properties of an object, executing the callback
- * for each property. The callback is bound to `thisArg` and invoked with three
- * arguments; (value, key, object). Callbacks may exit iteration early by
- * explicitly returning `false`.
- *
- * @static
- * @memberOf _
- * @type Function
- * @category Objects
- * @param {Object} object The object to iterate over.
- * @param {Function} [callback=identity] The function called per iteration.
- * @param {*} [thisArg] The `this` binding of `callback`.
- * @returns {Object} Returns `object`.
- * @example
- *
- * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
- * console.log(key);
- * });
- * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)
- */
-var forOwn = function(collection, callback, thisArg) {
- var index, iterable = collection, result = iterable;
- if (!iterable) return result;
- if (!objectTypes[typeof iterable]) return result;
- callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
- var ownIndex = -1,
- ownProps = objectTypes[typeof iterable] && keys(iterable),
- length = ownProps ? ownProps.length : 0;
-
- while (++ownIndex < length) {
- index = ownProps[ownIndex];
- if (callback(iterable[index], index, collection) === false) return result;
- }
- return result
-};
-
-module.exports = forOwn;
diff --git a/convert/lodash/lodash.forown/package.json b/convert/lodash/lodash.forown/package.json
deleted file mode 100644
index 079de45..0000000
--- a/convert/lodash/lodash.forown/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "lodash.forown",
- "version": "2.3.0",
- "description": "The Lo-Dash function `_.forOwn` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._basecreatecallback": "~2.3.0",
- "lodash.keys": "~2.3.0",
- "lodash._objecttypes": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.identity/LICENSE.txt b/convert/lodash/lodash.identity/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.identity/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.identity/README.md b/convert/lodash/lodash.identity/README.md
deleted file mode 100644
index 8c57239..0000000
--- a/convert/lodash/lodash.identity/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.identity v2.3.0
-
-The [Lo-Dash](http://lodash.com/) function [`_.identity`](http://lodash.com/docs#identity) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.identity/index.js b/convert/lodash/lodash.identity/index.js
deleted file mode 100644
index 595a6e4..0000000
--- a/convert/lodash/lodash.identity/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * This method returns the first argument provided to it.
- *
- * @static
- * @memberOf _
- * @category Utilities
- * @param {*} value Any value.
- * @returns {*} Returns `value`.
- * @example
- *
- * var object = { 'name': 'fred' };
- * _.identity(object) === object;
- * // => true
- */
-function identity(value) {
- return value;
-}
-
-module.exports = identity;
diff --git a/convert/lodash/lodash.identity/package.json b/convert/lodash/lodash.identity/package.json
deleted file mode 100644
index 1e09a5e..0000000
--- a/convert/lodash/lodash.identity/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "lodash.identity",
- "version": "2.3.0",
- "description": "The Lo-Dash function `_.identity` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.isfunction/LICENSE.txt b/convert/lodash/lodash.isfunction/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.isfunction/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.isfunction/README.md b/convert/lodash/lodash.isfunction/README.md
deleted file mode 100644
index e16c6a3..0000000
--- a/convert/lodash/lodash.isfunction/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.isfunction v2.3.0
-
-The [Lo-Dash](http://lodash.com/) function [`_.isFunction`](http://lodash.com/docs#isFunction) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.isfunction/index.js b/convert/lodash/lodash.isfunction/index.js
deleted file mode 100644
index 2b333d3..0000000
--- a/convert/lodash/lodash.isfunction/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * Checks if `value` is a function.
- *
- * @static
- * @memberOf _
- * @category Objects
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if the `value` is a function, else `false`.
- * @example
- *
- * _.isFunction(_);
- * // => true
- */
-function isFunction(value) {
- return typeof value == 'function';
-}
-
-module.exports = isFunction;
diff --git a/convert/lodash/lodash.isfunction/package.json b/convert/lodash/lodash.isfunction/package.json
deleted file mode 100644
index 446ae6d..0000000
--- a/convert/lodash/lodash.isfunction/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "lodash.isfunction",
- "version": "2.3.0",
- "description": "The Lo-Dash function `_.isFunction` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.isobject/LICENSE.txt b/convert/lodash/lodash.isobject/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.isobject/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.isobject/README.md b/convert/lodash/lodash.isobject/README.md
deleted file mode 100644
index 897d749..0000000
--- a/convert/lodash/lodash.isobject/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.isobject v2.3.0
-
-The [Lo-Dash](http://lodash.com/) function [`_.isObject`](http://lodash.com/docs#isObject) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.isobject/index.js b/convert/lodash/lodash.isobject/index.js
deleted file mode 100644
index fbd5c9c..0000000
--- a/convert/lodash/lodash.isobject/index.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var objectTypes = require('./../lodash._objecttypes');
-
-/**
- * Checks if `value` is the language type of Object.
- * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
- *
- * @static
- * @memberOf _
- * @category Objects
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if the `value` is an object, else `false`.
- * @example
- *
- * _.isObject({});
- * // => true
- *
- * _.isObject([1, 2, 3]);
- * // => true
- *
- * _.isObject(1);
- * // => false
- */
-function isObject(value) {
- // check if the value is the ECMAScript language type of Object
- // http://es5.github.io/#x8
- // and avoid a V8 bug
- // http://code.google.com/p/v8/issues/detail?id=2291
- return !!(value && objectTypes[typeof value]);
-}
-
-module.exports = isObject;
diff --git a/convert/lodash/lodash.isobject/package.json b/convert/lodash/lodash.isobject/package.json
deleted file mode 100644
index e032a9a..0000000
--- a/convert/lodash/lodash.isobject/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "lodash.isobject",
- "version": "2.3.0",
- "description": "The Lo-Dash function `_.isObject` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._objecttypes": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.keys/LICENSE.txt b/convert/lodash/lodash.keys/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.keys/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.keys/README.md b/convert/lodash/lodash.keys/README.md
deleted file mode 100644
index 5fc0154..0000000
--- a/convert/lodash/lodash.keys/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.keys v2.3.0
-
-The [Lo-Dash](http://lodash.com/) function [`_.keys`](http://lodash.com/docs#keys) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.keys/index.js b/convert/lodash/lodash.keys/index.js
deleted file mode 100644
index cc6e7f1..0000000
--- a/convert/lodash/lodash.keys/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var isObject = require('./../lodash.isobject'),
- reNative = require('./../lodash._renative'),
- shimKeys = require('./../lodash._shimkeys');
-
-/* Native method shortcuts for methods with the same name as other `lodash` methods */
-var nativeKeys = reNative.test(nativeKeys = Object.keys) && nativeKeys;
-
-/**
- * Creates an array composed of the own enumerable property names of an object.
- *
- * @static
- * @memberOf _
- * @category Objects
- * @param {Object} object The object to inspect.
- * @returns {Array} Returns an array of property names.
- * @example
- *
- * _.keys({ 'one': 1, 'two': 2, 'three': 3 });
- * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)
- */
-var keys = !nativeKeys ? shimKeys : function(object) {
- if (!isObject(object)) {
- return [];
- }
- return nativeKeys(object);
-};
-
-module.exports = keys;
diff --git a/convert/lodash/lodash.keys/package.json b/convert/lodash/lodash.keys/package.json
deleted file mode 100644
index a6ad91b..0000000
--- a/convert/lodash/lodash.keys/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "lodash.keys",
- "version": "2.3.0",
- "description": "The Lo-Dash function `_.keys` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash.isobject": "~2.3.0",
- "lodash._renative": "~2.3.0",
- "lodash._shimkeys": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.noop/LICENSE.txt b/convert/lodash/lodash.noop/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.noop/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.noop/README.md b/convert/lodash/lodash.noop/README.md
deleted file mode 100644
index c277049..0000000
--- a/convert/lodash/lodash.noop/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.noop v2.3.0
-
-The [Lo-Dash](http://lodash.com/) function [`_.noop`](http://lodash.com/docs#noop) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.noop/index.js b/convert/lodash/lodash.noop/index.js
deleted file mode 100644
index 4d43843..0000000
--- a/convert/lodash/lodash.noop/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-
-/**
- * A no-operation function.
- *
- * @static
- * @memberOf _
- * @category Utilities
- * @example
- *
- * var object = { 'name': 'fred' };
- * _.noop(object) === undefined;
- * // => true
- */
-function noop() {
- // no operation performed
-}
-
-module.exports = noop;
diff --git a/convert/lodash/lodash.noop/package.json b/convert/lodash/lodash.noop/package.json
deleted file mode 100644
index 2849bdd..0000000
--- a/convert/lodash/lodash.noop/package.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "name": "lodash.noop",
- "version": "2.3.0",
- "description": "The Lo-Dash function `_.noop` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" }
-}
\ No newline at end of file
diff --git a/convert/lodash/lodash.support/LICENSE.txt b/convert/lodash/lodash.support/LICENSE.txt
deleted file mode 100644
index 49869bb..0000000
--- a/convert/lodash/lodash.support/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright 2012-2013 The Dojo Foundation
-Based on Underscore.js 1.5.2, copyright 2009-2013 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/convert/lodash/lodash.support/README.md b/convert/lodash/lodash.support/README.md
deleted file mode 100644
index 905f3a7..0000000
--- a/convert/lodash/lodash.support/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# lodash.support v2.3.0
-
-The [Lo-Dash](http://lodash.com/) object [`_.support`](http://lodash.com/docs#support) as a [Node.js](http://nodejs.org/) module generated by [lodash-cli](https://npmjs.org/package/lodash-cli).
-
-## Author
-
-| [](https://twitter.com/jdalton "Follow @jdalton on Twitter") |
-|---|
-| [John-David Dalton](http://allyoucanleet.com/) |
-
-## Contributors
-
-| [](https://twitter.com/blainebublitz "Follow @BlaineBublitz on Twitter") | [](https://twitter.com/kitcambridge "Follow @kitcambridge on Twitter") | [](https://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|---|---|
-| [Blaine Bublitz](http://www.iceddev.com/) | [Kit Cambridge](http://kitcambridge.be/) | [Mathias Bynens](http://mathiasbynens.be/) |
diff --git a/convert/lodash/lodash.support/index.js b/convert/lodash/lodash.support/index.js
deleted file mode 100644
index d4830bf..0000000
--- a/convert/lodash/lodash.support/index.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Lo-Dash 2.3.0 (Custom Build)
- * Build: `lodash modularize modern exports="npm" -o ./npm/`
- * Copyright 2012-2013 The Dojo Foundation
- * Based on Underscore.js 1.5.2
- * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
- * Available under MIT license
- */
-var reNative = require('./../lodash._renative');
-
-/** Used to detect functions containing a `this` reference */
-var reThis = /\bthis\b/;
-
-/**
- * An object used to flag environments features.
- *
- * @static
- * @memberOf _
- * @type Object
- */
-var support = {};
-
-/**
- * Detect if functions can be decompiled by `Function#toString`
- * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).
- *
- * @memberOf _.support
- * @type boolean
- */
-support.funcDecomp = !reNative.test(global.WinRTError) && reThis.test(function() { return this; });
-
-/**
- * Detect if `Function#name` is supported (all but IE).
- *
- * @memberOf _.support
- * @type boolean
- */
-support.funcNames = typeof Function.name == 'string';
-
-module.exports = support;
diff --git a/convert/lodash/lodash.support/package.json b/convert/lodash/lodash.support/package.json
deleted file mode 100644
index 86bacf4..0000000
--- a/convert/lodash/lodash.support/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "lodash.support",
- "version": "2.3.0",
- "description": "The Lo-Dash object `_.support` as a Node.js module generated by lodash-cli.",
- "homepage": "http://lodash.com/custom-builds",
- "license": "MIT",
- "keywords": ["functional", "lodash", "lodash-modularized", "server", "util"],
- "author": "John-David Dalton (http://allyoucanleet.com/)",
- "contributors": [
- "John-David Dalton (http://allyoucanleet.com/)",
- "Blaine Bublitz (http://www.iceddev.com/)",
- "Kit Cambridge (http://kitcambridge.be/)",
- "Mathias Bynens (http://mathiasbynens.be/)"
- ],
- "bugs": "https://github.com/lodash/lodash-cli/issues",
- "repository": { "type": "git", "url": "https://github.com/lodash/lodash-cli.git" },
- "dependencies": {
- "lodash._renative": "~2.3.0"
- }
-}
\ No newline at end of file
diff --git a/convert/percentError.js b/convert/percentError.js
deleted file mode 100644
index 8ee2a3a..0000000
--- a/convert/percentError.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = function (expected, actual) {
- return Math.abs((expected - actual) / actual);
-}
diff --git a/index.js b/index.js
index 02177b1..7fd2457 100644
--- a/index.js
+++ b/index.js
@@ -14,24 +14,30 @@ const validation = require('./src/helper/validationUtils.js');
const configUtils = require('./src/helper/configUtils.js');
// Domain-specific modules
-const measurements = require('./src/measurements/index.js');
+const { MeasurementContainer } = require('./src/measurements/index.js');
const configManager = require('./src/configs/index.js');
const nrmse = require('./src/nrmse/ErrorMetrics.js');
const state = require('./src/state/state.js');
const convert = require('./src/convert/index.js');
const MenuManager = require('./src/menu/index.js');
+const predict = require('./src/predict/predict_class.js');
+const interpolation = require('./src/predict/interpolation.js');
+const childRegistrationUtils = require('./src/helper/childRegistrationUtils.js');
// Export everything
module.exports = {
+ predict,
+ interpolation,
configManager,
outputUtils,
configUtils,
logger,
validation,
- measurements,
+ MeasurementContainer,
nrmse,
state,
convert,
- MenuManager
+ MenuManager,
+ childRegistrationUtils
};
\ No newline at end of file
diff --git a/src/configs/rotatingMachine.json b/src/configs/rotatingMachine.json
new file mode 100644
index 0000000..b44280d
--- /dev/null
+++ b/src/configs/rotatingMachine.json
@@ -0,0 +1,402 @@
+{
+ "general": {
+ "name": {
+ "default": "Rotating Machine",
+ "rules": {
+ "type": "string",
+ "description": "A human-readable name or label for this machine configuration."
+ }
+ },
+ "id": {
+ "default": null,
+ "rules": {
+ "type": "string",
+ "nullable": true,
+ "description": "A unique identifier for this configuration. If not provided, defaults to null."
+ }
+ },
+ "unit": {
+ "default": "m3/h",
+ "rules": {
+ "type": "string",
+ "description": "The default measurement unit for this configuration (e.g., 'meters', 'seconds', 'unitless')."
+ }
+ },
+ "logging": {
+ "logLevel": {
+ "default": "info",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "debug",
+ "description": "Log messages are printed for debugging purposes."
+ },
+ {
+ "value": "info",
+ "description": "Informational messages are printed."
+ },
+ {
+ "value": "warn",
+ "description": "Warning messages are printed."
+ },
+ {
+ "value": "error",
+ "description": "Error messages are printed."
+ }
+ ]
+ }
+ },
+ "enabled": {
+ "default": true,
+ "rules": {
+ "type": "boolean",
+ "description": "Indicates whether logging is active. If true, log messages will be generated."
+ }
+ }
+ }
+ },
+ "functionality": {
+ "softwareType": {
+ "default": "machine",
+ "rules": {
+ "type": "string",
+ "description": "Specified software type for this configuration."
+ }
+ },
+ "role": {
+ "default": "RotationalDeviceController",
+ "rules": {
+ "type": "string",
+ "description": "Indicates the role this configuration plays within the system."
+ }
+ },
+ "positionVsParent":{
+ "default":"atEquipment",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "atEquipment",
+ "description": "The node is connected at the equipment level and is responsible for controlling or monitoring the equipment as a whole."
+ },
+ {
+ "value": "upstream",
+ "description": "The node is connected in a downstream position, indicating it is responsible for monitoring or controlling processes that occur after the equipment's operation, such as product flow or output."
+ },
+ {
+ "value": "downstream",
+ "description": "The node is connected in an upstream position, indicating it is responsible for monitoring or controlling processes that occur before the equipment's operation, such as input flow or supply."
+ }
+ ],
+ "description": "Defines the position of the measurement relative to its parent equipment or system."
+ }
+ }
+ },
+ "asset": {
+ "uuid": {
+ "default": null,
+ "rules": {
+ "type": "string",
+ "nullable": true,
+ "description": "A universally unique identifier for this asset. May be null if not assigned."
+ }
+ },
+ "geoLocation": {
+ "default": {},
+ "rules": {
+ "type": "object",
+ "description": "An object representing the asset's physical coordinates or location.",
+ "schema": {
+ "x": {
+ "default": 0,
+ "rules": {
+ "type": "number",
+ "description": "X coordinate of the asset's location."
+ }
+ },
+ "y": {
+ "default": 0,
+ "rules": {
+ "type": "number",
+ "description": "Y coordinate of the asset's location."
+ }
+ },
+ "z": {
+ "default": 0,
+ "rules": {
+ "type": "number",
+ "description": "Z coordinate of the asset's location."
+ }
+ }
+ }
+ }
+ },
+ "supplier": {
+ "default": "Unknown",
+ "rules": {
+ "type": "string",
+ "description": "The supplier or manufacturer of the asset."
+ }
+ },
+ "type": {
+ "default": "pump",
+ "rules": {
+ "type": "string",
+ "description": "A general classification of the asset tied to the specific software. This is not chosen from the asset dropdown menu."
+ }
+ },
+ "subType": {
+ "default": "Centrifugal",
+ "rules": {
+ "type": "string",
+ "description": "A more specific classification within 'type'. For example, 'centrifugal' for a centrifugal pump."
+ }
+ },
+ "model": {
+ "default": "Unknown",
+ "rules": {
+ "type": "string",
+ "description": "A user-defined or manufacturer-defined model identifier for the asset."
+ }
+ },
+ "accuracy": {
+ "default": null,
+ "rules": {
+ "type": "number",
+ "nullable": true,
+ "description": "The accuracy of the machine or sensor, typically as a percentage or absolute value."
+ }
+ },
+ "machineCurve": {
+ "default": {
+ "nq": {
+ "1": {
+ "x": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ],
+ "y": [
+ 10,
+ 20,
+ 30,
+ 40,
+ 50
+ ]
+ }
+ },
+ "np": {
+ "1": {
+ "x": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ],
+ "y": [
+ 10,
+ 20,
+ 30,
+ 40,
+ 50
+ ]
+ }
+ }
+ },
+ "rules": {
+ "type": "machineCurve",
+ "description": "All machine curves must have a 'nq' and 'np' curve. nq stands for the flow curve, np stands for the power curve. Together they form the efficiency curve."
+ }
+ }
+ },
+ "mode": {
+ "current": {
+ "default": "auto",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "auto",
+ "description": "Machine accepts setpoints from a parent controller and runs autonomously."
+ },
+ {
+ "value": "virtualControl",
+ "description": "Controlled via GUI setpoints; ignores parent commands."
+ },
+ {
+ "value": "fysicalControl",
+ "description": "Controlled via physical buttons or switches; ignores external automated commands."
+ },
+ {
+ "value": "maintenance",
+ "description": "No active control from auto, virtual, or fysical sources."
+ }
+ ],
+ "description": "The operational mode of the machine."
+ }
+ },
+ "allowedActions":{
+ "default":{},
+ "rules": {
+ "type": "object",
+ "schema":{
+ "auto": {
+ "default": ["statusCheck", "execMovement", "execSequence", "emergencyStop"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Actions allowed in auto mode."
+ }
+ },
+ "virtualControl": {
+ "default": ["statusCheck", "execMovement", "execSequence", "emergencyStop"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Actions allowed in virtualControl mode."
+ }
+ },
+ "fysicalControl": {
+ "default": ["statusCheck", "emergencyStop"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Actions allowed in fysicalControl mode."
+ }
+ },
+ "maintenance": {
+ "default": ["statusCheck"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Actions allowed in maintenance mode."
+ }
+ }
+ },
+ "description": "Information about valid command sources recognized by the machine."
+ }
+ },
+ "allowedSources":{
+ "default": {},
+ "rules": {
+ "type": "object",
+ "schema":{
+ "auto": {
+ "default": ["parent", "GUI", "fysical"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Sources allowed in auto mode."
+ }
+ },
+ "virtualControl": {
+ "default": ["GUI", "fysical"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Sources allowed in virtualControl mode."
+ }
+ },
+ "fysicalControl": {
+ "default": ["fysical"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Sources allowed in fysicalControl mode."
+ }
+ }
+ },
+ "description": "Information about valid command sources recognized by the machine."
+ }
+ }
+ },
+ "source": {
+ "default": "parent",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "parent",
+ "description": "Commands are received from a parent controller."
+ },
+ {
+ "value": "GUI",
+ "description": "Commands are received from a graphical user interface."
+ },
+ {
+ "value": "fysical",
+ "description": "Commands are received from physical buttons or switches."
+ }
+ ],
+ "description": "Information about valid command sources recognized by the machine."
+ }
+ },
+ "sequences":{
+ "default":{},
+ "rules": {
+ "type": "object",
+ "schema": {
+ "startup": {
+ "default": ["starting","warmingup","operational"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Sequence of states for starting up the machine."
+ }
+ },
+ "shutdown": {
+ "default": ["stopping","coolingdown","idle"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Sequence of states for shutting down the machine."
+ }
+ },
+ "emergencystop": {
+ "default": ["emergencystop","off"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Sequence of states for an emergency stop."
+ }
+ },
+ "boot": {
+ "default": ["idle","starting","warmingup","operational"],
+ "rules": {
+ "type": "set",
+ "itemType": "string",
+ "description": "Sequence of states for booting up the machine."
+ }
+ }
+ }
+ },
+ "description": "Predefined sequences of states for the machine."
+
+ },
+ "calculationMode": {
+ "default": "medium",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "low",
+ "description": "Calculations run at fixed intervals (time-based)."
+ },
+ {
+ "value": "medium",
+ "description": "Calculations run when new setpoints arrive or measured changes occur (event-driven)."
+ },
+ {
+ "value": "high",
+ "description": "Calculations run on all event-driven info, including every movement."
+ }
+ ],
+ "description": "The frequency at which calculations are performed."
+ }
+ }
+ }
+
\ No newline at end of file
diff --git a/src/predict/interpolation.js b/src/predict/interpolation.js
new file mode 100644
index 0000000..dcfc37a
--- /dev/null
+++ b/src/predict/interpolation.js
@@ -0,0 +1,387 @@
+/**
+ * @file Interpolation.js
+ *
+ * Permission is hereby granted to any person obtaining a copy of this software
+ * and associated documentation files (the "Software"), to use it for personal
+ * or non-commercial purposes, with the following restrictions:
+ *
+ * 1. **No Copying or Redistribution**: The Software or any of its parts may not
+ * be copied, merged, distributed, sublicensed, or sold without explicit
+ * prior written permission from the author.
+ *
+ * 2. **Commercial Use**: Any use of the Software for commercial purposes requires
+ * a valid license, obtainable only with the explicit consent of the author.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM,
+ * OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Ownership of this code remains solely with the original author. Unauthorized
+ * use of this Software is strictly prohibited.
+ *
+ * Author:
+ * - Rene De Ren
+ * Email:
+ * - rene@thegoldenbasket.nl
+ *
+/*
+ Interpolate using cubic Hermite splines. The breakpoints in arrays xbp and ybp are assumed to be sorted.
+ Evaluate the function in all points of the array xeval.
+ Methods:
+ "Linear" yuck
+ "FiniteDifference" classic cubic interpolation, no tension parameter
+ "Cardinal" cubic cardinal splines, uses tension parameter which must be between [0,1]
+ "FritschCarlson" monotonic - tangents are first initialized, then adjusted if they are not monotonic
+ "FritschButland" monotonic - faster algorithm () but somewhat higher apparent "tension"
+ "Steffen" monotonic - also only one pass, results usualonly requires one passly between FritschCarlson and FritschButland
+ Sources:
+ Fritsch & Carlson (1980), "Monotone Piecewise Cubic Interpolation", doi:10.1137/0717021.
+ Fritsch & Butland (1984), "A Method for Constructing Local Monotone Piecewise Cubic Interpolants", doi:10.1137/0905021.
+ Steffen (1990), "A Simple Method for Monotonic Interpolation in One Dimension", http://adsabs.harvard.edu/abs/1990A%26A...239..443S
+
+ Year : (c) 2023
+ Author : Rene De Ren
+ Contact details : zn375ix3@gmail.com
+ Location : The Netherlands
+
+*/
+
+class Interpolation {
+ constructor(config = {}) {
+ this.input_xdata = [];
+ this.input_ydata = [];
+ this.y2 = [];
+ this.n = 0;
+ this.error = 0;
+ this.interpolationtype = config.type || "monotone_cubic_spline";
+ this.tension = config.tension || 0.5;
+ }
+
+ load_spline(input_xdata, input_ydata, interpolationtype) {
+ if (!Array.isArray(input_xdata) || !Array.isArray(input_ydata)) {
+ throw new Error("Invalid input: x and y must be arrays");
+ }
+
+ if (input_xdata.length !== input_ydata.length) {
+ throw new Error("Arrays x and y must have the same length");
+ }
+
+ if (input_xdata.length < 2) {
+ throw new Error("Arrays must contain at least 2 points for interpolation");
+ }
+
+ for (let i = 1; i < input_xdata.length; i++) {
+ if (input_xdata[i] <= input_xdata[i - 1]) {
+ throw new Error("X values must be strictly increasing");
+ }
+ }
+
+ this.input_xdata = this.array_values(input_xdata);
+ this.input_ydata = this.array_values(input_ydata);
+ this.set_type(interpolationtype);
+ }
+
+ array_values(obj) {
+ const new_array = [];
+ for (let i in obj) {
+ if (obj.hasOwnProperty(i)) {
+ new_array.push(obj[i]);
+ }
+ }
+ return new_array;
+ }
+
+ set_type(type) {
+ if (type == "cubic_spline") {
+ this.cubic_spline();
+ } else if (type == "monotone_cubic_spline") {
+ this.monotonic_cubic_spline();
+ } else if (type == "linear") {
+ } else {
+ this.error = 1000;
+ }
+ this.interpolationtype = type;
+ }
+
+ interpolate(xpoint) {
+ if (!this.input_xdata || !this.input_ydata || this.input_xdata.length < 2) {
+ throw new Error("Spline not properly initialized");
+ }
+
+ if (xpoint <= this.input_xdata[0]) return this.input_ydata[0];
+ if (xpoint >= this.input_xdata[this.input_xdata.length - 1]) return this.input_ydata[this.input_ydata.length - 1];
+
+ let interpolatedval = 0;
+
+ if (this.interpolationtype == "cubic_spline") {
+ interpolatedval = this.interpolate_cubic(xpoint);
+ } else if (this.interpolationtype == "monotone_cubic_spline") {
+ interpolatedval = this.interpolate_cubic_monotonic(xpoint);
+ } else if (this.interpolationtype == "linear") {
+ interpolatedval = this.linear(xpoint);
+ } else {
+ console.log(this.interpolationtype);
+ interpolatedval = "Unknown type";
+ }
+ return interpolatedval;
+ }
+
+ cubic_spline() {
+ var xdata = this.input_xdata;
+ var ydata = this.input_ydata;
+ var delta = [];
+
+ var n = ydata.length;
+ this.n = n;
+
+ if (n !== xdata.length) {
+ this.error = 1;
+ }
+
+ this.y2[0] = 0.0;
+ this.y2[n - 1] = 0.0;
+ delta[0] = 0.0;
+
+ for (let i = 1; i < n - 1; ++i) {
+ let d = xdata[i + 1] - xdata[i - 1];
+
+ if (d == 0) {
+ this.error = 2;
+ }
+
+ let s = (xdata[i] - xdata[i - 1]) / d;
+
+ let p = s * this.y2[i - 1] + 2.0;
+
+ this.y2[i] = (s - 1.0) / p;
+
+ delta[i] = (ydata[i + 1] - ydata[i]) / (xdata[i + 1] - xdata[i]) - (ydata[i] - ydata[i - 1]) / (xdata[i] - xdata[i - 1]);
+
+ delta[i] = (6.0 * delta[i]) / (xdata[i + 1] - xdata[i - 1]) - (s * delta[i - 1]) / p;
+ }
+
+ for (let j = n - 2; j >= 0; --j) {
+ this.y2[j] = this.y2[j] * this.y2[j + 1] + delta[j];
+ }
+ }
+
+ linear(xpoint) {
+ var i_min = 0;
+ var i_max = 0;
+ var o_min = 0;
+ var o_max = 0;
+
+ for (let i = 0; i < this.input_xdata.length; i++) {
+ if (xpoint >= this.input_xdata[i] && xpoint < this.input_xdata[i + 1]) {
+ i_min = this.input_xdata[i];
+ i_max = this.input_xdata[i + 1];
+
+ o_min = this.input_ydata[i];
+ o_max = this.input_ydata[i + 1];
+
+ break;
+ }
+ }
+
+ let o_number;
+
+ if (i_min < i_max) {
+ o_number = o_min + ((xpoint - i_min) * (o_max - o_min)) / (i_max - i_min);
+ } else {
+ o_number = xpoint;
+ }
+
+ return o_number;
+ }
+
+ interpolate_cubic(xpoint) {
+ let xdata = this.input_xdata;
+ let ydata = this.input_ydata;
+
+ let max = this.n - 1;
+ let min = 0;
+
+ while (max - min > 1) {
+ let k = Math.floor((max + min) / 2);
+
+ if (xdata[k] > xpoint) max = k;
+ else min = k;
+ }
+
+ let h = xdata[max] - xdata[min];
+
+ if (h == 0) {
+ this.error = 3;
+ }
+
+ let a = (xdata[max] - xpoint) / h;
+ let b = (xpoint - xdata[min]) / h;
+
+ let interpolatedvalue = a * ydata[min] + b * ydata[max] + ((a * a * a - a) * this.y2[min] + (b * b * b - b) * this.y2[max]) * (h * h) / 6.0;
+
+ return interpolatedvalue;
+ }
+
+ monotonic_cubic_spline() {
+ let xdata = this.input_xdata;
+ let ydata = this.input_ydata;
+
+ let interpolationtype = this.interpolationtype;
+ let tension = this.tension;
+
+ let n = ydata.length;
+ this.n = n;
+
+ if (this.n !== xdata.length) {
+ this.error = 1;
+ }
+
+ let obj = this.calc_tangents(xdata, ydata, tension);
+ this.y1 = obj[0];
+ this.delta = obj[1];
+ }
+
+ interpolate_cubic_monotonic(xpoint) {
+ let xdata = this.input_xdata;
+ let ydata = this.input_ydata;
+ let xinterval = 0;
+
+ let y1 = this.y1;
+ let delta = this.delta;
+ let c = [];
+ let d = [];
+ let n = this.n;
+
+ for (let k = 0; k < n - 1; k++) {
+ xinterval = xdata[k + 1] - xdata[k];
+ c[k] = (3 * delta[k] - 2 * y1[k] - y1[k + 1]) / xinterval;
+ d[k] = (y1[k] + y1[k + 1] - 2 * delta[k]) / xinterval / xinterval;
+ }
+
+ let interpolatedvalues = [];
+ let k = 0;
+
+ if (xpoint < xdata[0] || xpoint > xdata[n - 1]) {
+ }
+
+ while (k < n - 1 && xpoint > xdata[k + 1] && !(xpoint < xdata[0] || xpoint > xdata[n - 1])) {
+ k++;
+ }
+
+ let xdiffdown = xpoint - xdata[k];
+
+ interpolatedvalues = ydata[k] + y1[k] * xdiffdown + c[k] * xdiffdown * xdiffdown + d[k] * xdiffdown * xdiffdown * xdiffdown;
+
+ return interpolatedvalues;
+ }
+
+ calc_tangents(xdata, ydata, tension) {
+ let method = this.interpolationtype;
+ let n = xdata.length;
+ let delta_array = [];
+ let delta = 0;
+ let y1 = [];
+
+ for (let i = 0; i < n - 1; i++) {
+ delta = (ydata[i + 1] - ydata[i]) / (xdata[i + 1] - xdata[i]);
+ delta_array[i] = delta;
+
+ if (i == 0) {
+ y1[i] = delta;
+ } else if (method == "cardinal") {
+ y1[i] = (1 - tension) * (ydata[i + 1] - ydata[i - 1]) / (xdata[i + 1] - xdata[i - 1]);
+ } else if (method == "fritschbutland") {
+ let alpha = (1 + (xdata[i + 1] - xdata[i]) / (xdata[i + 1] - xdata[i - 1])) / 3;
+ y1[i] = delta_array[i - 1] * delta <= 0 ? 0 : (delta_array[i - 1] * delta) / (alpha * delta + (1 - alpha) * delta_array[i - 1]);
+ } else if (method == "fritschcarlson") {
+ y1[i] = delta_array[i - 1] * delta < 0 ? 0 : (delta_array[i - 1] + delta) / 2;
+ } else if (method == "steffen") {
+ let p = ((xdata[i + 1] - xdata[i]) * delta_array[i - 1] + (xdata[i] - xdata[i - 1]) * delta) / (xdata[i + 1] - xdata[i - 1]);
+ y1[i] = (Math.sign(delta_array[i - 1]) + Math.sign(delta)) * Math.min(Math.abs(delta_array[i - 1]), Math.abs(delta), 0.5 * Math.abs(p));
+ } else {
+ y1[i] = (delta_array[i - 1] + delta) / 2;
+ }
+ }
+
+ y1[n - 1] = delta_array[n - 2];
+ if (method != "fritschcarlson") {
+ return [y1, delta_array];
+ }
+
+ for (let i = 0; i < n - 1; i++) {
+ let delta = delta_array[i];
+ if (delta == 0) {
+ y1[i] = 0;
+ y1[i + 1] = 0;
+ continue;
+ }
+ let alpha = y1[i] / delta;
+ let beta = y1[i + 1] / delta;
+ let tau = 3 / Math.sqrt(Math.pow(alpha, 2) + Math.pow(beta, 2));
+ if (tau < 1) {
+ y1[i] = tau * alpha * delta;
+ y1[i + 1] = tau * beta * delta;
+ }
+ }
+ return [y1, delta_array];
+ }
+
+ interpolate_lin_curve_points(i_curve, o_min, o_max) {
+ if (!Array.isArray(i_curve)) {
+ throw new Error("xArray must be an array");
+ }
+
+ let o_curve = {};
+ let i_min = 0;
+ let i_max = 0;
+
+ i_min = Math.min(...Object.values(i_curve));
+ i_max = Math.max(...Object.values(i_curve));
+
+ i_curve.forEach((val, index) => {
+ o_curve[index] = this.interpolate_lin_single_point(val, i_min, i_max, o_min, o_max);
+ });
+
+ o_curve = Object.values(o_curve);
+
+ return o_curve;
+ }
+
+ interpolate_lin_single_point(i_number, i_min, i_max, o_min, o_max) {
+ if (typeof i_number !== "number" || typeof i_min !== "number" || typeof i_max !== "number" || typeof o_min !== "number" || typeof o_max !== "number") {
+ throw new Error("All parameters must be numbers");
+ }
+
+ if (i_max === i_min) {
+ return o_min;
+ }
+
+ let o_number;
+ //i_number = this.limit_input(i_number, i_min, i_max);
+
+ o_number = o_min + ((i_number - i_min) * (o_max - o_min)) / (i_max - i_min);
+
+ o_number = this.limit_input(o_number, o_min, o_max);
+
+ return o_number;
+ }
+
+ limit_input(input, min, max) {
+ let output;
+
+ if (input < min) {
+ output = min;
+ } else if (input > max) {
+ output = max;
+ } else {
+ output = input;
+ }
+ return output;
+ }
+}
+
+module.exports = Interpolation;
\ No newline at end of file
diff --git a/src/predict/predictConfig.json b/src/predict/predictConfig.json
new file mode 100644
index 0000000..ac778ec
--- /dev/null
+++ b/src/predict/predictConfig.json
@@ -0,0 +1,199 @@
+{
+ "general": {
+ "name": {
+ "default": "Interpolation Configuration",
+ "rules": {
+ "type": "string",
+ "description": "A human-readable name or label for this interpolation configuration."
+ }
+ },
+ "id": {
+ "default": null,
+ "rules": {
+ "type": "string",
+ "nullable": true,
+ "description": "A unique identifier for this configuration. If not provided, defaults to null."
+ }
+ },
+ "unit": {
+ "default": "unitless",
+ "rules": {
+ "type": "string",
+ "description": "The unit used for the interpolated values (e.g., 'meters', 'seconds', 'unitless')."
+ }
+ },
+ "logging": {
+ "logLevel": {
+ "default": "info",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "debug",
+ "description": "Log messages are printed for debugging purposes."
+ },
+ {
+ "value": "info",
+ "description": "Informational messages are printed."
+ },
+ {
+ "value": "warn",
+ "description": "Warning messages are printed."
+ },
+ {
+ "value": "error",
+ "description": "Error messages are printed."
+ }
+ ]
+ }
+ },
+ "enabled": {
+ "default": true,
+ "rules": {
+ "type": "boolean",
+ "description": "Indicates whether logging is active. If true, log messages will be generated."
+ }
+ }
+ }
+ },
+ "functionality": {
+ "softwareType": {
+ "default": "interpolation",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "interpolation",
+ "description": "Specifies this component as an interpolation engine."
+ }
+ ]
+ }
+ },
+ "role": {
+ "default": "Interpolator",
+ "rules": {
+ "type": "string",
+ "description": "Indicates the role of this configuration (e.g., 'Interpolator', 'DataCurve', etc.)."
+ }
+ }
+ },
+ "interpolation": {
+ "enabled": {
+ "default": true,
+ "rules": {
+ "type": "boolean",
+ "description": "Flag to enable/disable interpolation."
+ }
+ },
+ "type": {
+ "default": "monotone_cubic_spline",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "cubic_spline",
+ "description": "Standard cubic spline interpolation (natural boundary)."
+ },
+ {
+ "value": "monotone_cubic_spline",
+ "description": "Monotonic cubic spline interpolation (e.g., Fritsch-Carlson)."
+ },
+ {
+ "value": "linear",
+ "description": "Basic linear interpolation between data points."
+ }
+ ],
+ "description": "Specifies the default interpolation method."
+ }
+ },
+ "tension": {
+ "default": 0.5,
+ "rules": {
+ "type": "number",
+ "min": 0,
+ "max": 1,
+ "description": "Tension parameter (0–1) for spline methods like 'cardinal'."
+ }
+ }
+ },
+ "normalization": {
+ "enabled": {
+ "default": true,
+ "rules": {
+ "type": "boolean",
+ "description": "Flag to enable/disable normalization of input data."
+ }
+ },
+ "normalizationType": {
+ "default": "minmax",
+ "rules": {
+ "type": "enum",
+ "values": [
+ {
+ "value": "minmax",
+ "description": "Min-max normalization (default)."
+ },
+ {
+ "value": "zscore",
+ "description": "Z-score normalization."
+ }
+ ],
+ "description": "Specifies the type of normalization to apply."
+ }
+ },
+ "parameters": {
+ "default": {},
+ "rules": {
+ "type": "object",
+ "schema": {
+ "min": {
+ "default": 0,
+ "rules": {
+ "type": "number",
+ "description": "Minimum value for normalization."
+ }
+ },
+ "max": {
+ "default": 1000,
+ "rules": {
+ "type": "number",
+ "description": "Maximum value for normalization."
+ }
+ },
+ "curvePoints": {
+ "default": 10,
+ "rules": {
+ "type": "number",
+ "description": "Number of points in the normalization curve."
+ }
+ }
+ },
+ "description": "Normalization parameters (e.g., 'min', 'max', 'mean', 'std')."
+ }
+ }
+ },
+ "curve": {
+ "default": {
+ "1": {
+ "x": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5
+ ],
+ "y": [
+ 10,
+ 20,
+ 30,
+ 40,
+ 50
+ ]
+ }
+ },
+ "rules": {
+ "type": "curve",
+ "description": "Explicitly enumerated dimension keys (no wildcard)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/predict/predict_class.js b/src/predict/predict_class.js
new file mode 100644
index 0000000..486ed9c
--- /dev/null
+++ b/src/predict/predict_class.js
@@ -0,0 +1,593 @@
+/**
+ * @file Predict_class.js
+ *
+ * Permission is hereby granted to any person obtaining a copy of this software
+ * and associated documentation files (the "Software"), to use it for personal
+ * or non-commercial purposes, with the following restrictions:
+ *
+ * 1. **No Copying or Redistribution**: The Software or any of its parts may not
+ * be copied, merged, distributed, sublicensed, or sold without explicit
+ * prior written permission from the author.
+ *
+ * 2. **Commercial Use**: Any use of the Software for commercial purposes requires
+ * a valid license, obtainable only with the explicit consent of the author.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM,
+ * OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * Ownership of this code remains solely with the original author. Unauthorized
+ * use of this Software is strictly prohibited.
+ *
+ * @summary Class for predicting values based on a multidimensional curve.
+ * @description Class for predicting values based on a multidimensional curve.
+ * @module Predict_class
+ * @requires EventEmitter
+ * @requires ConfigUtils
+ * @requires Interpolation
+ * @requires Logger
+ * @exports Predict
+ * @version 0.1.0
+ * @since 0.1.0
+ *
+ * Author:
+ * - Rene De Ren
+ * Email:
+ * - rene@thegoldenbasket.nl
+ * Future Improvements:
+- Add more interpolation types
+- **Local Derivative (Slope)**: Instantaneous rate of change (dY/dX) at the current X. Useful for determining if the curve is ascending or descending.
+- **Second Derivative (Curvature)**: Curvature (d²Y/dX²) at the current X. Indicates how quickly the slope is changing (e.g., sharp or broad peaks).
+- **Distance to Nearest Local Peak or Valley**: X-distance from the current X to the closest local maximum or minimum. Useful for detecting proximity to turning points.
+- **Global Statistics (Mean, Median, Std Dev)**:
+ - Mean: Average of Y.
+ - Median: Middle Y value (sorted).
+ - Std Dev: Variability of Y. Provides insight into central tendency and spread, aiding in normalization or anomaly detection.
+- **Integrated Area Under the Curve (AUC)**: Numerical integration of Y across the X-range. Useful for total sums or energy-related calculations.
+- **Peak “Sharpness” or “Prominence”**: Measure of a peak's height and width relative to surrounding valleys. Important for signal processing or optimization.
+- **Nearest Points Around Current X**: Data points (or interpolated values) immediately to the left and right of the current X. Useful for local interpolation or neighbor analysis.
+- **Forecast / Extrapolation**: Estimated Y values outside the known X-range. Useful for exploring scenarios slightly beyond the data range (use with caution).
+- **Peak Count**: Total number of local maxima in the curve. Useful for identifying all peaks and their prominence.
+- **Position Relative to Mean (or Other Reference Lines)**: Distance (in percent or absolute value) of the current Y from a reference line (e.g., mean or median). Provides context relative to average or baseline levels.
+- **Local Slope Trend**: Direction of the slope (up, down, or flat) at the current X. Useful for identifying trends or inflection points.
+- **Local Curvature Trend**: Direction of the curvature (concave up, concave down, or flat) at the current X. Useful for identifying inflection points or turning points.
+- **Local Peak-to-Valley Ratio**: Ratio of the current peak height to the nearest valley depth. Useful for identifying peak prominence or sharpness.
+- ** Keep track of previous request and next request to identify slope and curvature
+ */
+
+const EventEmitter = require('events');
+const Logger = require('../helper/logger.js');
+const defaultConfig = require('./predictConfig.json');
+const ConfigUtils = require('../helper/configUtils');
+const Interpolation = require('./interpolation');
+
+class Predict {
+ constructor(config = {}) {
+
+ // Initialize dependencies
+ this.emitter = new EventEmitter(); // Own EventEmitter
+ this.configUtils = new ConfigUtils(defaultConfig);
+ this.config = this.configUtils.initConfig(config);
+
+ // Init after config is set
+ this.logger = new Logger(this.config.general.logging.enabled,this.config.general.logging.logLevel, this.config.general.name);
+ this.interpolation = new Interpolation(this.config.interpolation);
+
+ // Input and state
+ this.inputCurve = {};
+ this.currentF = 0;
+ this.currentX = 0;
+ this.outputY = 0;
+
+ // Curves and Splines
+ this.normalizedCurve = {};
+ this.calculatedCurve = {};
+ this.fCurve = {};
+ this.currentFxyCurve = {};
+ this.normalizedSplines = {};
+ this.fSplines = {};
+ this.currentFxySplines = {};
+
+ // Stored min/max values
+ this.xValues = {};
+ this.fValues = {};
+ this.yValues = {};
+ this.currentFxyXMin = 0;
+ this.currentFxyXMax = 0;
+ this.currentFxyYMin = 0;
+ this.currentFxyYMax = 0;
+
+ // From config
+ this.normMin = this.config.normalization.parameters.min;
+ this.normMax = this.config.normalization.parameters.max;
+ this.calculationPoints = this.config.normalization.parameters.curvePoints;
+ this.interpolationType = this.config.interpolation.type;
+
+ // Load curve if provided
+ if (config.curve) {
+ this.inputCurveData = config.curve;
+ } else {
+ this.logger.warn("No curve data provided. Please set curve data using setCurveData method. Using default");
+ this.inputCurveData = this.config.curve;
+ }
+
+ }
+
+ // Improved function to get a local peak in an array by starting in the middle.
+ // It also handles the case of a tie by preferring the left side (arbitrary choice)
+ // when array[start] == leftValue or array[start] == rightValue.
+ getLocalPeak(array) {
+ if (!Array.isArray(array) || array.length === 0) {
+ return { peak: null, peakIndex: -1 };
+ }
+
+ let left = 0;
+ let right = array.length - 1;
+
+ while (left <= right) {
+ const mid = Math.floor((left + right) / 2);
+
+ // Safely retrieve left/right neighbor values (use -Infinity if out of bounds)
+ const leftVal = mid - 1 >= 0 ? array[mid - 1] : -Infinity;
+ const rightVal = mid + 1 < array.length ? array[mid + 1] : -Infinity;
+ const currentVal = array[mid];
+
+ // Check if mid is a local peak
+ if (currentVal >= leftVal && currentVal >= rightVal) {
+ return { peak: currentVal, peakIndex: mid };
+ }
+
+ // If left neighbor is bigger, move left
+ if (leftVal > currentVal) {
+ right = mid - 1;
+ }
+ // Otherwise, move right
+ else {
+ left = mid + 1;
+ }
+ }
+
+ // If no local peak is found
+ return { peak: null, peakIndex: -1 };
+ }
+
+ // Function what uses the peak in the y array to return the yPeak, x value and its procentual value
+ getPosXofYpeak(curve) {
+
+ //find index of y peak
+ const { peak , peakIndex } = this.getLocalPeak(curve.y);
+
+ // scale the x value to procentual value
+ const yPeak = peak;
+ const x = curve.x[peakIndex];
+ const xMin = Math.min(...curve.x);
+ const xMax = Math.max(...curve.x);
+ const xProcent = (x - xMin) / (xMax - xMin) * 100;
+
+ return { yPeak, x, xProcent };
+ }
+
+ calcRelativePositionToPeak(curve , outputY) {
+
+ //find y peak
+ const { peak } = this.getLocalPeak(curve.y);
+
+ if ( peak === null ) {
+ this.logger.warn("No peak found in curve");
+ return -1;
+ }
+
+ // Calculate the "peak-only" percentage:
+ // - Distance from peak, relative to peak itself
+ // - 0% => outputY == peak, 100% => outputY == 0 (if peak != 0)
+ let peakOnlyPercentage;
+ const distanceFromPeak = Math.abs(peak - outputY);
+ if (peak === 0) {
+ // If peak is 0, then the concept of "peak-only" percentage is tricky.
+ // If outputY is also 0 => 0%, otherwise => Infinity.
+ peakOnlyPercentage = distanceFromPeak === 0 ? 0 : Number.POSITIVE_INFINITY;
+ } else {
+ peakOnlyPercentage = (distanceFromPeak / peak) * 100;
+ }
+
+ // Calculate the range-based percentage:
+ // - Range = [yMin, peak]
+ // - 0% => outputY == peak, 100% => outputY == yMin
+ const yMin = Math.min(...curve.y);
+ let rangeBasedPercentage = -1;
+
+ // If peak <= yMin, there is no vertical range for normalization
+ if (peak > yMin) {
+ const distanceFromPeakRange = peak - outputY; // Not absolute
+ const totalRange = peak - yMin;
+ rangeBasedPercentage = (distanceFromPeakRange / totalRange) * 100;
+
+ // Optionally clamp to [0, 100] if outputY goes out of bounds
+ rangeBasedPercentage = Math.max(0, Math.min(100, rangeBasedPercentage));
+ }
+
+ return {
+ peakOnlyPercentage: Math.round(peakOnlyPercentage * 100) / 100,
+ rangeBasedPercentage: Math.round(rangeBasedPercentage * 100) / 100
+ };
+
+ }
+
+ // Function to retrieve current curve including the interpolated active point
+ retrieveActiveCurve(){
+
+ // Retreive y values
+ const yValues = this.currentFxyCurve[this.fDimension].y;
+ // Retreive normalized x values
+ const xValues = this.denormalizeXvals( this.currentFxyCurve[this.fDimension].x );
+
+ //check what the current x value is
+ const currentX = this.currentX;
+
+ //check current y Output value
+ const outputY = this.outputY;
+
+ //find where the current x value should be in the xValues array
+ const index = xValues.findIndex((x) => x > currentX);
+
+ // push the yOutput value in the yValues array between the current x value
+ yValues.splice(index, 0, outputY);
+ xValues.splice(index, 0, currentX);
+
+ return { xValues, yValues };
+ }
+
+ set fDimension(newF) {
+
+ if (newF < this.fValues.min || newF > this.fValues.max) {
+ this.logger.warn(`New f =${newF} is constrained to fit between min=${this.fValues.min} and max=${this.fValues.max}`);
+ newF = this.constrain(newF,this.fValues.min,this.fValues.max);
+ }
+
+ if (newF in this.calculatedCurve) {
+ this.currentFxyCurve[newF] = this.calculatedCurve[newF];
+ this.currentFxySplines = this.normalizedSplines;
+ } else {
+ this.currentFxyCurve = this.buildSingleFxyCurve(
+ this.fSplines,
+ this.calculatedCurve,
+ newF,
+ this.calculationPoints
+ );
+ this.currentFxySplines = this.buildXySplines(this.currentFxyCurve, this.interpolationType);
+ }
+
+ const yArray = this.currentFxyCurve[newF].y;
+ this.currentFxyYMin = Math.min(...yArray);
+ this.currentFxyYMax = Math.max(...yArray);
+
+ this.calculateFxyXRange(newF);
+
+ this.currentF = newF;
+ this.logger.debug(`Calculating new yValue using X= ${this.currentX}`);
+
+ // Recalculate output y based on currentX
+ this.y(this.currentX);
+
+ }
+
+ get fDimension() {
+ return this.currentF;
+ }
+
+ // Function to predict Y value based on X value
+ y(x) {
+
+ // Clamp value before normalization
+ if (x > this.currentFxyXMax) x = this.currentFxyXMax;
+ if (x < this.currentFxyXMin) x = this.currentFxyXMin;
+
+ //keep track of current x value
+ this.currentX = x;
+
+ this.logger.debug(`Interpolating x using input=${x} , currentFxyXmin=${this.currentFxyXMin}, currentFxyXMax=${this.currentFxyXMax}, normMin=${this.normMin}, normMax=${this.normMax} `);
+
+ const normalizedX = this.interpolation.interpolate_lin_single_point(
+ x,
+ this.currentFxyXMin,
+ this.currentFxyXMax,
+ this.normMin,
+ this.normMax
+ );
+
+ this.logger.debug(`Calculating new Y value using ${normalizedX}`);
+
+ this.outputY = this.currentFxySplines[this.fDimension].interpolate(normalizedX);
+
+ return this.outputY;
+
+ }
+
+ set yOutput(y) {
+ this.outputY = y;
+ //by emitting this one output we dont have to use the entire class
+ this.emitter.emit('yOutput', this.outputY);
+ }
+
+ get yOutput() {
+ return this.outputY;
+ }
+
+ set inputCurveData(curve) {
+ try {
+ this.inputCurve = curve;
+ this.buildAllFxyCurves(curve);
+ } catch (error) {
+ this.logger.error(`Curve validation failed: ${error.message}`);
+ this.inputCurve = null; // Reset curve data if validation fails
+ }
+ }
+
+ get inputCurveData() {
+ return this.inputCurve;
+ }
+
+ updateCurve(curve) {
+
+ this.logger.info("Updating curve data");
+ // update config with new curve data merged with existing config
+ const newConfig = {...this.config, curve: curve};
+ this.config = this.configUtils.updateConfig(newConfig);
+
+ const validatedCurve = this.config.curve;
+ this.inputCurve = validatedCurve;
+
+ this.buildAllFxyCurves(validatedCurve);
+
+ }
+
+ constrain(value,min,max) {
+ return Math.min(Math.max(value, min), max);
+ }
+
+ buildAllFxyCurves(curve) {
+ let globalMinY = Infinity;
+ let globalMaxY = -Infinity;
+
+ for (const fKey of Object.keys(curve)) {
+ const f = Number(fKey);
+ this.xValues[f] = {
+ min: Math.min(...curve[f].x),
+ max: Math.max(...curve[f].x),
+ };
+
+ const fMinY = Math.min(...curve[f].y);
+ const fMaxY = Math.max(...curve[f].y);
+
+ if (fMinY < globalMinY) globalMinY = fMinY;
+ if (fMaxY > globalMaxY) globalMaxY = fMaxY;
+
+ // Normalize curves
+ this.normalizedCurve[f] = this.normalizeCurve(curve[f], this.normMin, this.normMax);
+
+ }
+
+ this.normalizedSplines = this.buildXySplines(this.normalizedCurve, this.interpolationType);
+
+ // Build calculated curves (same #points across all f)
+ for (const f of Object.keys(this.normalizedCurve)) {
+ this.calculatedCurve[f] = this.buildCalculatedCurve(this.normalizedSplines, f, this.calculationPoints);
+ }
+
+ this.fCurve = this.buildFCurve(this.calculatedCurve, this.calculationPoints);
+ this.fSplines = this.buildFSplines(this.fCurve, this.interpolationType);
+
+ const fKeys = Object.keys(curve).map(Number);
+ this.fValues.min = Math.min(...fKeys);
+ this.fValues.max = Math.max(...fKeys);
+
+ this.yValues.lowest = globalMinY;
+ this.yValues.highest = globalMaxY;
+
+ // Set initial fDimension to min
+ this.fDimension = this.fValues.min;
+ this.logger.debug(` !!! Initial fDimension set to ${this.fValues.min}`);
+ }
+
+ normalizeVal(val, normMin, normMax) {
+ return this.interpolation.interpolate_lin_single_point(val, normMin, normMax, 1, this.calculationPoints);
+ }
+
+ normalizeCurve(curve, normMin, normMax) {
+ return {
+ x: this.interpolation.interpolate_lin_curve_points(curve.x, normMin, normMax),
+ y: curve.y,
+ };
+ }
+
+ denormalizeXvals(xValues) {
+ // Retrieve the normalized x-array from the current Fxy curve
+ const normalizedX = xValues;
+
+ // Map each normalized x to its denormalized value
+ const denormalizedX = normalizedX.map(nx => {
+ return this.interpolation.interpolate_lin_single_point(
+ nx,
+ this.normMin,
+ this.normMax,
+ this.currentFxyXMin,
+ this.currentFxyXMax
+ );
+ });
+
+ // Return a new object with denormalized x and the original y array
+ return denormalizedX;
+ }
+
+ // interpolate input x value to denormalized x value
+ denormalizeX(x) {
+ return this.interpolation.interpolate_lin_single_point(
+ x,
+ this.normMin,
+ this.normMax,
+ this.currentFxyXMin,
+ this.currentFxyXMax
+ );
+ }
+
+ buildCalculatedCurve(splines, f, pointsCount) {
+ const cCurve = { x: [], y: [] };
+ for (let i = 1; i <= pointsCount; i++) {
+ const nx = this.interpolation.interpolate_lin_single_point(i, 1, pointsCount, this.normMin, this.normMax);
+ cCurve.x.push(nx);
+ cCurve.y.push(splines[f].interpolate(nx));
+ }
+ return cCurve;
+ }
+
+ buildFCurve(curve, pointsCount) {
+ const fCurve = {};
+ for (let i = 0; i < pointsCount; i++) {
+ fCurve[i] = { x: [], y: [] };
+ }
+
+ for (let i = 0; i < pointsCount; i++) {
+ for (const [f, val] of Object.entries(curve)) {
+ fCurve[i].x.push(Number(f));
+ fCurve[i].y.push(val.y[i]);
+ }
+ }
+ return fCurve;
+ }
+
+ buildFSplines(fCurve, type) {
+ const fSplines = {};
+ for (const i of Object.keys(fCurve)) {
+ fSplines[i] = this.loadSpline(fCurve[i], type);
+ }
+ return fSplines;
+ }
+
+ buildSingleFxyCurve(fSplines, cCurve, f, pointsCount) {
+ const singleCurve = { [f]: { x: [], y: [] } };
+ const keys = Object.keys(cCurve);
+ const firstKey = keys[0];
+
+ for (let i = 0; i < pointsCount; i++) {
+ singleCurve[f].x.push(cCurve[firstKey].x[i]);
+ singleCurve[f].y.push(fSplines[i].interpolate(f));
+ }
+
+ return singleCurve;
+ }
+
+ buildXySplines(curves, type) {
+ const xySplines = {};
+ for (const f of Object.keys(curves)) {
+ xySplines[f] = this.loadSpline(curves[f], type);
+ }
+ return xySplines;
+ }
+
+ loadSpline(curve, type) {
+ const splineObj = new Interpolation();
+ splineObj.load_spline(curve.x, curve.y, type);
+ return splineObj;
+ }
+
+ calculateFxyXRange(value) {
+
+ const keys = Object.keys(this.inputCurve).map(Number).sort((a, b) => a - b);
+ for (let i = 0; i < keys.length; i++) {
+ const cur = keys[i];
+ const next = keys[i + 1];
+
+ if (value === cur) {
+ this.currentFxyXMin = this.xValues[cur].min;
+ this.currentFxyXMax = this.xValues[cur].max;
+ return;
+ }
+
+ if (next && value > cur && value < next) {
+ this.currentFxyXMin = this.interpolation.interpolate_lin_single_point(
+ value, cur, next, this.xValues[cur].min, this.xValues[next].min
+ );
+ this.currentFxyXMax = this.interpolation.interpolate_lin_single_point(
+ value, cur, next, this.xValues[cur].max, this.xValues[next].max
+ );
+ return;
+ }
+ }
+ }
+
+ getOutput() {
+ return {
+ x: this.currentX,
+ y: this.yOutput,
+ f: this.currentF,
+ yOutputPosVsPeak: {
+ peakOnlyPercentage: this.calcRelativePositionToPeak(this.currentFxyCurve[this.fDimension], this.outputY).peakOnlyPercentage,
+ rangeBasedPercentage: this.calcRelativePositionToPeak(this.currentFxyCurve[this.fDimension], this.outputY).rangeBasedPercentage
+ },
+ posXyPeak: this.getPosXofYpeak(this.currentFxyCurve[this.fDimension]),
+ xRange: { min: this.currentFxyXMin, max: this.currentFxyXMax },
+ yRange: { min: this.currentFxyYMin, max: this.currentFxyYMax },
+ };
+ }
+}
+
+module.exports = Predict;
+
+/*
+// Example usage
+let example =
+{
+ 0:
+ {
+ x:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
+ y:[5, 15, 25, 35, 45, 55, 45, 35, 25, 15],
+ },
+ 100:
+ {
+ x:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
+ y:[50, 150, 250, 350, 450, 550, 450, 350, 250, 150],
+ }
+}
+
+//set curve data in config
+let config = {curve:example};
+
+var predict = new Predict(config=config);
+
+console.log(" showing curve data");
+console.log(predict.inputCurveData);
+
+console.log(" showing config data");
+console.log(predict.config);
+
+// specify dimension f if there is no dim f then specify 0 as example 2
+console.log(" showing config data");
+console.log(predict.config);
+
+console.log(`lowest y value ever seen : ${predict.yValues.lowest}`);
+console.log(`higehst y value ever seen : ${predict.yValues.highest}`);
+
+predict.fDimension = 0;
+
+console.log(`default x : ${predict.currentX}`);
+console.log(`min x : ${predict.currentFxyXMin} , max x : ${predict.currentFxyXMax} for f : ${predict.fDimension}`);
+console.log(`min y : ${predict.currentFxyYMin} , max y : ${predict.currentFxyYMax} for f : ${predict.fDimension}`);
+console.log(`Y prediction is= ${predict.outputY} @ f : ${predict.fDimension} `);
+
+// specify x value to predict y
+const yVal = predict.y(x=0);
+console.log(`For x : ${predict.currentX} is the predicted value ${yVal} @ f : ${predict.fDimension} `);
+console.log(predict.retrieveActiveCurve());
+const peak = predict.getLocalPeak(predict.currentFxyCurve[predict.fDimension].y);
+
+console.log(predict.getPosXofYpeak(predict.currentFxyCurve[predict.fDimension]));
+
+const { peakOnlyPercentage, rangeBasedPercentage } = predict.calcRelativePositionToPeak(predict.currentFxyCurve[predict.fDimension], predict.outputY);
+console.log(`Peak-only percentage: ${peakOnlyPercentage}%, Range-based percentage: ${rangeBasedPercentage}%`);
+
+
+//*/