Parcourir la source

project initialized

Luis il y a 5 ans
Parent
révision
f4296bcada
100 fichiers modifiés avec 9242 ajouts et 0 suppressions
  1. 26
    0
      km0App/config.xml
  2. 23
    0
      km0App/hooks/README.md
  3. 1
    0
      km0App/node_modules/.bin/create
  4. 1
    0
      km0App/node_modules/.bin/ios-sim
  5. 1
    0
      km0App/node_modules/.bin/nopt
  6. 1
    0
      km0App/node_modules/.bin/semver
  7. 1
    0
      km0App/node_modules/.bin/shjs
  8. 1
    0
      km0App/node_modules/.bin/tape
  9. 1
    0
      km0App/node_modules/.bin/uuid
  10. 1
    0
      km0App/node_modules/.bin/which
  11. 46
    0
      km0App/node_modules/abbrev/LICENSE
  12. 23
    0
      km0App/node_modules/abbrev/README.md
  13. 61
    0
      km0App/node_modules/abbrev/abbrev.js
  14. 57
    0
      km0App/node_modules/abbrev/package.json
  15. 8
    0
      km0App/node_modules/android-versions/.jshintignore
  16. 29
    0
      km0App/node_modules/android-versions/.jshintrc
  17. 3
    0
      km0App/node_modules/android-versions/.travis.yml
  18. 87
    0
      km0App/node_modules/android-versions/README.md
  19. 162
    0
      km0App/node_modules/android-versions/index.js
  20. 67
    0
      km0App/node_modules/android-versions/package.json
  21. 119
    0
      km0App/node_modules/android-versions/tests/index.test.js
  22. 4
    0
      km0App/node_modules/ansi/.jshintrc
  23. 1
    0
      km0App/node_modules/ansi/.npmignore
  24. 23
    0
      km0App/node_modules/ansi/History.md
  25. 24
    0
      km0App/node_modules/ansi/LICENSE
  26. 98
    0
      km0App/node_modules/ansi/README.md
  27. 16
    0
      km0App/node_modules/ansi/examples/beep/index.js
  28. 15
    0
      km0App/node_modules/ansi/examples/clear/index.js
  29. 32
    0
      km0App/node_modules/ansi/examples/cursorPosition.js
  30. 87
    0
      km0App/node_modules/ansi/examples/progress/index.js
  31. 405
    0
      km0App/node_modules/ansi/lib/ansi.js
  32. 71
    0
      km0App/node_modules/ansi/lib/newlines.js
  33. 55
    0
      km0App/node_modules/ansi/package.json
  34. 51
    0
      km0App/node_modules/array-ify/README.md
  35. 4
    0
      km0App/node_modules/array-ify/index.js
  36. 68
    0
      km0App/node_modules/array-ify/package.json
  37. 5
    0
      km0App/node_modules/balanced-match/.npmignore
  38. 21
    0
      km0App/node_modules/balanced-match/LICENSE.md
  39. 91
    0
      km0App/node_modules/balanced-match/README.md
  40. 59
    0
      km0App/node_modules/balanced-match/index.js
  41. 77
    0
      km0App/node_modules/balanced-match/package.json
  42. 21
    0
      km0App/node_modules/base64-js/LICENSE
  43. 32
    0
      km0App/node_modules/base64-js/README.md
  44. 1
    0
      km0App/node_modules/base64-js/base64js.min.js
  45. 152
    0
      km0App/node_modules/base64-js/index.js
  46. 60
    0
      km0App/node_modules/base64-js/package.json
  47. 2393
    0
      km0App/node_modules/big-integer/BigInteger.d.ts
  48. 1453
    0
      km0App/node_modules/big-integer/BigInteger.js
  49. 1
    0
      km0App/node_modules/big-integer/BigInteger.min.js
  50. 24
    0
      km0App/node_modules/big-integer/LICENSE
  51. 588
    0
      km0App/node_modules/big-integer/README.md
  52. 29
    0
      km0App/node_modules/big-integer/bower.json
  53. 80
    0
      km0App/node_modules/big-integer/package.json
  54. 26
    0
      km0App/node_modules/big-integer/tsconfig.json
  55. 8
    0
      km0App/node_modules/bplist-creator/.npmignore
  56. 64
    0
      km0App/node_modules/bplist-creator/README.md
  57. 445
    0
      km0App/node_modules/bplist-creator/bplistCreator.js
  58. 58
    0
      km0App/node_modules/bplist-creator/package.json
  59. BIN
      km0App/node_modules/bplist-creator/test/airplay.bplist
  60. BIN
      km0App/node_modules/bplist-creator/test/binaryData.bplist
  61. 197
    0
      km0App/node_modules/bplist-creator/test/creatorTest.js
  62. BIN
      km0App/node_modules/bplist-creator/test/iTunes-small.bplist
  63. BIN
      km0App/node_modules/bplist-creator/test/sample1.bplist
  64. BIN
      km0App/node_modules/bplist-creator/test/sample2.bplist
  65. BIN
      km0App/node_modules/bplist-creator/test/uid.bplist
  66. BIN
      km0App/node_modules/bplist-creator/test/utf16.bplist
  67. 8
    0
      km0App/node_modules/bplist-parser/.npmignore
  68. 47
    0
      km0App/node_modules/bplist-parser/README.md
  69. 357
    0
      km0App/node_modules/bplist-parser/bplistParser.js
  70. 59
    0
      km0App/node_modules/bplist-parser/package.json
  71. BIN
      km0App/node_modules/bplist-parser/test/airplay.bplist
  72. BIN
      km0App/node_modules/bplist-parser/test/iTunes-small.bplist
  73. BIN
      km0App/node_modules/bplist-parser/test/int64.bplist
  74. 10
    0
      km0App/node_modules/bplist-parser/test/int64.xml
  75. 159
    0
      km0App/node_modules/bplist-parser/test/parseTest.js
  76. BIN
      km0App/node_modules/bplist-parser/test/sample1.bplist
  77. BIN
      km0App/node_modules/bplist-parser/test/sample2.bplist
  78. BIN
      km0App/node_modules/bplist-parser/test/uid.bplist
  79. BIN
      km0App/node_modules/bplist-parser/test/utf16.bplist
  80. BIN
      km0App/node_modules/bplist-parser/test/utf16_chinese.plist
  81. 21
    0
      km0App/node_modules/brace-expansion/LICENSE
  82. 129
    0
      km0App/node_modules/brace-expansion/README.md
  83. 201
    0
      km0App/node_modules/brace-expansion/index.js
  84. 75
    0
      km0App/node_modules/brace-expansion/package.json
  85. 70
    0
      km0App/node_modules/compare-func/README.md
  86. 42
    0
      km0App/node_modules/compare-func/index.js
  87. 78
    0
      km0App/node_modules/compare-func/package.json
  88. 4
    0
      km0App/node_modules/concat-map/.travis.yml
  89. 18
    0
      km0App/node_modules/concat-map/LICENSE
  90. 62
    0
      km0App/node_modules/concat-map/README.markdown
  91. 6
    0
      km0App/node_modules/concat-map/example/map.js
  92. 13
    0
      km0App/node_modules/concat-map/index.js
  93. 88
    0
      km0App/node_modules/concat-map/package.json
  94. 39
    0
      km0App/node_modules/concat-map/test/map.js
  95. 2
    0
      km0App/node_modules/cordova-android/.eslintignore
  96. 10
    0
      km0App/node_modules/cordova-android/.eslintrc.yml
  97. 94
    0
      km0App/node_modules/cordova-android/.gitattributes
  98. 42
    0
      km0App/node_modules/cordova-android/.github/ISSUE_TEMPLATE.md
  99. 50
    0
      km0App/node_modules/cordova-android/.github/ISSUE_TEMPLATE/BUG_REPORT.md
  100. 0
    0
      km0App/node_modules/cordova-android/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md

+ 26
- 0
km0App/config.xml Voir le fichier

@@ -0,0 +1,26 @@
1
+<?xml version='1.0' encoding='utf-8'?>
2
+<widget id="io.cordova.hellocordova" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
3
+    <name>HelloCordova</name>
4
+    <description>
5
+        A sample Apache Cordova application that responds to the deviceready event.
6
+    </description>
7
+    <author email="dev@cordova.apache.org" href="http://cordova.io">
8
+        Apache Cordova Team
9
+    </author>
10
+    <content src="index.html" />
11
+    <plugin name="cordova-plugin-whitelist" spec="1" />
12
+    <access origin="*" />
13
+    <allow-intent href="http://*/*" />
14
+    <allow-intent href="https://*/*" />
15
+    <allow-intent href="tel:*" />
16
+    <allow-intent href="sms:*" />
17
+    <allow-intent href="mailto:*" />
18
+    <allow-intent href="geo:*" />
19
+    <platform name="android">
20
+        <allow-intent href="market:*" />
21
+    </platform>
22
+    <platform name="ios">
23
+        <allow-intent href="itms:*" />
24
+        <allow-intent href="itms-apps:*" />
25
+    </platform>
26
+</widget>

+ 23
- 0
km0App/hooks/README.md Voir le fichier

@@ -0,0 +1,23 @@
1
+<!--
2
+#
3
+# Licensed to the Apache Software Foundation (ASF) under one
4
+# or more contributor license agreements.  See the NOTICE file
5
+# distributed with this work for additional information
6
+# regarding copyright ownership.  The ASF licenses this file
7
+# to you under the Apache License, Version 2.0 (the
8
+# "License"); you may not use this file except in compliance
9
+# with the License.  You may obtain a copy of the License at
10
+#
11
+# http://www.apache.org/licenses/LICENSE-2.0
12
+#
13
+# Unless required by applicable law or agreed to in writing,
14
+# software distributed under the License is distributed on an
15
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+#  KIND, either express or implied.  See the License for the
17
+# specific language governing permissions and limitations
18
+# under the License.
19
+#
20
+-->
21
+# Cordova Hooks
22
+
23
+Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system  to customize cordova commands. See Hooks Guide for more details:  http://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html#Hooks%20Guide.

+ 1
- 0
km0App/node_modules/.bin/create Voir le fichier

@@ -0,0 +1 @@
1
+../cordova-android/bin/create

+ 1
- 0
km0App/node_modules/.bin/ios-sim Voir le fichier

@@ -0,0 +1 @@
1
+../ios-sim/bin/ios-sim

+ 1
- 0
km0App/node_modules/.bin/nopt Voir le fichier

@@ -0,0 +1 @@
1
+../nopt/bin/nopt.js

+ 1
- 0
km0App/node_modules/.bin/semver Voir le fichier

@@ -0,0 +1 @@
1
+../semver/bin/semver

+ 1
- 0
km0App/node_modules/.bin/shjs Voir le fichier

@@ -0,0 +1 @@
1
+../shelljs/bin/shjs

+ 1
- 0
km0App/node_modules/.bin/tape Voir le fichier

@@ -0,0 +1 @@
1
+../tape/bin/tape

+ 1
- 0
km0App/node_modules/.bin/uuid Voir le fichier

@@ -0,0 +1 @@
1
+../uuid/bin/uuid

+ 1
- 0
km0App/node_modules/.bin/which Voir le fichier

@@ -0,0 +1 @@
1
+../which/bin/which

+ 46
- 0
km0App/node_modules/abbrev/LICENSE Voir le fichier

@@ -0,0 +1,46 @@
1
+This software is dual-licensed under the ISC and MIT licenses.
2
+You may use this software under EITHER of the following licenses.
3
+
4
+----------
5
+
6
+The ISC License
7
+
8
+Copyright (c) Isaac Z. Schlueter and Contributors
9
+
10
+Permission to use, copy, modify, and/or distribute this software for any
11
+purpose with or without fee is hereby granted, provided that the above
12
+copyright notice and this permission notice appear in all copies.
13
+
14
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
15
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
17
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
20
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21
+
22
+----------
23
+
24
+Copyright Isaac Z. Schlueter and Contributors
25
+All rights reserved.
26
+
27
+Permission is hereby granted, free of charge, to any person
28
+obtaining a copy of this software and associated documentation
29
+files (the "Software"), to deal in the Software without
30
+restriction, including without limitation the rights to use,
31
+copy, modify, merge, publish, distribute, sublicense, and/or sell
32
+copies of the Software, and to permit persons to whom the
33
+Software is furnished to do so, subject to the following
34
+conditions:
35
+
36
+The above copyright notice and this permission notice shall be
37
+included in all copies or substantial portions of the Software.
38
+
39
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46
+OTHER DEALINGS IN THE SOFTWARE.

+ 23
- 0
km0App/node_modules/abbrev/README.md Voir le fichier

@@ -0,0 +1,23 @@
1
+# abbrev-js
2
+
3
+Just like [ruby's Abbrev](http://apidock.com/ruby/Abbrev).
4
+
5
+Usage:
6
+
7
+    var abbrev = require("abbrev");
8
+    abbrev("foo", "fool", "folding", "flop");
9
+    
10
+    // returns:
11
+    { fl: 'flop'
12
+    , flo: 'flop'
13
+    , flop: 'flop'
14
+    , fol: 'folding'
15
+    , fold: 'folding'
16
+    , foldi: 'folding'
17
+    , foldin: 'folding'
18
+    , folding: 'folding'
19
+    , foo: 'foo'
20
+    , fool: 'fool'
21
+    }
22
+
23
+This is handy for command-line scripts, or other cases where you want to be able to accept shorthands.

+ 61
- 0
km0App/node_modules/abbrev/abbrev.js Voir le fichier

@@ -0,0 +1,61 @@
1
+module.exports = exports = abbrev.abbrev = abbrev
2
+
3
+abbrev.monkeyPatch = monkeyPatch
4
+
5
+function monkeyPatch () {
6
+  Object.defineProperty(Array.prototype, 'abbrev', {
7
+    value: function () { return abbrev(this) },
8
+    enumerable: false, configurable: true, writable: true
9
+  })
10
+
11
+  Object.defineProperty(Object.prototype, 'abbrev', {
12
+    value: function () { return abbrev(Object.keys(this)) },
13
+    enumerable: false, configurable: true, writable: true
14
+  })
15
+}
16
+
17
+function abbrev (list) {
18
+  if (arguments.length !== 1 || !Array.isArray(list)) {
19
+    list = Array.prototype.slice.call(arguments, 0)
20
+  }
21
+  for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
22
+    args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
23
+  }
24
+
25
+  // sort them lexicographically, so that they're next to their nearest kin
26
+  args = args.sort(lexSort)
27
+
28
+  // walk through each, seeing how much it has in common with the next and previous
29
+  var abbrevs = {}
30
+    , prev = ""
31
+  for (var i = 0, l = args.length ; i < l ; i ++) {
32
+    var current = args[i]
33
+      , next = args[i + 1] || ""
34
+      , nextMatches = true
35
+      , prevMatches = true
36
+    if (current === next) continue
37
+    for (var j = 0, cl = current.length ; j < cl ; j ++) {
38
+      var curChar = current.charAt(j)
39
+      nextMatches = nextMatches && curChar === next.charAt(j)
40
+      prevMatches = prevMatches && curChar === prev.charAt(j)
41
+      if (!nextMatches && !prevMatches) {
42
+        j ++
43
+        break
44
+      }
45
+    }
46
+    prev = current
47
+    if (j === cl) {
48
+      abbrevs[current] = current
49
+      continue
50
+    }
51
+    for (var a = current.substr(0, j) ; j <= cl ; j ++) {
52
+      abbrevs[a] = current
53
+      a += current.charAt(j)
54
+    }
55
+  }
56
+  return abbrevs
57
+}
58
+
59
+function lexSort (a, b) {
60
+  return a === b ? 0 : a > b ? 1 : -1
61
+}

+ 57
- 0
km0App/node_modules/abbrev/package.json Voir le fichier

@@ -0,0 +1,57 @@
1
+{
2
+  "_from": "abbrev@1",
3
+  "_id": "abbrev@1.1.1",
4
+  "_inBundle": false,
5
+  "_integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
6
+  "_location": "/abbrev",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "abbrev@1",
12
+    "name": "abbrev",
13
+    "escapedName": "abbrev",
14
+    "rawSpec": "1",
15
+    "saveSpec": null,
16
+    "fetchSpec": "1"
17
+  },
18
+  "_requiredBy": [
19
+    "/ios-sim/nopt",
20
+    "/nopt"
21
+  ],
22
+  "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
23
+  "_shasum": "f8f2c887ad10bf67f634f005b6987fed3179aac8",
24
+  "_spec": "abbrev@1",
25
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/ios-sim/node_modules/nopt",
26
+  "author": {
27
+    "name": "Isaac Z. Schlueter",
28
+    "email": "i@izs.me"
29
+  },
30
+  "bugs": {
31
+    "url": "https://github.com/isaacs/abbrev-js/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "deprecated": false,
35
+  "description": "Like ruby's abbrev module, but in js",
36
+  "devDependencies": {
37
+    "tap": "^10.1"
38
+  },
39
+  "files": [
40
+    "abbrev.js"
41
+  ],
42
+  "homepage": "https://github.com/isaacs/abbrev-js#readme",
43
+  "license": "ISC",
44
+  "main": "abbrev.js",
45
+  "name": "abbrev",
46
+  "repository": {
47
+    "type": "git",
48
+    "url": "git+ssh://git@github.com/isaacs/abbrev-js.git"
49
+  },
50
+  "scripts": {
51
+    "postpublish": "git push origin --all; git push origin --tags",
52
+    "postversion": "npm publish",
53
+    "preversion": "npm test",
54
+    "test": "tap test.js --100"
55
+  },
56
+  "version": "1.1.1"
57
+}

+ 8
- 0
km0App/node_modules/android-versions/.jshintignore Voir le fichier

@@ -0,0 +1,8 @@
1
+.git/
2
+node_modules/
3
+coverage/
4
+build/
5
+assets/
6
+dist/
7
+docs/
8
+tests/

+ 29
- 0
km0App/node_modules/android-versions/.jshintrc Voir le fichier

@@ -0,0 +1,29 @@
1
+{
2
+  "esversion": 6,
3
+  "indent":   2,
4
+  "forin":    true,
5
+  "noarg":    true,
6
+  "bitwise":  true,
7
+  "nonew":    true,
8
+  "strict":   true,
9
+
10
+  "browser":  true,
11
+  "devel":    true,
12
+  "node":     false,
13
+  "jquery":   false,
14
+  "esnext":   false,
15
+  "moz":      false,
16
+  "es3":      false,
17
+
18
+  "asi":      true,
19
+
20
+  "eqnull":   true,
21
+  "debug":    true,
22
+  "boss":     true,
23
+  "evil":     true,
24
+  "loopfunc": true,
25
+  "laxbreak": true,
26
+
27
+  "unused":   true,
28
+  "undef":    true
29
+}

+ 3
- 0
km0App/node_modules/android-versions/.travis.yml Voir le fichier

@@ -0,0 +1,3 @@
1
+language: node_js
2
+node_js:
3
+  - "6.1.0"

+ 87
- 0
km0App/node_modules/android-versions/README.md Voir le fichier

@@ -0,0 +1,87 @@
1
+Android Versions
2
+================
3
+
4
+A node module to get Android versions by API level, NDK level, semantic version, or version name.
5
+
6
+Versions are referenced from [source.android.com/source/build-numbers.html](https://source.android.com/source/build-numbers.html#platform-code-names-versions-api-levels-and-ndk-releases). The version for "Current Development Build" (`"CUR_DEVELOPMENT"`) is not included in the list of `VERSIONS`.
7
+
8
+[![NPM version][npm-image]][npm-url]
9
+[![build status][travis-image]][travis-url]
10
+
11
+[npm-image]: https://img.shields.io/npm/v/android-versions.svg?style=flat-square
12
+[npm-url]: https://npmjs.org/package/android-versions
13
+[travis-image]: https://img.shields.io/travis/dvoiss/android-versions.svg?style=flat-square
14
+[travis-url]: https://travis-ci.org/dvoiss/android-versions
15
+
16
+## Install
17
+
18
+```bash
19
+# NPM
20
+npm install android-versions --save
21
+# YARN
22
+yarn add android-versions
23
+```
24
+
25
+## Usage
26
+
27
+View the tests for more advanced usage.
28
+
29
+```javascript
30
+const android = require('android-versions')
31
+```
32
+
33
+#### Get by API level:
34
+```javascript
35
+console.log(android.get(23))
36
+
37
+=> { api: 23, ndk: 8, semver: "6.0", name: "Marshmallow", versionCode: "M" }
38
+```
39
+
40
+#### Get by version:
41
+
42
+```javascript
43
+console.log(android.get("2.3.3"))
44
+
45
+=> { api: 10, ndk: 5, semver: "2.3.3", name: "Gingerbread", versionCode: "GINGERBREAD_MR1" }
46
+```
47
+
48
+#### Get all by predicate:
49
+
50
+```
51
+android.getAll((version) => {
52
+  return version.ndk > 5 && version.api < 15
53
+}).map((version) => version.versionCode)
54
+
55
+=> [ "HONEYCOMB_MR1", "HONEYCOMB_MR2", "ICE_CREAM_SANDWICH" ]
56
+```
57
+
58
+#### Access a specific version with all info:
59
+
60
+```
61
+android.LOLLIPOP
62
+
63
+=> { api: 21, ndk: 8, semver: "5.0", name: "Lollipop", versionCode: "LOLLIPOP" }
64
+```
65
+
66
+#### Access the complete reference of Android versions with all info:
67
+
68
+```javascript
69
+android.VERSIONS
70
+
71
+=> {
72
+  BASE:    { api: 1,  ndk: 0, semver: "1.0", name: "(no code name)", versionCode: "BASE" },
73
+  ...
74
+  N:       { api: 24, ndk: 8, semver: "7.0", name: "Nougat",         versionCode: "N" }
75
+  ...
76
+}
77
+```
78
+
79
+## Test
80
+
81
+```bash
82
+npm run test
83
+```
84
+
85
+## License
86
+
87
+MIT

+ 162
- 0
km0App/node_modules/android-versions/index.js Voir le fichier

@@ -0,0 +1,162 @@
1
+/**
2
+ * Copyright (c) 2016, David Voiss <davidvoiss@gmail.com>
3
+ *
4
+ * Permission to use, copy, modify, and/or distribute this software for any purpose
5
+ * with or without fee is hereby granted, provided that the above copyright notice
6
+ * and this permission notice appear in all copies.
7
+ *
8
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
10
+ * FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
12
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
13
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
14
+ * THIS SOFTWARE.
15
+*/
16
+
17
+/* jshint node: true */
18
+"use strict";
19
+
20
+/**
21
+ * A module to get Android versions by API level, NDK level, semantic version, or version name.
22
+ *
23
+ * Versions are referenced from here:
24
+ * {@link https://source.android.com/source/build-numbers.html#platform-code-names-versions-api-levels-and-ndk-releases}
25
+ * {@link https://github.com/android/platform_frameworks_base/blob/master/core/java/android/os/Build.java}
26
+ *
27
+ * The version for "Current Development Build" ("CUR_DEVELOPMENT") is not included.
28
+ *
29
+ * @module android-versions
30
+ */
31
+
32
+var VERSIONS = {
33
+  BASE:                   { api: 1,     ndk: 0, semver: "1.0",               name: "(no code name)",     },
34
+  BASE_1_1:               { api: 2,     ndk: 0, semver: "1.1",               name: "(no code name)",     },
35
+  CUPCAKE:                { api: 3,     ndk: 1, semver: "1.5",               name: "Cupcake",            },
36
+  DONUT:                  { api: 4,     ndk: 2, semver: "1.6",               name: "Donut",              },
37
+  ECLAIR:                 { api: 5,     ndk: 2, semver: "2.0",               name: "Eclair",             },
38
+  ECLAIR_0_1:             { api: 6,     ndk: 2, semver: "2.0.1",             name: "Eclair",             },
39
+  ECLAIR_MR1:             { api: 7,     ndk: 3, semver: "2.1",               name: "Eclair",             },
40
+  FROYO:                  { api: 8,     ndk: 4, semver: "2.2.x",             name: "Froyo",              },
41
+  GINGERBREAD:            { api: 9,     ndk: 5, semver: "2.3.0 - 2.3.2",     name: "Gingerbread",        },
42
+  GINGERBREAD_MR1:        { api: 10,    ndk: 5, semver: "2.3.3 - 2.3.7",     name: "Gingerbread",        },
43
+  HONEYCOMB:              { api: 11,    ndk: 5, semver: "3.0",               name: "Honeycomb",          },
44
+  HONEYCOMB_MR1:          { api: 12,    ndk: 6, semver: "3.1",               name: "Honeycomb",          },
45
+  HONEYCOMB_MR2:          { api: 13,    ndk: 6, semver: "3.2.x",             name: "Honeycomb",          },
46
+  ICE_CREAM_SANDWICH:     { api: 14,    ndk: 7, semver: "4.0.1 - 4.0.2",     name: "Ice Cream Sandwich", },
47
+  ICE_CREAM_SANDWICH_MR1: { api: 15,    ndk: 8, semver: "4.0.3 - 4.0.4",     name: "Ice Cream Sandwich", },
48
+  JELLY_BEAN:             { api: 16,    ndk: 8, semver: "4.1.x",             name: "Jellybean",          },
49
+  JELLY_BEAN_MR1:         { api: 17,    ndk: 8, semver: "4.2.x",             name: "Jellybean",          },
50
+  JELLY_BEAN_MR2:         { api: 18,    ndk: 8, semver: "4.3.x",             name: "Jellybean",          },
51
+  KITKAT:                 { api: 19,    ndk: 8, semver: "4.4.0 - 4.4.4",     name: "KitKat",             },
52
+  KITKAT_WATCH:           { api: 20,    ndk: 8, semver: "4.4",               name: "KitKat Watch",       },
53
+  LOLLIPOP:               { api: 21,    ndk: 8, semver: "5.0",               name: "Lollipop",           },
54
+  LOLLIPOP_MR1:           { api: 22,    ndk: 8, semver: "5.1",               name: "Lollipop",           },
55
+  M:                      { api: 23,    ndk: 8, semver: "6.0",               name: "Marshmallow",        },
56
+  N:                      { api: 24,    ndk: 8, semver: "7.0",               name: "Nougat",             },
57
+  N_MR1:                  { api: 25,    ndk: 8, semver: "7.1",               name: "Nougat",             },
58
+  O:                      { api: 26,    ndk: 8, semver: "8.0.0",             name: "Oreo",               },
59
+  O_MR1:                  { api: 27,    ndk: 8, semver: "8.1.0",             name: "Oreo",               },
60
+  P:                      { api: 28,    ndk: 8, semver: "9",                 name: "Pie",                },
61
+  Q:                      { api: 29,    ndk: 8, semver: "10",                name: "Android10",          }
62
+}
63
+
64
+// Add a key to each version of Android for the "versionCode".
65
+// This is the same key we use in the VERSIONS map above.
66
+Object.keys(VERSIONS).forEach(function(version) {
67
+  VERSIONS[version].versionCode = version
68
+})
69
+
70
+var semver = require('semver');
71
+
72
+// semver format requires <major>.<minor>.<patch> but we allow just <major>.<minor> format.
73
+// Coerce <major>.<minor> to <major>.<minor>.0
74
+function formatSemver(semver) {
75
+  if (semver.match(/^\d+.\d+$/)) {
76
+    return semver + '.0'
77
+  } else {
78
+    return semver
79
+  }
80
+}
81
+
82
+// The default predicate compares against API level, semver, name, or code.
83
+function getFromDefaultPredicate(arg) {
84
+  // Coerce arg to string for comparisons below.
85
+  arg = arg.toString()
86
+
87
+  return getFromPredicate(function(version) {
88
+    // Check API level before all else.
89
+    if (arg === version.api.toString()) {
90
+      return true
91
+    }
92
+
93
+    var argSemver = formatSemver(arg)
94
+    var versionSemver = formatSemver(version.semver)
95
+
96
+    if (semver.valid(argSemver) && semver.satisfies(argSemver, versionSemver)) {
97
+      return true
98
+    }
99
+
100
+    // Compare version name and code.
101
+    return arg === version.name || arg === version.versionCode
102
+  })
103
+}
104
+
105
+// The function to allow passing a predicate.
106
+function getFromPredicate(predicate) {
107
+  if (predicate === null) {
108
+    return null
109
+  }
110
+
111
+  return Object.keys(VERSIONS).filter(function(version) {
112
+    return predicate(VERSIONS[version])
113
+  }).map(function(key) { return VERSIONS[key] })
114
+}
115
+
116
+/**
117
+ * The Android version codes available as keys for easier look-up.
118
+ */
119
+Object.keys(VERSIONS).forEach(function(name) {
120
+  exports[name] = VERSIONS[name]
121
+})
122
+
123
+/**
124
+ * The complete reference of Android versions for easier look-up.
125
+ */
126
+exports.VERSIONS = VERSIONS
127
+
128
+/**
129
+ * Retrieve a single Android version.
130
+ *
131
+ * @param {object | Function} arg - The value or predicate to use to retrieve values.
132
+ *
133
+ * @return {object} An object representing the version found or null if none found.
134
+ */
135
+exports.get = function(arg) {
136
+  var result = exports.getAll(arg)
137
+
138
+  if (result === null || result.length === 0) {
139
+    return null
140
+  }
141
+
142
+  return result[0]
143
+}
144
+
145
+/**
146
+ * Retrieve all Android versions that meet the criteria of the argument.
147
+ *
148
+ * @param {object | Function} arg - The value or predicate to use to retrieve values.
149
+ *
150
+ * @return {object} An object representing the version found or null if none found.
151
+ */
152
+exports.getAll = function(arg) {
153
+  if (arg === null) {
154
+    return null
155
+  }
156
+
157
+  if (typeof arg === "function") {
158
+    return getFromPredicate(arg)
159
+  } else {
160
+    return getFromDefaultPredicate(arg)
161
+  }
162
+}

+ 67
- 0
km0App/node_modules/android-versions/package.json Voir le fichier

@@ -0,0 +1,67 @@
1
+{
2
+  "_from": "android-versions@^1.4.0",
3
+  "_id": "android-versions@1.5.0",
4
+  "_inBundle": false,
5
+  "_integrity": "sha512-/GWUAqa2OJNlDF5VGSe3SR1QMHEPXxx54Ur56r0qQC0H9FlBr7kyBF2SgVEhzFCPbrW4UcYgVuWrq/2Ty3QvXg==",
6
+  "_location": "/android-versions",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "android-versions@^1.4.0",
12
+    "name": "android-versions",
13
+    "escapedName": "android-versions",
14
+    "rawSpec": "^1.4.0",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^1.4.0"
17
+  },
18
+  "_requiredBy": [
19
+    "/cordova-android"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.5.0.tgz",
22
+  "_shasum": "7790bc74e0812aafd69fb1ad0cb4db4474a525d6",
23
+  "_spec": "android-versions@^1.4.0",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/cordova-android",
25
+  "author": {
26
+    "name": "dvoiss"
27
+  },
28
+  "bugs": {
29
+    "url": "https://github.com/dvoiss/android-versions/issues"
30
+  },
31
+  "bundleDependencies": false,
32
+  "dependencies": {
33
+    "semver": "^5.4.1"
34
+  },
35
+  "deprecated": false,
36
+  "description": "Get the name, API level, version level, NDK level, or version code from any version of Android.",
37
+  "devDependencies": {
38
+    "jshint": "^2.9.6",
39
+    "tape": "^4.6.0"
40
+  },
41
+  "homepage": "https://github.com/dvoiss/android-versions#readme",
42
+  "keywords": [
43
+    "android",
44
+    "version",
45
+    "versions",
46
+    "ndk",
47
+    "nougat",
48
+    "marshmallow",
49
+    "api",
50
+    "level"
51
+  ],
52
+  "license": "MIT",
53
+  "main": "index.js",
54
+  "name": "android-versions",
55
+  "pre-commit": [
56
+    "jshint"
57
+  ],
58
+  "repository": {
59
+    "type": "git",
60
+    "url": "git+https://github.com/dvoiss/android-versions.git"
61
+  },
62
+  "scripts": {
63
+    "jshint": "jshint .",
64
+    "test": "tape tests/**/*.js"
65
+  },
66
+  "version": "1.5.0"
67
+}

+ 119
- 0
km0App/node_modules/android-versions/tests/index.test.js Voir le fichier

@@ -0,0 +1,119 @@
1
+"use strict";
2
+
3
+const test = require('tape')
4
+const android = require('..')
5
+
6
+test('get specific version by API level', (t) => {
7
+  t.plan(1)
8
+  t.equal(android.get(24).name, "Nougat")
9
+})
10
+
11
+test('getAll versions by API level', (t) => {
12
+  t.plan(1)
13
+  t.equal(android.getAll(24)[0].name, "Nougat")
14
+})
15
+
16
+test('get specific version by predicate', (t) => {
17
+  t.plan(2)
18
+
19
+  let actual = android.get((version) => {
20
+    return version.name.indexOf("on") !== -1
21
+  })
22
+  t.equal(actual.name, "Donut")
23
+
24
+  actual = android.get((version) => {
25
+    return version.ndk > 5 && version.api < 15
26
+  })
27
+  t.equal(actual.versionCode, "HONEYCOMB_MR1")
28
+})
29
+
30
+test('getAll versions by predicate', (t) => {
31
+  t.plan(3)
32
+
33
+  let actual = android.getAll((version) => {
34
+    return version.name.indexOf("on") !== -1
35
+  }).map((version) => version.name)
36
+  t.deepEqual(actual, ["Donut", "Honeycomb", "Honeycomb", "Honeycomb"])
37
+
38
+  actual = android.getAll((version) => {
39
+    return version.ndk > 5 && version.api < 15
40
+  }).map((version) => version.versionCode)
41
+  t.deepEqual(actual, ["HONEYCOMB_MR1", "HONEYCOMB_MR2", "ICE_CREAM_SANDWICH"])
42
+
43
+  actual = android.getAll((version) => {
44
+    return version.api > 22
45
+  }).map((version) => version.versionCode)
46
+  t.deepEqual(actual, ["M", "N", "N_MR1", "O", "O_MR1", "P", "Q"])
47
+})
48
+
49
+test('get version by semantic version', (t) => {
50
+  t.plan(4)
51
+  t.equal(android.get("6.0").versionCode, android.M.versionCode)
52
+  t.equal(android.get("6.0.0").versionCode, android.M.versionCode)
53
+  t.equal(android.get("2.3").versionCode, android.GINGERBREAD.versionCode)
54
+  t.equal(android.get("2.3.3").versionCode, android.GINGERBREAD_MR1.versionCode)
55
+})
56
+
57
+test('support major version only', (t) => {
58
+  t.plan(2)
59
+  t.equal(android.get("9.0").versionCode, android.P.versionCode)
60
+  t.equal(android.get("9.0.0").versionCode, android.P.versionCode)
61
+})
62
+
63
+test('support version ranges', (t) => {
64
+  t.plan(7)
65
+  let tests = [ "4.4", "4.4.0", "4.4.1", "4.4.2", "4.4.3", "4.4.4" ]
66
+  tests.forEach((versionCode) => {
67
+    t.equal(android.get(versionCode).versionCode, android.KITKAT.versionCode)
68
+  })
69
+  t.equal(android.get("4.4.5"), null)
70
+})
71
+
72
+test('support x-ranges', (t) => {
73
+  t.plan(12)
74
+  let tests = [
75
+    "4.1", "4.1.0", "4.1.1", "4.1.2", "4.1.3", "4.1.4",
76
+    "4.1.5", "4.1.6", "4.1.7", "4.1.8", "4.1.9", "4.1.10"
77
+  ]
78
+  tests.forEach((versionCode) => {
79
+    t.equal(android.get(versionCode).versionCode, android.JELLY_BEAN.versionCode)
80
+  })
81
+})
82
+
83
+test('access version codes object', (t) => {
84
+  t.plan(1)
85
+  t.ok(android.VERSIONS)
86
+})
87
+
88
+test('access specific versions directly', (t) => {
89
+  t.plan(29)
90
+  t.ok(android.BASE)
91
+  t.ok(android.BASE_1_1)
92
+  t.ok(android.CUPCAKE)
93
+  t.ok(android.DONUT)
94
+  t.ok(android.ECLAIR)
95
+  t.ok(android.ECLAIR_0_1)
96
+  t.ok(android.ECLAIR_MR1)
97
+  t.ok(android.FROYO)
98
+  t.ok(android.GINGERBREAD)
99
+  t.ok(android.GINGERBREAD_MR1)
100
+  t.ok(android.HONEYCOMB)
101
+  t.ok(android.HONEYCOMB_MR1)
102
+  t.ok(android.HONEYCOMB_MR2)
103
+  t.ok(android.ICE_CREAM_SANDWICH)
104
+  t.ok(android.ICE_CREAM_SANDWICH_MR1)
105
+  t.ok(android.JELLY_BEAN)
106
+  t.ok(android.JELLY_BEAN_MR1)
107
+  t.ok(android.JELLY_BEAN_MR2)
108
+  t.ok(android.KITKAT)
109
+  t.ok(android.KITKAT_WATCH)
110
+  t.ok(android.LOLLIPOP)
111
+  t.ok(android.LOLLIPOP_MR1)
112
+  t.ok(android.M)
113
+  t.ok(android.N)
114
+  t.ok(android.N_MR1)
115
+  t.ok(android.O)
116
+  t.ok(android.O_MR1)
117
+  t.ok(android.P)
118
+  t.ok(android.Q)
119
+})

+ 4
- 0
km0App/node_modules/ansi/.jshintrc Voir le fichier

@@ -0,0 +1,4 @@
1
+{
2
+  "laxcomma": true,
3
+  "asi": true
4
+}

+ 1
- 0
km0App/node_modules/ansi/.npmignore Voir le fichier

@@ -0,0 +1 @@
1
+node_modules

+ 23
- 0
km0App/node_modules/ansi/History.md Voir le fichier

@@ -0,0 +1,23 @@
1
+
2
+0.3.1 / 2016-01-14
3
+==================
4
+
5
+  * add MIT LICENSE file (#23, @kasicka)
6
+  * preserve chaining after redundant style-method calls (#19, @drewblaisdell)
7
+  * package: add "license" field (#16, @BenjaminTsai)
8
+
9
+0.3.0 / 2014-05-09
10
+==================
11
+
12
+  * package: remove "test" script and "devDependencies"
13
+  * package: remove "engines" section
14
+  * pacakge: remove "bin" section
15
+  * package: beautify
16
+  * examples: remove `starwars` example (#15)
17
+  * Documented goto, horizontalAbsolute, and eraseLine methods in README.md (#12, @Jammerwoch)
18
+  * add `.jshintrc` file
19
+
20
+< 0.3.0
21
+=======
22
+
23
+  * Prehistoric

+ 24
- 0
km0App/node_modules/ansi/LICENSE Voir le fichier

@@ -0,0 +1,24 @@
1
+(The MIT License)
2
+
3
+Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net>
4
+
5
+Permission is hereby granted, free of charge, to any person
6
+obtaining a copy of this software and associated documentation
7
+files (the "Software"), to deal in the Software without
8
+restriction, including without limitation the rights to use,
9
+copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+copies of the Software, and to permit persons to whom the
11
+Software is furnished to do so, subject to the following
12
+conditions:
13
+
14
+The above copyright notice and this permission notice shall be
15
+included in all copies or substantial portions of the Software.
16
+
17
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+OTHER DEALINGS IN THE SOFTWARE.

+ 98
- 0
km0App/node_modules/ansi/README.md Voir le fichier

@@ -0,0 +1,98 @@
1
+ansi.js
2
+=========
3
+### Advanced ANSI formatting tool for Node.js
4
+
5
+`ansi.js` is a module for Node.js that provides an easy-to-use API for
6
+writing ANSI escape codes to `Stream` instances. ANSI escape codes are used to do
7
+fancy things in a terminal window, like render text in colors, delete characters,
8
+lines, the entire window, or hide and show the cursor, and lots more!
9
+
10
+#### Features:
11
+
12
+ * 256 color support for the terminal!
13
+ * Make a beep sound from your terminal!
14
+ * Works with *any* writable `Stream` instance.
15
+ * Allows you to move the cursor anywhere on the terminal window.
16
+ * Allows you to delete existing contents from the terminal window.
17
+ * Allows you to hide and show the cursor.
18
+ * Converts CSS color codes and RGB values into ANSI escape codes.
19
+ * Low-level; you are in control of when escape codes are used, it's not abstracted.
20
+
21
+
22
+Installation
23
+------------
24
+
25
+Install with `npm`:
26
+
27
+``` bash
28
+$ npm install ansi
29
+```
30
+
31
+
32
+Example
33
+-------
34
+
35
+``` js
36
+var ansi = require('ansi')
37
+  , cursor = ansi(process.stdout)
38
+
39
+// You can chain your calls forever:
40
+cursor
41
+  .red()                 // Set font color to red
42
+  .bg.grey()             // Set background color to grey
43
+  .write('Hello World!') // Write 'Hello World!' to stdout
44
+  .bg.reset()            // Reset the bgcolor before writing the trailing \n,
45
+                         //      to avoid Terminal glitches
46
+  .write('\n')           // And a final \n to wrap things up
47
+
48
+// Rendering modes are persistent:
49
+cursor.hex('#660000').bold().underline()
50
+
51
+// You can use the regular logging functions, text will be green:
52
+console.log('This is blood red, bold text')
53
+
54
+// To reset just the foreground color:
55
+cursor.fg.reset()
56
+
57
+console.log('This will still be bold')
58
+
59
+// to go to a location (x,y) on the console
60
+// note: 1-indexed, not 0-indexed:
61
+cursor.goto(10, 5).write('Five down, ten over')
62
+
63
+// to clear the current line:
64
+cursor.horizontalAbsolute(0).eraseLine().write('Starting again')
65
+
66
+// to go to a different column on the current line:
67
+cursor.horizontalAbsolute(5).write('column five')
68
+
69
+// Clean up after yourself!
70
+cursor.reset()
71
+```
72
+
73
+
74
+License
75
+-------
76
+
77
+(The MIT License)
78
+
79
+Copyright (c) 2012 Nathan Rajlich &lt;nathan@tootallnate.net&gt;
80
+
81
+Permission is hereby granted, free of charge, to any person obtaining
82
+a copy of this software and associated documentation files (the
83
+'Software'), to deal in the Software without restriction, including
84
+without limitation the rights to use, copy, modify, merge, publish,
85
+distribute, sublicense, and/or sell copies of the Software, and to
86
+permit persons to whom the Software is furnished to do so, subject to
87
+the following conditions:
88
+
89
+The above copyright notice and this permission notice shall be
90
+included in all copies or substantial portions of the Software.
91
+
92
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
93
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
94
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
95
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
96
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
97
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
98
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 16
- 0
km0App/node_modules/ansi/examples/beep/index.js Voir le fichier

@@ -0,0 +1,16 @@
1
+#!/usr/bin/env node
2
+
3
+/**
4
+ * Invokes the terminal "beep" sound once per second on every exact second.
5
+ */
6
+
7
+process.title = 'beep'
8
+
9
+var cursor = require('../../')(process.stdout)
10
+
11
+function beep () {
12
+  cursor.beep()
13
+  setTimeout(beep, 1000 - (new Date()).getMilliseconds())
14
+}
15
+
16
+setTimeout(beep, 1000 - (new Date()).getMilliseconds())

+ 15
- 0
km0App/node_modules/ansi/examples/clear/index.js Voir le fichier

@@ -0,0 +1,15 @@
1
+#!/usr/bin/env node
2
+
3
+/**
4
+ * Like GNU ncurses "clear" command.
5
+ * https://github.com/mscdex/node-ncurses/blob/master/deps/ncurses/progs/clear.c
6
+ */
7
+
8
+process.title = 'clear'
9
+
10
+function lf () { return '\n' }
11
+
12
+require('../../')(process.stdout)
13
+  .write(Array.apply(null, Array(process.stdout.getWindowSize()[1])).map(lf).join(''))
14
+  .eraseData(2)
15
+  .goto(1, 1)

+ 32
- 0
km0App/node_modules/ansi/examples/cursorPosition.js Voir le fichier

@@ -0,0 +1,32 @@
1
+#!/usr/bin/env node
2
+
3
+var tty = require('tty')
4
+var cursor = require('../')(process.stdout)
5
+
6
+// listen for the queryPosition report on stdin
7
+process.stdin.resume()
8
+raw(true)
9
+
10
+process.stdin.once('data', function (b) {
11
+  var match = /\[(\d+)\;(\d+)R$/.exec(b.toString())
12
+  if (match) {
13
+    var xy = match.slice(1, 3).reverse().map(Number)
14
+    console.error(xy)
15
+  }
16
+
17
+  // cleanup and close stdin
18
+  raw(false)
19
+  process.stdin.pause()
20
+})
21
+
22
+
23
+// send the query position request code to stdout
24
+cursor.queryPosition()
25
+
26
+function raw (mode) {
27
+  if (process.stdin.setRawMode) {
28
+    process.stdin.setRawMode(mode)
29
+  } else {
30
+    tty.setRawMode(mode)
31
+  }
32
+}

+ 87
- 0
km0App/node_modules/ansi/examples/progress/index.js Voir le fichier

@@ -0,0 +1,87 @@
1
+#!/usr/bin/env node
2
+
3
+var assert = require('assert')
4
+  , ansi = require('../../')
5
+
6
+function Progress (stream, width) {
7
+  this.cursor = ansi(stream)
8
+  this.delta = this.cursor.newlines
9
+  this.width = width | 0 || 10
10
+  this.open = '['
11
+  this.close = ']'
12
+  this.complete = '█'
13
+  this.incomplete = '_'
14
+
15
+  // initial render
16
+  this.progress = 0
17
+}
18
+
19
+Object.defineProperty(Progress.prototype, 'progress', {
20
+    get: get
21
+  , set: set
22
+  , configurable: true
23
+  , enumerable: true
24
+})
25
+
26
+function get () {
27
+  return this._progress
28
+}
29
+
30
+function set (v) {
31
+  this._progress = Math.max(0, Math.min(v, 100))
32
+
33
+  var w = this.width - this.complete.length - this.incomplete.length
34
+    , n = w * (this._progress / 100) | 0
35
+    , i = w - n
36
+    , com = c(this.complete, n)
37
+    , inc = c(this.incomplete, i)
38
+    , delta = this.cursor.newlines - this.delta
39
+
40
+  assert.equal(com.length + inc.length, w)
41
+
42
+  if (delta > 0) {
43
+    this.cursor.up(delta)
44
+    this.delta = this.cursor.newlines
45
+  }
46
+
47
+  this.cursor
48
+    .horizontalAbsolute(0)
49
+    .eraseLine(2)
50
+    .fg.white()
51
+    .write(this.open)
52
+    .fg.grey()
53
+    .bold()
54
+    .write(com)
55
+    .resetBold()
56
+    .write(inc)
57
+    .fg.white()
58
+    .write(this.close)
59
+    .fg.reset()
60
+    .write('\n')
61
+}
62
+
63
+function c (char, length) {
64
+  return Array.apply(null, Array(length)).map(function () {
65
+    return char
66
+  }).join('')
67
+}
68
+
69
+
70
+
71
+
72
+// Usage
73
+var width = parseInt(process.argv[2], 10) || process.stdout.getWindowSize()[0] / 2
74
+  , p = new Progress(process.stdout, width)
75
+
76
+;(function tick () {
77
+  p.progress += Math.random() * 5
78
+  p.cursor
79
+    .eraseLine(2)
80
+    .write('Progress: ')
81
+    .bold().write(p.progress.toFixed(2))
82
+    .write('%')
83
+    .resetBold()
84
+    .write('\n')
85
+  if (p.progress < 100)
86
+    setTimeout(tick, 100)
87
+})()

+ 405
- 0
km0App/node_modules/ansi/lib/ansi.js Voir le fichier

@@ -0,0 +1,405 @@
1
+
2
+/**
3
+ * References:
4
+ *
5
+ *   - http://en.wikipedia.org/wiki/ANSI_escape_code
6
+ *   - http://www.termsys.demon.co.uk/vtansi.htm
7
+ *
8
+ */
9
+
10
+/**
11
+ * Module dependencies.
12
+ */
13
+
14
+var emitNewlineEvents = require('./newlines')
15
+  , prefix = '\x1b[' // For all escape codes
16
+  , suffix = 'm'     // Only for color codes
17
+
18
+/**
19
+ * The ANSI escape sequences.
20
+ */
21
+
22
+var codes = {
23
+    up: 'A'
24
+  , down: 'B'
25
+  , forward: 'C'
26
+  , back: 'D'
27
+  , nextLine: 'E'
28
+  , previousLine: 'F'
29
+  , horizontalAbsolute: 'G'
30
+  , eraseData: 'J'
31
+  , eraseLine: 'K'
32
+  , scrollUp: 'S'
33
+  , scrollDown: 'T'
34
+  , savePosition: 's'
35
+  , restorePosition: 'u'
36
+  , queryPosition: '6n'
37
+  , hide: '?25l'
38
+  , show: '?25h'
39
+}
40
+
41
+/**
42
+ * Rendering ANSI codes.
43
+ */
44
+
45
+var styles = {
46
+    bold: 1
47
+  , italic: 3
48
+  , underline: 4
49
+  , inverse: 7
50
+}
51
+
52
+/**
53
+ * The negating ANSI code for the rendering modes.
54
+ */
55
+
56
+var reset = {
57
+    bold: 22
58
+  , italic: 23
59
+  , underline: 24
60
+  , inverse: 27
61
+}
62
+
63
+/**
64
+ * The standard, styleable ANSI colors.
65
+ */
66
+
67
+var colors = {
68
+    white: 37
69
+  , black: 30
70
+  , blue: 34
71
+  , cyan: 36
72
+  , green: 32
73
+  , magenta: 35
74
+  , red: 31
75
+  , yellow: 33
76
+  , grey: 90
77
+  , brightBlack: 90
78
+  , brightRed: 91
79
+  , brightGreen: 92
80
+  , brightYellow: 93
81
+  , brightBlue: 94
82
+  , brightMagenta: 95
83
+  , brightCyan: 96
84
+  , brightWhite: 97
85
+}
86
+
87
+
88
+/**
89
+ * Creates a Cursor instance based off the given `writable stream` instance.
90
+ */
91
+
92
+function ansi (stream, options) {
93
+  if (stream._ansicursor) {
94
+    return stream._ansicursor
95
+  } else {
96
+    return stream._ansicursor = new Cursor(stream, options)
97
+  }
98
+}
99
+module.exports = exports = ansi
100
+
101
+/**
102
+ * The `Cursor` class.
103
+ */
104
+
105
+function Cursor (stream, options) {
106
+  if (!(this instanceof Cursor)) {
107
+    return new Cursor(stream, options)
108
+  }
109
+  if (typeof stream != 'object' || typeof stream.write != 'function') {
110
+    throw new Error('a valid Stream instance must be passed in')
111
+  }
112
+
113
+  // the stream to use
114
+  this.stream = stream
115
+
116
+  // when 'enabled' is false then all the functions are no-ops except for write()
117
+  this.enabled = options && options.enabled
118
+  if (typeof this.enabled === 'undefined') {
119
+    this.enabled = stream.isTTY
120
+  }
121
+  this.enabled = !!this.enabled
122
+
123
+  // then `buffering` is true, then `write()` calls are buffered in
124
+  // memory until `flush()` is invoked
125
+  this.buffering = !!(options && options.buffering)
126
+  this._buffer = []
127
+
128
+  // controls the foreground and background colors
129
+  this.fg = this.foreground = new Colorer(this, 0)
130
+  this.bg = this.background = new Colorer(this, 10)
131
+
132
+  // defaults
133
+  this.Bold = false
134
+  this.Italic = false
135
+  this.Underline = false
136
+  this.Inverse = false
137
+
138
+  // keep track of the number of "newlines" that get encountered
139
+  this.newlines = 0
140
+  emitNewlineEvents(stream)
141
+  stream.on('newline', function () {
142
+    this.newlines++
143
+  }.bind(this))
144
+}
145
+exports.Cursor = Cursor
146
+
147
+/**
148
+ * Helper function that calls `write()` on the underlying Stream.
149
+ * Returns `this` instead of the write() return value to keep
150
+ * the chaining going.
151
+ */
152
+
153
+Cursor.prototype.write = function (data) {
154
+  if (this.buffering) {
155
+    this._buffer.push(arguments)
156
+  } else {
157
+    this.stream.write.apply(this.stream, arguments)
158
+  }
159
+  return this
160
+}
161
+
162
+/**
163
+ * Buffer `write()` calls into memory.
164
+ *
165
+ * @api public
166
+ */
167
+
168
+Cursor.prototype.buffer = function () {
169
+  this.buffering = true
170
+  return this
171
+}
172
+
173
+/**
174
+ * Write out the in-memory buffer.
175
+ *
176
+ * @api public
177
+ */
178
+
179
+Cursor.prototype.flush = function () {
180
+  this.buffering = false
181
+  var str = this._buffer.map(function (args) {
182
+    if (args.length != 1) throw new Error('unexpected args length! ' + args.length);
183
+    return args[0];
184
+  }).join('');
185
+  this._buffer.splice(0); // empty
186
+  this.write(str);
187
+  return this
188
+}
189
+
190
+
191
+/**
192
+ * The `Colorer` class manages both the background and foreground colors.
193
+ */
194
+
195
+function Colorer (cursor, base) {
196
+  this.current = null
197
+  this.cursor = cursor
198
+  this.base = base
199
+}
200
+exports.Colorer = Colorer
201
+
202
+/**
203
+ * Write an ANSI color code, ensuring that the same code doesn't get rewritten.
204
+ */
205
+
206
+Colorer.prototype._setColorCode = function setColorCode (code) {
207
+  var c = String(code)
208
+  if (this.current === c) return
209
+  this.cursor.enabled && this.cursor.write(prefix + c + suffix)
210
+  this.current = c
211
+  return this
212
+}
213
+
214
+
215
+/**
216
+ * Set up the positional ANSI codes.
217
+ */
218
+
219
+Object.keys(codes).forEach(function (name) {
220
+  var code = String(codes[name])
221
+  Cursor.prototype[name] = function () {
222
+    var c = code
223
+    if (arguments.length > 0) {
224
+      c = toArray(arguments).map(Math.round).join(';') + code
225
+    }
226
+    this.enabled && this.write(prefix + c)
227
+    return this
228
+  }
229
+})
230
+
231
+/**
232
+ * Set up the functions for the rendering ANSI codes.
233
+ */
234
+
235
+Object.keys(styles).forEach(function (style) {
236
+  var name = style[0].toUpperCase() + style.substring(1)
237
+    , c = styles[style]
238
+    , r = reset[style]
239
+
240
+  Cursor.prototype[style] = function () {
241
+    if (this[name]) return this
242
+    this.enabled && this.write(prefix + c + suffix)
243
+    this[name] = true
244
+    return this
245
+  }
246
+
247
+  Cursor.prototype['reset' + name] = function () {
248
+    if (!this[name]) return this
249
+    this.enabled && this.write(prefix + r + suffix)
250
+    this[name] = false
251
+    return this
252
+  }
253
+})
254
+
255
+/**
256
+ * Setup the functions for the standard colors.
257
+ */
258
+
259
+Object.keys(colors).forEach(function (color) {
260
+  var code = colors[color]
261
+
262
+  Colorer.prototype[color] = function () {
263
+    this._setColorCode(this.base + code)
264
+    return this.cursor
265
+  }
266
+
267
+  Cursor.prototype[color] = function () {
268
+    return this.foreground[color]()
269
+  }
270
+})
271
+
272
+/**
273
+ * Makes a beep sound!
274
+ */
275
+
276
+Cursor.prototype.beep = function () {
277
+  this.enabled && this.write('\x07')
278
+  return this
279
+}
280
+
281
+/**
282
+ * Moves cursor to specific position
283
+ */
284
+
285
+Cursor.prototype.goto = function (x, y) {
286
+  x = x | 0
287
+  y = y | 0
288
+  this.enabled && this.write(prefix + y + ';' + x + 'H')
289
+  return this
290
+}
291
+
292
+/**
293
+ * Resets the color.
294
+ */
295
+
296
+Colorer.prototype.reset = function () {
297
+  this._setColorCode(this.base + 39)
298
+  return this.cursor
299
+}
300
+
301
+/**
302
+ * Resets all ANSI formatting on the stream.
303
+ */
304
+
305
+Cursor.prototype.reset = function () {
306
+  this.enabled && this.write(prefix + '0' + suffix)
307
+  this.Bold = false
308
+  this.Italic = false
309
+  this.Underline = false
310
+  this.Inverse = false
311
+  this.foreground.current = null
312
+  this.background.current = null
313
+  return this
314
+}
315
+
316
+/**
317
+ * Sets the foreground color with the given RGB values.
318
+ * The closest match out of the 216 colors is picked.
319
+ */
320
+
321
+Colorer.prototype.rgb = function (r, g, b) {
322
+  var base = this.base + 38
323
+    , code = rgb(r, g, b)
324
+  this._setColorCode(base + ';5;' + code)
325
+  return this.cursor
326
+}
327
+
328
+/**
329
+ * Same as `cursor.fg.rgb(r, g, b)`.
330
+ */
331
+
332
+Cursor.prototype.rgb = function (r, g, b) {
333
+  return this.foreground.rgb(r, g, b)
334
+}
335
+
336
+/**
337
+ * Accepts CSS color codes for use with ANSI escape codes.
338
+ * For example: `#FF000` would be bright red.
339
+ */
340
+
341
+Colorer.prototype.hex = function (color) {
342
+  return this.rgb.apply(this, hex(color))
343
+}
344
+
345
+/**
346
+ * Same as `cursor.fg.hex(color)`.
347
+ */
348
+
349
+Cursor.prototype.hex = function (color) {
350
+  return this.foreground.hex(color)
351
+}
352
+
353
+
354
+// UTIL FUNCTIONS //
355
+
356
+/**
357
+ * Translates a 255 RGB value to a 0-5 ANSI RGV value,
358
+ * then returns the single ANSI color code to use.
359
+ */
360
+
361
+function rgb (r, g, b) {
362
+  var red = r / 255 * 5
363
+    , green = g / 255 * 5
364
+    , blue = b / 255 * 5
365
+  return rgb5(red, green, blue)
366
+}
367
+
368
+/**
369
+ * Turns rgb 0-5 values into a single ANSI color code to use.
370
+ */
371
+
372
+function rgb5 (r, g, b) {
373
+  var red = Math.round(r)
374
+    , green = Math.round(g)
375
+    , blue = Math.round(b)
376
+  return 16 + (red*36) + (green*6) + blue
377
+}
378
+
379
+/**
380
+ * Accepts a hex CSS color code string (# is optional) and
381
+ * translates it into an Array of 3 RGB 0-255 values, which
382
+ * can then be used with rgb().
383
+ */
384
+
385
+function hex (color) {
386
+  var c = color[0] === '#' ? color.substring(1) : color
387
+    , r = c.substring(0, 2)
388
+    , g = c.substring(2, 4)
389
+    , b = c.substring(4, 6)
390
+  return [parseInt(r, 16), parseInt(g, 16), parseInt(b, 16)]
391
+}
392
+
393
+/**
394
+ * Turns an array-like object into a real array.
395
+ */
396
+
397
+function toArray (a) {
398
+  var i = 0
399
+    , l = a.length
400
+    , rtn = []
401
+  for (; i<l; i++) {
402
+    rtn.push(a[i])
403
+  }
404
+  return rtn
405
+}

+ 71
- 0
km0App/node_modules/ansi/lib/newlines.js Voir le fichier

@@ -0,0 +1,71 @@
1
+
2
+/**
3
+ * Accepts any node Stream instance and hijacks its "write()" function,
4
+ * so that it can count any newlines that get written to the output.
5
+ *
6
+ * When a '\n' byte is encountered, then a "newline" event will be emitted
7
+ * on the stream, with no arguments. It is up to the listeners to determine
8
+ * any necessary deltas required for their use-case.
9
+ *
10
+ * Ex:
11
+ *
12
+ *   var cursor = ansi(process.stdout)
13
+ *     , ln = 0
14
+ *   process.stdout.on('newline', function () {
15
+ *    ln++
16
+ *   })
17
+ */
18
+
19
+/**
20
+ * Module dependencies.
21
+ */
22
+
23
+var assert = require('assert')
24
+var NEWLINE = '\n'.charCodeAt(0)
25
+
26
+function emitNewlineEvents (stream) {
27
+  if (stream._emittingNewlines) {
28
+    // already emitting newline events
29
+    return
30
+  }
31
+
32
+  var write = stream.write
33
+
34
+  stream.write = function (data) {
35
+    // first write the data
36
+    var rtn = write.apply(stream, arguments)
37
+
38
+    if (stream.listeners('newline').length > 0) {
39
+      var len = data.length
40
+        , i = 0
41
+      // now try to calculate any deltas
42
+      if (typeof data == 'string') {
43
+        for (; i<len; i++) {
44
+          processByte(stream, data.charCodeAt(i))
45
+        }
46
+      } else {
47
+        // buffer
48
+        for (; i<len; i++) {
49
+          processByte(stream, data[i])
50
+        }
51
+      }
52
+    }
53
+
54
+    return rtn
55
+  }
56
+
57
+  stream._emittingNewlines = true
58
+}
59
+module.exports = emitNewlineEvents
60
+
61
+
62
+/**
63
+ * Processes an individual byte being written to a stream
64
+ */
65
+
66
+function processByte (stream, b) {
67
+  assert.equal(typeof b, 'number')
68
+  if (b === NEWLINE) {
69
+    stream.emit('newline')
70
+  }
71
+}

+ 55
- 0
km0App/node_modules/ansi/package.json Voir le fichier

@@ -0,0 +1,55 @@
1
+{
2
+  "_from": "ansi@^0.3.1",
3
+  "_id": "ansi@0.3.1",
4
+  "_inBundle": false,
5
+  "_integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=",
6
+  "_location": "/ansi",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "ansi@^0.3.1",
12
+    "name": "ansi",
13
+    "escapedName": "ansi",
14
+    "rawSpec": "^0.3.1",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^0.3.1"
17
+  },
18
+  "_requiredBy": [
19
+    "/cordova-common"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
22
+  "_shasum": "0c42d4fb17160d5a9af1e484bace1c66922c1b21",
23
+  "_spec": "ansi@^0.3.1",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/cordova-common",
25
+  "author": {
26
+    "name": "Nathan Rajlich",
27
+    "email": "nathan@tootallnate.net",
28
+    "url": "http://tootallnate.net"
29
+  },
30
+  "bugs": {
31
+    "url": "https://github.com/TooTallNate/ansi.js/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "deprecated": false,
35
+  "description": "Advanced ANSI formatting tool for Node.js",
36
+  "homepage": "https://github.com/TooTallNate/ansi.js#readme",
37
+  "keywords": [
38
+    "ansi",
39
+    "formatting",
40
+    "cursor",
41
+    "color",
42
+    "terminal",
43
+    "rgb",
44
+    "256",
45
+    "stream"
46
+  ],
47
+  "license": "MIT",
48
+  "main": "./lib/ansi.js",
49
+  "name": "ansi",
50
+  "repository": {
51
+    "type": "git",
52
+    "url": "git://github.com/TooTallNate/ansi.js.git"
53
+  },
54
+  "version": "0.3.1"
55
+}

+ 51
- 0
km0App/node_modules/array-ify/README.md Voir le fichier

@@ -0,0 +1,51 @@
1
+#  [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![Coverage Status][coveralls-image]][coveralls-url]
2
+
3
+> Turn anything into an array
4
+
5
+
6
+## Install
7
+
8
+```sh
9
+$ npm install --save array-ify
10
+```
11
+
12
+
13
+## Usage
14
+
15
+```js
16
+var arrayify = require('array-ify');
17
+
18
+arrayify('unicorn');
19
+//=> ['unicorn']
20
+
21
+arrayify(['unicorn']);
22
+//=> ['unicorn']
23
+
24
+arrayify(null);
25
+//=> [null]
26
+
27
+arrayify(undefined);
28
+//=> [undefined]
29
+```
30
+
31
+
32
+## Related
33
+
34
+- [arrify](https://github.com/sindresorhus/arrify) - Convert a value to an array
35
+
36
+The difference that is this module does **NOT** turn `null` or `undefined` to an empty array.
37
+
38
+
39
+## License
40
+
41
+MIT © [Steve Mao](https://github.com/stevemao)
42
+
43
+
44
+[npm-image]: https://badge.fury.io/js/array-ify.svg
45
+[npm-url]: https://npmjs.org/package/array-ify
46
+[travis-image]: https://travis-ci.org/stevemao/array-ify.svg?branch=master
47
+[travis-url]: https://travis-ci.org/stevemao/array-ify
48
+[daviddm-image]: https://david-dm.org/stevemao/array-ify.svg?theme=shields.io
49
+[daviddm-url]: https://david-dm.org/stevemao/array-ify
50
+[coveralls-image]: https://coveralls.io/repos/stevemao/array-ify/badge.svg
51
+[coveralls-url]: https://coveralls.io/r/stevemao/array-ify

+ 4
- 0
km0App/node_modules/array-ify/index.js Voir le fichier

@@ -0,0 +1,4 @@
1
+'use strict';
2
+module.exports = function(val) {
3
+  return Array.isArray(val) ? val : [val];
4
+};

+ 68
- 0
km0App/node_modules/array-ify/package.json Voir le fichier

@@ -0,0 +1,68 @@
1
+{
2
+  "_from": "array-ify@^1.0.0",
3
+  "_id": "array-ify@1.0.0",
4
+  "_inBundle": false,
5
+  "_integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=",
6
+  "_location": "/array-ify",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "array-ify@^1.0.0",
12
+    "name": "array-ify",
13
+    "escapedName": "array-ify",
14
+    "rawSpec": "^1.0.0",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^1.0.0"
17
+  },
18
+  "_requiredBy": [
19
+    "/compare-func"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
22
+  "_shasum": "9e528762b4a9066ad163a6962a364418e9626ece",
23
+  "_spec": "array-ify@^1.0.0",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/compare-func",
25
+  "author": {
26
+    "name": "Steve Mao",
27
+    "email": "maochenyan@gmail.com",
28
+    "url": "https://github.com/stevemao"
29
+  },
30
+  "bugs": {
31
+    "url": "https://github.com/stevemao/array-ify/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "deprecated": false,
35
+  "description": "Turn anything into an array",
36
+  "devDependencies": {
37
+    "coveralls": "^2.11.2",
38
+    "istanbul": "^0.3.8",
39
+    "jscs": "^1.11.3",
40
+    "jshint": "^2.6.3",
41
+    "mocha": "*"
42
+  },
43
+  "files": [
44
+    "index.js"
45
+  ],
46
+  "homepage": "https://github.com/stevemao/array-ify",
47
+  "keywords": [
48
+    "array-ify",
49
+    "array",
50
+    "arr",
51
+    "arrify",
52
+    "arrayify",
53
+    "convert",
54
+    "value"
55
+  ],
56
+  "license": "MIT",
57
+  "name": "array-ify",
58
+  "repository": {
59
+    "type": "git",
60
+    "url": "git+https://github.com/stevemao/array-ify.git"
61
+  },
62
+  "scripts": {
63
+    "coverage": "istanbul cover _mocha -- -R spec && rm -rf ./coverage",
64
+    "lint": "jshint *.js --exclude node_modules && jscs *.js",
65
+    "test": "npm run-script lint && mocha"
66
+  },
67
+  "version": "1.0.0"
68
+}

+ 5
- 0
km0App/node_modules/balanced-match/.npmignore Voir le fichier

@@ -0,0 +1,5 @@
1
+test
2
+.gitignore
3
+.travis.yml
4
+Makefile
5
+example.js

+ 21
- 0
km0App/node_modules/balanced-match/LICENSE.md Voir le fichier

@@ -0,0 +1,21 @@
1
+(MIT)
2
+
3
+Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
4
+
5
+Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+this software and associated documentation files (the "Software"), to deal in
7
+the Software without restriction, including without limitation the rights to
8
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
9
+of the Software, and to permit persons to whom the Software is furnished to do
10
+so, subject to the following conditions:
11
+
12
+The above copyright notice and this permission notice shall be included in all
13
+copies or substantial portions of the Software.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+SOFTWARE.

+ 91
- 0
km0App/node_modules/balanced-match/README.md Voir le fichier

@@ -0,0 +1,91 @@
1
+# balanced-match
2
+
3
+Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
4
+
5
+[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
6
+[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
7
+
8
+[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
9
+
10
+## Example
11
+
12
+Get the first matching pair of braces:
13
+
14
+```js
15
+var balanced = require('balanced-match');
16
+
17
+console.log(balanced('{', '}', 'pre{in{nested}}post'));
18
+console.log(balanced('{', '}', 'pre{first}between{second}post'));
19
+console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre  {   in{nest}   }  post'));
20
+```
21
+
22
+The matches are:
23
+
24
+```bash
25
+$ node example.js
26
+{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
27
+{ start: 3,
28
+  end: 9,
29
+  pre: 'pre',
30
+  body: 'first',
31
+  post: 'between{second}post' }
32
+{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
33
+```
34
+
35
+## API
36
+
37
+### var m = balanced(a, b, str)
38
+
39
+For the first non-nested matching pair of `a` and `b` in `str`, return an
40
+object with those keys:
41
+
42
+* **start** the index of the first match of `a`
43
+* **end** the index of the matching `b`
44
+* **pre** the preamble, `a` and `b` not included
45
+* **body** the match, `a` and `b` not included
46
+* **post** the postscript, `a` and `b` not included
47
+
48
+If there's no match, `undefined` will be returned.
49
+
50
+If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
51
+
52
+### var r = balanced.range(a, b, str)
53
+
54
+For the first non-nested matching pair of `a` and `b` in `str`, return an
55
+array with indexes: `[ <a index>, <b index> ]`.
56
+
57
+If there's no match, `undefined` will be returned.
58
+
59
+If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
60
+
61
+## Installation
62
+
63
+With [npm](https://npmjs.org) do:
64
+
65
+```bash
66
+npm install balanced-match
67
+```
68
+
69
+## License
70
+
71
+(MIT)
72
+
73
+Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
74
+
75
+Permission is hereby granted, free of charge, to any person obtaining a copy of
76
+this software and associated documentation files (the "Software"), to deal in
77
+the Software without restriction, including without limitation the rights to
78
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
79
+of the Software, and to permit persons to whom the Software is furnished to do
80
+so, subject to the following conditions:
81
+
82
+The above copyright notice and this permission notice shall be included in all
83
+copies or substantial portions of the Software.
84
+
85
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
86
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
87
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
88
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
89
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
90
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
91
+SOFTWARE.

+ 59
- 0
km0App/node_modules/balanced-match/index.js Voir le fichier

@@ -0,0 +1,59 @@
1
+'use strict';
2
+module.exports = balanced;
3
+function balanced(a, b, str) {
4
+  if (a instanceof RegExp) a = maybeMatch(a, str);
5
+  if (b instanceof RegExp) b = maybeMatch(b, str);
6
+
7
+  var r = range(a, b, str);
8
+
9
+  return r && {
10
+    start: r[0],
11
+    end: r[1],
12
+    pre: str.slice(0, r[0]),
13
+    body: str.slice(r[0] + a.length, r[1]),
14
+    post: str.slice(r[1] + b.length)
15
+  };
16
+}
17
+
18
+function maybeMatch(reg, str) {
19
+  var m = str.match(reg);
20
+  return m ? m[0] : null;
21
+}
22
+
23
+balanced.range = range;
24
+function range(a, b, str) {
25
+  var begs, beg, left, right, result;
26
+  var ai = str.indexOf(a);
27
+  var bi = str.indexOf(b, ai + 1);
28
+  var i = ai;
29
+
30
+  if (ai >= 0 && bi > 0) {
31
+    begs = [];
32
+    left = str.length;
33
+
34
+    while (i >= 0 && !result) {
35
+      if (i == ai) {
36
+        begs.push(i);
37
+        ai = str.indexOf(a, i + 1);
38
+      } else if (begs.length == 1) {
39
+        result = [ begs.pop(), bi ];
40
+      } else {
41
+        beg = begs.pop();
42
+        if (beg < left) {
43
+          left = beg;
44
+          right = bi;
45
+        }
46
+
47
+        bi = str.indexOf(b, i + 1);
48
+      }
49
+
50
+      i = ai < bi && ai >= 0 ? ai : bi;
51
+    }
52
+
53
+    if (begs.length) {
54
+      result = [ left, right ];
55
+    }
56
+  }
57
+
58
+  return result;
59
+}

+ 77
- 0
km0App/node_modules/balanced-match/package.json Voir le fichier

@@ -0,0 +1,77 @@
1
+{
2
+  "_from": "balanced-match@^1.0.0",
3
+  "_id": "balanced-match@1.0.0",
4
+  "_inBundle": false,
5
+  "_integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
6
+  "_location": "/balanced-match",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "balanced-match@^1.0.0",
12
+    "name": "balanced-match",
13
+    "escapedName": "balanced-match",
14
+    "rawSpec": "^1.0.0",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^1.0.0"
17
+  },
18
+  "_requiredBy": [
19
+    "/brace-expansion"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
22
+  "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767",
23
+  "_spec": "balanced-match@^1.0.0",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/brace-expansion",
25
+  "author": {
26
+    "name": "Julian Gruber",
27
+    "email": "mail@juliangruber.com",
28
+    "url": "http://juliangruber.com"
29
+  },
30
+  "bugs": {
31
+    "url": "https://github.com/juliangruber/balanced-match/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "dependencies": {},
35
+  "deprecated": false,
36
+  "description": "Match balanced character pairs, like \"{\" and \"}\"",
37
+  "devDependencies": {
38
+    "matcha": "^0.7.0",
39
+    "tape": "^4.6.0"
40
+  },
41
+  "homepage": "https://github.com/juliangruber/balanced-match",
42
+  "keywords": [
43
+    "match",
44
+    "regexp",
45
+    "test",
46
+    "balanced",
47
+    "parse"
48
+  ],
49
+  "license": "MIT",
50
+  "main": "index.js",
51
+  "name": "balanced-match",
52
+  "repository": {
53
+    "type": "git",
54
+    "url": "git://github.com/juliangruber/balanced-match.git"
55
+  },
56
+  "scripts": {
57
+    "bench": "make bench",
58
+    "test": "make test"
59
+  },
60
+  "testling": {
61
+    "files": "test/*.js",
62
+    "browsers": [
63
+      "ie/8..latest",
64
+      "firefox/20..latest",
65
+      "firefox/nightly",
66
+      "chrome/25..latest",
67
+      "chrome/canary",
68
+      "opera/12..latest",
69
+      "opera/next",
70
+      "safari/5.1..latest",
71
+      "ipad/6.0..latest",
72
+      "iphone/6.0..latest",
73
+      "android-browser/4.2..latest"
74
+    ]
75
+  },
76
+  "version": "1.0.0"
77
+}

+ 21
- 0
km0App/node_modules/base64-js/LICENSE Voir le fichier

@@ -0,0 +1,21 @@
1
+The MIT License (MIT)
2
+
3
+Copyright (c) 2014 Jameson Little
4
+
5
+Permission is hereby granted, free of charge, to any person obtaining a copy
6
+of this software and associated documentation files (the "Software"), to deal
7
+in the Software without restriction, including without limitation the rights
8
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+copies of the Software, and to permit persons to whom the Software is
10
+furnished to do so, subject to the following conditions:
11
+
12
+The above copyright notice and this permission notice shall be included in
13
+all copies or substantial portions of the Software.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+THE SOFTWARE.

+ 32
- 0
km0App/node_modules/base64-js/README.md Voir le fichier

@@ -0,0 +1,32 @@
1
+base64-js
2
+=========
3
+
4
+`base64-js` does basic base64 encoding/decoding in pure JS.
5
+
6
+[![build status](https://secure.travis-ci.org/beatgammit/base64-js.png)](http://travis-ci.org/beatgammit/base64-js)
7
+
8
+Many browsers already have base64 encoding/decoding functionality, but it is for text data, not all-purpose binary data.
9
+
10
+Sometimes encoding/decoding binary data in the browser is useful, and that is what this module does.
11
+
12
+## install
13
+
14
+With [npm](https://npmjs.org) do:
15
+
16
+`npm install base64-js` and `var base64js = require('base64-js')`
17
+
18
+For use in web browsers do:
19
+
20
+`<script src="base64js.min.js"></script>`
21
+
22
+## methods
23
+
24
+`base64js` has three exposed functions, `byteLength`, `toByteArray` and `fromByteArray`, which both take a single argument.
25
+
26
+* `byteLength` - Takes a base64 string and returns length of byte array
27
+* `toByteArray` - Takes a base64 string and returns a byte array
28
+* `fromByteArray` - Takes a byte array and returns a base64 string
29
+
30
+## license
31
+
32
+MIT

+ 1
- 0
km0App/node_modules/base64-js/base64js.min.js Voir le fichier

@@ -0,0 +1 @@
1
+(function(r){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=r()}else if(typeof define==="function"&&define.amd){define([],r)}else{var e;if(typeof window!=="undefined"){e=window}else if(typeof global!=="undefined"){e=global}else if(typeof self!=="undefined"){e=self}else{e=this}e.base64js=r()}})(function(){var r,e,n;return function(){function d(a,f,i){function u(n,r){if(!f[n]){if(!a[n]){var e="function"==typeof require&&require;if(!r&&e)return e(n,!0);if(v)return v(n,!0);var t=new Error("Cannot find module '"+n+"'");throw t.code="MODULE_NOT_FOUND",t}var o=f[n]={exports:{}};a[n][0].call(o.exports,function(r){var e=a[n][1][r];return u(e||r)},o,o.exports,d,a,f,i)}return f[n].exports}for(var v="function"==typeof require&&require,r=0;r<i.length;r++)u(i[r]);return u}return d}()({"/":[function(r,e,n){"use strict";n.byteLength=f;n.toByteArray=i;n.fromByteArray=p;var u=[];var v=[];var d=typeof Uint8Array!=="undefined"?Uint8Array:Array;var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var o=0,a=t.length;o<a;++o){u[o]=t[o];v[t.charCodeAt(o)]=o}v["-".charCodeAt(0)]=62;v["_".charCodeAt(0)]=63;function c(r){var e=r.length;if(e%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var n=r.indexOf("=");if(n===-1)n=e;var t=n===e?0:4-n%4;return[n,t]}function f(r){var e=c(r);var n=e[0];var t=e[1];return(n+t)*3/4-t}function h(r,e,n){return(e+n)*3/4-n}function i(r){var e;var n=c(r);var t=n[0];var o=n[1];var a=new d(h(r,t,o));var f=0;var i=o>0?t-4:t;var u;for(u=0;u<i;u+=4){e=v[r.charCodeAt(u)]<<18|v[r.charCodeAt(u+1)]<<12|v[r.charCodeAt(u+2)]<<6|v[r.charCodeAt(u+3)];a[f++]=e>>16&255;a[f++]=e>>8&255;a[f++]=e&255}if(o===2){e=v[r.charCodeAt(u)]<<2|v[r.charCodeAt(u+1)]>>4;a[f++]=e&255}if(o===1){e=v[r.charCodeAt(u)]<<10|v[r.charCodeAt(u+1)]<<4|v[r.charCodeAt(u+2)]>>2;a[f++]=e>>8&255;a[f++]=e&255}return a}function s(r){return u[r>>18&63]+u[r>>12&63]+u[r>>6&63]+u[r&63]}function l(r,e,n){var t;var o=[];for(var a=e;a<n;a+=3){t=(r[a]<<16&16711680)+(r[a+1]<<8&65280)+(r[a+2]&255);o.push(s(t))}return o.join("")}function p(r){var e;var n=r.length;var t=n%3;var o=[];var a=16383;for(var f=0,i=n-t;f<i;f+=a){o.push(l(r,f,f+a>i?i:f+a))}if(t===1){e=r[n-1];o.push(u[e>>2]+u[e<<4&63]+"==")}else if(t===2){e=(r[n-2]<<8)+r[n-1];o.push(u[e>>10]+u[e>>4&63]+u[e<<2&63]+"=")}return o.join("")}},{}]},{},[])("/")});

+ 152
- 0
km0App/node_modules/base64-js/index.js Voir le fichier

@@ -0,0 +1,152 @@
1
+'use strict'
2
+
3
+exports.byteLength = byteLength
4
+exports.toByteArray = toByteArray
5
+exports.fromByteArray = fromByteArray
6
+
7
+var lookup = []
8
+var revLookup = []
9
+var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
10
+
11
+var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
12
+for (var i = 0, len = code.length; i < len; ++i) {
13
+  lookup[i] = code[i]
14
+  revLookup[code.charCodeAt(i)] = i
15
+}
16
+
17
+// Support decoding URL-safe base64 strings, as Node.js does.
18
+// See: https://en.wikipedia.org/wiki/Base64#URL_applications
19
+revLookup['-'.charCodeAt(0)] = 62
20
+revLookup['_'.charCodeAt(0)] = 63
21
+
22
+function getLens (b64) {
23
+  var len = b64.length
24
+
25
+  if (len % 4 > 0) {
26
+    throw new Error('Invalid string. Length must be a multiple of 4')
27
+  }
28
+
29
+  // Trim off extra bytes after placeholder bytes are found
30
+  // See: https://github.com/beatgammit/base64-js/issues/42
31
+  var validLen = b64.indexOf('=')
32
+  if (validLen === -1) validLen = len
33
+
34
+  var placeHoldersLen = validLen === len
35
+    ? 0
36
+    : 4 - (validLen % 4)
37
+
38
+  return [validLen, placeHoldersLen]
39
+}
40
+
41
+// base64 is 4/3 + up to two characters of the original data
42
+function byteLength (b64) {
43
+  var lens = getLens(b64)
44
+  var validLen = lens[0]
45
+  var placeHoldersLen = lens[1]
46
+  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
47
+}
48
+
49
+function _byteLength (b64, validLen, placeHoldersLen) {
50
+  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
51
+}
52
+
53
+function toByteArray (b64) {
54
+  var tmp
55
+  var lens = getLens(b64)
56
+  var validLen = lens[0]
57
+  var placeHoldersLen = lens[1]
58
+
59
+  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
60
+
61
+  var curByte = 0
62
+
63
+  // if there are placeholders, only get up to the last complete 4 chars
64
+  var len = placeHoldersLen > 0
65
+    ? validLen - 4
66
+    : validLen
67
+
68
+  var i
69
+  for (i = 0; i < len; i += 4) {
70
+    tmp =
71
+      (revLookup[b64.charCodeAt(i)] << 18) |
72
+      (revLookup[b64.charCodeAt(i + 1)] << 12) |
73
+      (revLookup[b64.charCodeAt(i + 2)] << 6) |
74
+      revLookup[b64.charCodeAt(i + 3)]
75
+    arr[curByte++] = (tmp >> 16) & 0xFF
76
+    arr[curByte++] = (tmp >> 8) & 0xFF
77
+    arr[curByte++] = tmp & 0xFF
78
+  }
79
+
80
+  if (placeHoldersLen === 2) {
81
+    tmp =
82
+      (revLookup[b64.charCodeAt(i)] << 2) |
83
+      (revLookup[b64.charCodeAt(i + 1)] >> 4)
84
+    arr[curByte++] = tmp & 0xFF
85
+  }
86
+
87
+  if (placeHoldersLen === 1) {
88
+    tmp =
89
+      (revLookup[b64.charCodeAt(i)] << 10) |
90
+      (revLookup[b64.charCodeAt(i + 1)] << 4) |
91
+      (revLookup[b64.charCodeAt(i + 2)] >> 2)
92
+    arr[curByte++] = (tmp >> 8) & 0xFF
93
+    arr[curByte++] = tmp & 0xFF
94
+  }
95
+
96
+  return arr
97
+}
98
+
99
+function tripletToBase64 (num) {
100
+  return lookup[num >> 18 & 0x3F] +
101
+    lookup[num >> 12 & 0x3F] +
102
+    lookup[num >> 6 & 0x3F] +
103
+    lookup[num & 0x3F]
104
+}
105
+
106
+function encodeChunk (uint8, start, end) {
107
+  var tmp
108
+  var output = []
109
+  for (var i = start; i < end; i += 3) {
110
+    tmp =
111
+      ((uint8[i] << 16) & 0xFF0000) +
112
+      ((uint8[i + 1] << 8) & 0xFF00) +
113
+      (uint8[i + 2] & 0xFF)
114
+    output.push(tripletToBase64(tmp))
115
+  }
116
+  return output.join('')
117
+}
118
+
119
+function fromByteArray (uint8) {
120
+  var tmp
121
+  var len = uint8.length
122
+  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
123
+  var parts = []
124
+  var maxChunkLength = 16383 // must be multiple of 3
125
+
126
+  // go through the array every three bytes, we'll deal with trailing stuff later
127
+  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
128
+    parts.push(encodeChunk(
129
+      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
130
+    ))
131
+  }
132
+
133
+  // pad the end with zeros, but make sure to not forget the extra bytes
134
+  if (extraBytes === 1) {
135
+    tmp = uint8[len - 1]
136
+    parts.push(
137
+      lookup[tmp >> 2] +
138
+      lookup[(tmp << 4) & 0x3F] +
139
+      '=='
140
+    )
141
+  } else if (extraBytes === 2) {
142
+    tmp = (uint8[len - 2] << 8) + uint8[len - 1]
143
+    parts.push(
144
+      lookup[tmp >> 10] +
145
+      lookup[(tmp >> 4) & 0x3F] +
146
+      lookup[(tmp << 2) & 0x3F] +
147
+      '='
148
+    )
149
+  }
150
+
151
+  return parts.join('')
152
+}

+ 60
- 0
km0App/node_modules/base64-js/package.json Voir le fichier

@@ -0,0 +1,60 @@
1
+{
2
+  "_from": "base64-js@^1.2.3",
3
+  "_id": "base64-js@1.3.1",
4
+  "_inBundle": false,
5
+  "_integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
6
+  "_location": "/base64-js",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "base64-js@^1.2.3",
12
+    "name": "base64-js",
13
+    "escapedName": "base64-js",
14
+    "rawSpec": "^1.2.3",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^1.2.3"
17
+  },
18
+  "_requiredBy": [
19
+    "/plist"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
22
+  "_shasum": "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1",
23
+  "_spec": "base64-js@^1.2.3",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/plist",
25
+  "author": {
26
+    "name": "T. Jameson Little",
27
+    "email": "t.jameson.little@gmail.com"
28
+  },
29
+  "bugs": {
30
+    "url": "https://github.com/beatgammit/base64-js/issues"
31
+  },
32
+  "bundleDependencies": false,
33
+  "deprecated": false,
34
+  "description": "Base64 encoding/decoding in pure JS",
35
+  "devDependencies": {
36
+    "benchmark": "^2.1.4",
37
+    "browserify": "^16.3.0",
38
+    "standard": "*",
39
+    "tape": "4.x",
40
+    "uglify-js": "^3.6.0"
41
+  },
42
+  "homepage": "https://github.com/beatgammit/base64-js",
43
+  "keywords": [
44
+    "base64"
45
+  ],
46
+  "license": "MIT",
47
+  "main": "index.js",
48
+  "name": "base64-js",
49
+  "repository": {
50
+    "type": "git",
51
+    "url": "git://github.com/beatgammit/base64-js.git"
52
+  },
53
+  "scripts": {
54
+    "build": "browserify -s base64js -r ./ | uglifyjs -m > base64js.min.js",
55
+    "lint": "standard",
56
+    "test": "npm run lint && npm run unit",
57
+    "unit": "tape test/*.js"
58
+  },
59
+  "version": "1.3.1"
60
+}

+ 2393
- 0
km0App/node_modules/big-integer/BigInteger.d.ts
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1453
- 0
km0App/node_modules/big-integer/BigInteger.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
km0App/node_modules/big-integer/BigInteger.min.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 24
- 0
km0App/node_modules/big-integer/LICENSE Voir le fichier

@@ -0,0 +1,24 @@
1
+This is free and unencumbered software released into the public domain.
2
+
3
+Anyone is free to copy, modify, publish, use, compile, sell, or
4
+distribute this software, either in source code form or as a compiled
5
+binary, for any purpose, commercial or non-commercial, and by any
6
+means.
7
+
8
+In jurisdictions that recognize copyright laws, the author or authors
9
+of this software dedicate any and all copyright interest in the
10
+software to the public domain. We make this dedication for the benefit
11
+of the public at large and to the detriment of our heirs and
12
+successors. We intend this dedication to be an overt act of
13
+relinquishment in perpetuity of all present and future rights to this
14
+software under copyright law.
15
+
16
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+For more information, please refer to <http://unlicense.org>

+ 588
- 0
km0App/node_modules/big-integer/README.md Voir le fichier

@@ -0,0 +1,588 @@
1
+# BigInteger.js [![Build Status][travis-img]][travis-url] [![Coverage Status][coveralls-img]][coveralls-url] [![Monthly Downloads][downloads-img]][downloads-url]
2
+
3
+[travis-url]: https://travis-ci.org/peterolson/BigInteger.js
4
+[travis-img]: https://travis-ci.org/peterolson/BigInteger.js.svg?branch=master
5
+[coveralls-url]: https://coveralls.io/github/peterolson/BigInteger.js?branch=master
6
+[coveralls-img]: https://coveralls.io/repos/peterolson/BigInteger.js/badge.svg?branch=master&service=github
7
+[downloads-url]: https://www.npmjs.com/package/big-integer
8
+[downloads-img]: https://img.shields.io/npm/dm/big-integer.svg
9
+
10
+**BigInteger.js** is an arbitrary-length integer library for Javascript, allowing arithmetic operations on integers of unlimited size, notwithstanding memory and time limitations.
11
+
12
+**Update (December 2, 2018):** [`BigInt` is being added as a native feature of JavaScript](https://tc39.github.io/proposal-bigint/). This library now works as a polyfill: if the environment supports the native `BigInt`, this library acts as a thin wrapper over the native implementation.
13
+
14
+## Installation
15
+
16
+If you are using a browser, you can download [BigInteger.js from GitHub](http://peterolson.github.com/BigInteger.js/BigInteger.min.js) or just hotlink to it:
17
+
18
+	<script src="https://peterolson.github.io/BigInteger.js/BigInteger.min.js"></script>
19
+
20
+If you are using node, you can install BigInteger with [npm](https://npmjs.org/).
21
+
22
+    npm install big-integer
23
+
24
+Then you can include it in your code:
25
+
26
+	var bigInt = require("big-integer");
27
+
28
+
29
+## Usage
30
+### `bigInt(number, [base], [alphabet], [caseSensitive])`
31
+
32
+You can create a bigInt by calling the `bigInt` function. You can pass in
33
+
34
+ - a string, which it will parse as an bigInt and throw an `"Invalid integer"` error if the parsing fails.
35
+ - a Javascript number, which it will parse as an bigInt and throw an `"Invalid integer"` error if the parsing fails.
36
+ - another bigInt.
37
+ - nothing, and it will return `bigInt.zero`.
38
+
39
+ If you provide a second parameter, then it will parse `number` as a number in base `base`. Note that `base` can be any bigInt (even negative or zero). The letters "a-z" and "A-Z" will be interpreted as the numbers 10 to 35. Higher digits can be specified in angle brackets (`<` and `>`). The default `base` is `10`.
40
+
41
+ You can specify a custom alphabet for base conversion with the third parameter. The default `alphabet` is `"0123456789abcdefghijklmnopqrstuvwxyz"`.
42
+
43
+ The fourth parameter specifies whether or not the number string should be case-sensitive, i.e. whether `a` and `A` should be treated as different digits. By default `caseSensitive` is `false`.
44
+
45
+Examples:
46
+
47
+    var zero = bigInt();
48
+    var ninetyThree = bigInt(93);
49
+	var largeNumber = bigInt("75643564363473453456342378564387956906736546456235345");
50
+	var googol = bigInt("1e100");
51
+	var bigNumber = bigInt(largeNumber);
52
+
53
+	var maximumByte = bigInt("FF", 16);
54
+	var fiftyFiveGoogol = bigInt("<55>0", googol);
55
+
56
+Note that Javascript numbers larger than `9007199254740992` and smaller than `-9007199254740992` are not precisely represented numbers and will not produce exact results. If you are dealing with numbers outside that range, it is better to pass in strings.
57
+
58
+### Method Chaining
59
+
60
+Note that bigInt operations return bigInts, which allows you to chain methods, for example:
61
+
62
+    var salary = bigInt(dollarsPerHour).times(hoursWorked).plus(randomBonuses)
63
+
64
+### Constants
65
+
66
+There are three named constants already stored that you do not have to construct with the `bigInt` function yourself:
67
+
68
+ - `bigInt.one`, equivalent to `bigInt(1)`
69
+ - `bigInt.zero`, equivalent to `bigInt(0)`
70
+ - `bigInt.minusOne`, equivalent to `bigInt(-1)`
71
+
72
+The numbers from -999 to 999 are also already prestored and can be accessed using `bigInt[index]`, for example:
73
+
74
+ - `bigInt[-999]`, equivalent to `bigInt(-999)`
75
+ - `bigInt[256]`, equivalent to `bigInt(256)`
76
+
77
+### Methods
78
+
79
+#### `abs()`
80
+
81
+Returns the absolute value of a bigInt.
82
+
83
+ - `bigInt(-45).abs()` => `45`
84
+ - `bigInt(45).abs()` => `45`
85
+
86
+#### `add(number)`
87
+
88
+Performs addition.
89
+
90
+ - `bigInt(5).add(7)` => `12`
91
+
92
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Addition)
93
+
94
+#### `and(number)`
95
+
96
+Performs the bitwise AND operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement).
97
+
98
+ - `bigInt(6).and(3)` => `2`
99
+ - `bigInt(6).and(-3)` => `4`
100
+
101
+#### `bitLength()`
102
+
103
+Returns the number of digits required to represent a bigInt in binary.
104
+
105
+ - `bigInt(5)` => `3` (since 5 is `101` in binary, which is three digits long)
106
+
107
+#### `compare(number)`
108
+
109
+Performs a comparison between two numbers. If the numbers are equal, it returns `0`. If the first number is greater, it returns `1`. If the first number is lesser, it returns `-1`.
110
+
111
+ - `bigInt(5).compare(5)` => `0`
112
+ - `bigInt(5).compare(4)` => `1`
113
+ - `bigInt(4).compare(5)` => `-1`
114
+
115
+#### `compareAbs(number)`
116
+
117
+Performs a comparison between the absolute value of two numbers.
118
+
119
+ - `bigInt(5).compareAbs(-5)` => `0`
120
+ - `bigInt(5).compareAbs(4)` => `1`
121
+ - `bigInt(4).compareAbs(-5)` => `-1`
122
+
123
+#### `compareTo(number)`
124
+
125
+Alias for the `compare` method.
126
+
127
+#### `divide(number)`
128
+
129
+Performs integer division, disregarding the remainder.
130
+
131
+ - `bigInt(59).divide(5)` => `11`
132
+
133
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
134
+
135
+#### `divmod(number)`
136
+
137
+Performs division and returns an object with two properties: `quotient` and `remainder`. The sign of the remainder will match the sign of the dividend.
138
+
139
+ - `bigInt(59).divmod(5)` => `{quotient: bigInt(11), remainder: bigInt(4) }`
140
+ - `bigInt(-5).divmod(2)` => `{quotient: bigInt(-2), remainder: bigInt(-1) }`
141
+
142
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
143
+
144
+#### `eq(number)`
145
+
146
+Alias for the `equals` method.
147
+
148
+#### `equals(number)`
149
+
150
+Checks if two numbers are equal.
151
+
152
+ - `bigInt(5).equals(5)` => `true`
153
+ - `bigInt(4).equals(7)` => `false`
154
+
155
+#### `geq(number)`
156
+
157
+Alias for the `greaterOrEquals` method.
158
+
159
+
160
+#### `greater(number)`
161
+
162
+Checks if the first number is greater than the second.
163
+
164
+ - `bigInt(5).greater(6)` => `false`
165
+ - `bigInt(5).greater(5)` => `false`
166
+ - `bigInt(5).greater(4)` => `true`
167
+
168
+#### `greaterOrEquals(number)`
169
+
170
+Checks if the first number is greater than or equal to the second.
171
+
172
+ - `bigInt(5).greaterOrEquals(6)` => `false`
173
+ - `bigInt(5).greaterOrEquals(5)` => `true`
174
+ - `bigInt(5).greaterOrEquals(4)` => `true`
175
+
176
+#### `gt(number)`
177
+
178
+Alias for the `greater` method.
179
+
180
+#### `isDivisibleBy(number)`
181
+
182
+Returns `true` if the first number is divisible by the second number, `false` otherwise.
183
+
184
+ - `bigInt(999).isDivisibleBy(333)` => `true`
185
+ - `bigInt(99).isDivisibleBy(5)` => `false`
186
+
187
+#### `isEven()`
188
+
189
+Returns `true` if the number is even, `false` otherwise.
190
+
191
+ - `bigInt(6).isEven()` => `true`
192
+ - `bigInt(3).isEven()` => `false`
193
+
194
+#### `isNegative()`
195
+
196
+Returns `true` if the number is negative, `false` otherwise.
197
+Returns `false` for `0` and `-0`.
198
+
199
+ - `bigInt(-23).isNegative()` => `true`
200
+ - `bigInt(50).isNegative()` => `false`
201
+
202
+#### `isOdd()`
203
+
204
+Returns `true` if the number is odd, `false` otherwise.
205
+
206
+ - `bigInt(13).isOdd()` => `true`
207
+ - `bigInt(40).isOdd()` => `false`
208
+
209
+#### `isPositive()`
210
+
211
+Return `true` if the number is positive, `false` otherwise.
212
+Returns `false` for `0` and `-0`.
213
+
214
+ - `bigInt(54).isPositive()` => `true`
215
+ - `bigInt(-1).isPositive()` => `false`
216
+
217
+#### `isPrime()`
218
+
219
+Returns `true` if the number is prime, `false` otherwise.
220
+
221
+ - `bigInt(5).isPrime()` => `true`
222
+ - `bigInt(6).isPrime()` => `false`
223
+
224
+#### `isProbablePrime([iterations], [rng])`
225
+
226
+Returns `true` if the number is very likely to be prime, `false` otherwise.
227
+Supplying `iterations` is optional - it determines the number of iterations of the test (default: `5`). The more iterations, the lower chance of getting a false positive.
228
+This uses the [Miller Rabin test](https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test).
229
+
230
+ - `bigInt(5).isProbablePrime()` => `true`
231
+ - `bigInt(49).isProbablePrime()` => `false`
232
+ - `bigInt(1729).isProbablePrime()` => `false`
233
+
234
+Note that this function is not deterministic, since it relies on random sampling of factors, so the result for some numbers is not always the same - unless you pass a predictable random number generator as `rng`. The behavior and requirements are the same as with `randBetween`.
235
+
236
+ - `bigInt(1729).isProbablePrime(1, () => 0.1)` => `false`
237
+ - `bigInt(1729).isProbablePrime(1, () => 0.2)` => `true`
238
+
239
+If the number is composite then the Miller–Rabin primality test declares the number probably prime with a probability at most `4` to the power `−iterations`.
240
+If the number is prime, this function always returns `true`.
241
+
242
+#### `isUnit()`
243
+
244
+Returns `true` if the number is `1` or `-1`, `false` otherwise.
245
+
246
+ - `bigInt.one.isUnit()` => `true`
247
+ - `bigInt.minusOne.isUnit()` => `true`
248
+ - `bigInt(5).isUnit()` => `false`
249
+
250
+#### `isZero()`
251
+
252
+Return `true` if the number is `0` or `-0`, `false` otherwise.
253
+
254
+ - `bigInt.zero.isZero()` => `true`
255
+ - `bigInt("-0").isZero()` => `true`
256
+ - `bigInt(50).isZero()` => `false`
257
+
258
+#### `leq(number)`
259
+
260
+Alias for the `lesserOrEquals` method.
261
+
262
+#### `lesser(number)`
263
+
264
+Checks if the first number is lesser than the second.
265
+
266
+ - `bigInt(5).lesser(6)` => `true`
267
+ - `bigInt(5).lesser(5)` => `false`
268
+ - `bigInt(5).lesser(4)` => `false`
269
+
270
+#### `lesserOrEquals(number)`
271
+
272
+Checks if the first number is less than or equal to the second.
273
+
274
+ - `bigInt(5).lesserOrEquals(6)` => `true`
275
+ - `bigInt(5).lesserOrEquals(5)` => `true`
276
+ - `bigInt(5).lesserOrEquals(4)` => `false`
277
+
278
+#### `lt(number)`
279
+
280
+Alias for the `lesser` method.
281
+
282
+#### `minus(number)`
283
+
284
+Alias for the `subtract` method.
285
+
286
+ - `bigInt(3).minus(5)` => `-2`
287
+
288
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Subtraction)
289
+
290
+#### `mod(number)`
291
+
292
+Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend.
293
+
294
+ - `bigInt(59).mod(5)` =>  `4`
295
+ - `bigInt(-5).mod(2)` => `-1`
296
+
297
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
298
+
299
+#### `modInv(mod)`
300
+
301
+Finds the [multiplicative inverse](https://en.wikipedia.org/wiki/Modular_multiplicative_inverse) of the number modulo `mod`.
302
+
303
+ - `bigInt(3).modInv(11)` => `4`
304
+ - `bigInt(42).modInv(2017)` => `1969`
305
+
306
+#### `modPow(exp, mod)`
307
+
308
+Takes the number to the power `exp` modulo `mod`.
309
+
310
+ - `bigInt(10).modPow(3, 30)` => `10`
311
+
312
+#### `multiply(number)`
313
+
314
+Performs multiplication.
315
+
316
+ - `bigInt(111).multiply(111)` => `12321`
317
+
318
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Multiplication)
319
+
320
+#### `neq(number)`
321
+
322
+Alias for the `notEquals` method.
323
+
324
+#### `next()`
325
+
326
+Adds one to the number.
327
+
328
+ - `bigInt(6).next()` => `7`
329
+
330
+#### `not()`
331
+
332
+Performs the bitwise NOT operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement).
333
+
334
+ - `bigInt(10).not()` => `-11`
335
+ - `bigInt(0).not()` => `-1`
336
+
337
+#### `notEquals(number)`
338
+
339
+Checks if two numbers are not equal.
340
+
341
+ - `bigInt(5).notEquals(5)` => `false`
342
+ - `bigInt(4).notEquals(7)` => `true`
343
+
344
+#### `or(number)`
345
+
346
+Performs the bitwise OR operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement).
347
+
348
+ - `bigInt(13).or(10)` => `15`
349
+ - `bigInt(13).or(-8)` => `-3`
350
+
351
+#### `over(number)`
352
+
353
+Alias for the `divide` method.
354
+
355
+ - `bigInt(59).over(5)` => `11`
356
+
357
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
358
+
359
+#### `plus(number)`
360
+
361
+Alias for the `add` method.
362
+
363
+ - `bigInt(5).plus(7)` => `12`
364
+
365
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Addition)
366
+
367
+#### `pow(number)`
368
+
369
+Performs exponentiation. If the exponent is less than `0`, `pow` returns `0`. `bigInt.zero.pow(0)` returns `1`.
370
+
371
+ - `bigInt(16).pow(16)` => `18446744073709551616`
372
+
373
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Exponentiation)
374
+
375
+#### `prev(number)`
376
+
377
+Subtracts one from the number.
378
+
379
+ - `bigInt(6).prev()` => `5`
380
+
381
+#### `remainder(number)`
382
+
383
+Alias for the `mod` method.
384
+
385
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
386
+
387
+#### `shiftLeft(n)`
388
+
389
+Shifts the number left by `n` places in its binary representation. If a negative number is provided, it will shift right. Throws an error if `n` is outside of the range `[-9007199254740992, 9007199254740992]`.
390
+
391
+ - `bigInt(8).shiftLeft(2)` => `32`
392
+ - `bigInt(8).shiftLeft(-2)` => `2`
393
+
394
+#### `shiftRight(n)`
395
+
396
+Shifts the number right by `n` places in its binary representation. If a negative number is provided, it will shift left. Throws an error if `n` is outside of the range `[-9007199254740992, 9007199254740992]`.
397
+
398
+ - `bigInt(8).shiftRight(2)` => `2`
399
+ - `bigInt(8).shiftRight(-2)` => `32`
400
+
401
+#### `square()`
402
+
403
+Squares the number
404
+
405
+ - `bigInt(3).square()` => `9`
406
+
407
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Squaring)
408
+
409
+#### `subtract(number)`
410
+
411
+Performs subtraction.
412
+
413
+ - `bigInt(3).subtract(5)` => `-2`
414
+
415
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Subtraction)
416
+
417
+#### `times(number)`
418
+
419
+Alias for the `multiply` method.
420
+
421
+ - `bigInt(111).times(111)` => `12321`
422
+
423
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Multiplication)
424
+
425
+#### `toArray(radix)`
426
+
427
+Converts a bigInt into an object with the properties "value" and "isNegative." "Value" is an array of integers modulo the given radix. "isNegative" is a boolean that represents the sign of the result.
428
+
429
+ - `bigInt("1e9").toArray(10)` => {
430
+     value: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
431
+     isNegative: false
432
+   }
433
+ - `bigInt("1e9").toArray(16)` => {
434
+     value: [3, 11, 9, 10, 12, 10, 0, 0],
435
+     isNegative: false
436
+   }
437
+ - `bigInt(567890).toArray(100)` => {
438
+     value: [56, 78, 90],
439
+     isNegative: false
440
+   }
441
+
442
+Negative bases are supported.
443
+
444
+ - `bigInt(12345).toArray(-10)` => {
445
+     value: [2, 8, 4, 6, 5],
446
+     isNegative: false
447
+   }
448
+
449
+Base 1 and base -1 are also supported.
450
+
451
+ - `bigInt(-15).toArray(1)` => {
452
+     value: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
453
+     isNegative: true
454
+   }
455
+ - `bigInt(-15).toArray(-1)` => {
456
+     value: [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
457
+             0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
458
+     isNegative: false
459
+   }
460
+
461
+Base 0 is only allowed for the number zero.
462
+
463
+ - `bigInt(0).toArray(0)` => {
464
+     value: [0],
465
+     isNegative: false
466
+   }
467
+ - `bigInt(1).toArray(0)` => `Error: Cannot convert nonzero numbers to base 0.`
468
+
469
+#### `toJSNumber()`
470
+
471
+Converts a bigInt into a native Javascript number. Loses precision for numbers outside the range `[-9007199254740992, 9007199254740992]`.
472
+
473
+ - `bigInt("18446744073709551616").toJSNumber()` => `18446744073709552000`
474
+
475
+#### `xor(number)`
476
+
477
+Performs the bitwise XOR operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement).
478
+
479
+ - `bigInt(12).xor(5)` => `9`
480
+ - `bigInt(12).xor(-5)` => `-9`
481
+
482
+### Static Methods
483
+
484
+#### `fromArray(digits, base = 10, isNegative?)`
485
+
486
+Constructs a bigInt from an array of digits in base `base`. The optional `isNegative` flag will make the number negative.
487
+
488
+ - `bigInt.fromArray([1, 2, 3, 4, 5], 10)` => `12345`
489
+ - `bigInt.fromArray([1, 0, 0], 2, true)` => `-4`
490
+
491
+#### `gcd(a, b)`
492
+
493
+Finds the greatest common denominator of `a` and `b`.
494
+
495
+ - `bigInt.gcd(42,56)` => `14`
496
+
497
+#### `isInstance(x)`
498
+
499
+Returns `true` if `x` is a BigInteger, `false` otherwise.
500
+
501
+ - `bigInt.isInstance(bigInt(14))` => `true`
502
+ - `bigInt.isInstance(14)` => `false`
503
+
504
+#### `lcm(a,b)`
505
+
506
+Finds the least common multiple of `a` and `b`.
507
+
508
+ - `bigInt.lcm(21, 6)` => `42`
509
+
510
+#### `max(a,b)`
511
+
512
+Returns the largest of `a` and `b`.
513
+
514
+ - `bigInt.max(77, 432)` => `432`
515
+
516
+#### `min(a,b)`
517
+
518
+Returns the smallest of `a` and `b`.
519
+
520
+ - `bigInt.min(77, 432)` => `77`
521
+
522
+#### `randBetween(min, max, [rng])`
523
+
524
+Returns a random number between `min` and `max`, optionally using `rng` to generate randomness.
525
+
526
+ - `bigInt.randBetween("-1e100", "1e100")` => (for example) `8494907165436643479673097939554427056789510374838494147955756275846226209006506706784609314471378745`
527
+
528
+`rng` should take no arguments and return a `number` between 0 and 1. It defaults to `Math.random`.
529
+
530
+  - `bigInt.randBetween("-1e100", "1e100", () => 0.5)` => (always) `50000005000000500000050000005000000500000050000005000000500000050000005000000500000050000005000000`
531
+
532
+
533
+### Override Methods
534
+
535
+#### `toString(radix = 10, [alphabet])`
536
+
537
+Converts a bigInt to a string. There is an optional radix parameter (which defaults to 10) that converts the number to the given radix. Digits in the range `10-35` will use the letters `a-z`.
538
+
539
+ - `bigInt("1e9").toString()` => `"1000000000"`
540
+ - `bigInt("1e9").toString(16)` => `"3b9aca00"`
541
+
542
+ You can use a custom base alphabet with the second parameter. The default `alphabet` is `"0123456789abcdefghijklmnopqrstuvwxyz"`.
543
+
544
+  - `bigInt("5").toString(2, "aA")` => `"AaA"`
545
+
546
+**Note that arithmetical operators will trigger the `valueOf` function rather than the `toString` function.** When converting a bigInteger to a string, you should use the `toString` method or the `String` function instead of adding the empty string.
547
+
548
+ - `bigInt("999999999999999999").toString()` => `"999999999999999999"`
549
+ - `String(bigInt("999999999999999999"))` => `"999999999999999999"`
550
+ - `bigInt("999999999999999999") + ""` => `1000000000000000000`
551
+
552
+Bases larger than 36 are supported. If a digit is greater than or equal to 36, it will be enclosed in angle brackets.
553
+
554
+ - `bigInt(567890).toString(100)` => `"<56><78><90>"`
555
+
556
+Negative bases are also supported.
557
+
558
+ - `bigInt(12345).toString(-10)` => `"28465"`
559
+
560
+Base 1 and base -1 are also supported.
561
+
562
+ - `bigInt(-15).toString(1)` => `"-111111111111111"`
563
+ - `bigInt(-15).toString(-1)` => `"101010101010101010101010101010"`
564
+
565
+Base 0 is only allowed for the number zero.
566
+
567
+ - `bigInt(0).toString(0)` => `0`
568
+ - `bigInt(1).toString(0)` => `Error: Cannot convert nonzero numbers to base 0.`
569
+
570
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#toString)
571
+
572
+#### `valueOf()`
573
+
574
+Converts a bigInt to a native Javascript number. This override allows you to use native arithmetic operators without explicit conversion:
575
+
576
+ - `bigInt("100") + bigInt("200") === 300; //true`
577
+
578
+## Contributors
579
+
580
+To contribute, just fork the project, make some changes, and submit a pull request. Please verify that the unit tests pass before submitting.
581
+
582
+The unit tests are contained in the `spec/spec.js` file. You can run them locally by opening the `spec/SpecRunner.html` or file or running `npm test`. You can also [run the tests online from GitHub](http://peterolson.github.io/BigInteger.js/spec/SpecRunner.html).
583
+
584
+There are performance benchmarks that can be viewed from the `benchmarks/index.html` page. You can [run them online from GitHub](http://peterolson.github.io/BigInteger.js/benchmark/).
585
+
586
+## License
587
+
588
+This project is public domain. For more details, read about the [Unlicense](http://unlicense.org/).

+ 29
- 0
km0App/node_modules/big-integer/bower.json Voir le fichier

@@ -0,0 +1,29 @@
1
+{
2
+  "name": "big-integer",
3
+  "description": "An arbitrary length integer library for Javascript",
4
+  "main": "./BigInteger.js",
5
+  "authors": [
6
+    "Peter Olson"
7
+  ],
8
+  "license": "Unlicense",
9
+  "keywords": [
10
+    "math",
11
+    "big",
12
+    "bignum",
13
+    "bigint",
14
+    "biginteger",
15
+    "integer",
16
+    "arbitrary",
17
+    "precision",
18
+    "arithmetic"
19
+  ],
20
+  "homepage": "https://github.com/peterolson/BigInteger.js",
21
+  "ignore": [
22
+    "**/.*",
23
+    "node_modules",
24
+    "bower_components",
25
+    "test",
26
+    "coverage",
27
+    "tests"
28
+  ]
29
+}

+ 80
- 0
km0App/node_modules/big-integer/package.json Voir le fichier

@@ -0,0 +1,80 @@
1
+{
2
+  "_from": "big-integer@^1.6.7",
3
+  "_id": "big-integer@1.6.47",
4
+  "_inBundle": false,
5
+  "_integrity": "sha512-9t9f7X3as2XGX8b52GqG6ox0GvIdM86LyIXASJnDCFhYNgt+A+MByQZ3W2PyMRZjEvG5f8TEbSPfEotVuMJnQg==",
6
+  "_location": "/big-integer",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "big-integer@^1.6.7",
12
+    "name": "big-integer",
13
+    "escapedName": "big-integer",
14
+    "rawSpec": "^1.6.7",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^1.6.7"
17
+  },
18
+  "_requiredBy": [
19
+    "/bplist-parser"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.47.tgz",
22
+  "_shasum": "e1e9320e26c4cc81f64fbf4b3bb20e025bf18e2d",
23
+  "_spec": "big-integer@^1.6.7",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/bplist-parser",
25
+  "author": {
26
+    "name": "Peter Olson",
27
+    "email": "peter.e.c.olson+npm@gmail.com"
28
+  },
29
+  "bin": {},
30
+  "bugs": {
31
+    "url": "https://github.com/peterolson/BigInteger.js/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "contributors": [],
35
+  "deprecated": false,
36
+  "description": "An arbitrary length integer library for Javascript",
37
+  "devDependencies": {
38
+    "@types/lodash": "^4.14.118",
39
+    "@types/node": "^7.10.2",
40
+    "coveralls": "^3.0.6",
41
+    "jasmine": "3.5.0",
42
+    "jasmine-core": "^3.5.0",
43
+    "karma": "^4.3.0",
44
+    "karma-cli": "^2.0.0",
45
+    "karma-coverage": "^2.0.1",
46
+    "karma-jasmine": "^2.0.1",
47
+    "karma-phantomjs-launcher": "^1.0.4",
48
+    "lodash": "^4.17.11",
49
+    "typescript": "^3.6.3",
50
+    "uglifyjs": "^2.4.10"
51
+  },
52
+  "engines": {
53
+    "node": ">=0.6"
54
+  },
55
+  "homepage": "https://github.com/peterolson/BigInteger.js#readme",
56
+  "keywords": [
57
+    "math",
58
+    "big",
59
+    "bignum",
60
+    "bigint",
61
+    "biginteger",
62
+    "integer",
63
+    "arbitrary",
64
+    "precision",
65
+    "arithmetic"
66
+  ],
67
+  "license": "Unlicense",
68
+  "main": "./BigInteger",
69
+  "name": "big-integer",
70
+  "repository": {
71
+    "type": "git",
72
+    "url": "git+ssh://git@github.com/peterolson/BigInteger.js.git"
73
+  },
74
+  "scripts": {
75
+    "minify": "uglifyjs BigInteger.js -o BigInteger.min.js",
76
+    "test": "tsc && karma start my.conf.js && node spec/tsDefinitions.js"
77
+  },
78
+  "typings": "./BigInteger.d.ts",
79
+  "version": "1.6.47"
80
+}

+ 26
- 0
km0App/node_modules/big-integer/tsconfig.json Voir le fichier

@@ -0,0 +1,26 @@
1
+{
2
+    "compilerOptions": {
3
+        "target": "esnext",
4
+        "module": "commonjs",
5
+        "lib": [
6
+            "es6"
7
+        ],
8
+        "noImplicitAny": true,
9
+        "noImplicitThis": true,
10
+        "strictNullChecks": false,
11
+        "baseUrl": "./",
12
+        "moduleResolution": "node",
13
+        "allowJs": true,
14
+        "typeRoots": [
15
+            "./"
16
+        ],
17
+        "types": [
18
+            "node"
19
+        ],
20
+        "forceConsistentCasingInFileNames": true
21
+    },
22
+    "files": [
23
+        "BigInteger.d.ts",
24
+        "spec/tsDefinitions.ts"
25
+    ]
26
+}

+ 8
- 0
km0App/node_modules/bplist-creator/.npmignore Voir le fichier

@@ -0,0 +1,8 @@
1
+/build/*
2
+node_modules
3
+*.node
4
+*.sh
5
+*.swp
6
+.lock*
7
+npm-debug.log
8
+.idea

+ 64
- 0
km0App/node_modules/bplist-creator/README.md Voir le fichier

@@ -0,0 +1,64 @@
1
+bplist-parser
2
+=============
3
+
4
+Binary Mac OS X Plist (property list) creator.
5
+
6
+## Installation
7
+
8
+```bash
9
+$ npm install bplist-creator
10
+```
11
+
12
+## Quick Examples
13
+
14
+```javascript
15
+var bplist = require('bplist-creator');
16
+
17
+var buffer = bplist({
18
+  key1: [1, 2, 3]
19
+});
20
+```
21
+
22
+## Real/Double/Float handling
23
+
24
+Javascript don't have different types for `1` and `1.0`. This package
25
+will automatically store numbers as the appropriate type, but can't
26
+detect floats that is also integers.
27
+
28
+If you need to force a value to be written with the `real` type pass
29
+an instance of `Real`.
30
+
31
+```javascript
32
+var buffer = bplist({
33
+  backgroundRed: new bplist.Real(1),
34
+  backgroundGreen: new bplist.Real(0),
35
+  backgroundBlue: new bplist.Real(0)
36
+});
37
+```
38
+
39
+In `xml` the corresponding tags is `<integer>` and `<real>`.
40
+
41
+## License
42
+
43
+(The MIT License)
44
+
45
+Copyright (c) 2012 Near Infinity Corporation
46
+
47
+Permission is hereby granted, free of charge, to any person obtaining
48
+a copy of this software and associated documentation files (the
49
+"Software"), to deal in the Software without restriction, including
50
+without limitation the rights to use, copy, modify, merge, publish,
51
+distribute, sublicense, and/or sell copies of the Software, and to
52
+permit persons to whom the Software is furnished to do so, subject to
53
+the following conditions:
54
+
55
+The above copyright notice and this permission notice shall be
56
+included in all copies or substantial portions of the Software.
57
+
58
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
59
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
60
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
61
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
62
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
63
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
64
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 445
- 0
km0App/node_modules/bplist-creator/bplistCreator.js Voir le fichier

@@ -0,0 +1,445 @@
1
+'use strict';
2
+
3
+// adapted from http://code.google.com/p/plist/source/browse/trunk/src/main/java/com/dd/plist/BinaryPropertyListWriter.java
4
+
5
+var streamBuffers = require("stream-buffers");
6
+
7
+var debug = false;
8
+
9
+function Real(value) {
10
+  this.value = value;
11
+}
12
+
13
+module.exports = function(dicts) {
14
+  var buffer = new streamBuffers.WritableStreamBuffer();
15
+  buffer.write(new Buffer("bplist00"));
16
+
17
+  if (debug) {
18
+    console.log('create', require('util').inspect(dicts, false, 10));
19
+  }
20
+
21
+  if (dicts instanceof Array && dicts.length === 1) {
22
+    dicts = dicts[0];
23
+  }
24
+
25
+  var entries = toEntries(dicts);
26
+  if (debug) {
27
+    console.log('entries', entries);
28
+  }
29
+  var idSizeInBytes = computeIdSizeInBytes(entries.length);
30
+  var offsets = [];
31
+  var offsetSizeInBytes;
32
+  var offsetTableOffset;
33
+
34
+  updateEntryIds();
35
+
36
+  entries.forEach(function(entry, entryIdx) {
37
+    offsets[entryIdx] = buffer.size();
38
+    if (!entry) {
39
+      buffer.write(0x00);
40
+    } else {
41
+      write(entry);
42
+    }
43
+  });
44
+
45
+  writeOffsetTable();
46
+  writeTrailer();
47
+  return buffer.getContents();
48
+
49
+  function updateEntryIds() {
50
+    var strings = {};
51
+    var entryId = 0;
52
+    entries.forEach(function(entry) {
53
+      if (entry.id) {
54
+        return;
55
+      }
56
+      if (entry.type === 'string') {
57
+        if (!entry.bplistOverride && strings.hasOwnProperty(entry.value)) {
58
+          entry.type = 'stringref';
59
+          entry.id = strings[entry.value];
60
+        } else {
61
+          strings[entry.value] = entry.id = entryId++;
62
+        }
63
+      } else {
64
+        entry.id = entryId++;
65
+      }
66
+    });
67
+
68
+    entries = entries.filter(function(entry) {
69
+      return (entry.type !== 'stringref');
70
+    });
71
+  }
72
+
73
+  function writeTrailer() {
74
+    if (debug) {
75
+      console.log('0x' + buffer.size().toString(16), 'writeTrailer');
76
+    }
77
+    // 6 null bytes
78
+    buffer.write(new Buffer([0, 0, 0, 0, 0, 0]));
79
+
80
+    // size of an offset
81
+    if (debug) {
82
+      console.log('0x' + buffer.size().toString(16), 'writeTrailer(offsetSizeInBytes):', offsetSizeInBytes);
83
+    }
84
+    writeByte(offsetSizeInBytes);
85
+
86
+    // size of a ref
87
+    if (debug) {
88
+      console.log('0x' + buffer.size().toString(16), 'writeTrailer(offsetSizeInBytes):', idSizeInBytes);
89
+    }
90
+    writeByte(idSizeInBytes);
91
+
92
+    // number of objects
93
+    if (debug) {
94
+      console.log('0x' + buffer.size().toString(16), 'writeTrailer(number of objects):', entries.length);
95
+    }
96
+    writeLong(entries.length);
97
+
98
+    // top object
99
+    if (debug) {
100
+      console.log('0x' + buffer.size().toString(16), 'writeTrailer(top object)');
101
+    }
102
+    writeLong(0);
103
+
104
+    // offset table offset
105
+    if (debug) {
106
+      console.log('0x' + buffer.size().toString(16), 'writeTrailer(offset table offset):', offsetTableOffset);
107
+    }
108
+    writeLong(offsetTableOffset);
109
+  }
110
+
111
+  function writeOffsetTable() {
112
+    if (debug) {
113
+      console.log('0x' + buffer.size().toString(16), 'writeOffsetTable');
114
+    }
115
+    offsetTableOffset = buffer.size();
116
+    offsetSizeInBytes = computeOffsetSizeInBytes(offsetTableOffset);
117
+    offsets.forEach(function(offset) {
118
+      writeBytes(offset, offsetSizeInBytes);
119
+    });
120
+  }
121
+
122
+  function write(entry) {
123
+    switch (entry.type) {
124
+    case 'dict':
125
+      writeDict(entry);
126
+      break;
127
+    case 'number':
128
+    case 'double':
129
+      writeNumber(entry);
130
+      break;
131
+    case 'UID':
132
+      writeUID(entry);
133
+      break;
134
+    case 'array':
135
+      writeArray(entry);
136
+      break;
137
+    case 'boolean':
138
+      writeBoolean(entry);
139
+      break;
140
+    case 'string':
141
+    case 'string-utf16':
142
+      writeString(entry);
143
+      break;
144
+    case 'date':
145
+      writeDate(entry);
146
+      break;
147
+    case 'data':
148
+      writeData(entry);
149
+      break;
150
+    default:
151
+      throw new Error("unhandled entry type: " + entry.type);
152
+    }
153
+  }
154
+
155
+  function writeDate(entry) {
156
+    writeByte(0x33);
157
+    var date = (Date.parse(entry.value)/1000) - 978307200
158
+    writeDouble(date)
159
+  }
160
+
161
+  function writeDict(entry) {
162
+    if (debug) {
163
+      var keysStr = entry.entryKeys.map(function(k) {return k.id;});
164
+      var valsStr = entry.entryValues.map(function(k) {return k.id;});
165
+      console.log('0x' + buffer.size().toString(16), 'writeDict', '(id: ' + entry.id + ')', '(keys: ' + keysStr + ')', '(values: ' + valsStr + ')');
166
+    }
167
+    writeIntHeader(0xD, entry.entryKeys.length);
168
+    entry.entryKeys.forEach(function(entry) {
169
+      writeID(entry.id);
170
+    });
171
+    entry.entryValues.forEach(function(entry) {
172
+      writeID(entry.id);
173
+    });
174
+  }
175
+
176
+  function writeNumber(entry) {
177
+    if (debug) {
178
+      console.log('0x' + buffer.size().toString(16), 'writeNumber', entry.value, ' (type: ' + entry.type + ')', '(id: ' + entry.id + ')');
179
+    }
180
+
181
+    if (entry.type !== 'double' && parseFloat(entry.value.toFixed()) == entry.value) {
182
+      if (entry.value < 0) {
183
+        writeByte(0x13);
184
+        writeBytes(entry.value, 8);
185
+      } else if (entry.value <= 0xff) {
186
+        writeByte(0x10);
187
+        writeBytes(entry.value, 1);
188
+      } else if (entry.value <= 0xffff) {
189
+        writeByte(0x11);
190
+        writeBytes(entry.value, 2);
191
+      } else if (entry.value <= 0xffffffff) {
192
+        writeByte(0x12);
193
+        writeBytes(entry.value, 4);
194
+      } else {
195
+        writeByte(0x13);
196
+        writeBytes(entry.value, 8);
197
+      }
198
+    } else {
199
+      writeByte(0x23);
200
+      writeDouble(entry.value);
201
+    }
202
+  }
203
+
204
+  function writeUID(entry) {
205
+    if (debug) {
206
+      console.log('0x' + buffer.size().toString(16), 'writeUID', entry.value, ' (type: ' + entry.type + ')', '(id: ' + entry.id + ')');
207
+    }
208
+
209
+    writeIntHeader(0x8, 0x0);
210
+    writeID(entry.value);
211
+  }
212
+
213
+  function writeArray(entry) {
214
+    if (debug) {
215
+      console.log('0x' + buffer.size().toString(16), 'writeArray (length: ' + entry.entries.length + ')', '(id: ' + entry.id + ')');
216
+    }
217
+    writeIntHeader(0xA, entry.entries.length);
218
+    entry.entries.forEach(function(e) {
219
+      writeID(e.id);
220
+    });
221
+  }
222
+
223
+  function writeBoolean(entry) {
224
+    if (debug) {
225
+      console.log('0x' + buffer.size().toString(16), 'writeBoolean', entry.value, '(id: ' + entry.id + ')');
226
+    }
227
+    writeByte(entry.value ? 0x09 : 0x08);
228
+  }
229
+
230
+  function writeString(entry) {
231
+    if (debug) {
232
+      console.log('0x' + buffer.size().toString(16), 'writeString', entry.value, '(id: ' + entry.id + ')');
233
+    }
234
+    if (entry.type === 'string-utf16' || mustBeUtf16(entry.value)) {
235
+      var utf16 = new Buffer(entry.value, 'ucs2');
236
+      writeIntHeader(0x6, utf16.length / 2);
237
+      // needs to be big endian so swap the bytes
238
+      for (var i = 0; i < utf16.length; i += 2) {
239
+        var t = utf16[i + 0];
240
+        utf16[i + 0] = utf16[i + 1];
241
+        utf16[i + 1] = t;
242
+      }
243
+      buffer.write(utf16);
244
+    } else {
245
+      var utf8 = new Buffer(entry.value, 'ascii');
246
+      writeIntHeader(0x5, utf8.length);
247
+      buffer.write(utf8);
248
+    }
249
+  }
250
+
251
+  function writeData(entry) {
252
+    if (debug) {
253
+      console.log('0x' + buffer.size().toString(16), 'writeData', entry.value, '(id: ' + entry.id + ')');
254
+    }
255
+    writeIntHeader(0x4, entry.value.length);
256
+    buffer.write(entry.value);
257
+  }
258
+
259
+  function writeLong(l) {
260
+    writeBytes(l, 8);
261
+  }
262
+
263
+  function writeByte(b) {
264
+    buffer.write(new Buffer([b]));
265
+  }
266
+
267
+  function writeDouble(v) {
268
+    var buf = new Buffer(8);
269
+    buf.writeDoubleBE(v, 0);
270
+    buffer.write(buf);
271
+  }
272
+
273
+  function writeIntHeader(kind, value) {
274
+    if (value < 15) {
275
+      writeByte((kind << 4) + value);
276
+    } else if (value < 256) {
277
+      writeByte((kind << 4) + 15);
278
+      writeByte(0x10);
279
+      writeBytes(value, 1);
280
+    } else if (value < 65536) {
281
+      writeByte((kind << 4) + 15);
282
+      writeByte(0x11);
283
+      writeBytes(value, 2);
284
+    } else {
285
+      writeByte((kind << 4) + 15);
286
+      writeByte(0x12);
287
+      writeBytes(value, 4);
288
+    }
289
+  }
290
+
291
+  function writeID(id) {
292
+    writeBytes(id, idSizeInBytes);
293
+  }
294
+
295
+  function writeBytes(value, bytes) {
296
+    // write low-order bytes big-endian style
297
+    var buf = new Buffer(bytes);
298
+    var z = 0;
299
+    // javascript doesn't handle large numbers
300
+    while (bytes > 4) {
301
+      buf[z++] = 0;
302
+      bytes--;
303
+    }
304
+    for (var i = bytes - 1; i >= 0; i--) {
305
+      buf[z++] = value >> (8 * i);
306
+    }
307
+    buffer.write(buf);
308
+  }
309
+
310
+  function mustBeUtf16(string) {
311
+    return Buffer.byteLength(string, 'utf8') != string.length;
312
+  }
313
+};
314
+
315
+function toEntries(dicts) {
316
+  if (dicts.bplistOverride) {
317
+    return [dicts];
318
+  }
319
+
320
+  if (dicts instanceof Array) {
321
+    return toEntriesArray(dicts);
322
+  } else if (dicts instanceof Buffer) {
323
+    return [
324
+      {
325
+        type: 'data',
326
+        value: dicts
327
+      }
328
+    ];
329
+  } else if (dicts instanceof Real) {
330
+    return [
331
+      {
332
+        type: 'double',
333
+        value: dicts.value
334
+      }
335
+    ];
336
+  } else if (typeof(dicts) === 'object') {
337
+    if (dicts instanceof Date) {
338
+      return [
339
+        {
340
+          type: 'date',
341
+          value: dicts
342
+        }
343
+      ]
344
+    } else if (Object.keys(dicts).length == 1 && typeof(dicts.UID) === 'number') {
345
+      return [
346
+        {
347
+          type: 'UID',
348
+          value: dicts.UID
349
+        }
350
+      ]
351
+    } else {
352
+      return toEntriesObject(dicts);
353
+    }
354
+  } else if (typeof(dicts) === 'string') {
355
+    return [
356
+      {
357
+        type: 'string',
358
+        value: dicts
359
+      }
360
+    ];
361
+  } else if (typeof(dicts) === 'number') {
362
+    return [
363
+      {
364
+        type: 'number',
365
+        value: dicts
366
+      }
367
+    ];
368
+  } else if (typeof(dicts) === 'boolean') {
369
+    return [
370
+      {
371
+        type: 'boolean',
372
+        value: dicts
373
+      }
374
+    ];
375
+  } else {
376
+    throw new Error('unhandled entry: ' + dicts);
377
+  }
378
+}
379
+
380
+function toEntriesArray(arr) {
381
+  if (debug) {
382
+    console.log('toEntriesArray');
383
+  }
384
+  var results = [
385
+    {
386
+      type: 'array',
387
+      entries: []
388
+    }
389
+  ];
390
+  arr.forEach(function(v) {
391
+    var entry = toEntries(v);
392
+    results[0].entries.push(entry[0]);
393
+    results = results.concat(entry);
394
+  });
395
+  return results;
396
+}
397
+
398
+function toEntriesObject(dict) {
399
+  if (debug) {
400
+    console.log('toEntriesObject');
401
+  }
402
+  var results = [
403
+    {
404
+      type: 'dict',
405
+      entryKeys: [],
406
+      entryValues: []
407
+    }
408
+  ];
409
+  Object.keys(dict).forEach(function(key) {
410
+    var entryKey = toEntries(key);
411
+    results[0].entryKeys.push(entryKey[0]);
412
+    results = results.concat(entryKey[0]);
413
+  });
414
+  Object.keys(dict).forEach(function(key) {
415
+    var entryValue = toEntries(dict[key]);
416
+    results[0].entryValues.push(entryValue[0]);
417
+    results = results.concat(entryValue);
418
+  });
419
+  return results;
420
+}
421
+
422
+function computeOffsetSizeInBytes(maxOffset) {
423
+  if (maxOffset < 256) {
424
+    return 1;
425
+  }
426
+  if (maxOffset < 65536) {
427
+    return 2;
428
+  }
429
+  if (maxOffset < 4294967296) {
430
+    return 4;
431
+  }
432
+  return 8;
433
+}
434
+
435
+function computeIdSizeInBytes(numberOfIds) {
436
+  if (numberOfIds < 256) {
437
+    return 1;
438
+  }
439
+  if (numberOfIds < 65536) {
440
+    return 2;
441
+  }
442
+  return 4;
443
+}
444
+
445
+module.exports.Real = Real;

+ 58
- 0
km0App/node_modules/bplist-creator/package.json Voir le fichier

@@ -0,0 +1,58 @@
1
+{
2
+  "_from": "bplist-creator@0.0.7",
3
+  "_id": "bplist-creator@0.0.7",
4
+  "_inBundle": false,
5
+  "_integrity": "sha1-N98VNgkoJLh8QvlXsBNEEXNyrkU=",
6
+  "_location": "/bplist-creator",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "version",
10
+    "registry": true,
11
+    "raw": "bplist-creator@0.0.7",
12
+    "name": "bplist-creator",
13
+    "escapedName": "bplist-creator",
14
+    "rawSpec": "0.0.7",
15
+    "saveSpec": null,
16
+    "fetchSpec": "0.0.7"
17
+  },
18
+  "_requiredBy": [
19
+    "/simple-plist"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz",
22
+  "_shasum": "37df1536092824b87c42f957b01344117372ae45",
23
+  "_spec": "bplist-creator@0.0.7",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/simple-plist",
25
+  "author": {
26
+    "name": "https://github.com/nearinfinity/node-bplist-parser.git"
27
+  },
28
+  "bugs": {
29
+    "url": "https://github.com/nearinfinity/node-bplist-creator/issues"
30
+  },
31
+  "bundleDependencies": false,
32
+  "dependencies": {
33
+    "stream-buffers": "~2.2.0"
34
+  },
35
+  "deprecated": false,
36
+  "description": "Binary Mac OS X Plist (property list) creator.",
37
+  "devDependencies": {
38
+    "bplist-parser": "~0.1.0",
39
+    "nodeunit": "0.9.1"
40
+  },
41
+  "homepage": "https://github.com/nearinfinity/node-bplist-creator#readme",
42
+  "keywords": [
43
+    "bplist",
44
+    "plist",
45
+    "creator"
46
+  ],
47
+  "license": "MIT",
48
+  "main": "bplistCreator.js",
49
+  "name": "bplist-creator",
50
+  "repository": {
51
+    "type": "git",
52
+    "url": "git+https://github.com/nearinfinity/node-bplist-creator.git"
53
+  },
54
+  "scripts": {
55
+    "test": "./node_modules/nodeunit/bin/nodeunit test"
56
+  },
57
+  "version": "0.0.7"
58
+}

BIN
km0App/node_modules/bplist-creator/test/airplay.bplist Voir le fichier


BIN
km0App/node_modules/bplist-creator/test/binaryData.bplist Voir le fichier


+ 197
- 0
km0App/node_modules/bplist-creator/test/creatorTest.js Voir le fichier

@@ -0,0 +1,197 @@
1
+'use strict';
2
+
3
+var fs = require('fs');
4
+var path = require('path');
5
+var nodeunit = require('nodeunit');
6
+var bplistParser = require('bplist-parser');
7
+var bplistCreator = require('../');
8
+
9
+module.exports = {
10
+//  'iTunes Small': function(test) {
11
+//    var file = path.join(__dirname, "iTunes-small.bplist");
12
+//    testFile(test, file);
13
+//  },
14
+
15
+  'sample1': function(test) {
16
+    var file = path.join(__dirname, "sample1.bplist");
17
+    testFile(test, file);
18
+  },
19
+
20
+  'sample2': function(test) {
21
+    var file = path.join(__dirname, "sample2.bplist");
22
+    testFile(test, file);
23
+  },
24
+
25
+  'binary data': function(test) {
26
+    var file = path.join(__dirname, "binaryData.bplist");
27
+    testFile(test, file);
28
+  },
29
+
30
+  'airplay': function(test) {
31
+    var file = path.join(__dirname, "airplay.bplist");
32
+    testFile(test, file);
33
+  },
34
+
35
+//  'utf16': function(test) {
36
+//    var file = path.join(__dirname, "utf16.bplist");
37
+//    testFile(test, file);
38
+//  },
39
+
40
+//  'uid': function(test) {
41
+//    var file = path.join(__dirname, "uid.bplist");
42
+//    testFile(test, file);
43
+//  }
44
+};
45
+
46
+function testFile(test, file) {
47
+  fs.readFile(file, function(err, fileData) {
48
+    if (err) {
49
+      return test.done(err);
50
+    }
51
+
52
+    bplistParser.parseFile(file, function(err, dicts) {
53
+      if (err) {
54
+        return test.done(err);
55
+      }
56
+
57
+      // airplay overrides
58
+      if (dicts && dicts[0] && dicts[0].loadedTimeRanges && dicts[0].loadedTimeRanges[0] && dicts[0].loadedTimeRanges[0].hasOwnProperty('start')) {
59
+        dicts[0].loadedTimeRanges[0].start = {
60
+          bplistOverride: true,
61
+          type: 'double',
62
+          value: dicts[0].loadedTimeRanges[0].start
63
+        };
64
+      }
65
+      if (dicts && dicts[0] && dicts[0].loadedTimeRanges && dicts[0].seekableTimeRanges[0] && dicts[0].seekableTimeRanges[0].hasOwnProperty('start')) {
66
+        dicts[0].seekableTimeRanges[0].start = {
67
+          bplistOverride: true,
68
+          type: 'double',
69
+          value: dicts[0].seekableTimeRanges[0].start
70
+        };
71
+      }
72
+      if (dicts && dicts[0] && dicts[0].hasOwnProperty('rate')) {
73
+        dicts[0].rate = {
74
+          bplistOverride: true,
75
+          type: 'double',
76
+          value: dicts[0].rate
77
+        };
78
+      }
79
+
80
+      // utf16
81
+      if (dicts && dicts[0] && dicts[0].hasOwnProperty('NSHumanReadableCopyright')) {
82
+        dicts[0].NSHumanReadableCopyright = {
83
+          bplistOverride: true,
84
+          type: 'string-utf16',
85
+          value: dicts[0].NSHumanReadableCopyright
86
+        };
87
+      }
88
+      if (dicts && dicts[0] && dicts[0].hasOwnProperty('CFBundleExecutable')) {
89
+        dicts[0].CFBundleExecutable = {
90
+          bplistOverride: true,
91
+          type: 'string',
92
+          value: dicts[0].CFBundleExecutable
93
+        };
94
+      }
95
+      if (dicts && dicts[0] && dicts[0].CFBundleURLTypes && dicts[0].CFBundleURLTypes[0] && dicts[0].CFBundleURLTypes[0].hasOwnProperty('CFBundleURLSchemes')) {
96
+        dicts[0].CFBundleURLTypes[0].CFBundleURLSchemes[0] = {
97
+          bplistOverride: true,
98
+          type: 'string',
99
+          value: dicts[0].CFBundleURLTypes[0].CFBundleURLSchemes[0]
100
+        };
101
+      }
102
+      if (dicts && dicts[0] && dicts[0].hasOwnProperty('CFBundleDisplayName')) {
103
+        dicts[0].CFBundleDisplayName = {
104
+          bplistOverride: true,
105
+          type: 'string',
106
+          value: dicts[0].CFBundleDisplayName
107
+        };
108
+      }
109
+      if (dicts && dicts[0] && dicts[0].hasOwnProperty('DTPlatformBuild')) {
110
+        dicts[0].DTPlatformBuild = {
111
+          bplistOverride: true,
112
+          type: 'string',
113
+          value: dicts[0].DTPlatformBuild
114
+        };
115
+      }
116
+
117
+      var buf = bplistCreator(dicts);
118
+      compareBuffers(test, buf, fileData);
119
+      return test.done();
120
+    });
121
+  });
122
+}
123
+
124
+function compareBuffers(test, buf1, buf2) {
125
+  if (buf1.length !== buf2.length) {
126
+    printBuffers(buf1, buf2);
127
+    return test.fail("buffer size mismatch. found: " + buf1.length + ", expected: " + buf2.length + ".");
128
+  }
129
+  for (var i = 0; i < buf1.length; i++) {
130
+    if (buf1[i] !== buf2[i]) {
131
+      printBuffers(buf1, buf2);
132
+      return test.fail("buffer mismatch at offset 0x" + i.toString(16) + ". found: 0x" + buf1[i].toString(16) + ", expected: 0x" + buf2[i].toString(16) + ".");
133
+    }
134
+  }
135
+}
136
+
137
+function printBuffers(buf1, buf2) {
138
+  var i, t;
139
+  for (var lineOffset = 0; lineOffset < buf1.length || lineOffset < buf2.length; lineOffset += 16) {
140
+    var line = '';
141
+
142
+    t = ('000000000' + lineOffset.toString(16));
143
+    line += t.substr(t.length - 8) + ': ';
144
+
145
+    for (i = 0; i < 16; i++) {
146
+      if (i == 8) {
147
+        line += ' ';
148
+      }
149
+      if (lineOffset + i < buf1.length) {
150
+        t = ('00' + buf1[lineOffset + i].toString(16));
151
+        line += t.substr(t.length - 2) + ' ';
152
+      } else {
153
+        line += '   ';
154
+      }
155
+    }
156
+    line += ' ';
157
+    for (i = 0; i < 16; i++) {
158
+      if (lineOffset + i < buf1.length) {
159
+        t = String.fromCharCode(buf1[lineOffset + i]);
160
+        if (t < ' ' || t > '~') {
161
+          t = '.';
162
+        }
163
+        line += t;
164
+      } else {
165
+        line += ' ';
166
+      }
167
+    }
168
+
169
+    line += ' - ';
170
+
171
+    for (i = 0; i < 16; i++) {
172
+      if (i == 8) {
173
+        line += ' ';
174
+      }
175
+      if (lineOffset + i < buf2.length) {
176
+        t = ('00' + buf2[lineOffset + i].toString(16));
177
+        line += t.substr(t.length - 2) + ' ';
178
+      } else {
179
+        line += '   ';
180
+      }
181
+    }
182
+    line += ' ';
183
+    for (i = 0; i < 16; i++) {
184
+      if (lineOffset + i < buf2.length) {
185
+        t = String.fromCharCode(buf2[lineOffset + i]);
186
+        if (t < ' ' || t > '~') {
187
+          t = '.';
188
+        }
189
+        line += t;
190
+      } else {
191
+        line += ' ';
192
+      }
193
+    }
194
+
195
+    console.log(line);
196
+  }
197
+}

BIN
km0App/node_modules/bplist-creator/test/iTunes-small.bplist Voir le fichier


BIN
km0App/node_modules/bplist-creator/test/sample1.bplist Voir le fichier


BIN
km0App/node_modules/bplist-creator/test/sample2.bplist Voir le fichier


BIN
km0App/node_modules/bplist-creator/test/uid.bplist Voir le fichier


BIN
km0App/node_modules/bplist-creator/test/utf16.bplist Voir le fichier


+ 8
- 0
km0App/node_modules/bplist-parser/.npmignore Voir le fichier

@@ -0,0 +1,8 @@
1
+/build/*
2
+node_modules
3
+*.node
4
+*.sh
5
+*.swp
6
+.lock*
7
+npm-debug.log
8
+.idea

+ 47
- 0
km0App/node_modules/bplist-parser/README.md Voir le fichier

@@ -0,0 +1,47 @@
1
+bplist-parser
2
+=============
3
+
4
+Binary Mac OS X Plist (property list) parser.
5
+
6
+## Installation
7
+
8
+```bash
9
+$ npm install bplist-parser
10
+```
11
+
12
+## Quick Examples
13
+
14
+```javascript
15
+var bplist = require('bplist-parser');
16
+
17
+bplist.parseFile('myPlist.bplist', function(err, obj) {
18
+  if (err) throw err;
19
+
20
+  console.log(JSON.stringify(obj));
21
+});
22
+```
23
+
24
+## License
25
+
26
+(The MIT License)
27
+
28
+Copyright (c) 2012 Near Infinity Corporation
29
+
30
+Permission is hereby granted, free of charge, to any person obtaining
31
+a copy of this software and associated documentation files (the
32
+"Software"), to deal in the Software without restriction, including
33
+without limitation the rights to use, copy, modify, merge, publish,
34
+distribute, sublicense, and/or sell copies of the Software, and to
35
+permit persons to whom the Software is furnished to do so, subject to
36
+the following conditions:
37
+
38
+The above copyright notice and this permission notice shall be
39
+included in all copies or substantial portions of the Software.
40
+
41
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
42
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
43
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
44
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
45
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
46
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
47
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 357
- 0
km0App/node_modules/bplist-parser/bplistParser.js Voir le fichier

@@ -0,0 +1,357 @@
1
+'use strict';
2
+
3
+// adapted from http://code.google.com/p/plist/source/browse/trunk/src/com/dd/plist/BinaryPropertyListParser.java
4
+
5
+var fs = require('fs');
6
+var bigInt = require("big-integer");
7
+var debug = false;
8
+
9
+exports.maxObjectSize = 100 * 1000 * 1000; // 100Meg
10
+exports.maxObjectCount = 32768;
11
+
12
+// EPOCH = new SimpleDateFormat("yyyy MM dd zzz").parse("2001 01 01 GMT").getTime();
13
+// ...but that's annoying in a static initializer because it can throw exceptions, ick.
14
+// So we just hardcode the correct value.
15
+var EPOCH = 978307200000;
16
+
17
+// UID object definition
18
+var UID = exports.UID = function(id) {
19
+  this.UID = id;
20
+}
21
+
22
+var parseFile = exports.parseFile = function (fileNameOrBuffer, callback) {
23
+  function tryParseBuffer(buffer) {
24
+    var err = null;
25
+    var result;
26
+    try {
27
+      result = parseBuffer(buffer);
28
+    } catch (ex) {
29
+      err = ex;
30
+    }
31
+    callback(err, result);
32
+  }
33
+
34
+  if (Buffer.isBuffer(fileNameOrBuffer)) {
35
+    return tryParseBuffer(fileNameOrBuffer);
36
+  } else {
37
+    fs.readFile(fileNameOrBuffer, function (err, data) {
38
+      if (err) { return callback(err); }
39
+      tryParseBuffer(data);
40
+    });
41
+  }
42
+};
43
+
44
+var parseBuffer = exports.parseBuffer = function (buffer) {
45
+  var result = {};
46
+
47
+  // check header
48
+  var header = buffer.slice(0, 'bplist'.length).toString('utf8');
49
+  if (header !== 'bplist') {
50
+    throw new Error("Invalid binary plist. Expected 'bplist' at offset 0.");
51
+  }
52
+
53
+  // Handle trailer, last 32 bytes of the file
54
+  var trailer = buffer.slice(buffer.length - 32, buffer.length);
55
+  // 6 null bytes (index 0 to 5)
56
+  var offsetSize = trailer.readUInt8(6);
57
+  if (debug) {
58
+    console.log("offsetSize: " + offsetSize);
59
+  }
60
+  var objectRefSize = trailer.readUInt8(7);
61
+  if (debug) {
62
+    console.log("objectRefSize: " + objectRefSize);
63
+  }
64
+  var numObjects = readUInt64BE(trailer, 8);
65
+  if (debug) {
66
+    console.log("numObjects: " + numObjects);
67
+  }
68
+  var topObject = readUInt64BE(trailer, 16);
69
+  if (debug) {
70
+    console.log("topObject: " + topObject);
71
+  }
72
+  var offsetTableOffset = readUInt64BE(trailer, 24);
73
+  if (debug) {
74
+    console.log("offsetTableOffset: " + offsetTableOffset);
75
+  }
76
+
77
+  if (numObjects > exports.maxObjectCount) {
78
+    throw new Error("maxObjectCount exceeded");
79
+  }
80
+
81
+  // Handle offset table
82
+  var offsetTable = [];
83
+
84
+  for (var i = 0; i < numObjects; i++) {
85
+    var offsetBytes = buffer.slice(offsetTableOffset + i * offsetSize, offsetTableOffset + (i + 1) * offsetSize);
86
+    offsetTable[i] = readUInt(offsetBytes, 0);
87
+    if (debug) {
88
+      console.log("Offset for Object #" + i + " is " + offsetTable[i] + " [" + offsetTable[i].toString(16) + "]");
89
+    }
90
+  }
91
+
92
+  // Parses an object inside the currently parsed binary property list.
93
+  // For the format specification check
94
+  // <a href="http://www.opensource.apple.com/source/CF/CF-635/CFBinaryPList.c">
95
+  // Apple's binary property list parser implementation</a>.
96
+  function parseObject(tableOffset) {
97
+    var offset = offsetTable[tableOffset];
98
+    var type = buffer[offset];
99
+    var objType = (type & 0xF0) >> 4; //First  4 bits
100
+    var objInfo = (type & 0x0F);      //Second 4 bits
101
+    switch (objType) {
102
+    case 0x0:
103
+      return parseSimple();
104
+    case 0x1:
105
+      return parseInteger();
106
+    case 0x8:
107
+      return parseUID();
108
+    case 0x2:
109
+      return parseReal();
110
+    case 0x3:
111
+      return parseDate();
112
+    case 0x4:
113
+      return parseData();
114
+    case 0x5: // ASCII
115
+      return parsePlistString();
116
+    case 0x6: // UTF-16
117
+      return parsePlistString(true);
118
+    case 0xA:
119
+      return parseArray();
120
+    case 0xD:
121
+      return parseDictionary();
122
+    default:
123
+      throw new Error("Unhandled type 0x" + objType.toString(16));
124
+    }
125
+
126
+    function parseSimple() {
127
+      //Simple
128
+      switch (objInfo) {
129
+      case 0x0: // null
130
+        return null;
131
+      case 0x8: // false
132
+        return false;
133
+      case 0x9: // true
134
+        return true;
135
+      case 0xF: // filler byte
136
+        return null;
137
+      default:
138
+        throw new Error("Unhandled simple type 0x" + objType.toString(16));
139
+      }
140
+    }
141
+
142
+    function bufferToHexString(buffer) {
143
+      var str = '';
144
+      var i;
145
+      for (i = 0; i < buffer.length; i++) {
146
+        if (buffer[i] != 0x00) {
147
+          break;
148
+        }
149
+      }
150
+      for (; i < buffer.length; i++) {
151
+        var part = '00' + buffer[i].toString(16);
152
+        str += part.substr(part.length - 2);
153
+      }
154
+      return str;
155
+    }
156
+
157
+    function parseInteger() {
158
+      var length = Math.pow(2, objInfo);
159
+      if (length > 4) {
160
+        var data = buffer.slice(offset + 1, offset + 1 + length);
161
+        var str = bufferToHexString(data);
162
+        return bigInt(str, 16);
163
+      } if (length < exports.maxObjectSize) {
164
+        return readUInt(buffer.slice(offset + 1, offset + 1 + length));
165
+      } else {
166
+        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
167
+      }
168
+    }
169
+
170
+    function parseUID() {
171
+      var length = objInfo + 1;
172
+      if (length < exports.maxObjectSize) {
173
+        return new UID(readUInt(buffer.slice(offset + 1, offset + 1 + length)));
174
+      } else {
175
+        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
176
+      }
177
+    }
178
+
179
+    function parseReal() {
180
+      var length = Math.pow(2, objInfo);
181
+      if (length < exports.maxObjectSize) {
182
+        var realBuffer = buffer.slice(offset + 1, offset + 1 + length);
183
+        if (length === 4) {
184
+          return realBuffer.readFloatBE(0);
185
+        }
186
+        else if (length === 8) {
187
+          return realBuffer.readDoubleBE(0);
188
+        }
189
+      } else {
190
+        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
191
+      }
192
+    }
193
+
194
+    function parseDate() {
195
+      if (objInfo != 0x3) {
196
+        console.error("Unknown date type :" + objInfo + ". Parsing anyway...");
197
+      }
198
+      var dateBuffer = buffer.slice(offset + 1, offset + 9);
199
+      return new Date(EPOCH + (1000 * dateBuffer.readDoubleBE(0)));
200
+    }
201
+
202
+    function parseData() {
203
+      var dataoffset = 1;
204
+      var length = objInfo;
205
+      if (objInfo == 0xF) {
206
+        var int_type = buffer[offset + 1];
207
+        var intType = (int_type & 0xF0) / 0x10;
208
+        if (intType != 0x1) {
209
+          console.error("0x4: UNEXPECTED LENGTH-INT TYPE! " + intType);
210
+        }
211
+        var intInfo = int_type & 0x0F;
212
+        var intLength = Math.pow(2, intInfo);
213
+        dataoffset = 2 + intLength;
214
+        if (intLength < 3) {
215
+          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
216
+        } else {
217
+          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
218
+        }
219
+      }
220
+      if (length < exports.maxObjectSize) {
221
+        return buffer.slice(offset + dataoffset, offset + dataoffset + length);
222
+      } else {
223
+        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
224
+      }
225
+    }
226
+
227
+    function parsePlistString (isUtf16) {
228
+      isUtf16 = isUtf16 || 0;
229
+      var enc = "utf8";
230
+      var length = objInfo;
231
+      var stroffset = 1;
232
+      if (objInfo == 0xF) {
233
+        var int_type = buffer[offset + 1];
234
+        var intType = (int_type & 0xF0) / 0x10;
235
+        if (intType != 0x1) {
236
+          console.err("UNEXPECTED LENGTH-INT TYPE! " + intType);
237
+        }
238
+        var intInfo = int_type & 0x0F;
239
+        var intLength = Math.pow(2, intInfo);
240
+        var stroffset = 2 + intLength;
241
+        if (intLength < 3) {
242
+          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
243
+        } else {
244
+          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
245
+        }
246
+      }
247
+      // length is String length -> to get byte length multiply by 2, as 1 character takes 2 bytes in UTF-16
248
+      length *= (isUtf16 + 1);
249
+      if (length < exports.maxObjectSize) {
250
+        var plistString = new Buffer(buffer.slice(offset + stroffset, offset + stroffset + length));
251
+        if (isUtf16) {
252
+          plistString = swapBytes(plistString);
253
+          enc = "ucs2";
254
+        }
255
+        return plistString.toString(enc);
256
+      } else {
257
+        throw new Error("To little heap space available! Wanted to read " + length + " bytes, but only " + exports.maxObjectSize + " are available.");
258
+      }
259
+    }
260
+
261
+    function parseArray() {
262
+      var length = objInfo;
263
+      var arrayoffset = 1;
264
+      if (objInfo == 0xF) {
265
+        var int_type = buffer[offset + 1];
266
+        var intType = (int_type & 0xF0) / 0x10;
267
+        if (intType != 0x1) {
268
+          console.error("0xa: UNEXPECTED LENGTH-INT TYPE! " + intType);
269
+        }
270
+        var intInfo = int_type & 0x0F;
271
+        var intLength = Math.pow(2, intInfo);
272
+        arrayoffset = 2 + intLength;
273
+        if (intLength < 3) {
274
+          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
275
+        } else {
276
+          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
277
+        }
278
+      }
279
+      if (length * objectRefSize > exports.maxObjectSize) {
280
+        throw new Error("To little heap space available!");
281
+      }
282
+      var array = [];
283
+      for (var i = 0; i < length; i++) {
284
+        var objRef = readUInt(buffer.slice(offset + arrayoffset + i * objectRefSize, offset + arrayoffset + (i + 1) * objectRefSize));
285
+        array[i] = parseObject(objRef);
286
+      }
287
+      return array;
288
+    }
289
+
290
+    function parseDictionary() {
291
+      var length = objInfo;
292
+      var dictoffset = 1;
293
+      if (objInfo == 0xF) {
294
+        var int_type = buffer[offset + 1];
295
+        var intType = (int_type & 0xF0) / 0x10;
296
+        if (intType != 0x1) {
297
+          console.error("0xD: UNEXPECTED LENGTH-INT TYPE! " + intType);
298
+        }
299
+        var intInfo = int_type & 0x0F;
300
+        var intLength = Math.pow(2, intInfo);
301
+        dictoffset = 2 + intLength;
302
+        if (intLength < 3) {
303
+          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
304
+        } else {
305
+          length = readUInt(buffer.slice(offset + 2, offset + 2 + intLength));
306
+        }
307
+      }
308
+      if (length * 2 * objectRefSize > exports.maxObjectSize) {
309
+        throw new Error("To little heap space available!");
310
+      }
311
+      if (debug) {
312
+        console.log("Parsing dictionary #" + tableOffset);
313
+      }
314
+      var dict = {};
315
+      for (var i = 0; i < length; i++) {
316
+        var keyRef = readUInt(buffer.slice(offset + dictoffset + i * objectRefSize, offset + dictoffset + (i + 1) * objectRefSize));
317
+        var valRef = readUInt(buffer.slice(offset + dictoffset + (length * objectRefSize) + i * objectRefSize, offset + dictoffset + (length * objectRefSize) + (i + 1) * objectRefSize));
318
+        var key = parseObject(keyRef);
319
+        var val = parseObject(valRef);
320
+        if (debug) {
321
+          console.log("  DICT #" + tableOffset + ": Mapped " + key + " to " + val);
322
+        }
323
+        dict[key] = val;
324
+      }
325
+      return dict;
326
+    }
327
+  }
328
+
329
+  return [ parseObject(topObject) ];
330
+};
331
+
332
+function readUInt(buffer, start) {
333
+  start = start || 0;
334
+
335
+  var l = 0;
336
+  for (var i = start; i < buffer.length; i++) {
337
+    l <<= 8;
338
+    l |= buffer[i] & 0xFF;
339
+  }
340
+  return l;
341
+}
342
+
343
+// we're just going to toss the high order bits because javascript doesn't have 64-bit ints
344
+function readUInt64BE(buffer, start) {
345
+  var data = buffer.slice(start, start + 8);
346
+  return data.readUInt32BE(4, 8);
347
+}
348
+
349
+function swapBytes(buffer) {
350
+  var len = buffer.length;
351
+  for (var i = 0; i < len; i += 2) {
352
+    var a = buffer[i];
353
+    buffer[i] = buffer[i+1];
354
+    buffer[i+1] = a;
355
+  }
356
+  return buffer;
357
+}

+ 59
- 0
km0App/node_modules/bplist-parser/package.json Voir le fichier

@@ -0,0 +1,59 @@
1
+{
2
+  "_from": "bplist-parser@^0.1.0",
3
+  "_id": "bplist-parser@0.1.1",
4
+  "_inBundle": false,
5
+  "_integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=",
6
+  "_location": "/bplist-parser",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "bplist-parser@^0.1.0",
12
+    "name": "bplist-parser",
13
+    "escapedName": "bplist-parser",
14
+    "rawSpec": "^0.1.0",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^0.1.0"
17
+  },
18
+  "_requiredBy": [
19
+    "/cordova-common",
20
+    "/simple-plist"
21
+  ],
22
+  "_resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
23
+  "_shasum": "d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6",
24
+  "_spec": "bplist-parser@^0.1.0",
25
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/cordova-common",
26
+  "author": {
27
+    "name": "Joe Ferner",
28
+    "email": "joe.ferner@nearinfinity.com"
29
+  },
30
+  "bugs": {
31
+    "url": "https://github.com/nearinfinity/node-bplist-parser/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "dependencies": {
35
+    "big-integer": "^1.6.7"
36
+  },
37
+  "deprecated": false,
38
+  "description": "Binary plist parser.",
39
+  "devDependencies": {
40
+    "nodeunit": "~0.9.1"
41
+  },
42
+  "homepage": "https://github.com/nearinfinity/node-bplist-parser#readme",
43
+  "keywords": [
44
+    "bplist",
45
+    "plist",
46
+    "parser"
47
+  ],
48
+  "license": "MIT",
49
+  "main": "bplistParser.js",
50
+  "name": "bplist-parser",
51
+  "repository": {
52
+    "type": "git",
53
+    "url": "git+https://github.com/nearinfinity/node-bplist-parser.git"
54
+  },
55
+  "scripts": {
56
+    "test": "./node_modules/nodeunit/bin/nodeunit test"
57
+  },
58
+  "version": "0.1.1"
59
+}

BIN
km0App/node_modules/bplist-parser/test/airplay.bplist Voir le fichier


BIN
km0App/node_modules/bplist-parser/test/iTunes-small.bplist Voir le fichier


BIN
km0App/node_modules/bplist-parser/test/int64.bplist Voir le fichier


+ 10
- 0
km0App/node_modules/bplist-parser/test/int64.xml Voir le fichier

@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+<plist version="1.0">
4
+  <dict>
5
+    <key>zero</key>
6
+    <integer>0</integer>
7
+    <key>int64item</key>
8
+    <integer>12345678901234567890</integer>
9
+  </dict>
10
+</plist>

+ 159
- 0
km0App/node_modules/bplist-parser/test/parseTest.js Voir le fichier

@@ -0,0 +1,159 @@
1
+'use strict';
2
+
3
+// tests are adapted from https://github.com/TooTallNate/node-plist
4
+
5
+var path = require('path');
6
+var nodeunit = require('nodeunit');
7
+var bplist = require('../');
8
+
9
+module.exports = {
10
+  'iTunes Small': function (test) {
11
+    var file = path.join(__dirname, "iTunes-small.bplist");
12
+    var startTime1 = new Date();
13
+
14
+    bplist.parseFile(file, function (err, dicts) {
15
+      if (err) {
16
+        throw err;
17
+      }
18
+
19
+      var endTime = new Date();
20
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime1) + 'ms');
21
+      var dict = dicts[0];
22
+      test.equal(dict['Application Version'], "9.0.3");
23
+      test.equal(dict['Library Persistent ID'], "6F81D37F95101437");
24
+      test.done();
25
+    });
26
+  },
27
+
28
+  'sample1': function (test) {
29
+    var file = path.join(__dirname, "sample1.bplist");
30
+    var startTime = new Date();
31
+
32
+    bplist.parseFile(file, function (err, dicts) {
33
+      if (err) {
34
+        throw err;
35
+      }
36
+
37
+      var endTime = new Date();
38
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
39
+      var dict = dicts[0];
40
+      test.equal(dict['CFBundleIdentifier'], 'com.apple.dictionary.MySample');
41
+      test.done();
42
+    });
43
+  },
44
+
45
+  'sample2': function (test) {
46
+    var file = path.join(__dirname, "sample2.bplist");
47
+    var startTime = new Date();
48
+
49
+    bplist.parseFile(file, function (err, dicts) {
50
+      if (err) {
51
+        throw err;
52
+      }
53
+
54
+      var endTime = new Date();
55
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
56
+      var dict = dicts[0];
57
+      test.equal(dict['PopupMenu'][2]['Key'], "\n        #import <Cocoa/Cocoa.h>\n\n#import <MacRuby/MacRuby.h>\n\nint main(int argc, char *argv[])\n{\n  return macruby_main(\"rb_main.rb\", argc, argv);\n}\n");
58
+      test.done();
59
+    });
60
+  },
61
+
62
+  'airplay': function (test) {
63
+    var file = path.join(__dirname, "airplay.bplist");
64
+    var startTime = new Date();
65
+
66
+    bplist.parseFile(file, function (err, dicts) {
67
+      if (err) {
68
+        throw err;
69
+      }
70
+
71
+      var endTime = new Date();
72
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
73
+
74
+      var dict = dicts[0];
75
+      test.equal(dict['duration'], 5555.0495000000001);
76
+      test.equal(dict['position'], 4.6269989039999997);
77
+      test.done();
78
+    });
79
+  },
80
+
81
+  'utf16': function (test) {
82
+    var file = path.join(__dirname, "utf16.bplist");
83
+    var startTime = new Date();
84
+
85
+    bplist.parseFile(file, function (err, dicts) {
86
+      if (err) {
87
+        throw err;
88
+      }
89
+
90
+      var endTime = new Date();
91
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
92
+
93
+      var dict = dicts[0];
94
+      test.equal(dict['CFBundleName'], 'sellStuff');
95
+      test.equal(dict['CFBundleShortVersionString'], '2.6.1');
96
+      test.equal(dict['NSHumanReadableCopyright'], '©2008-2012, sellStuff, Inc.');
97
+      test.done();
98
+    });
99
+  },
100
+
101
+  'utf16chinese': function (test) {
102
+    var file = path.join(__dirname, "utf16_chinese.plist");
103
+    var startTime = new Date();
104
+
105
+    bplist.parseFile(file, function (err, dicts) {
106
+      if (err) {
107
+        throw err;
108
+      }
109
+
110
+      var endTime = new Date();
111
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
112
+
113
+      var dict = dicts[0];
114
+      test.equal(dict['CFBundleName'], '天翼阅读');
115
+      test.equal(dict['CFBundleDisplayName'], '天翼阅读');
116
+      test.done();
117
+    });
118
+  },
119
+
120
+
121
+
122
+  'uid': function (test) {
123
+    var file = path.join(__dirname, "uid.bplist");
124
+    var startTime = new Date();
125
+
126
+    bplist.parseFile(file, function (err, dicts) {
127
+      if (err) {
128
+        throw err;
129
+      }
130
+
131
+      var endTime = new Date();
132
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
133
+
134
+      var dict = dicts[0];
135
+      test.deepEqual(dict['$objects'][1]['NS.keys'], [{UID:2}, {UID:3}, {UID:4}]);
136
+      test.deepEqual(dict['$objects'][1]['NS.objects'], [{UID: 5}, {UID:6}, {UID:7}]);
137
+      test.deepEqual(dict['$top']['root'], {UID:1});
138
+      test.done();
139
+    });
140
+  },
141
+  
142
+  'int64': function (test) {
143
+    var file = path.join(__dirname, "int64.bplist");
144
+    var startTime = new Date();
145
+
146
+    bplist.parseFile(file, function (err, dicts) {
147
+      if (err) {
148
+        throw err;
149
+      }
150
+
151
+      var endTime = new Date();
152
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
153
+      var dict = dicts[0];
154
+      test.equal(dict['zero'], '0');
155
+      test.equal(dict['int64item'], '12345678901234567890');
156
+      test.done();
157
+    });
158
+  }
159
+};

BIN
km0App/node_modules/bplist-parser/test/sample1.bplist Voir le fichier


BIN
km0App/node_modules/bplist-parser/test/sample2.bplist Voir le fichier


BIN
km0App/node_modules/bplist-parser/test/uid.bplist Voir le fichier


BIN
km0App/node_modules/bplist-parser/test/utf16.bplist Voir le fichier


BIN
km0App/node_modules/bplist-parser/test/utf16_chinese.plist Voir le fichier


+ 21
- 0
km0App/node_modules/brace-expansion/LICENSE Voir le fichier

@@ -0,0 +1,21 @@
1
+MIT License
2
+
3
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
4
+
5
+Permission is hereby granted, free of charge, to any person obtaining a copy
6
+of this software and associated documentation files (the "Software"), to deal
7
+in the Software without restriction, including without limitation the rights
8
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+copies of the Software, and to permit persons to whom the Software is
10
+furnished to do so, subject to the following conditions:
11
+
12
+The above copyright notice and this permission notice shall be included in all
13
+copies or substantial portions of the Software.
14
+
15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+SOFTWARE.

+ 129
- 0
km0App/node_modules/brace-expansion/README.md Voir le fichier

@@ -0,0 +1,129 @@
1
+# brace-expansion
2
+
3
+[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), 
4
+as known from sh/bash, in JavaScript.
5
+
6
+[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
7
+[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
8
+[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/)
9
+
10
+[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
11
+
12
+## Example
13
+
14
+```js
15
+var expand = require('brace-expansion');
16
+
17
+expand('file-{a,b,c}.jpg')
18
+// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
19
+
20
+expand('-v{,,}')
21
+// => ['-v', '-v', '-v']
22
+
23
+expand('file{0..2}.jpg')
24
+// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
25
+
26
+expand('file-{a..c}.jpg')
27
+// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
28
+
29
+expand('file{2..0}.jpg')
30
+// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
31
+
32
+expand('file{0..4..2}.jpg')
33
+// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
34
+
35
+expand('file-{a..e..2}.jpg')
36
+// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
37
+
38
+expand('file{00..10..5}.jpg')
39
+// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
40
+
41
+expand('{{A..C},{a..c}}')
42
+// => ['A', 'B', 'C', 'a', 'b', 'c']
43
+
44
+expand('ppp{,config,oe{,conf}}')
45
+// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
46
+```
47
+
48
+## API
49
+
50
+```js
51
+var expand = require('brace-expansion');
52
+```
53
+
54
+### var expanded = expand(str)
55
+
56
+Return an array of all possible and valid expansions of `str`. If none are
57
+found, `[str]` is returned.
58
+
59
+Valid expansions are:
60
+
61
+```js
62
+/^(.*,)+(.+)?$/
63
+// {a,b,...}
64
+```
65
+
66
+A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
67
+
68
+```js
69
+/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
70
+// {x..y[..incr]}
71
+```
72
+
73
+A numeric sequence from `x` to `y` inclusive, with optional increment.
74
+If `x` or `y` start with a leading `0`, all the numbers will be padded
75
+to have equal length. Negative numbers and backwards iteration work too.
76
+
77
+```js
78
+/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
79
+// {x..y[..incr]}
80
+```
81
+
82
+An alphabetic sequence from `x` to `y` inclusive, with optional increment.
83
+`x` and `y` must be exactly one character, and if given, `incr` must be a
84
+number.
85
+
86
+For compatibility reasons, the string `${` is not eligible for brace expansion.
87
+
88
+## Installation
89
+
90
+With [npm](https://npmjs.org) do:
91
+
92
+```bash
93
+npm install brace-expansion
94
+```
95
+
96
+## Contributors
97
+
98
+- [Julian Gruber](https://github.com/juliangruber)
99
+- [Isaac Z. Schlueter](https://github.com/isaacs)
100
+
101
+## Sponsors
102
+
103
+This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)!
104
+
105
+Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)!
106
+
107
+## License
108
+
109
+(MIT)
110
+
111
+Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
112
+
113
+Permission is hereby granted, free of charge, to any person obtaining a copy of
114
+this software and associated documentation files (the "Software"), to deal in
115
+the Software without restriction, including without limitation the rights to
116
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
117
+of the Software, and to permit persons to whom the Software is furnished to do
118
+so, subject to the following conditions:
119
+
120
+The above copyright notice and this permission notice shall be included in all
121
+copies or substantial portions of the Software.
122
+
123
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
124
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
125
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
126
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
127
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
128
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
129
+SOFTWARE.

+ 201
- 0
km0App/node_modules/brace-expansion/index.js Voir le fichier

@@ -0,0 +1,201 @@
1
+var concatMap = require('concat-map');
2
+var balanced = require('balanced-match');
3
+
4
+module.exports = expandTop;
5
+
6
+var escSlash = '\0SLASH'+Math.random()+'\0';
7
+var escOpen = '\0OPEN'+Math.random()+'\0';
8
+var escClose = '\0CLOSE'+Math.random()+'\0';
9
+var escComma = '\0COMMA'+Math.random()+'\0';
10
+var escPeriod = '\0PERIOD'+Math.random()+'\0';
11
+
12
+function numeric(str) {
13
+  return parseInt(str, 10) == str
14
+    ? parseInt(str, 10)
15
+    : str.charCodeAt(0);
16
+}
17
+
18
+function escapeBraces(str) {
19
+  return str.split('\\\\').join(escSlash)
20
+            .split('\\{').join(escOpen)
21
+            .split('\\}').join(escClose)
22
+            .split('\\,').join(escComma)
23
+            .split('\\.').join(escPeriod);
24
+}
25
+
26
+function unescapeBraces(str) {
27
+  return str.split(escSlash).join('\\')
28
+            .split(escOpen).join('{')
29
+            .split(escClose).join('}')
30
+            .split(escComma).join(',')
31
+            .split(escPeriod).join('.');
32
+}
33
+
34
+
35
+// Basically just str.split(","), but handling cases
36
+// where we have nested braced sections, which should be
37
+// treated as individual members, like {a,{b,c},d}
38
+function parseCommaParts(str) {
39
+  if (!str)
40
+    return [''];
41
+
42
+  var parts = [];
43
+  var m = balanced('{', '}', str);
44
+
45
+  if (!m)
46
+    return str.split(',');
47
+
48
+  var pre = m.pre;
49
+  var body = m.body;
50
+  var post = m.post;
51
+  var p = pre.split(',');
52
+
53
+  p[p.length-1] += '{' + body + '}';
54
+  var postParts = parseCommaParts(post);
55
+  if (post.length) {
56
+    p[p.length-1] += postParts.shift();
57
+    p.push.apply(p, postParts);
58
+  }
59
+
60
+  parts.push.apply(parts, p);
61
+
62
+  return parts;
63
+}
64
+
65
+function expandTop(str) {
66
+  if (!str)
67
+    return [];
68
+
69
+  // I don't know why Bash 4.3 does this, but it does.
70
+  // Anything starting with {} will have the first two bytes preserved
71
+  // but *only* at the top level, so {},a}b will not expand to anything,
72
+  // but a{},b}c will be expanded to [a}c,abc].
73
+  // One could argue that this is a bug in Bash, but since the goal of
74
+  // this module is to match Bash's rules, we escape a leading {}
75
+  if (str.substr(0, 2) === '{}') {
76
+    str = '\\{\\}' + str.substr(2);
77
+  }
78
+
79
+  return expand(escapeBraces(str), true).map(unescapeBraces);
80
+}
81
+
82
+function identity(e) {
83
+  return e;
84
+}
85
+
86
+function embrace(str) {
87
+  return '{' + str + '}';
88
+}
89
+function isPadded(el) {
90
+  return /^-?0\d/.test(el);
91
+}
92
+
93
+function lte(i, y) {
94
+  return i <= y;
95
+}
96
+function gte(i, y) {
97
+  return i >= y;
98
+}
99
+
100
+function expand(str, isTop) {
101
+  var expansions = [];
102
+
103
+  var m = balanced('{', '}', str);
104
+  if (!m || /\$$/.test(m.pre)) return [str];
105
+
106
+  var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
107
+  var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
108
+  var isSequence = isNumericSequence || isAlphaSequence;
109
+  var isOptions = m.body.indexOf(',') >= 0;
110
+  if (!isSequence && !isOptions) {
111
+    // {a},b}
112
+    if (m.post.match(/,.*\}/)) {
113
+      str = m.pre + '{' + m.body + escClose + m.post;
114
+      return expand(str);
115
+    }
116
+    return [str];
117
+  }
118
+
119
+  var n;
120
+  if (isSequence) {
121
+    n = m.body.split(/\.\./);
122
+  } else {
123
+    n = parseCommaParts(m.body);
124
+    if (n.length === 1) {
125
+      // x{{a,b}}y ==> x{a}y x{b}y
126
+      n = expand(n[0], false).map(embrace);
127
+      if (n.length === 1) {
128
+        var post = m.post.length
129
+          ? expand(m.post, false)
130
+          : [''];
131
+        return post.map(function(p) {
132
+          return m.pre + n[0] + p;
133
+        });
134
+      }
135
+    }
136
+  }
137
+
138
+  // at this point, n is the parts, and we know it's not a comma set
139
+  // with a single entry.
140
+
141
+  // no need to expand pre, since it is guaranteed to be free of brace-sets
142
+  var pre = m.pre;
143
+  var post = m.post.length
144
+    ? expand(m.post, false)
145
+    : [''];
146
+
147
+  var N;
148
+
149
+  if (isSequence) {
150
+    var x = numeric(n[0]);
151
+    var y = numeric(n[1]);
152
+    var width = Math.max(n[0].length, n[1].length)
153
+    var incr = n.length == 3
154
+      ? Math.abs(numeric(n[2]))
155
+      : 1;
156
+    var test = lte;
157
+    var reverse = y < x;
158
+    if (reverse) {
159
+      incr *= -1;
160
+      test = gte;
161
+    }
162
+    var pad = n.some(isPadded);
163
+
164
+    N = [];
165
+
166
+    for (var i = x; test(i, y); i += incr) {
167
+      var c;
168
+      if (isAlphaSequence) {
169
+        c = String.fromCharCode(i);
170
+        if (c === '\\')
171
+          c = '';
172
+      } else {
173
+        c = String(i);
174
+        if (pad) {
175
+          var need = width - c.length;
176
+          if (need > 0) {
177
+            var z = new Array(need + 1).join('0');
178
+            if (i < 0)
179
+              c = '-' + z + c.slice(1);
180
+            else
181
+              c = z + c;
182
+          }
183
+        }
184
+      }
185
+      N.push(c);
186
+    }
187
+  } else {
188
+    N = concatMap(n, function(el) { return expand(el, false) });
189
+  }
190
+
191
+  for (var j = 0; j < N.length; j++) {
192
+    for (var k = 0; k < post.length; k++) {
193
+      var expansion = pre + N[j] + post[k];
194
+      if (!isTop || isSequence || expansion)
195
+        expansions.push(expansion);
196
+    }
197
+  }
198
+
199
+  return expansions;
200
+}
201
+

+ 75
- 0
km0App/node_modules/brace-expansion/package.json Voir le fichier

@@ -0,0 +1,75 @@
1
+{
2
+  "_from": "brace-expansion@^1.1.7",
3
+  "_id": "brace-expansion@1.1.11",
4
+  "_inBundle": false,
5
+  "_integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
6
+  "_location": "/brace-expansion",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "brace-expansion@^1.1.7",
12
+    "name": "brace-expansion",
13
+    "escapedName": "brace-expansion",
14
+    "rawSpec": "^1.1.7",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^1.1.7"
17
+  },
18
+  "_requiredBy": [
19
+    "/minimatch"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
22
+  "_shasum": "3c7fcbf529d87226f3d2f52b966ff5271eb441dd",
23
+  "_spec": "brace-expansion@^1.1.7",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/minimatch",
25
+  "author": {
26
+    "name": "Julian Gruber",
27
+    "email": "mail@juliangruber.com",
28
+    "url": "http://juliangruber.com"
29
+  },
30
+  "bugs": {
31
+    "url": "https://github.com/juliangruber/brace-expansion/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "dependencies": {
35
+    "balanced-match": "^1.0.0",
36
+    "concat-map": "0.0.1"
37
+  },
38
+  "deprecated": false,
39
+  "description": "Brace expansion as known from sh/bash",
40
+  "devDependencies": {
41
+    "matcha": "^0.7.0",
42
+    "tape": "^4.6.0"
43
+  },
44
+  "homepage": "https://github.com/juliangruber/brace-expansion",
45
+  "keywords": [],
46
+  "license": "MIT",
47
+  "main": "index.js",
48
+  "name": "brace-expansion",
49
+  "repository": {
50
+    "type": "git",
51
+    "url": "git://github.com/juliangruber/brace-expansion.git"
52
+  },
53
+  "scripts": {
54
+    "bench": "matcha test/perf/bench.js",
55
+    "gentest": "bash test/generate.sh",
56
+    "test": "tape test/*.js"
57
+  },
58
+  "testling": {
59
+    "files": "test/*.js",
60
+    "browsers": [
61
+      "ie/8..latest",
62
+      "firefox/20..latest",
63
+      "firefox/nightly",
64
+      "chrome/25..latest",
65
+      "chrome/canary",
66
+      "opera/12..latest",
67
+      "opera/next",
68
+      "safari/5.1..latest",
69
+      "ipad/6.0..latest",
70
+      "iphone/6.0..latest",
71
+      "android-browser/4.2..latest"
72
+    ]
73
+  },
74
+  "version": "1.1.11"
75
+}

+ 70
- 0
km0App/node_modules/compare-func/README.md Voir le fichier

@@ -0,0 +1,70 @@
1
+#  [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![Coverage Status][coveralls-image]][coveralls-url]
2
+
3
+> Get a compare function for array to sort
4
+
5
+
6
+## Install
7
+
8
+```sh
9
+$ npm install --save compare-func
10
+```
11
+
12
+
13
+## Usage
14
+
15
+```js
16
+var compareFunc = require('compare-func');
17
+
18
+// sort by an object property
19
+[{x: 'b'}, {x: 'a'}, {x: 'c'}].sort(compareFunc('x'));
20
+//=> [{x: 'a'}, {x: 'b'}, {x: 'c'}]
21
+
22
+// sort by a nested object property
23
+[{x: {y: 'b'}}, {x: {y: 'a'}}].sort(compareFunc('x.y'));
24
+//=> [{x: {y: 'a'}}, {x: {y: 'b'}}]
25
+
26
+// sort by the `x` propery, then `y`
27
+[{x: 'c', y: 'c'}, {x: 'b', y: 'a'}, {x: 'b', y: 'b'}].sort(compareFunc(['x', 'y']));
28
+//=> [{x: 'b', y: 'a'}, {x: 'b', y: 'b'}, {x: 'c', y: 'c'}]
29
+
30
+// sort by the returned value
31
+[{x: 'b'}, {x: 'a'}, {x: 'c'}].sort(compareFunc(function(el) {
32
+  return el.x;
33
+}));
34
+//=> [{x: 'a'}, {x: 'b'}, {x: 'c'}]
35
+```
36
+
37
+
38
+## API
39
+
40
+### compareFunc([property])
41
+
42
+Returns a compare function for array to sort
43
+
44
+#### property
45
+
46
+Type: `string`, `function` or `array` of either
47
+
48
+If missing it sorts on itself.
49
+
50
+The string can be a [dot path](https://github.com/sindresorhus/dot-prop) to a nested object property.
51
+
52
+
53
+## Related
54
+
55
+- [sort-on](https://github.com/sindresorhus/sort-on) - Sort an array on an object property
56
+
57
+
58
+## License
59
+
60
+MIT © [Steve Mao](https://github.com/stevemao)
61
+
62
+
63
+[npm-image]: https://badge.fury.io/js/compare-func.svg
64
+[npm-url]: https://npmjs.org/package/compare-func
65
+[travis-image]: https://travis-ci.org/stevemao/compare-func.svg?branch=master
66
+[travis-url]: https://travis-ci.org/stevemao/compare-func
67
+[daviddm-image]: https://david-dm.org/stevemao/compare-func.svg?theme=shields.io
68
+[daviddm-url]: https://david-dm.org/stevemao/compare-func
69
+[coveralls-image]: https://coveralls.io/repos/stevemao/compare-func/badge.svg
70
+[coveralls-url]: https://coveralls.io/r/stevemao/compare-func

+ 42
- 0
km0App/node_modules/compare-func/index.js Voir le fichier

@@ -0,0 +1,42 @@
1
+'use strict';
2
+var arrayify = require('array-ify');
3
+var dotPropGet = require('dot-prop').get;
4
+
5
+function compareFunc(prop) {
6
+  return function(a, b) {
7
+    var ret = 0;
8
+
9
+    arrayify(prop).some(function(el) {
10
+      var x;
11
+      var y;
12
+
13
+      if (typeof el === 'function') {
14
+        x = el(a);
15
+        y = el(b);
16
+      } else if (typeof el === 'string') {
17
+        x = dotPropGet(a, el);
18
+        y = dotPropGet(b, el);
19
+      } else {
20
+        x = a;
21
+        y = b;
22
+      }
23
+
24
+      if (x === y) {
25
+        ret = 0;
26
+        return;
27
+      }
28
+
29
+      if (typeof x === 'string' && typeof y === 'string') {
30
+        ret = x.localeCompare(y);
31
+        return ret !== 0;
32
+      }
33
+
34
+      ret = x < y ? -1 : 1;
35
+      return true;
36
+    });
37
+
38
+    return ret;
39
+  };
40
+}
41
+
42
+module.exports = compareFunc;

+ 78
- 0
km0App/node_modules/compare-func/package.json Voir le fichier

@@ -0,0 +1,78 @@
1
+{
2
+  "_from": "compare-func@^1.3.2",
3
+  "_id": "compare-func@1.3.2",
4
+  "_inBundle": false,
5
+  "_integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
6
+  "_location": "/compare-func",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "range",
10
+    "registry": true,
11
+    "raw": "compare-func@^1.3.2",
12
+    "name": "compare-func",
13
+    "escapedName": "compare-func",
14
+    "rawSpec": "^1.3.2",
15
+    "saveSpec": null,
16
+    "fetchSpec": "^1.3.2"
17
+  },
18
+  "_requiredBy": [
19
+    "/cordova-android"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
22
+  "_shasum": "99dd0ba457e1f9bc722b12c08ec33eeab31fa648",
23
+  "_spec": "compare-func@^1.3.2",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/cordova-android",
25
+  "author": {
26
+    "name": "Steve Mao",
27
+    "email": "maochenyan@gmail.com",
28
+    "url": "https://github.com/stevemao"
29
+  },
30
+  "bugs": {
31
+    "url": "https://github.com/stevemao/compare-func/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "dependencies": {
35
+    "array-ify": "^1.0.0",
36
+    "dot-prop": "^3.0.0"
37
+  },
38
+  "deprecated": false,
39
+  "description": "Get a compare function for array to sort",
40
+  "devDependencies": {
41
+    "coveralls": "^2.11.2",
42
+    "istanbul": "^0.4.4",
43
+    "jscs": "^3.0.5",
44
+    "jshint": "^2.7.0",
45
+    "mocha": "*"
46
+  },
47
+  "files": [
48
+    "index.js"
49
+  ],
50
+  "homepage": "https://github.com/stevemao/compare-func",
51
+  "keywords": [
52
+    "compare-func",
53
+    "arr",
54
+    "array",
55
+    "by",
56
+    "compare",
57
+    "dot",
58
+    "get",
59
+    "obj",
60
+    "object",
61
+    "prop",
62
+    "property",
63
+    "sort",
64
+    "sorting"
65
+  ],
66
+  "license": "MIT",
67
+  "name": "compare-func",
68
+  "repository": {
69
+    "type": "git",
70
+    "url": "git+https://github.com/stevemao/compare-func.git"
71
+  },
72
+  "scripts": {
73
+    "coverage": "istanbul cover _mocha -- -R spec && rm -rf ./coverage",
74
+    "lint": "jshint *.js --exclude node_modules && jscs *.js",
75
+    "test": "npm run-script lint && mocha"
76
+  },
77
+  "version": "1.3.2"
78
+}

+ 4
- 0
km0App/node_modules/concat-map/.travis.yml Voir le fichier

@@ -0,0 +1,4 @@
1
+language: node_js
2
+node_js:
3
+  - 0.4
4
+  - 0.6

+ 18
- 0
km0App/node_modules/concat-map/LICENSE Voir le fichier

@@ -0,0 +1,18 @@
1
+This software is released under the MIT license:
2
+
3
+Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+this software and associated documentation files (the "Software"), to deal in
5
+the Software without restriction, including without limitation the rights to
6
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7
+the Software, and to permit persons to whom the Software is furnished to do so,
8
+subject to the following conditions:
9
+
10
+The above copyright notice and this permission notice shall be included in all
11
+copies or substantial portions of the Software.
12
+
13
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 62
- 0
km0App/node_modules/concat-map/README.markdown Voir le fichier

@@ -0,0 +1,62 @@
1
+concat-map
2
+==========
3
+
4
+Concatenative mapdashery.
5
+
6
+[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map)
7
+
8
+[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map)
9
+
10
+example
11
+=======
12
+
13
+``` js
14
+var concatMap = require('concat-map');
15
+var xs = [ 1, 2, 3, 4, 5, 6 ];
16
+var ys = concatMap(xs, function (x) {
17
+    return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
18
+});
19
+console.dir(ys);
20
+```
21
+
22
+***
23
+
24
+```
25
+[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
26
+```
27
+
28
+methods
29
+=======
30
+
31
+``` js
32
+var concatMap = require('concat-map')
33
+```
34
+
35
+concatMap(xs, fn)
36
+-----------------
37
+
38
+Return an array of concatenated elements by calling `fn(x, i)` for each element
39
+`x` and each index `i` in the array `xs`.
40
+
41
+When `fn(x, i)` returns an array, its result will be concatenated with the
42
+result array. If `fn(x, i)` returns anything else, that value will be pushed
43
+onto the end of the result array.
44
+
45
+install
46
+=======
47
+
48
+With [npm](http://npmjs.org) do:
49
+
50
+```
51
+npm install concat-map
52
+```
53
+
54
+license
55
+=======
56
+
57
+MIT
58
+
59
+notes
60
+=====
61
+
62
+This module was written while sitting high above the ground in a tree.

+ 6
- 0
km0App/node_modules/concat-map/example/map.js Voir le fichier

@@ -0,0 +1,6 @@
1
+var concatMap = require('../');
2
+var xs = [ 1, 2, 3, 4, 5, 6 ];
3
+var ys = concatMap(xs, function (x) {
4
+    return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
5
+});
6
+console.dir(ys);

+ 13
- 0
km0App/node_modules/concat-map/index.js Voir le fichier

@@ -0,0 +1,13 @@
1
+module.exports = function (xs, fn) {
2
+    var res = [];
3
+    for (var i = 0; i < xs.length; i++) {
4
+        var x = fn(xs[i], i);
5
+        if (isArray(x)) res.push.apply(res, x);
6
+        else res.push(x);
7
+    }
8
+    return res;
9
+};
10
+
11
+var isArray = Array.isArray || function (xs) {
12
+    return Object.prototype.toString.call(xs) === '[object Array]';
13
+};

+ 88
- 0
km0App/node_modules/concat-map/package.json Voir le fichier

@@ -0,0 +1,88 @@
1
+{
2
+  "_from": "concat-map@0.0.1",
3
+  "_id": "concat-map@0.0.1",
4
+  "_inBundle": false,
5
+  "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
6
+  "_location": "/concat-map",
7
+  "_phantomChildren": {},
8
+  "_requested": {
9
+    "type": "version",
10
+    "registry": true,
11
+    "raw": "concat-map@0.0.1",
12
+    "name": "concat-map",
13
+    "escapedName": "concat-map",
14
+    "rawSpec": "0.0.1",
15
+    "saveSpec": null,
16
+    "fetchSpec": "0.0.1"
17
+  },
18
+  "_requiredBy": [
19
+    "/brace-expansion"
20
+  ],
21
+  "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
22
+  "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
23
+  "_spec": "concat-map@0.0.1",
24
+  "_where": "/Users/Luis/Documents/Universidad/Quinto Año (2019)/Software/km0/km0App/node_modules/brace-expansion",
25
+  "author": {
26
+    "name": "James Halliday",
27
+    "email": "mail@substack.net",
28
+    "url": "http://substack.net"
29
+  },
30
+  "bugs": {
31
+    "url": "https://github.com/substack/node-concat-map/issues"
32
+  },
33
+  "bundleDependencies": false,
34
+  "deprecated": false,
35
+  "description": "concatenative mapdashery",
36
+  "devDependencies": {
37
+    "tape": "~2.4.0"
38
+  },
39
+  "directories": {
40
+    "example": "example",
41
+    "test": "test"
42
+  },
43
+  "homepage": "https://github.com/substack/node-concat-map#readme",
44
+  "keywords": [
45
+    "concat",
46
+    "concatMap",
47
+    "map",
48
+    "functional",
49
+    "higher-order"
50
+  ],
51
+  "license": "MIT",
52
+  "main": "index.js",
53
+  "name": "concat-map",
54
+  "repository": {
55
+    "type": "git",
56
+    "url": "git://github.com/substack/node-concat-map.git"
57
+  },
58
+  "scripts": {
59
+    "test": "tape test/*.js"
60
+  },
61
+  "testling": {
62
+    "files": "test/*.js",
63
+    "browsers": {
64
+      "ie": [
65
+        6,
66
+        7,
67
+        8,
68
+        9
69
+      ],
70
+      "ff": [
71
+        3.5,
72
+        10,
73
+        15
74
+      ],
75
+      "chrome": [
76
+        10,
77
+        22
78
+      ],
79
+      "safari": [
80
+        5.1
81
+      ],
82
+      "opera": [
83
+        12
84
+      ]
85
+    }
86
+  },
87
+  "version": "0.0.1"
88
+}

+ 39
- 0
km0App/node_modules/concat-map/test/map.js Voir le fichier

@@ -0,0 +1,39 @@
1
+var concatMap = require('../');
2
+var test = require('tape');
3
+
4
+test('empty or not', function (t) {
5
+    var xs = [ 1, 2, 3, 4, 5, 6 ];
6
+    var ixes = [];
7
+    var ys = concatMap(xs, function (x, ix) {
8
+        ixes.push(ix);
9
+        return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
10
+    });
11
+    t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]);
12
+    t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]);
13
+    t.end();
14
+});
15
+
16
+test('always something', function (t) {
17
+    var xs = [ 'a', 'b', 'c', 'd' ];
18
+    var ys = concatMap(xs, function (x) {
19
+        return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ];
20
+    });
21
+    t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
22
+    t.end();
23
+});
24
+
25
+test('scalars', function (t) {
26
+    var xs = [ 'a', 'b', 'c', 'd' ];
27
+    var ys = concatMap(xs, function (x) {
28
+        return x === 'b' ? [ 'B', 'B', 'B' ] : x;
29
+    });
30
+    t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
31
+    t.end();
32
+});
33
+
34
+test('undefs', function (t) {
35
+    var xs = [ 'a', 'b', 'c', 'd' ];
36
+    var ys = concatMap(xs, function () {});
37
+    t.same(ys, [ undefined, undefined, undefined, undefined ]);
38
+    t.end();
39
+});

+ 2
- 0
km0App/node_modules/cordova-android/.eslintignore Voir le fichier

@@ -0,0 +1,2 @@
1
+bin/templates/project/assets/www/cordova.js
2
+test/app

+ 10
- 0
km0App/node_modules/cordova-android/.eslintrc.yml Voir le fichier

@@ -0,0 +1,10 @@
1
+root: true
2
+extends: semistandard
3
+rules:
4
+  indent:
5
+    - error
6
+    - 4
7
+  camelcase: off
8
+  padded-blocks: off
9
+  operator-linebreak: off
10
+  no-throw-literal: off

+ 94
- 0
km0App/node_modules/cordova-android/.gitattributes Voir le fichier

@@ -0,0 +1,94 @@
1
+* text eol=lf
2
+
3
+# source code
4
+*.php text
5
+*.css text
6
+*.sass text
7
+*.scss text
8
+*.less text
9
+*.styl text
10
+*.js text
11
+*.coffee text
12
+*.json text
13
+*.htm text
14
+*.html text
15
+*.xml text
16
+*.svg text
17
+*.txt text
18
+*.ini text
19
+*.inc text
20
+*.pl text
21
+*.rb text
22
+*.py text
23
+*.scm text
24
+*.sql text
25
+*.sh text
26
+*.bat text
27
+
28
+# templates
29
+*.ejs text
30
+*.hbt text
31
+*.jade text
32
+*.haml text
33
+*.hbs text
34
+*.dot text
35
+*.tmpl text
36
+*.phtml text
37
+
38
+# server config
39
+.htaccess text
40
+
41
+# git config
42
+.gitattributes text
43
+.gitignore text
44
+.gitconfig text
45
+
46
+# code analysis config
47
+.jshintrc text
48
+.jscsrc text
49
+.jshintignore text
50
+.csslintrc text
51
+
52
+# misc config
53
+*.yaml text
54
+*.yml text
55
+.editorconfig text
56
+
57
+# build config
58
+*.npmignore text
59
+*.bowerrc text
60
+
61
+# Heroku
62
+Procfile text
63
+.slugignore text
64
+
65
+# Documentation
66
+*.md text
67
+LICENSE text
68
+AUTHORS text
69
+
70
+
71
+#
72
+## These files are binary and should be left untouched
73
+#
74
+
75
+# (binary is a macro for -text -diff)
76
+*.png binary
77
+*.jpg binary
78
+*.jpeg binary
79
+*.gif binary
80
+*.ico binary
81
+*.mov binary
82
+*.mp4 binary
83
+*.mp3 binary
84
+*.flv binary
85
+*.fla binary
86
+*.swf binary
87
+*.gz binary
88
+*.zip binary
89
+*.7z binary
90
+*.ttf binary
91
+*.eot binary
92
+*.woff binary
93
+*.pyc binary
94
+*.pdf binary

+ 42
- 0
km0App/node_modules/cordova-android/.github/ISSUE_TEMPLATE.md Voir le fichier

@@ -0,0 +1,42 @@
1
+<!--
2
+Please have a look at the issue templates you get when you click "New issue" in the GitHub UI.
3
+We very much prefer issues created by using one of these templates.
4
+-->
5
+
6
+### Issue Type
7
+<!-- Please check the boxes by putting an x in the [ ] like so: [x] -->
8
+
9
+- [ ] Bug Report
10
+- [ ] Feature Request
11
+- [ ] Support Question
12
+
13
+## Description
14
+
15
+## Information
16
+<!-- Include all relevant information that might help understand and reproduce the problem -->
17
+
18
+### Command or Code
19
+<!-- What command or code is needed to reproduce the problem? -->
20
+
21
+### Environment, Platform, Device
22
+<!-- In what environment, on what platform or on which device are you experiencing the issue? -->
23
+
24
+
25
+
26
+### Version information
27
+<!-- 
28
+What are relevant versions you are using?
29
+For example:
30
+Cordova: Cordova CLI, Cordova Platforms, Cordova Plugins 
31
+Other Frameworks: Ionic Framework and CLI version
32
+Operating System, Android Studio, Xcode etc.
33
+-->
34
+
35
+
36
+
37
+## Checklist
38
+<!-- Please check the boxes by putting an `x` in the `[ ]` like so: `[x]` -->
39
+
40
+- [ ] I searched for already existing GitHub issues about this
41
+- [ ] I updated all Cordova tooling to their most recent version
42
+- [ ] I included all the necessary information above

+ 50
- 0
km0App/node_modules/cordova-android/.github/ISSUE_TEMPLATE/BUG_REPORT.md Voir le fichier

@@ -0,0 +1,50 @@
1
+---
2
+name: 🐛 Bug Report
3
+about: If something isn't working as expected.
4
+
5
+---
6
+
7
+# Bug Report
8
+
9
+## Problem
10
+
11
+### What is expected to happen?
12
+
13
+
14
+
15
+### What does actually happen?
16
+
17
+
18
+
19
+## Information
20
+<!-- Include all relevant information that might help understand and reproduce the problem -->
21
+
22
+
23
+
24
+### Command or Code
25
+<!-- What command or code is needed to reproduce the problem? -->
26
+
27
+
28
+
29
+### Environment, Platform, Device
30
+<!-- In what environment, on what platform or on which device are you experiencing the issue? -->
31
+
32
+
33
+
34
+### Version information
35
+<!-- 
36
+What are relevant versions you are using?
37
+For example:
38
+Cordova: Cordova CLI, Cordova Platforms, Cordova Plugins 
39
+Other Frameworks: Ionic Framework and CLI version
40
+Operating System, Android Studio, Xcode etc.
41
+-->
42
+
43
+
44
+
45
+## Checklist
46
+<!-- Please check the boxes by putting an x in the [ ] like so: [x] -->
47
+
48
+- [ ] I searched for existing GitHub issues
49
+- [ ] I updated all Cordova tooling to most recent version
50
+- [ ] I included all the necessary information above

+ 0
- 0
km0App/node_modules/cordova-android/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md Voir le fichier


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff