diff --git a/.idea/TransferGo.iml b/.idea/TransferGo.iml
new file mode 100644
index 0000000..8b8c395
--- /dev/null
+++ b/.idea/TransferGo.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 897db85..1cf43ac 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,6 @@
+<<<<<<< HEAD
@@ -7,4 +8,7 @@
+=======
+
+>>>>>>> 8852c1b429e14c72f9147c51ad43a6f3338e0685
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..306c038
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 085da98..b4b0dd2 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,15 +5,7 @@
-
-
-
-
-
-
-
-
@@ -21,6 +13,11 @@
+
@@ -32,12 +29,12 @@
-
-
-
-
-
-
+
@@ -49,4 +46,15 @@
+
+
+
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
deleted file mode 100644
index 3af884b..0000000
--- a/node_modules/.package-lock.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "TransferGo",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "node_modules/git": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/git/-/git-0.1.5.tgz",
- "integrity": "sha512-N+bfOrXyKMU/fQtCj6D/U9MQOEN0DAA8TLHSLdUQRSWBOkeRvsjJHdrdkvcq05xO7GSDKWc3nDEGoTZ4DfCCSg==",
- "dependencies": {
- "mime": "1.2.9"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/mime": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz",
- "integrity": "sha512-WiLgbHTIq5AYUvU/Luli4mZ1bUcHpGNHyCsbl+KPMg4zt+XUDpQehWjuBjdLaEvDTinvKj/FgfQt3fPoT7j08g=="
- }
- }
-}
diff --git a/node_modules/git/.npmignore b/node_modules/git/.npmignore
deleted file mode 100644
index 5501f32..0000000
--- a/node_modules/git/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-makefile
-test/
diff --git a/node_modules/git/.travis.yml b/node_modules/git/.travis.yml
deleted file mode 100644
index 3c6757d..0000000
--- a/node_modules/git/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - '0.10'
- - '0.11'
diff --git a/node_modules/git/README.md b/node_modules/git/README.md
deleted file mode 100644
index f5ffd18..0000000
--- a/node_modules/git/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-[](http://travis-ci.org/christkv/node-git)
-
-# Introduction
-
-This is a library for Git written in Node.js. It's as close a port of grit http://github.com/mojombo/grit.
-
-The idea is to allow for manipulation of git repositories by the node.js application. Not everything is
-implemented directly in node-git. Some of the stuff is using the native git command line instead of
-direct javascript code. Also it's fairly synchronous right now but that will hopefully change a little
-by little over time as it gets more stable and I start using it in real life scenarios.
-
-## Github information
-
-The source code is available at http://github.com/christkv/node-git.
-You can either clone the repository or download a tarball of the latest release.
-
-Once you have the source you can test the driver by running
-
- $ make test
-
-On windows:
-
- PS > node.exe .\node_modules\nodeunit\bin\nodeunit .\test
-
-## Examples
-
-For simple examples of usage look at the tests included in the repository.
-
-## Notes
-
-The current version is basic git support, don't expect everything to work as you expect it
-off the bat.
-
-## License
-
- Copyright 2009 - 2010 Christian Amor Kvalheim.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/node_modules/git/benchmarks/benchmark.js b/node_modules/git/benchmarks/benchmark.js
deleted file mode 100644
index 1000338..0000000
--- a/node_modules/git/benchmarks/benchmark.js
+++ /dev/null
@@ -1,150 +0,0 @@
-
-var Repo = require('git/repo').Repo,
- util = require('util'),
- fs = require('fs'),
- exec = require('child_process').exec;
-
-var number_of_executions = 30;
-
-var create_tmp_directory = function(clone_path, callback) {
- var filename = 'git_test' + new Date().getTime().toString() + Math.round((Math.random(100000) * 300)).toString();
- var tmp_path = '/tmp/' + filename;
- // Create directory
- fs.mkdirSync(tmp_path, 0777);
- // Copy the old directory to the new one
- var child = exec('cp -R ' + clone_path + ' ' + tmp_path, function (error, stdout, stderr) {
- if (error !== null) {
- util.puts('exec error: ' + error);
- return callback(error, null);
- }
- return callback(null, tmp_path);
- });
-}
-
-var destroy_directory = function(directory, callback) {
- // Copy the old directory to the new one
- var child = exec('rm -rf ' + directory, function (error, stdout, stderr) {
- if (error !== null) {
- util.puts('exec error: ' + error);
- return callback(error, null);
- }
- return callback(null, null);
- });
-}
-
-var commit1 = '5e3ee1198672257164ce3fe31dea3e40848e68d5'
-var commit2 = 'ca8a30f5a7f0f163bbe3b6f0abf18a6c83b0687a'
-
-var pack_object_function = function(repo) {
- repo.commit('5e3ee1198672257164ce3fe31dea3e40848e68d5', function(err, commit) {
- repo.tree('cd7422af5a2e0fff3e94d6fb1a8fff03b2841881', function(err, tree) {
- repo.blob('4232d073306f01cf0b895864e5a5cfad7dd76fce', function(err, blob) {
- commit.parents[0].parents[0].parents[0];
- })
- })
- });
-}
-
-var commits1_function = function(repo) {
- repo.commits(function(err, commits) {
- commits.length;
- })
-}
-
-var commits2_function = function(repo) {
- repo.commits('master', 15, function(err, log) {
- log.length;
- log.length;
- log[0];
- repo.commits('testing', function(err, commits) {
- commits.map(function(c) { return c.message; });
- })
- })
-}
-
-var big_revlist_function = function(repo) {
- repo.commits('master', 200, function(err, commits) {});
-}
-
-var log_function = function(repo) {
- repo.log('master', function(err, log) {
- log.length;
- log.length;
- log[0];
- })
-}
-
-var diff_function = function(repo) {
- repo.diff(commit1, commit2, function(err, diff) {});
-}
-
-var commit_diff_function = function(repo) {
- repo.commit_diff(commit1, function(err, diff) {});
-}
-
-var heads_function = function(repo) {
- repo.heads(function(err, heads) {
- heads.map(function(b) { return b.commit.id; });
- });
-}
-
-var execute_process = function(type) {
- var execute_function = null;
-
- // Check that we have the right function
- if(type == "packobj") {
- execute_function = pack_object_function;
- } else if(type == "commits1") {
- execute_function = commits1_function;
- } else if(type == "commits2") {
- execute_function = commits2_function;
- } else if(type == "big_revlist") {
- execute_function = big_revlist_function;
- } else if(type == "log") {
- execute_function = log_function;
- } else if(type == "diff") {
- execute_function = diff_function;
- } else if(type == "commit_diff") {
- execute_function = commit_diff_function;
- } else if(type == "heads") {
- execute_function = heads_function;
- }
-
- // Ensure that we have an executable function
- if(execute_function) {
- // Creat temp directory
- create_tmp_directory("/Users/christian.kvalheim/coding/checkouts/grit/test/dot_git", function(err, target_path) {
- // Open the repo
- new Repo(target_path + "/dot_git", {is_bare:true}, function(err, repo) {
- var start_time = new Date();
-
- // Execute the benchmark x number of times if a function is defined
- for(var i = 0; i < number_of_executions; i++) {
- execute_function(repo);
- }
-
- var end_time = new Date();
- var total_miliseconds = end_time.getTime() - start_time.getTime();
- util.puts("[" + type + "]::executed in: " + (total_miliseconds/1000) + " seconds");
- // Delete the directory
- destroy_directory(target_path, function(err, result) {});
- });
- });
- }
-}
-
-if(process.argv.length > 2 && process.argv[2].match(/packobj|commits1|commits2|big_revlist|log|diff|commit_diff|heads|all/)) {
- if(process.argv[2] == "all") {
- var tests = ["packobj", "commits1", "commits2", "big_revlist", "log", "diff", "commit_diff", "heads"];
- // var tests = ["packobj", "commits1", "commits2", "big_revlist", "log"];
- tests.forEach(function(t) {
- execute_process(t);
- })
- } else {
- execute_process(process.argv[2]);
- }
-} else {
- util.puts("Please provide the benchmark you wish to run in the form ")
-}
-
-
diff --git a/node_modules/git/lib/diff/block.js b/node_modules/git/lib/diff/block.js
deleted file mode 100644
index 847731a..0000000
--- a/node_modules/git/lib/diff/block.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// A block is an operation removing, adding, or changing a group of items.
-// Basically, this is just a list of changes, where each change adds or
-// deletes a single item. Used by bin/ldiff.
-var Block = exports.Block = function(chunk) {
- this.changes = [];
- this.insert = [];
- this.remove = [];
- var self = this;
-
- chunk.forEach(function(item) {
- self.changes.push(item);
- if(item.is_deleting()) self.remove.push(item);
- if(item.is_adding()) self.insert.push(item);
- })
-
- Object.defineProperty(this, "diff_size", { get: function() { return self.insert.length - self.remove.length; }, enumerable: true});
- Object.defineProperty(this, "op", { get: function() {
- var result = [self.remove.length == 0, self.insert.length == 0];
-
- if(!result[0] && !result[1]) {
- return "!";
- } else if(!result[0] && result[1]) {
- return "-";
- } else if(result[0] && result[1]) {
- return "+";
- } else {
- return "^";
- }
- }, enumerable: true});
-}
-
-Block.prototype.op = function() {
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/diff/callbacks.js b/node_modules/git/lib/diff/callbacks.js
deleted file mode 100644
index 3008544..0000000
--- a/node_modules/git/lib/diff/callbacks.js
+++ /dev/null
@@ -1,311 +0,0 @@
-var ContextChange = require('./change').ContextChange,
- Change = require('./change').Change;
-
-// This callback object implements the default set of callback events, which
-// only returns the event itself. Note that //finished_a and //finished_b are
-// not implemented -- I haven't yet figured out where they would be useful.
-//
-// Note that this is intended to be called as is, e.g.,
-DefaultCallbacks = exports.DefaultCallbacks = function() {
-}
-
-// Called when two items match.
-DefaultCallbacks.prototype.match = function(event) {
- return event;
-}
-
-// Called when the old value is discarded in favour of the new value.
-DefaultCallbacks.prototype.discard_a = function(event) {
- return event;
-}
-
-// Called when the new value is discarded in favour of the old value.
-DefaultCallbacks.prototype.discard_b = function(event) {
- return event;
-}
-
-// Called when both the old and new values have changed.
-DefaultCallbacks.prototype.change = function(event) {
- return event;
-}
-
-// An alias for DefaultCallbacks that is used in Diff::LCS#traverse_sequences.
-SequenceCallbacks = exports.SequenceCallbacks = DefaultCallbacks;
-// An alias for DefaultCallbacks that is used in Diff::LCS#traverse_balanced.
-BalancedCallbacks = exports.BalancedCallbacks = DefaultCallbacks;
-
-// This will produce a compound array of simple diff change objects. Each
-// element in the //diffs array is a +hunk+ or +hunk+ array, where each
-// element in each +hunk+ array is a single Change object representing the
-// addition or removal of a single element from one of the two tested
-// sequences. The +hunk+ provides the full context for the changes.
-//
-// diffs = Diff::LCS.diff(seq1, seq2)
-// // This example shows a simplified array format.
-// // [ [ [ '-', 0, 'a' ] ], // 1
-// // [ [ '+', 2, 'd' ] ], // 2
-// // [ [ '-', 4, 'h' ], // 3
-// // [ '+', 4, 'f' ] ],
-// // [ [ '+', 6, 'k' ] ], // 4
-// // [ [ '-', 8, 'n' ], // 5
-// // [ '-', 9, 'p' ],
-// // [ '+', 9, 'r' ],
-// // [ '+', 10, 's' ],
-// // [ '+', 11, 't' ] ] ]
-//
-// There are five hunks here. The first hunk says that the +a+ at position 0
-// of the first sequence should be deleted ('-'). The second hunk
-// says that the +d+ at position 2 of the second sequence should be inserted
-// ('+'). The third hunk says that the +h+ at position 4 of the
-// first sequence should be removed and replaced with the +f+ from position 4
-// of the second sequence. The other two hunks are described similarly.
-//
-// === Use
-// This callback object must be initialised and is used by the Diff::LCS//diff
-// method.
-//
-// cbo = Diff::LCS::DiffCallbacks.new
-// Diff::LCS.LCS(seq1, seq2, cbo)
-// cbo.finish
-//
-// Note that the call to //finish is absolutely necessary, or the last set of
-// changes will not be visible. Alternatively, can be used as:
-//
-// cbo = Diff::LCS::DiffCallbacks.new { |tcbo| Diff::LCS.LCS(seq1, seq2, tcbo) }
-//
-// The necessary //finish call will be made.
-//
-// === Simplified Array Format
-// The simplified array format used in the example above can be obtained
-// with:
-//
-// require 'pp'
-// pp diffs.map { |e| e.map { |f| f.to_a } }
-DiffCallbacks = exports.DiffCallbacks = function(block) {
- this.hunk = [];
- this.diffs = [];
-
- if(block != null) {
- block(this);
- this.finish();
- }
-}
-
-// Finalizes the diff process. If an unprocessed hunk still exists, then it
-// is appended to the diff list.
-DiffCallbacks.prototype.finish = function() {
- add_nonempty_hunk(this);
-}
-
-DiffCallbacks.prototype.match = function(event) {
- add_nonempty_hunk(this);
-}
-
-DiffCallbacks.prototype.discard_a = function(event) {
- this.hunk.push(new Change('-', event.old_position, event.old_element));
-}
-
-DiffCallbacks.prototype.discard_b = function(event) {
- this.hunk.push(new Change('+', event.new_position, event.new_element));
-}
-
-var add_nonempty_hunk = function(diff_callback) {
- if(diff_callback.hunk.length > 0) diff_callback.diffs.push(diff_callback.hunk);
- diff_callback.hunk = [];
-}
-
-// This will produce a simple array of diff change objects. Each element in
-// the //diffs array is a single ContextChange. In the set of //diffs provided
-// by SDiffCallbacks, both old and new objects will be presented for both
-// changed and unchanged objects. +nil+ will be substituted
-// for a discarded object.
-//
-// The diffset produced by this callback, when provided to Diff::LCS//sdiff,
-// will compute and display the necessary components to show two sequences
-// and their minimized differences side by side, just like the Unix utility
-// +sdiff+.
-//
-// same same
-// before | after
-// old < -
-// - > new
-//
-// seq1 = %w(a b c e h j l m n p)
-// seq2 = %w(b c d e f j k l m r s t)
-//
-// diffs = Diff::LCS.sdiff(seq1, seq2)
-// // This example shows a simplified array format.
-// // [ [ "-", [ 0, "a"], [ 0, nil ] ],
-// // [ "=", [ 1, "b"], [ 0, "b" ] ],
-// // [ "=", [ 2, "c"], [ 1, "c" ] ],
-// // [ "+", [ 3, nil], [ 2, "d" ] ],
-// // [ "=", [ 3, "e"], [ 3, "e" ] ],
-// // [ "!", [ 4, "h"], [ 4, "f" ] ],
-// // [ "=", [ 5, "j"], [ 5, "j" ] ],
-// // [ "+", [ 6, nil], [ 6, "k" ] ],
-// // [ "=", [ 6, "l"], [ 7, "l" ] ],
-// // [ "=", [ 7, "m"], [ 8, "m" ] ],
-// // [ "!", [ 8, "n"], [ 9, "r" ] ],
-// // [ "!", [ 9, "p"], [ 10, "s" ] ],
-// // [ "+", [ 10, nil], [ 11, "t" ] ] ]
-//
-// The result of this operation is similar to that of
-// Diff::LCS::ContextDiffCallbacks. They may be compared as:
-//
-// s = Diff::LCS.sdiff(seq1, seq2).reject { |e| e.action == "=" }
-// c = Diff::LCS.sdiff(seq1, seq2, Diff::LCS::ContextDiffCallbacks).flatten
-//
-// s == c // -> true
-//
-// === Use
-// This callback object must be initialised and is used by the Diff::LCS//sdiff
-// method.
-//
-// cbo = Diff::LCS::SDiffCallbacks.new
-// Diff::LCS.LCS(seq1, seq2, cbo)
-//
-// As with the other initialisable callback objects, Diff::LCS::SDiffCallbacks
-// can be initialised with a block. As there is no "fininishing" to be done,
-// this has no effect on the state of the object.
-//
-// cbo = Diff::LCS::SDiffCallbacks.new { |tcbo| Diff::LCS.LCS(seq1, seq2, tcbo) }
-//
-// === Simplified Array Format
-// The simplified array format used in the example above can be obtained
-// with:
-//
-// require 'pp'
-// pp diffs.map { |e| e.to_a }
-SDiffCallbacks = exports.SDiffCallbacks = function(block) {
- this.diffs = [];
-
- if(block != null) {
- block(this);
- this.finish();
- }
-}
-
-SDiffCallbacks.prototype.match = function(event) {
- this.diffs.push(ContextChange.simplify(event));
-}
-
-SDiffCallbacks.prototype.discard_a = function(event) {
- this.diffs.push(ContextChange.simplify(event));
-}
-
-SDiffCallbacks.prototype.discard_b = function(event) {
- this.diffs.push(ContextChange.simplify(event));
-}
-
-SDiffCallbacks.prototype.change = function(event) {
- this.diffs.push(ContextChange.simplify(event));
-}
-
-// This will produce a compound array of contextual diff change objects. Each
-// element in the //diffs array is a "hunk" array, where each element in each
-// "hunk" array is a single change. Each change is a Diff::LCS::ContextChange
-// that contains both the old index and new index values for the change. The
-// "hunk" provides the full context for the changes. Both old and new objects
-// will be presented for changed objects. +nil+ will be substituted for a
-// discarded object.
-//
-// seq1 = %w(a b c e h j l m n p)
-// seq2 = %w(b c d e f j k l m r s t)
-//
-// diffs = Diff::LCS.diff(seq1, seq2, Diff::LCS::ContextDiffCallbacks)
-// // This example shows a simplified array format.
-// // [ [ [ '-', [ 0, 'a' ], [ 0, nil ] ] ], // 1
-// // [ [ '+', [ 3, nil ], [ 2, 'd' ] ] ], // 2
-// // [ [ '-', [ 4, 'h' ], [ 4, nil ] ], // 3
-// // [ '+', [ 5, nil ], [ 4, 'f' ] ] ],
-// // [ [ '+', [ 6, nil ], [ 6, 'k' ] ] ], // 4
-// // [ [ '-', [ 8, 'n' ], [ 9, nil ] ], // 5
-// // [ '+', [ 9, nil ], [ 9, 'r' ] ],
-// // [ '-', [ 9, 'p' ], [ 10, nil ] ],
-// // [ '+', [ 10, nil ], [ 10, 's' ] ],
-// // [ '+', [ 10, nil ], [ 11, 't' ] ] ] ]
-//
-// The five hunks shown are comprised of individual changes; if there is a
-// related set of changes, they are still shown individually.
-//
-// This callback can also be used with Diff::LCS//sdiff, which will produce
-// results like:
-//
-// diffs = Diff::LCS.sdiff(seq1, seq2, Diff::LCS::ContextCallbacks)
-// // This example shows a simplified array format.
-// // [ [ [ "-", [ 0, "a" ], [ 0, nil ] ] ], // 1
-// // [ [ "+", [ 3, nil ], [ 2, "d" ] ] ], // 2
-// // [ [ "!", [ 4, "h" ], [ 4, "f" ] ] ], // 3
-// // [ [ "+", [ 6, nil ], [ 6, "k" ] ] ], // 4
-// // [ [ "!", [ 8, "n" ], [ 9, "r" ] ], // 5
-// // [ "!", [ 9, "p" ], [ 10, "s" ] ],
-// // [ "+", [ 10, nil ], [ 11, "t" ] ] ] ]
-//
-// The five hunks are still present, but are significantly shorter in total
-// presentation, because changed items are shown as changes ("!") instead of
-// potentially "mismatched" pairs of additions and deletions.
-//
-// The result of this operation is similar to that of
-// Diff::LCS::SDiffCallbacks. They may be compared as:
-//
-// s = Diff::LCS.sdiff(seq1, seq2).reject { |e| e.action == "=" }
-// c = Diff::LCS.sdiff(seq1, seq2, Diff::LCS::ContextDiffCallbacks).flatten
-//
-// s == c // -> true
-//
-// === Use
-// This callback object must be initialised and can be used by the
-// Diff::LCS//diff or Diff::LCS//sdiff methods.
-//
-// cbo = Diff::LCS::ContextDiffCallbacks.new
-// Diff::LCS.LCS(seq1, seq2, cbo)
-// cbo.finish
-//
-// Note that the call to //finish is absolutely necessary, or the last set of
-// changes will not be visible. Alternatively, can be used as:
-//
-// cbo = Diff::LCS::ContextDiffCallbacks.new { |tcbo| Diff::LCS.LCS(seq1, seq2, tcbo) }
-//
-// The necessary //finish call will be made.
-//
-// === Simplified Array Format
-// The simplified array format used in the example above can be obtained
-// with:
-//
-// require 'pp'
-// pp diffs.map { |e| e.map { |f| f.to_a } }
-ContextDiffCallbacks = exports.ContextDiffCallbacks = function(block) {
- this.hunk = [];
- this.diffs = [];
-
- if(block != null) {
- block(this);
- this.finish();
- }
-}
-
-ContextDiffCallbacks.prototype.finish = function() {
- add_nonempty_hunk(this);
-}
-
-ContextDiffCallbacks.prototype.discard_a = function(event) {
- this.hunk.push(ContextChange.simplify(event));
-}
-
-ContextDiffCallbacks.prototype.discard_b = function(event) {
- this.hunk.push(ContextChange.simplify(event));
-}
-
-ContextDiffCallbacks.prototype.match = function(event) {
- this.hunk.push(ContextChange.simplify(event));
-}
-
-
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/diff/change.js b/node_modules/git/lib/diff/change.js
deleted file mode 100644
index 6677caa..0000000
--- a/node_modules/git/lib/diff/change.js
+++ /dev/null
@@ -1,105 +0,0 @@
-// Represents a simplistic (non-contextual) change. Represents the removal or
-// addition of an element from either the old or the new sequenced enumerable.
-var Change = exports.Change = function(action, position, element) {
- this.action = action;
- this.position = position;
- this.element = element;
-}
-
-Change.from_a = function(arr) {
- return new Change(arr[0], arr[1], arr[2]);
-}
-
-Change.prototype.to_a = function() {
- return [this.action, this.position, this.element];
-}
-
-Change.prototype.is_deleting = function() {
- return this.action == '-';
-}
-
-Change.prototype.is_adding = function() {
- return this.action == '+';
-}
-
-Change.prototype.is_unchanged = function() {
- return this.action == '=';
-}
-
-Change.prototype.is_changed = function() {
- return this.changed == '!';
-}
-
-Change.prototype.is_finished_a = function() {
- return this.changed == '>';
-}
-
-Change.prototype.is_finished_b = function() {
- return this.changed == '<';
-}
-
-var ContextChange = exports.ContextChange = function(action, old_position, old_element, new_position, new_element) {
- this.action = action;
- this.old_position = old_position;
- this.old_element = old_element;
- this.new_position = new_position;
- this.new_element = new_element;
-}
-
-// Creates a ContextChange from an array produced by ContextChange#to_a.
-ContextChange.from_a = function(arr) {
- if(arr.length == 5) {
- return new ContextChange(arr[0], arr[1], arr[2], arr[3], arr[4]);
- } else {
- return new ContextChange(arr[0], arr[1][0], arr[1][1], arr[2][0], arr[2][1]);
- }
-}
-
-// Simplifies a context change for use in some diff callbacks. '<' actions
-// are converted to '-' and '>' actions are converted to '+'.
-ContextChange.simplify = function(event) {
- var ea = event.to_a();
-
- if(ea[0] == '-') {
- ea[2][1] = null;
- } else if(ea[0] == '<') {
- ea[0] = '-';
- ea[2][1] = null;
- } else if(ea[0] == '+') {
- ea[1][1] = null;
- } else if(ea[0] == '>') {
- ea[0] = '+';
- ea[1][1] = null;
- }
-
- // Return a Context Change object
- return ContextChange.from_a(ea);
-}
-
-ContextChange.prototype.to_a = function() {
- return [this.action, [this.old_position, this.old_element], [this.new_position, this.new_element]];
-}
-
-ContextChange.prototype.is_deleting = function() {
- return this.action == '-';
-}
-
-ContextChange.prototype.is_adding = function() {
- return this.action == '+';
-}
-
-ContextChange.prototype.is_unchanged = function() {
- return this.action == '=';
-}
-
-ContextChange.prototype.is_changed = function() {
- return this.changed == '!';
-}
-
-ContextChange.prototype.is_finished_a = function() {
- return this.changed == '>';
-}
-
-ContextChange.prototype.is_finished_b = function() {
- return this.changed == '<';
-}
diff --git a/node_modules/git/lib/diff/diff.js b/node_modules/git/lib/diff/diff.js
deleted file mode 100644
index da6455a..0000000
--- a/node_modules/git/lib/diff/diff.js
+++ /dev/null
@@ -1,892 +0,0 @@
-var util = require('util'),
- SequenceCallbacks = require('./callbacks').SequenceCallbacks,
- ContextChange = require('./change').ContextChange,
- Change = require('./change').Change,
- DiffCallbacks = require('./callbacks').DiffCallbacks,
- SDiffCallbacks = require('./callbacks').SDiffCallbacks,
- BalancedCallbacks = require('./callbacks').BalancedCallbacks,
- ContextDiffCallbacks = require('./callbacks').ContextDiffCallbacks,
- Hunk = require('./hunk').Hunk;
-
-var Difference = exports.Difference = function() {
-}
-
-Difference.LCS = function() {
-}
-
-// Scope the Sequence Callbacks class
-Difference.LCS.SequenceCallbacks = SequenceCallbacks;
-Difference.LCS.ContextChange = ContextChange;
-Difference.LCS.DiffCallbacks = DiffCallbacks;
-Difference.LCS.SDiffCallbacks = SDiffCallbacks;
-Difference.LCS.BalancedCallbacks = BalancedCallbacks;
-Difference.LCS.ContextDiffCallbacks = ContextDiffCallbacks;
-Difference.LCS.Change = Change;
-Difference.LCS.Hunk = Hunk;
-
-// Diff::LCS.sdiff computes all necessary components to show two sequences
-// and their minimized differences side by side, just like the Unix
-// utility sdiff does:
-//
-// old < -
-// same same
-// before | after
-// - > new
-//
-// See Diff::LCS::SDiffCallbacks for the default behaviour. An alternate
-// behaviour may be implemented with Diff::LCS::ContextDiffCallbacks. If
-// a Class argument is provided for +callbacks+, //diff will attempt to
-// initialise it. If the +callbacks+ object (possibly initialised)
-// responds to //finish, it will be called.
-Difference.LCS.sdiff = function(seq1, seq2, callbacks, block) {
- callbacks = callbacks != null ? callbacks : Difference.LCS.SDiffCallbacks;
-
- if(Object.prototype.toString.call(callbacks) == "[object Function]") {
- callbacks = new callbacks();
- }
-
- // Traverse the sequence
- Difference.LCS.traverse_balanced(seq1, seq2, callbacks);
- if(callbacks.finish != null) callbacks.finish();
-
- if(block != null) {
- var res = callbacks.diffs.map(function(hunk) {
- if(Array.isArray(hunk)) {
- hunk = hunk.map(function(v) { return block(v); });
- } else {
- block(hunk);
- }
- });
-
- return res;
- } else {
- return callbacks.diffs;
- }
-}
-
-// Diff::LCS.diff computes the smallest set of additions and deletions
-// necessary to turn the first sequence into the second, and returns a
-// description of these changes.
-//
-// See Diff::LCS::DiffCallbacks for the default behaviour. An alternate
-// behaviour may be implemented with Diff::LCS::ContextDiffCallbacks.
-// If a Class argument is provided for +callbacks+, //diff will attempt
-// to initialise it. If the +callbacks+ object (possibly initialised)
-// responds to //finish, it will be called.
-Difference.LCS.diff = function(seq1, seq2, callbacks, block) {
- callbacks = callbacks != null ? callbacks : Difference.LCS.DiffCallbacks;
-
- if(Object.prototype.toString.call(callbacks) == "[object Function]") {
- callbacks = new callbacks();
- }
-
- // Traverse the sequence
- Difference.LCS.traverse_sequences(seq1, seq2, callbacks);
- if(callbacks.finish != null) callbacks.finish();
-
- if(block != null) {
- var res = callbacks.diffs.map(function(hunk) {
- if(Array.isArray(hunk)) {
- hunk = hunk.map(function(v) { return block(v); });
- } else {
- block(hunk);
- }
- });
-
- return res;
- } else {
- return callbacks.diffs;
- }
-}
-
-
-// Diff::LCS.traverse_sequences is the most general facility provided by this
-// module; +diff+ and +LCS+ are implemented as calls to it.
-//
-// The arguments to //traverse_sequences are the two sequences to
-// traverse, and a callback object, like this:
-//
-// traverse_sequences(seq1, seq2, Diff::LCS::ContextDiffCallbacks.new)
-//
-// //diff is implemented with //traverse_sequences.
-//
-// == Callback Methods
-// Optional callback methods are emphasized.
-//
-// callbacks//match:: Called when +a+ and +b+ are pointing
-// to common elements in +A+ and +B+.
-// callbacks//discard_a:: Called when +a+ is pointing to an
-// element not in +B+.
-// callbacks//discard_b:: Called when +b+ is pointing to an
-// element not in +A+.
-// callbacks//finished_a:: Called when +a+ has reached the end of
-// sequence +A+.
-// callbacks//finished_b:: Called when +b+ has reached the end of
-// sequence +B+.
-//
-// == Algorithm
-// a---+
-// v
-// A = a b c e h j l m n p
-// B = b c d e f j k l m r s t
-// ^
-// b---+
-//
-// If there are two arrows (+a+ and +b+) pointing to elements of
-// sequences +A+ and +B+, the arrows will initially point to the first
-// elements of their respective sequences. //traverse_sequences will
-// advance the arrows through the sequences one element at a time,
-// calling a method on the user-specified callback object before each
-// advance. It will advance the arrows in such a way that if there are
-// elements A[ii] and B[jj] which are both equal and
-// part of the longest common subsequence, there will be some moment
-// during the execution of //traverse_sequences when arrow +a+ is pointing
-// to A[ii] and arrow +b+ is pointing to B[jj]. When
-// this happens, //traverse_sequences will call callbacks//match
-// and then it will advance both arrows.
-//
-// Otherwise, one of the arrows is pointing to an element of its sequence
-// that is not part of the longest common subsequence.
-// //traverse_sequences will advance that arrow and will call
-// callbacks//discard_a or callbacks//discard_b, depending
-// on which arrow it advanced. If both arrows point to elements that are
-// not part of the longest common subsequence, then //traverse_sequences
-// will advance one of them and call the appropriate callback, but it is
-// not specified which it will call.
-//
-// The methods for callbacks//match, callbacks//discard_a,
-// and callbacks//discard_b are invoked with an event comprising
-// the action ("=", "+", or "-", respectively), the indicies +ii+ and
-// +jj+, and the elements A[ii] and B[jj]. Return
-// values are discarded by //traverse_sequences.
-//
-// === End of Sequences
-// If arrow +a+ reaches the end of its sequence before arrow +b+ does,
-// //traverse_sequence try to call callbacks//finished_a with the
-// last index and element of +A+ (A[-1]) and the current index
-// and element of +B+ (B[jj]). If callbacks//finished_a
-// does not exist, then callbacks//discard_b will be called on
-// each element of +B+ until the end of the sequence is reached (the call
-// will be done with A[-1] and B[jj] for each element).
-//
-// If +b+ reaches the end of +B+ before +a+ reaches the end of +A+,
-// callbacks//finished_b will be called with the current index
-// and element of +A+ (A[ii]) and the last index and element of
-// +B+ (A[-1]). Again, if callbacks//finished_b does not
-// exist on the callback object, then callbacks//discard_a will
-// be called on each element of +A+ until the end of the sequence is
-// reached (A[ii] and B[-1]).
-//
-// There is a chance that one additional callbacks//discard_a or
-// callbacks//discard_b will be called after the end of the
-// sequence is reached, if +a+ has not yet reached the end of +A+ or +b+
-// has not yet reached the end of +B+.
-Difference.LCS.traverse_sequences = function(seq1, seq2, callbacks, block) { // The block allows callbacks on change events
- // Ensure that we have at least a default callback object
- callbacks = callbacks != null ? callbacks : new Difference.LCS.SequenceCallbacks();
- // Fetch the matches from the __lcs algorithm
- var matches = Difference.LCS.__lcs(seq1, seq2);
-
- var run_finished_a = false, run_finished_b = false;
- var string = seq1.constructor == String;
-
- var a_size = seq1.length, b_size = seq2.length;
- var ai = 0, bj = 0;
- var event = null;
-
- for(var ii = 0; ii <= matches.length; ii++) {
- var b_line = matches[ii];
-
- var ax = string ? seq1.substr(ii, 1) : seq1[ii];
- var bx = string ? seq2.substr(bj, bj + 1) : seq2[bj];
-
- if(b_line == null) {
- if(ax != null) {
- event = new Difference.LCS.ContextChange('-', ii, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_a(event);
- }
- } else {
- while(bj < b_line) {
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
- event = new Difference.LCS.ContextChange('+', ii, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_b(event);
- bj = bj + 1;
- }
-
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
- event = new Difference.LCS.ContextChange('=', ii, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.match(event);
- bj = bj + 1;
- }
-
- // Update the ai with the current index point
- ai = ii;
- }
-
- // Update pointer
- ai = ai + 1;
-
- // The last entry (if any) processed was a match. +ai+ and +bj+ point
- // just past the last matching lines in their sequences.
- while(ai < a_size || bj < b_size) {
- // last A
- if(ai == a_size && bj < b_size) {
- if(callbacks.finished_a != null && !run_finished_a) {
- ax = string ? seq1.substr(seq1.length - 1, 1) : seq1[seq1.length - 1];
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
- event = new Difference.LCS.ContextChange('>', (a_size - 1), ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.finished_a(event);
- run_finished_a = true;
- } else {
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- do {
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
- event = new Difference.LCS.ContextChange('+', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_b(event);
- bj = bj + 1;
- } while(bj < b_size)
- }
- }
-
- // last B?
- if(bj == b_size && ai < a_size) {
- if(callbacks.finished_b != null && !run_finished_b) {
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- bx = string ? seq2.substr(seq2.length - 1, 1) : seq2[seq2.length - 1];
- event = new Difference.LCS.ContextChange('<', ai, ax, (b_size -1), bx);
- if(block != null) event = block(event);
- callbacks.finished_b(event);
- run_finished_b = true;
- } else {
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
- do {
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- event = new Difference.LCS.ContextChange('-', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_a(event);
- ai = ai + 1;
- } while(bj < b_size)
- }
- }
-
- if(ai < a_size) {
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
- event = new Difference.LCS.ContextChange('-', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_a(event);
- ai = ai + 1;
- }
-
- if(bj < b_size) {
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
- event = new Difference.LCS.ContextChange('+', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_b(event);
- bj = bj + 1;
- }
- }
-}
-
-// //traverse_balanced is an alternative to //traverse_sequences. It
-// uses a different algorithm to iterate through the entries in the
-// computed longest common subsequence. Instead of viewing the changes as
-// insertions or deletions from one of the sequences, //traverse_balanced
-// will report changes between the sequences. To represent a
-//
-// The arguments to //traverse_balanced are the two sequences to traverse
-// and a callback object, like this:
-//
-// traverse_balanced(seq1, seq2, Diff::LCS::ContextDiffCallbacks.new)
-//
-// //sdiff is implemented with //traverse_balanced.
-//
-// == Callback Methods
-// Optional callback methods are emphasized.
-//
-// callbacks//match:: Called when +a+ and +b+ are pointing
-// to common elements in +A+ and +B+.
-// callbacks//discard_a:: Called when +a+ is pointing to an
-// element not in +B+.
-// callbacks//discard_b:: Called when +b+ is pointing to an
-// element not in +A+.
-// callbacks//change:: Called when +a+ and +b+ are pointing
-// to the same relative position, but
-// A[a] and B[b] are
-// not the same; a change has
-// occurred.
-//
-// //traverse_balanced might be a bit slower than //traverse_sequences,
-// noticable only while processing huge amounts of data.
-//
-// The +sdiff+ function of this module is implemented as call to
-// //traverse_balanced.
-//
-// == Algorithm
-// a---+
-// v
-// A = a b c e h j l m n p
-// B = b c d e f j k l m r s t
-// ^
-// b---+
-//
-// === Matches
-// If there are two arrows (+a+ and +b+) pointing to elements of
-// sequences +A+ and +B+, the arrows will initially point to the first
-// elements of their respective sequences. //traverse_sequences will
-// advance the arrows through the sequences one element at a time,
-// calling a method on the user-specified callback object before each
-// advance. It will advance the arrows in such a way that if there are
-// elements A[ii] and B[jj] which are both equal and
-// part of the longest common subsequence, there will be some moment
-// during the execution of //traverse_sequences when arrow +a+ is pointing
-// to A[ii] and arrow +b+ is pointing to B[jj]. When
-// this happens, //traverse_sequences will call callbacks//match
-// and then it will advance both arrows.
-//
-// === Discards
-// Otherwise, one of the arrows is pointing to an element of its sequence
-// that is not part of the longest common subsequence.
-// //traverse_sequences will advance that arrow and will call
-// callbacks//discard_a or callbacks//discard_b,
-// depending on which arrow it advanced.
-//
-// === Changes
-// If both +a+ and +b+ point to elements that are not part of the longest
-// common subsequence, then //traverse_sequences will try to call
-// callbacks//change and advance both arrows. If
-// callbacks//change is not implemented, then
-// callbacks//discard_a and callbacks//discard_b will be
-// called in turn.
-//
-// The methods for callbacks//match, callbacks//discard_a,
-// callbacks//discard_b, and callbacks//change are
-// invoked with an event comprising the action ("=", "+", "-", or "!",
-// respectively), the indicies +ii+ and +jj+, and the elements
-// A[ii] and B[jj]. Return values are discarded by
-// //traverse_balanced.
-//
-// === Context
-// Note that +ii+ and +jj+ may not be the same index position, even if
-// +a+ and +b+ are considered to be pointing to matching or changed
-// elements.
-Difference.LCS.traverse_balanced = function(seq1, seq2, callbacks, block) {
- // Ensure that we have at least a default callback object
- callbacks = callbacks != null ? callbacks : new Difference.LCS.BalancedCallbacks();
- // Fetch the matches from the __lcs algorithm
- var matches = Difference.LCS.__lcs(seq1, seq2);
- var a_size = seq1.length;
- var b_size = seq2.length;
- var ai = 0, bj = 0;
- var mb = 0;
- var ma = -1;
- var string = seq1.constructor == String;
- var ax = null, bx = null, event = null;
- var execute = true;
-
- // Process all the lines in the match vector.
- while(true) {
- // Find next match indices +ma+ and +mb+
- while(execute) {
- ma = ma + 1;
- if(!(ma < matches.length && matches[ma] == null)) break;
- // execute = !(ma < matches.length && matches[ma] == null);
- }
-
- if(ma >= matches.length) break; // end of matches
- mb = matches[ma];
-
- // Change seq2
- while((ai < ma) || (bj < mb)) {
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
-
- // Calculate result
- var result = [(ai < ma), (bj < mb)];
-
- if(result[0] && result[1]) {
- if(callbacks.change != null) {
- event = new Difference.LCS.ContextChange('!', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.change(event);
- ai = ai + 1;
- bj = bj + 1;
- } else {
- event = new Difference.LCS.ContextChange('-', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_a(event);
- ai = ai + 1;
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- event = new Difference.LCS.ContextChange('+', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_b(event);
- bj = bj + 1
- }
- } else if(result[0] && !result[1]) {
- event = new Difference.LCS.ContextChange('-', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_a(event);
- ai = ai + 1;
- } else if(!result[0] && result[1]) {
- event = new Difference.LCS.ContextChange('+', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_b(event);
- bj = bj + 1;
- }
- }
-
- // Match
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
- event = new Difference.LCS.ContextChange('=', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.match(event);
- ai = ai + 1;
- bj = bj + 1;
- }
-
- while((ai < a_size) || (bj < b_size)) {
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- bx = string ? seq2.substr(bj, 1) : seq2[bj];
-
- var result = [(ai < a_size), (bj < b_size)];
- if(result[0] && result[1]) {
- if(callbacks.change != null) {
- event = new Difference.LCS.ContextChange('!', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.change(event);
- ai = ai + 1;
- bj = bj + 1;
- } else {
- event = new Difference.LCS.ContextChange('-', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_a(event);
- ai = ai + 1;
- ax = string ? seq1.substr(ai, 1) : seq1[ai];
- event = new Difference.LCS.ContextChange('+', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_b(event);
- bj = bj + 1;
- }
- } else if(result[0] && !result[1]) {
- event = new Difference.LCS.ContextChange('-', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_a(event);
- ai = ai + 1;
- } else if(!result[0] && result[1]) {
- event = new Difference.LCS.ContextChange('+', ai, ax, bj, bx);
- if(block != null) event = block(event);
- callbacks.discard_b(event);
- bj = bj + 1;
- }
- }
-}
-
-// Given two sequenced Enumerables, LCS returns an Array containing their
-// longest common subsequences.
-//
-// lcs = Diff::LCS.LCS(seq1, seq2)
-//
-// This array whose contents is such that:
-//
-// lcs.each_with_index do |ee, ii|
-// assert(ee.nil? || (seq1[ii] == seq2[ee]))
-// end
-//
-// If a block is provided, the matching subsequences will be yielded from
-// +seq1+ in turn and may be modified before they are placed into the
-// returned Array of subsequences.
-Difference.LCS.LCS = function(seq1, seq2, block) {
- var matches = Difference.LCS.__lcs(seq1, seq2);
- var ret = [];
-
- for(var ii = 0; ii < matches.length; ii++) {
- if(matches[ii] != null) {
- if(block != null) {
- ret.push(block(seq1[ii]));
- } else {
- ret.push(seq1[ii]);
- }
- }
- }
- // Return the result
- return ret;
-}
-
-var PATCH_MAP = {
- patch:{ '+':'+', '-':'-', '!':'!', '=':'=' },
- unpatch:{ '+':'-', '-':'+', '!':'!', '=':'=' }
-}
-
-// Given a patchset, convert the current version to the new
-// version. If +direction+ is not specified (must be
-// :patch or :unpatch), then discovery of the
-// direction of the patch will be attempted.
-Difference.LCS.patch = function(src, patchset, direction) {
- var string = src.constructor == String;
- // Start with an empty type of the source's class
- var res = string ? '' : [];
-
- // Normalize the patchset
- var patchset = this.__normalize_patchset(patchset);
- var direction = direction || Difference.LCS.__diff_direction(src, patchset);
- direction = direction || "patch";
-
- var ai = 0, bj = 0;
- var el = null, op = null, np = null;
-
- for(var i = 0; i < patchset.length; i++) {
- var change = patchset[i];
- // Both Change and ContextChange has the action
- var action = PATCH_MAP[direction][change.action];
-
- if(change instanceof ContextChange) {
- if(direction == 'patch') {
- el = change.new_element;
- op = change.old_position;
- np = change.new_position;
- } else if(direction == 'unpatch') {
- el = change.old_element;
- op = change.new_position;
- np = change.old_position;
- }
-
- if(action == '-') { //Remove details from the old string
- while(ai < op) {
- string ? res = res + src.substr(ai, 1) : res.push(src[ai]);
- ai = ai + 1;
- bj = bj + 1;
- }
- ai = ai + 1;
- } else if(action == '+') {
- while(bj < np) {
- string ? res = res + src.substr(ai, 1) : res.push(src[ai]);
- ai = ai + 1;
- bj = bj + 1;
- }
- string ? res = res + el : res.push(el);
- bj = bj + 1;
- } else if(action == '=') {
- // This only appears in sdiff output with the SDiff callback.
- // Therefore, we only need to worry about dealing with a single
- // element.
- string ? res = res + el : res.push(el);
- ai = ai + 1;
- bj = bj + 1;
- } else if(action == '!') {
- while(ai < op) {
- string ? res = res + src.substr(ai, 1) : res.push(src[ai]);
- ai = ai + 1;
- bj = bj + 1;
- }
- bj = bj + 1;
- ai = ai + 1;
- string ? res = res + el : res.push(el);
- }
- } else if(change instanceof Change) {
- if(action == '-') {
- while(ai < change.position) {
- string ? res = res + src.substr(ai, 1) : res.push(src[ai]);
- ai = ai + 1;
- bj = bj + 1;
- }
- ai = ai + 1;
- } else if(action = '+') {
- while(bj < change.position) {
- string ? res = res + src.substr(ai, 1) : res.push(src[ai]);
- ai = ai + 1;
- bj = bj + 1;
- }
- bj = bj + 1;
- string ? res = res + change.element : res.push(change.element);
- }
- }
- }
-
- while(ai < src.length) {
- string ? res = res + src.substr(ai, 1) : res.push(src[ai]);
- ai = ai + 1;
- bj = bj + 1;
- }
-
- return res;
-}
-
-// Examine the patchset and the source to see in which direction the
-// patch should be applied.
-//
-// WARNING: By default, this examines the whole patch, so this could take
-// some time. This also works better with Diff::LCS::ContextChange or
-// Diff::LCS::Change as its source, as an array will cause the creation
-// of one of the above.
-Difference.LCS.__diff_direction = function(src, patchset, limit) {
- var count = 0, left = 0, left_miss = 0, right = 0, right_miss = 0, element = null;
- var string = src.constructor == String;
-
- // Process all changes in the patchset
- for(var i = 0; i < patchset.length; i++) {
- var change = patchset[i];
- count = count + 1;
-
- if(change instanceof Change) {
- // With a simplistic change, we can't tell the difference between
- // the left and right on '!' actions, so we ignore those. On '='
- // actions, if there's a miss, we miss both left and right.
- element = string ? src.substr(change.position, 1) : src[change.position];
-
- if(change.action == '-') {
- element == change.element ? left = left + 1 : left_miss = left_miss + 1;
- } else if(change.action == '+') {
- element == change.element ? right = right + 1 : right_miss = right_miss + 1;
- } else if(change.action == '=') {
- if(element != change.element) {
- left_miss = left_miss + 1;
- right_miss = right_miss + 1;
- }
- }
- } else if(change instanceof ContextChange) {
- if(change.action == '-') {
- element = string ? src.substr(change.old_position, 1) : src[change.old_position];
- element == change.old_element ? left = left + 1 : left_miss = left_miss + 1;
- } else if(change.action == '+') {
- element = string ? src.substr(change.new_position, 1) : src[change.new_position];
- element == change.new_element ? right = right + 1 : right_miss = right_miss + 1;
- } else if(change.action == '=') {
- var le = string ? src.substr(change.old_position, 1) : src[change.old_position];
- var re = string ? src.substr(change.new_position, 1) : src[change.new_position];
-
- if(le != change.old_element) left_miss = left_miss + 1;
- if(re != change.new_element) right_miss = right_miss + 1;
- } else if(change.action == '!') {
- element = string ? src.substr(change.old_position, 1) : src[change.old_position];
- if(element == change.old_element) {
- left = left + 1;
- } else {
- left_miss = left_miss + 1;
- right_miss = right_miss + 1;
- }
- }
- }
-
- if(limit != null && count > limit) break;
- };
-
- var no_left = (left == 0) && (left_miss >= 0);
- var no_right = (right == 0) && (right_miss >= 0);
-
- var result = [no_left, no_right];
- if(!no_left && no_right) {
- return "patch";
- } else if(no_left && !no_right) {
- return "unpatch";
- } else {
- throw "The provided patchset does not appear to apply to the provided value as either source or destination value."
- }
-}
-
-// Normalize the patchset. A patchset is always a sequence of changes, but
-// how those changes are represented may vary, depending on how they were
-// generated. In all cases we support, we also support the array
-// representation of the changes. The formats are:
-//
-// [ // patchset <- Diff::LCS.diff(a, b)
-// [ // one or more hunks
-// Diff::LCS::Change // one or more changes
-// ] ]
-//
-// [ // patchset, equivalent to the above
-// [ // one or more hunks
-// [ action, line, value ] // one or more changes
-// ] ]
-//
-// [ // patchset <- Diff::LCS.diff(a, b, Diff::LCS::ContextDiffCallbacks)
-// // OR <- Diff::LCS.sdiff(a, b, Diff::LCS::ContextDiffCallbacks)
-// [ // one or more hunks
-// Diff::LCS::ContextChange // one or more changes
-// ] ]
-//
-// [ // patchset, equivalent to the above
-// [ // one or more hunks
-// [ action, [ old line, old value ], [ new line, new value ] ]
-// // one or more changes
-// ] ]
-//
-// [ // patchset <- Diff::LCS.sdiff(a, b)
-// // OR <- Diff::LCS.diff(a, b, Diff::LCS::SDiffCallbacks)
-// Diff::LCS::ContextChange // one or more changes
-// ]
-//
-// [ // patchset, equivalent to the above
-// [ action, [ old line, old value ], [ new line, new value ] ]
-// // one or more changes
-// ]
-//
-// The result of this will be either of the following.
-//
-// [ // patchset
-// Diff::LCS::ContextChange // one or more changes
-// ]
-//
-// [ // patchset
-// Diff::LCS::Change // one or more changes
-// ]
-//
-// If either of the above is provided, it will be returned as such.
-//
-Difference.LCS.__normalize_patchset = function(patchset) {
- return flatten(patchset.map(function(hunk) {
- if(hunk instanceof ContextChange || hunk instanceof Change) {
- return hunk;
- } else if(Array.isArray(hunk)) {
- if(!Array.isArray(hunk[0]) && Array.isArray(hunk[1]) && Array.isArray(hunk[2])) {
- return ContextChange.from_a(hunk);
- } else {
- return hunk.map(function(change) {
- if(change instanceof ContextChange || change instanceof Change) {
- return change;
- } else if(Array.isArray(change)) {
- // change[1] will ONLY be an array in a ContextChange#to_a call.
- // In Change#to_a, it represents the line (singular).
- if(Array.isArray(change[1])) {
- return ContextChange.from_a(change);
- } else {
- return Change.from_a(change);
- }
- }
- });
- }
- } else {
- throw "Cannot normalize the hunk: " + util.inspect(hunk);
- }
- }));
-}
-
-// Gotten from
-var flatten = function(array) {
- return array.reduce(function(a,b) {
- return a.concat(b);
- }, []);
-}
-
-// Compute the longest common subsequence between the arrays a and b the result
-// being an array whose content is such that they
-// count = 0
-// result.forEach(function(e) {
-// if(e) a[count] == b[e];
-// count++;
-// })
-Difference.LCS.__lcs = function(a, b) {
- var a_start = 0;
- var b_start = 0;
- var a_finish = a.length - 1;
- var b_finish = b.length - 1;
- var vector = [];
-
- // Remove common elements at the beginning
- while((a_start <= a_finish) && (b_start <= b_finish) && (a[a_start] == b[b_start])) {
- vector[a_start] = b_start;
- a_start = a_start + 1;
- b_start = b_start + 1;
- }
-
- // Remove common elements at the end
- while((a_start <= a_finish) && (b_start <= b_finish) && (a[a_finish] == b[b_finish])) {
- vector[a_finish] = b_finish;
- a_finish = a_finish - 1;
- b_finish = b_finish - 1;
- }
-
- // Now compute the equivalent classes of positions of elements
- var b_matches = Difference.LCS.__position_hash(b, b_start, b_finish);
-
- // Define treshold and links
- var thresh = [];
- var links = [];
-
- for(var ii = a_start; ii <= a_finish; ii++) {
- var ai = Array.isArray(a) ? a[ii] : a.charAt(ii);
- var bm = b_matches[ai];
- bm = bm ? bm : [];
- var kk = null;
-
- bm.reverse().forEach(function(jj) {
- if(kk != null && (thresh[kk] > jj) && (thresh[kk - 1] < jj)) {
- thresh[kk] = jj;
- } else {
- kk = Difference.LCS.__replace_next_larger(thresh, jj, kk);
- }
- // Add link
- if(kk != null) links[kk] = [(kk > 0) ? links[kk - 1] : null, ii, jj];
- });
- }
-
- // Build the vector
- if(thresh.length > 0) {
- var link = links[thresh.length - 1];
-
- while(link != null) {
- vector[link[1]] = link[2];
- link = link[0];
- }
- }
-
- // Return the vector of the longest commong subsequence
- return vector;
-}
-
-// Find the place at which +value+ would normally be inserted into the
-// Enumerable. If that place is already occupied by +value+, do nothing
-// and return +nil+. If the place does not exist (i.e., it is off the end
-// of the Enumerable), add it to the end. Otherwise, replace the element
-// at that point with +value+. It is assumed that the Enumerable's values
-// are numeric.
-//
-// This operation preserves the sort order.
-Difference.LCS.__replace_next_larger = function(enumerable, value, last_index) {
- // Is it off the end
- if(enumerable.length == 0 || (value > enumerable[enumerable.length - 1])) {
- enumerable.push(value);
- return enumerable.length - 1;
- }
-
- // Binary search for the insertion point
- var last_index = last_index || enumerable.length;
- var first_index = 0;
-
- while(first_index <= last_index) {
- var ii = (first_index + last_index) >> 1;
- var found = enumerable[ii];
-
- if(value == found) {
- return null;
- } else if(value > found) {
- first_index = ii + 1;
- } else {
- last_index = ii - 1;
- }
- }
-
- // The insertion point is in first_index; overwrite the next larger
- // value.
- enumerable[first_index] = value;
- return first_index;
-}
-
-Difference.LCS.__position_hash = function(enumerable, interval_start, interval_end) {
- interval_start = interval_start ? interval_start : 0;
- interval_end = interval_end ? interval_end : -1;
-
- var hash = {}
- for(var i = interval_start; i <= interval_end; i++) {
- var kk = Array.isArray(enumerable) ? enumerable[i] : enumerable.charAt(i);
- hash[kk] = Array.isArray(hash[kk]) ? hash[kk] : [];
- hash[kk].push(i);
- }
- return hash;
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/diff/hunk.js b/node_modules/git/lib/diff/hunk.js
deleted file mode 100644
index 61d7cfe..0000000
--- a/node_modules/git/lib/diff/hunk.js
+++ /dev/null
@@ -1,291 +0,0 @@
-var Block = require('./block').Block;
-
-// A Hunk is a group of Blocks which overlap because of the context
-// surrounding each block. (So if we're not using context, every hunk will
-// contain one block.) Used in the diff program (bin/diff).
-var Hunk = exports.Hunk = function(data_old, data_new, piece, context, file_length_difference) {
- // Internal variables
- var _flag_context = null;
- var self = this;
-
- // At first, a hunk will have just one Block in it
- this.blocks = [new Block(piece)];
- this.data_old = data_old;
- this.data_new = data_new;
-
- var before = file_length_difference, after = file_length_difference;
- after = after + this.blocks[0].diff_size;
- this.file_length_difference = after; // The caller must get this manually
- // Other parameters
- var a1 = null, a2 = null;
- var b1 = null, b2 = null;
-
- // Save the start & end of each array. If the array doesn't exist
- // (e.g., we're only adding items in this block), then figure out the
- // line number based on the line number of the other file and the
- // current difference in file lengths.
- if(this.blocks[0].remove.length > 0) {
- a1 = this.blocks[0].remove[0].position;
- a2 = this.blocks[0].remove[this.blocks[0].remove.length - 1].position;
- }
-
- if(this.blocks[0].insert.length > 0) {
- b1 = this.blocks[0].insert[0].position;
- b2 = this.blocks[0].insert[this.blocks[0].insert.length - 1].position;
- }
-
- this.start_old = a1 || (b1 - before);
- this.start_new = b1 || (a1 + before);
- this.end_old = a2 || (b2 - after);
- this.end_new = b2 || (a2 + after);
-
- // Change the "start" and "end" fields to note that context should be added
- // to this hunk
- Object.defineProperty(this, "flag_context", { get: function() { return _flag_context; }, set: function(context) {
- if(context == null || context == 0) return null;
-
- var add_start = (context > self.start_old) ? self.start_old : context;
- var add_end = null;
-
- self.start_old = self.start_old - add_start;
- self.start_new = self.start_new - add_start;
-
- if((self.end_old + context) > self.data_old.length) {
- add_end = self.data_old.length - self.end_old;
- } else {
- add_end = context;
- }
-
- self.end_old = self.end_old + add_end;
- self.end_new = self.end_new + add_end;
- _flag_context = context;
- }, enumerable: true});
-
- // Set the flag_context
- this.flag_context = context;
-}
-
-Hunk.prototype.unshift = function(hunk) {
- this.start_old = hunk.start_old;
- this.start_new = hunk.start_new;
- this.blocks = hunk.blocks.concat(this.blocks);
-}
-
-// Is there an overlap between hunk arg0 and old hunk arg1? Note: if end
-// of old hunk is one less than beginning of second, they overlap
-Hunk.prototype.overlaps = function(hunk) {
- if(hunk == null) return null;
-
- var a = (this.start_old - hunk.end_old) <= 1;
- var b = (this.start_new - hunk.end_new) <= 1;
- return (a || b);
-}
-
-Hunk.prototype.diff = function(format) {
- if(format == "old") {
- return old_diff(this);
- } else if(format == 'unified') {
- return unified_diff(this);
- } else if(format == 'context') {
- return context_diff(this);
- } else if(format == 'ed') {
- return this;
- } else if(format == 'reverse_ed' || format == 'ed_finish') {
- return ed_diff(this, format);
- } else {
- throw "unknown diff format " + format;
- }
-}
-
-Hunk.prototype.each_old = function(block) {
- var entries = this.data_old.slice(this.start_old, this.end_old);
- entries.forEach(function(e) {
- block(e);
- });
-}
-
-// Note that an old diff can't have any context. Therefore, we know that
-// there's only one block in the hunk.
-var old_diff = function(hunk) {
- if(hunk.blocks.length > 1) sys.puts("expecting only one block in an old diff hunk!");
- // Set up operation actions
- var opt_act = {'+':'a', '-':'d', '!':'c'};
- var block = hunk.blocks[0];
-
- // Calculate item number range. Old diff range is just like a context
- // diff range, except the ranges are on one line with the action between
- // them.
- var s = "" + context_rang("old") + opt_act[block.op] + context_rang("new") + "\n";
- // If removing anything, just print out all the remove lines in the hunk
- // which is just all the remove lines in the block.
- if(block.remove.length > 0) {
- hunk.data_old.slice(hunk.start_old, hunk.end_old).forEach(function(e) {
- s = s + "< " + e + "\n";
- });
- }
-
- if(block.insert.length > 0) {
- hunk.data_new.slice(hunk.start_new, hunk.end_new).forEach(function(e) {
- s = s + "> " + e + "\n;"
- });
- }
- // Return the diff string
- return s;
-}
-
-var unified_diff = function(hunk) {
- // Calculate item number range.
- var s = "@@ -" + unified_range(hunk, 'old') + " +" + unified_range(hunk, 'new') + " @@\n";
-
- // Outlist starts containing the hunk of the old file. Removing an item
- // just means putting a '-' in front of it. Inserting an item requires
- // getting it from the new file and splicing it in. We splice in
- // +num_added+ items. Remove blocks use +num_added+ because splicing
- // changed the length of outlist.
- //
- // We remove +num_removed+ items. Insert blocks use +num_removed+
- // because their item numbers -- corresponding to positions in the NEW
- // file -- don't take removed items into account.
- var lo = hunk.start_old;
- var hi = hunk.end_old;
- var num_added = 0;
- var num_removed = 0;
-
- // Create list of stripped entries
- var outlist = hunk.data_old.slice(lo, hi + 1).map(function(e) { return e.replace(/^/g, ' '); });
- // Process all the blocks
- hunk.blocks.forEach(function(block) {
- block.remove.forEach(function(item) {
- var op = item.action.toString(); // -
- var offset = item.position - lo + num_added;
- outlist[offset] = outlist[offset].replace(/^ /g, op.toString());
- num_removed = num_removed + 1;
- })
-
- block.insert.forEach(function(item) {
- var op = item.action.toString(); // +
- var offset = item.position - hunk.start_new + num_removed;
- outlist.splice(offset, 0, ("" + op + hunk.data_new[item.position]));
- num_added = num_added + 1;
- });
- });
-
- // Return the list
- return s + outlist.join('\n');
-}
-
-var context_diff = function(hunk) {
- var s = '***************\n';
- s = s + '*** ' + context_range(hunk, 'old') + ' ****\n';
- // Retrieve the context
- var r = context_range(hunk, 'new');
- var outlist = null;
-
- // Print out file 1 part for each block in context diff format if there
- // are any blocks that remove items
- var lo = hunk.start_old;
- var hi = hunk.end_old;
- var removes = hunk.blocks.filter(function(e) { return !(e.remove.length == 0); });
-
- if(removes) {
- outlist = hunk.data_old.slice(lo, hi).map(function(e) { return e.replace(/^/g, ' '); });
- removes.forEach(function(block) {
- block.remove.forEach(function(item) {
- outlist[item.position - lo] = outlist[item.position - lo].replace(/^ /g, block.op); // - or !
- });
- });
- // Add to diff string
- s = s + outlist.join('\n');
- }
-
- s = s + '\n-- ' + r + ' ----\n';
- lo = hunk.start_new;
- hi = hunk.end_new;
- var inserts = hunk.blocks.filter(function(e) { return !(e.insert.length == 0); });
-
- if(inserts) {
- outlist = hunk.data_new.slice(lo, hi).map(function(e) { return e.replace(/^/g, ' '); });
- inserts.forEach(function(block) {
- block.insert.forEach(function(item) {
- outlist[item.position - lo] = outlist[item.position - lo].replace(/^ /g, block.op); // + or !
- });
- });
- // Add to diff string
- s = s + outlist.join('\n');
- }
- // Return the diff string
- return s;
-}
-
-var ed_diff = function(hunk, format) {
- var opt_act = {'+':'a', '-':'d', '!':'c'};
- if(hunk.blocks.length > 1) sys.puts("expecting only one block in an old diff hunk!");
- var s = null;
-
- if(format == 'reverse_ed') {
- s = "" + op_act[hunk.blocks[0].op] + context_range(hunk, 'old') + '\n';
- } else {
- s = "" + context_range(hunk, 'old').replace(/,/g, ' ') + op_act[hunk.blocks[0].op] + '\n';
- }
-
- if(hunk.blocks[0].insert.length > 0) {
- hunk.data_new.slice(hunk.start_new, hunk.end_new).forEach(function(e) {
- s = s + '' + e + '\n';
- });
- // Add final marker
- s = s + '.\n';
- }
- // Return diff string
- return s;
-}
-
-// Generate a range of item numbers to print. Only print 1 number if the
-// range has only one item in it. Otherwise, it's 'start,end'
-var context_range = function(hunk, mode) {
- var s = null, e = null;
-
- if(mode == 'old') {
- s = (hunk.start_old + 1);
- e = (hunk.end_old + 1);
- } else if(mode == 'new') {
- s = (hunk.start_new + 1);
- e = (hunk.end_new + 1);
- }
-
- return (s < e) ? ("" + s + "," + e) : ("" + e);
-}
-
-// Generate a range of item numbers to print for unified diff. Print
-// number where block starts, followed by number of lines in the block
-// (don't print number of lines if it's 1)
-var unified_range = function(hunk, mode) {
- var s = null, e = null;
-
- if(mode == 'old') {
- s = (hunk.start_old + 1);
- e = (hunk.end_old + 1);
- } else if(mode == 'new') {
- s = (hunk.start_new + 1);
- e = (hunk.end_new + 1);
- }
-
- var length = e - s + 1;
- var first = (length < 2) ? e : s; // something weird
- return (length == 1) ? ("" + first) : (first + "," + length);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/actor.js b/node_modules/git/lib/git/actor.js
deleted file mode 100644
index 6c1deb5..0000000
--- a/node_modules/git/lib/git/actor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var util = require('util');
-
-Actor = exports.Actor = function(name, email) {
- var _name = name, _email = email;
- // Control access to internal variables
- Object.defineProperty(this, "name", { get: function() { return _name; }, set: function(value) { _name = value; }, enumerable: true});
- Object.defineProperty(this, "email", { get: function() { return _email; }, set: function(value) { _email = value; }, enumerable: true});
-}
-
-Actor.from_string = function(string) {
- if(string.match(/<.+>/)) {
- var results = string.match(/(.*) <(.+?)>/);
- return new Actor(results[1], results[2]);
- } else {
- return new Actor(string, null);
- }
-}
-
-Actor.prototype.toString = function() {
- return this.name;
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/binary_parser.js b/node_modules/git/lib/git/binary_parser.js
deleted file mode 100644
index a574d02..0000000
--- a/node_modules/git/lib/git/binary_parser.js
+++ /dev/null
@@ -1,253 +0,0 @@
-//+ Jonas Raoni Soares Silva
-//@ http://jsfromhell.com/classes/binary-parser [v1.0]
-var chr = String.fromCharCode;
-
-var p = exports.BinaryParser = function( bigEndian, allowExceptions ){
- this.bigEndian = bigEndian;
- this.allowExceptions = allowExceptions;
-};
-
-var Buffer = exports.BinaryParser.Buffer = function( bigEndian, buffer ){
- this.bigEndian = bigEndian || 0;
- this.buffer = [];
- this.setBuffer( buffer );
-};
-
-Buffer.prototype.setBuffer = function( data ){
- if( data ){
- for( var l, i = l = data.length, b = this.buffer = new Array( l ); i; b[l - i] = data.charCodeAt( --i ) );
- this.bigEndian && b.reverse();
- }
-};
-
-Buffer.prototype.hasNeededBits = function( neededBits ){
- return this.buffer.length >= -( -neededBits >> 3 );
-};
-
-Buffer.prototype.checkBuffer = function( neededBits ){
- if( !this.hasNeededBits( neededBits ) )
- throw new Error( "checkBuffer::missing bytes" );
-};
-
-Buffer.prototype.readBits = function( start, length ){
- //shl fix: Henri Torgemane ~1996 (compressed by Jonas Raoni)
- function shl( a, b ){
- for( ; b--; a = ( ( a %= 0x7fffffff + 1 ) & 0x40000000 ) == 0x40000000 ? a * 2 : ( a - 0x40000000 ) * 2 + 0x7fffffff + 1 );
- return a;
- }
- if( start < 0 || length <= 0 )
- return 0;
- this.checkBuffer( start + length );
- for( var offsetLeft, offsetRight = start % 8, curByte = this.buffer.length - ( start >> 3 ) - 1, lastByte = this.buffer.length + ( -( start + length ) >> 3 ), diff = curByte - lastByte, sum = ( ( this.buffer[ curByte ] >> offsetRight ) & ( ( 1 << ( diff ? 8 - offsetRight : length ) ) - 1 ) ) + ( diff && ( offsetLeft = ( start + length ) % 8 ) ? ( this.buffer[ lastByte++ ] & ( ( 1 << offsetLeft ) - 1 ) ) << ( diff-- << 3 ) - offsetRight : 0 ); diff; sum += shl( this.buffer[ lastByte++ ], ( diff-- << 3 ) - offsetRight ) );
- return sum;
-};
-
-p.warn = function( msg ){
- if( this.allowExceptions )
- throw new Error( msg );
- return 1;
-};
-p.decodeFloat = function( data, precisionBits, exponentBits ){
- var b = new this.Buffer( this.bigEndian, data );
- b.checkBuffer( precisionBits + exponentBits + 1 );
- var bias = Math.pow( 2, exponentBits - 1 ) - 1, signal = b.readBits( precisionBits + exponentBits, 1 ), exponent = b.readBits( precisionBits, exponentBits ), significand = 0,
- divisor = 2, curByte = b.buffer.length + ( -precisionBits >> 3 ) - 1;
- do{
- for( var byteValue = b.buffer[ ++curByte ], startBit = precisionBits % 8 || 8, mask = 1 << startBit; mask >>= 1; ( byteValue & mask ) && ( significand += 1 / divisor ), divisor *= 2 );
- }while( precisionBits -= startBit );
- return exponent == ( bias << 1 ) + 1 ? significand ? NaN : signal ? -Infinity : +Infinity : ( 1 + signal * -2 ) * ( exponent || significand ? !exponent ? Math.pow( 2, -bias + 1 ) * significand : Math.pow( 2, exponent - bias ) * ( 1 + significand ) : 0 );
-};
-p.decodeInt = function( data, bits, signed, forceBigEndian ){
- var b = new this.Buffer( this.bigEndian||forceBigEndian, data ), x = b.readBits( 0, bits ), max = Math.pow( 2, bits );
- return signed && x >= max / 2 ? x - max : x;
-};
-p.encodeFloat = function( data, precisionBits, exponentBits ){
- var bias = Math.pow( 2, exponentBits - 1 ) - 1, minExp = -bias + 1, maxExp = bias, minUnnormExp = minExp - precisionBits,
- status = isNaN( n = parseFloat( data ) ) || n == -Infinity || n == +Infinity ? n : 0,
- exp = 0, len = 2 * bias + 1 + precisionBits + 3, bin = new Array( len ),
- signal = ( n = status !== 0 ? 0 : n ) < 0, n = Math.abs( n ), intPart = Math.floor( n ), floatPart = n - intPart,
- i, lastBit, rounded, j, result;
- for( i = len; i; bin[--i] = 0 );
- for( i = bias + 2; intPart && i; bin[--i] = intPart % 2, intPart = Math.floor( intPart / 2 ) );
- for( i = bias + 1; floatPart > 0 && i; ( bin[++i] = ( ( floatPart *= 2 ) >= 1 ) - 0 ) && --floatPart );
- for( i = -1; ++i < len && !bin[i]; );
- if( bin[( lastBit = precisionBits - 1 + ( i = ( exp = bias + 1 - i ) >= minExp && exp <= maxExp ? i + 1 : bias + 1 - ( exp = minExp - 1 ) ) ) + 1] ){
- if( !( rounded = bin[lastBit] ) ){
- for( j = lastBit + 2; !rounded && j < len; rounded = bin[j++] );
- }
- for( j = lastBit + 1; rounded && --j >= 0; ( bin[j] = !bin[j] - 0 ) && ( rounded = 0 ) );
- }
- for( i = i - 2 < 0 ? -1 : i - 3; ++i < len && !bin[i]; );
- if( ( exp = bias + 1 - i ) >= minExp && exp <= maxExp )
- ++i;
- else if( exp < minExp ){
- exp != bias + 1 - len && exp < minUnnormExp && this.warn( "encodeFloat::float underflow" );
- i = bias + 1 - ( exp = minExp - 1 );
- }
- if( intPart || status !== 0 ){
- this.warn( intPart ? "encodeFloat::float overflow" : "encodeFloat::" + status );
- exp = maxExp + 1;
- i = bias + 2;
- if( status == -Infinity )
- signal = 1;
- else if( isNaN( status ) )
- bin[i] = 1;
- }
- for( n = Math.abs( exp + bias ), j = exponentBits + 1, result = ""; --j; result = ( n % 2 ) + result, n = n >>= 1 );
- for( n = 0, j = 0, i = ( result = ( signal ? "1" : "0" ) + result + bin.slice( i, i + precisionBits ).join( "" ) ).length, r = []; i; j = ( j + 1 ) % 8 ){
- n += ( 1 << j ) * result.charAt( --i );
- if( j == 7 ){
- r[r.length] = String.fromCharCode( n );
- n = 0;
- }
- }
- r[r.length] = n ? String.fromCharCode( n ) : "";
- return ( this.bigEndian ? r.reverse() : r ).join( "" );
-};
-p.encodeInt = function( data, bits, signed, forceBigEndian ){
- var max = Math.pow( 2, bits );
- ( data >= max || data < -( max / 2 ) ) && this.warn( "encodeInt::overflow" ) && ( data = 0 );
- data < 0 && ( data += max );
- for( var r = []; data; r[r.length] = String.fromCharCode( data % 256 ), data = Math.floor( data / 256 ) );
- for( bits = -( -bits >> 3 ) - r.length; bits--; r[r.length] = "\0" );
- return ( (this.bigEndian||forceBigEndian) ? r.reverse() : r ).join( "" );
-};
-p.toSmall = function( data ){ return this.decodeInt( data, 8, true ); };
-p.fromSmall = function( data ){ return this.encodeInt( data, 8, true ); };
-p.toByte = function( data ){ return this.decodeInt( data, 8, false ); };
-p.fromByte = function( data ){ return this.encodeInt( data, 8, false ); };
-p.toShort = function( data ){ return this.decodeInt( data, 16, true ); };
-p.fromShort = function( data ){ return this.encodeInt( data, 16, true ); };
-p.toWord = function( data ){ return this.decodeInt( data, 16, false ); };
-p.fromWord = function( data ){ return this.encodeInt( data, 16, false ); };
-p.toInt = function( data ){ return this.decodeInt( data, 32, true ); };
-p.fromInt = function( data ){ return this.encodeInt( data, 32, true ); };
-p.toLong = function( data ){ return this.decodeInt( data, 64, true ); };
-p.fromLong = function( data ){ return this.encodeInt( data, 64, true ); };
-p.toDWord = function( data ){ return this.decodeInt( data, 32, false ); };
-p.fromDWord = function( data ){ return this.encodeInt( data, 32, false ); };
-p.toQWord = function( data ){ return this.decodeInt( data, 64, true ); };
-p.fromQWord = function( data ){ return this.encodeInt( data, 64, true ); };
-p.toFloat = function( data ){ return this.decodeFloat( data, 23, 8 ); };
-p.fromFloat = function( data ){ return this.encodeFloat( data, 23, 8 ); };
-p.toDouble = function( data ){ return this.decodeFloat( data, 52, 11 ); };
-p.fromDouble = function( data ){ return this.encodeFloat( data, 52, 11 ); };
-
-// Factor out the encode so it can be shared by add_header and push_int32
-p.encode_int32 = function(number) {
- var a, b, c, d, unsigned;
- unsigned = (number < 0) ? (number + 0x100000000) : number;
- a = Math.floor(unsigned / 0xffffff);
- unsigned &= 0xffffff;
- b = Math.floor(unsigned / 0xffff);
- unsigned &= 0xffff;
- c = Math.floor(unsigned / 0xff);
- unsigned &= 0xff;
- d = Math.floor(unsigned);
- return chr(a) + chr(b) + chr(c) + chr(d);
-};
-
-p.encode_int64 = function(number) {
- var a, b, c, d, e, f, g, h, unsigned;
- unsigned = (number < 0) ? (number + 0x10000000000000000) : number;
- a = Math.floor(unsigned / 0xffffffffffffff);
- unsigned &= 0xffffffffffffff;
- b = Math.floor(unsigned / 0xffffffffffff);
- unsigned &= 0xffffffffffff;
- c = Math.floor(unsigned / 0xffffffffff);
- unsigned &= 0xffffffffff;
- d = Math.floor(unsigned / 0xffffffff);
- unsigned &= 0xffffffff;
- e = Math.floor(unsigned / 0xffffff);
- unsigned &= 0xffffff;
- f = Math.floor(unsigned / 0xffff);
- unsigned &= 0xffff;
- g = Math.floor(unsigned / 0xff);
- unsigned &= 0xff;
- h = Math.floor(unsigned);
- return chr(a) + chr(b) + chr(c) + chr(d) + chr(e) + chr(f) + chr(g) + chr(h);
-};
-
-/**
- UTF8 methods
-**/
-
-// Take a raw binary string and return a utf8 string
-p.decode_utf8 = function(a) {
- var string = "";
- var i = 0;
- var c = c1 = c2 = 0;
-
- while ( i < a.length ) {
- c = a.charCodeAt(i);
- if (c < 128) {
- string += String.fromCharCode(c);
- i++;
- } else if((c > 191) && (c < 224)) {
- c2 = a.charCodeAt(i+1);
- string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
- i += 2;
- } else {
- c2 = a.charCodeAt(i+1);
- c3 = a.charCodeAt(i+2);
- string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
- i += 3;
- }
- }
- return string;
-};
-
-// Encode a cstring correctly
-p.encode_cstring = function(s) {
- return unescape(encodeURIComponent(s)) + p.fromByte(0);
-};
-
-// Take a utf8 string and return a binary string
-p.encode_utf8 = function(s) {
- var a="";
- for (var n=0; n< s.length; n++) {
- var c=s.charCodeAt(n);
- if (c<128) {
- a += String.fromCharCode(c);
- } else if ((c>127)&&(c<2048)) {
- a += String.fromCharCode( (c>>6) | 192) ;
- a += String.fromCharCode( (c&63) | 128);
- } else {
- a += String.fromCharCode( (c>>12) | 224);
- a += String.fromCharCode( ((c>>6) & 63) | 128);
- a += String.fromCharCode( (c&63) | 128);
- }
- }
- return a;
-};
-
-p.pprint = function(s) {
- var util = require('util');
-
- for (var i=0; i 0) {
- var part = parts[0];
-
- // Process the part
- if(part.match(/^[0-9A-Fa-f]{40}$/)) {
- // Parse references to SHA keys
- if(line.match(/^([0-9A-Fa-f]{40}) (\d+) (\d+) (\d+)$/)) {
- var matches = line.match(/^([0-9A-Fa-f]{40}) (\d+) (\d+) (\d+)$/);
- var id = matches[1];
- var origin_line = matches[2];
- var final_line = matches[3];
- var group_lines = matches[4];
- // Set if of the current reference
- info = {id:id};
- blames.push([null, []]);
- } else if(line.match(/^([0-9A-Fa-f]{40}) (\d+) (\d+)$/)) {
- var matches = line.match(/^([0-9A-Fa-f]{40}) (\d+) (\d+)$/);
- var id = matches[1];
- var origin_line = matches[2];
- var final_line = matches[3];
- // Set if of the current reference
- info = {id:id};
- }
- } else if(part.match(/^(author|committer)/)) {
- if(part.match(/^(.+)-mail$/)) {
- info[part.match(/^(.+)-mail$/)[1] + "_email"] = parts[parts.length - 1];
- } else if(part.match(/^(.+)-time$/)) {
- info[part.match(/^(.+)-time$/)[1] + "_date"] = new Date(parseInt(parts[parts.length - 1]) * 1000);
- } else if(part.match(/^(author|committer)$/)) {
- info[part.match(/^(author|committer)$/)[1]] = parts.slice(1).join(" ");
- }
- } else if(part.match(/^filename/)) {
- info['filename'] = parts[parts.length - 1];
- } else if(part.match(/^summary/)) {
- info['summary'] = parts.slice(1).join(" ").replace('\n', '');
- } else if(part == '') {
- var commit = commits[info["id"]];
- // Create new commit
- if(!commit) {
- // commit = new Commit(repo, )
- var id = info['id'];
- var author = Actor.from_string(info['author'] + ' ' + info['author_email']);
- var authored_date = info['author_date'];
- var committer = Actor.from_string(info['committer'] + ' ' + info['committer_email']);
- var committed_date = info['committer_date'];
- var message = info['summary'];
- // Create a new commit
- commit = new Commit(repo, id, null, null, author, authored_date, committer, committed_date, message);
- commits[info['id']] = commit;
- }
-
- // Break up the parts
- parts = line.match(/^\t(.*)$/);
- blames[blames.length - 1][0] = commit;
- blames[blames.length - 1][1].push(parts[1]);
- info = null;
- }
- }
- });
- // Call back with the list of blames
- callback(null, blames);
- });
-}
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/commit.js b/node_modules/git/lib/git/commit.js
deleted file mode 100644
index 83aec7b..0000000
--- a/node_modules/git/lib/git/commit.js
+++ /dev/null
@@ -1,336 +0,0 @@
-var util = require('util'),
- Actor = require('./actor').Actor,
- Diff = require('./diff').Diff;
- Tree = require('./tree').Tree;
-
-// Create a commit object
-var Commit = exports.Commit = function(repo, id, parents, tree, author, authored_date, committer, committed_date, message, filechanges) {
- var _repo = repo, _id = id, _parents = parents, _tree = tree, _author = author, _authored_date = authored_date;
- var _committer = committer, _committed_date = committed_date, _id_abbrev = null, _filechanges = filechanges;
- // Ensure we have an empty message at least
- message = message ? message : [];
- message = Array.isArray(message) ? message : [message];
- var _message = message.join("\n");
- // Extract short message
- var message_lines_filtered = message.filter(function(line) {
- return line.trim() == '' ? false : true;
- })
- var _short_message = message_lines_filtered.length > 0 ? message_lines_filtered[0] : '';
- // Internal properties
- Object.defineProperty(this, "repo", { get: function() { return _repo; }, set: function(value) { _repo = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "id", { get: function() { return _id; }, set: function(value) { _id = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "sha", { get: function() { return _id; }, set: function(value) { _id = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "parents", { get: function() {
- _parents = lazy_reader(_repo, _id, 'parents', _parents);
- return _parents;
- }, set: function(value) { _parents = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "tree", { get: function() {
- _tree = lazy_reader(_repo, _id, 'tree', _tree);
- return _tree;
- }, set: function(value) { _tree = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "author", { get: function() {
- _author = lazy_reader(_repo, _id, 'author', _author);
- return _author;
- }, set: function(value) { _author = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "authored_date", { get: function() {
- _authored_date = lazy_reader(_repo, _id, 'authored_date', _authored_date);
- return _authored_date;
- }, set: function(value) { _authored_date = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "committer", { get: function() {
- _committer = lazy_reader(_repo, _id, 'comitter', _committer);
- return _committer;
- }, set: function(value) { _comitter = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "committed_date", { get: function() {
- _committed_date = lazy_reader(_repo, _id, 'committed_date', _committed_date);
- return _committed_date;
- }, set: function(value) { _committed_date = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "message", { get: function() {
- _message = lazy_reader(_repo, _id, 'message', _message);
- return _message;
- }, set: function(value) { _message = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "short_message", { get: function() {
- _short_message = lazy_reader(_repo, _id, 'short_message', _short_message);
- return _short_message;
- }, set: function(value) { _short_message = value; }, enumerable: true, configurable:true});
- Object.defineProperty(this, "filechanges", { get: function() {
- _filechanges = lazy_reader(_repo, _id, 'filechanges', _filechanges);
- return _filechanges;
- }, set: function(value) { _filechanges = value; }, enumerable: true, configurable:true});
-
- Object.defineProperty(this, "_id_abbrev", { get: function() { return _id_abbrev; }, set: function(value) { _id_abbrev = value; }, enumerable: true, configurable:true});
-}
-
-var lazy_reader = function(repo, id, name, variable) {
- if(variable != null) return variable;
- // Control the flow
- var done = false;
- var value = null;
- // Fetch all the commits
- Commit.find_all(repo, id, {max_count:1}, function(err, commits) {
- if(err) return done = true;
- value = commits[0][name];
- done = true;
- })
-
- while(!done) {};
- return value ? value : '';
-}
-
-// Load a commit
-Commit.prototype.load = function(callback) {
- var self = this;
-
- Commit.find_all(this.repo, this.id, {max_count:1}, function(err, commits) {
- if(err) return callback(err, commits);
- var commit = commits[0];
- Object.keys(commit).forEach(function(key) {
- self[key] = commit[key];
- });
- callback(null, self);
- });
-}
-
-// Chomp text removing end carriage returns
-var chomp = function chomp(raw_text) {
- return raw_text.replace(/(\n|\r)+$/, '');
-}
-
-// Fetch the short form of an id
-Commit.prototype.id_abbrev = function(callback) {
- var self = this;
-
- if(this._id_abbrev) return callback(null, this._id_abbrev);
- this.repo.git.rev_parse({}, this.id, 0, function(err, id) {
- if(err) return callback(err, id);
- self._id_abbrev = chomp(id).substr(0, 7);
- callback(null, self._id_abbrev);
- })
-}
-
-// Parse the actor and create the object
-var actor = function(line) {
- var results = line.match(/^.+? (.*) (\d+) .*$/);
- var actor = results[1];
- var epoch = results[2];
- // Return the objects
- return [Actor.from_string(actor), new Date(parseInt(epoch) * 1000)]
-}
-
-// Convert commit text to list of commits
-Commit.list_from_string = function(repo, text) {
- // Split up the result
- var lines = text.split("\n");
-
- // require('util').debug("-------------------------------------------------- lines")
- // require('util').debug(require('util').inspect(lines))
- // require('util').debug("-------------------------------------------------- text end")
-
- var linesshift = function() {
- return lines.shift();
- };
- var commits = [];
- // Parse all commit messages
- while(lines.length > 0) {
- var id = linesshift().split(/ /).pop();
- if(lines.length == 0) break;
- var tree = new Tree(repo, linesshift().split(/ /).pop());
-
- // Let's get the parents
- var parents = [];
- while(lines[0].match(/^parent/)) {
- parents.push(new Commit(repo, linesshift().split(/ /).pop()))
- }
- // Let's get the author and committer
- var actor_info = actor(linesshift());
- var author = actor_info[0];
- var authored_date = actor_info[1]
- var committer_info = actor(linesshift());
- var comitter = committer_info[0];
- var committed_date = committer_info[1];
- // Unpack encoding
- var encoding = lines[0].match(/^encoding/) ? linesshift().split().pop() : '';
- // Jump empty space
- linesshift();
- // Unpack message lines
- var message_lines = [];
- while(lines.length > 0 && lines[0].match(/^ {4}/)) {
- var message_line = linesshift();
- message_lines.push(message_line.substring(4, message_line.length)) ;
- }
-
- linesshift();
- // Parse --raw lines
- var filechanges = {};
- var fcre = /:(\d+) (\d+) ([a-z0-9]+) ([a-z0-9]+) (\S+)\s+(.+)/;
- var numre = /(\S+)\s+(\S+)\s+(.+)/;
- var line;
- var matched;
- while (lines.length > 0) {
- line = linesshift();
- matched = line.match(fcre);
- if (!matched) break;
- var o = {};
- var xs = ['a_mode', 'b_mode', 'a_blob', 'b_blob', 'what', 'path'];
- for(var i = 0; i < xs.length; i++) {
- o[xs[i]] = matched[i+1];
- }
- filechanges[o.path] = o;
- }
- while (line) {
- matched = line.match(numre);
- if (!matched) break;
- var o = {};
- var xs = ['plus', 'minus', 'path'];
- for(var i = 0; i < xs.length; i++) {
- o[xs[i]] = matched[i+1];
- }
- filechanges[o.path].plus = o.plus;
- filechanges[o.path].minus = o.minus;
- if (lines.length == 0) break;
- line = linesshift();
- }
-
- if (!matched && line) lines = [line].concat(lines);
- // Move and point to next message
- while(lines[0] != null && lines[0] == '') linesshift();
- // Create commit object
- commits.push(new Commit(repo, id, parents, tree, author, authored_date, comitter, committed_date, message_lines, filechanges));
- }
- // Return all the commits
- return commits;
-}
-
-// Locate all commits for a give set of parameters
-Commit.find_all = function(repo, reference, options, callback) {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- reference = args.length ? args.shift() : null;
- options = args.length ? args.shift() : {};
-
- // Merge the options with the default_options
- if(!options.pretty) options['pretty'] = 'raw';
- // If we have a reference use that for the lookup
- if(!reference) options['all'] = true;
-
- // Locate revisions
- if(reference) {
- repo.git.rev_list(options, reference, function(err, revision_output) {
- if(err) return callback(err, []);
- // Turn string into a list of revisions
- callback(null, Commit.list_from_string(repo, revision_output));
- });
- } else {
- repo.git.rev_list(options, function(err, revision_output) {
- if(err) return callback(err, []);
- // Turn string into a list of revisions
- callback(null, Commit.list_from_string(repo, revision_output));
- });
- }
-}
-
-// Return the count of committs for a given start
-Commit.count = function(repo, ref, callback) {
- repo.git.rev_list({}, ref, function(err, revision_output) {
- if(err) return callback(err, revision_output);
- callback(null, parseInt((revision_output.length/41)));
- })
-}
-
-// Show diffs between two trees
-// repo: the repo object
-// a: named commit
-// b: optional named commit, passing an array assumes you wish to omit the second
-// named commit and limit the diff to the given paths
-// paths: an array of paths to limit the diff.
-//
-// Returns array of diffs (baked)
-Commit.diff = function(repo, a, b, paths, callback) {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 2);
- callback = args.pop();
- b = args.length ? args.shift() : null;
- paths = args.length ? args.shift() : [];
-
- // If b is an array we skipped the b parameter
- if(Array.isArray(b)) {
- paths = b;
- b = null;
- }
-
- // Set up parameters correctly
- if(paths.length > 0) {
- if(paths.length > 0) paths.unshift("--");
- if(b) paths.unshift(b);
- paths.unshift(a);
- // Let's execute the native git function
- repo.git.call_git('', 'diff', '', {full_index:true}, paths, function(err, text) {
- // Create a list of diffs from the string
- if(text) {
- Diff.list_from_string(repo, text, callback);
- } else {
- callback(null, []);
- }
- });
- } else {
- repo.git.diff(a, b, {full_index:true}, function(err, text) {
- // Create a list of diffs from the string
- if(text) {
- Diff.list_from_string(repo, text, callback);
- } else {
- callback(null, []);
- }
- });
- }
-}
-
-var process_diff = function(repo, diff, callback) {
- if(diff.match(/diff --git a/)) {
- diff = diff.substring(diff.match(/diff --git a/).index, diff.length);
- } else {
- diff = '';
- }
- // Return the diffs
- Diff.list_from_string(repo, diff, callback);
-}
-
-// Show the commits
-Commit.prototype.show = function(callback) {
- var parents = this.parents;
- var diff = null
- var self = this;
-
- if(parents.length > 1) {
- this.repo.git.native_call("diff " + parents[0].id + "..." + parents[1].id, {full_index:true}, function(err, diff) {
- if(err) return callback(err, diff);
- process_diff(this.repo, diff, callback);
- });
- } else {
- this.repo.git.show({full_index:true, pretty:'raw'}, this.id, function(err, diff) {
- if(err) return callback(err, diff);
- process_diff(this.repo, diff, callback);
- });
- }
-}
-
-// Return the diffs for a commit
-Commit.prototype.diffs = function(callback) {
- var parents = this.parents;
- // If we have no parents
- if(parents.length == 0) {
- this.show(callback);
- } else {
- Commit.diff(this.repo, parents[0].id, this.id, callback)
- }
-}
-
-// To String method
-Commit.prototype.toString = function() {
- return this.id;
-}
-
-// Convert commit into patch
-Commit.prototype.toPatch = function(callback) {
- this.repo.git.format_patch({'1':true, stdout:true}, this.id, callback);
-}
-
diff --git a/node_modules/git/lib/git/commit_stats.js b/node_modules/git/lib/git/commit_stats.js
deleted file mode 100644
index 15d8cda..0000000
--- a/node_modules/git/lib/git/commit_stats.js
+++ /dev/null
@@ -1,115 +0,0 @@
-var CommitStats = exports.CommitStats = function(repo, id, files) {
- var _repo = repo, _id = id, _files = files, _additions = 0, _deletions = 0, _total = 0;
-
- // Build the stats based on the files
- _additions = files.reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue[1]; }, 0);
- _deletions = files.reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue[2]; }, 0);
- _total = files.reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue[3]; }, 0);
-
- // Internal properties
- Object.defineProperty(this, "repo", { get: function() { return _repo; }, set: function(value) { _repo = value; }, enumerable: false});
- Object.defineProperty(this, "id", { get: function() { return _id; }, set: function(value) { _id = value; }, enumerable: true});
- Object.defineProperty(this, "files", { get: function() { return _files; }, set: function(value) { _files = value; }, enumerable: true});
- Object.defineProperty(this, "additions", { get: function() { return _additions; }, set: function(value) { _additions = value; }, enumerable: true});
- Object.defineProperty(this, "deletions", { get: function() { return _deletions; }, set: function(value) { _deletions = value; }, enumerable: true});
- Object.defineProperty(this, "total", { get: function() { return _total; }, set: function(value) { _total = value; }, enumerable: true});
-}
-
-// Find all commit stats matching the given criteria
-// repo: the repo
-// ref: the ref from which to begin (SHA1 or name) or nil for all
-// options: hash of optional arguments to git
-// max_count: maximum number of commits to fetch
-// skip: number of commits to skip
-//
-// Returns assoc array (all values are lazy loading)
-CommitStats.find_all = function(repo, reference, options, callback) {
- var args = Array.prototype.slice.call(arguments, 2);
- callback = args.pop();
- var self = this;
- // Unpack variables
- options = args.length ? args.shift() : {};
- // Set up options
- options['numstat'] = true;
-
- // Check if we have a reference
- if(reference) {
- // Execute log function
- repo.git.log(options, reference, function(err, output) {
- if(err) return callback(err, output);
- callback(null, CommitStats.list_from_string(repo, output));
- });
- } else {
- // Add all options
- options['all'] = true;
- // Execute log function
- repo.git.log(options, function(err, output) {
- if(err) return callback(err, output);
- callback(null, CommitStats.list_from_string(repo, output));
- });
- }
-}
-
-// Parse out commit information into an array of baked Commit objects
-// repo: the repo
-// text: the text output from the git command (raw format)
-//
-// Returns assoc array of baked commits
-CommitStats.list_from_string = function(repo, text) {
- var lines = text.trim().split('\n');
- var commits = {};
-
- while(lines.length > 0) {
- // Fetch the commit id
- var id = lines.shift().replace(/\ +/g, ' ').split(" ").pop();
- // Remove some rows
- lines.shift();
- lines.shift();
- lines.shift();
-
- // Process message lines
- var message_lines = [];
- // Process out the messages
- while(lines.length > 0 && lines[0].match(/^ {4}/) || lines[0] == '') {
- var string = lines.shift().substr(4);
- message_lines.push(string);
- }
-
- // Skip all empty lines
- while(lines.length > 0 && lines[0] != null && lines[0] == '') lines.shift();
-
- var files = [];
- // Process all the files
- while(lines.length > 0 && lines[0].match(/^([-\d]+)\s+([-\d]+)\s+(.+)/)) {
- var parts = lines.shift().replace(/\ +/g, ' ').split(" ");
- var additions = parseInt(parts[0]);
- var deletions = parseInt(parts[1]);
- var filename = parts[2];
- var total = additions + deletions;
- files.push([filename, additions, deletions, total]);
- }
-
- // Skip all empty lines
- while(lines.length > 0 && lines[0] != null && lines[0] == '') lines.shift();
- // Add the commit to the list
- commits[id] = new CommitStats(repo, id, files);
- }
-
- // Return the commits
- return commits;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/config.js b/node_modules/git/lib/git/config.js
deleted file mode 100644
index 33ec002..0000000
--- a/node_modules/git/lib/git/config.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var Config = exports.Config = function(repo) {
- var _repo = repo, _data = null;
-
- Object.defineProperty(this, "repo", { get: function() { return _repo; }, set: function(value) { _id = value; }, enumerable: false});
- Object.defineProperty(this, "data", { get: function() {
- _data = lazy_reader(_repo, 'data', _data);
- return _data;
- }, set: function(value) { _data = value; }, enumerable: true});
-}
-
-var lazy_reader = function(repo, name, variable) {
- if(variable) return variable;
- // Control the flow
- var done = false;
- var hash = {};
- // Load the config and parse it
- repo.git.config({list:true}, function(err, output) {
- var lines = output.split("\n");
-
- lines.forEach(function(line) {
- var parts = line.split(/=/);
- var key = parts.shift();
- hash[key] = parts.join("=");
- })
- done = true;
- })
-
- while(!done) {};
- return hash;
-}
-
-Config.prototype.fetch = function(key, default_value) {
- var value = this.data[key];
- if(!value) return default_value;
- return this.data[key];
-}
-
-Config.prototype.set = function(key, value, callback) {
- var self = this;
-
- this.repo.git.config({}, key, value, function(err, output) {
- if(err) return callback(err, output);
- // Reset data variable
- self.data = null;
- // Return
- callback(null, output);
- });
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/diff.js b/node_modules/git/lib/git/diff.js
deleted file mode 100644
index eba5a4e..0000000
--- a/node_modules/git/lib/git/diff.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var Blob = require('./blob').Blob;
-
-var Diff = exports.Diff = function(repo, a_path, b_path, a_blob, b_blob, a_mode, b_mode, new_file, deleted_file, diff) {
- var _repo = repo, _a_path = a_path, _b_path = b_path
- var _a_mode = a_mode, _b_mode = b_mode, _diff = diff;
- // Create blob objects
- var _a_blob = !a_blob || a_blob.match(/^0{40}$/) ? null : new Blob(repo, a_blob);
- var _b_blob = !b_blob || b_blob.match(/^0{40}$/) ? null : new Blob(repo, b_blob);
- // Chec if we have a new_file/deleted_file
- var _new_file = new_file || _a_blob == null;
- var _deleted_file = deleted_file || _b_blob == null;
-
- Object.defineProperty(this, "repo", { get: function() { return _repo; }, enumerable: true});
- Object.defineProperty(this, "a_path", { get: function() { return _a_path; }, enumerable: true});
- Object.defineProperty(this, "b_path", { get: function() { return _b_path; }, enumerable: true});
- Object.defineProperty(this, "a_mode", { get: function() { return _a_mode; }, enumerable: true});
- Object.defineProperty(this, "b_mode", { get: function() { return _b_mode; }, enumerable: true});
- Object.defineProperty(this, "diff", { get: function() { return _diff; }, enumerable: true});
- Object.defineProperty(this, "a_blob", { get: function() { return _a_blob; }, enumerable: true});
- Object.defineProperty(this, "b_blob", { get: function() { return _b_blob; }, enumerable: true});
- Object.defineProperty(this, "new_file", { get: function() { return _new_file; }, enumerable: true});
- Object.defineProperty(this, "deleted_file", { get: function() { return _deleted_file; }, enumerable: true});
-}
-
-// Create a list of diffs from a diff text
-Diff.list_from_string = function(repo, text, callback) {
- // Ensure we don't have white space at the end
- text = text.trim();
- // Split the text into lines
- var lines = text.split("\n");
- var diffs = [];
- var a_path, b_path, a_mode, b_mode, new_file = false, deleted_file = false;
- var a_blob, b_blob;
-
- while(text.length > 0 && lines.length > 0) {
- // Extract a line
- var parts = lines.shift().match(/^diff --git a\/(.+?) b\/(.+)$/);
- // Unpack parts
- var a_path = parts[1];
- var b_path = parts[2];
-
- if(lines[0].match(/^old mode/)) {
- a_mode = lines.shift().match(/^old mode (\d+)/)[1]
- b_mode = lines.shift().match(/^new mode (\d+)/)[1]
- }
-
- if(lines.length == 0 || lines[0].match(/^diff --git/)) {
- diffs.push(new Diff(repo, a_path, b_path, null, null, a_mode, b_mode, false, false, null));
- } else {
- if(lines[0].match(/^new file/)) {
- b_mode = lines.shift().match(/^new file mode (.+)$/)[1];
- a_mode = null;
- new_file = true;
- } else if(lines[0].match(/^deleted file/)) {
- a_mode = lines.shift().match(/^deleted file mode (.+)$/)[1];
- b_mode = null;
- deleted_file = true;
- }
- // Unpack index reference
- parts = lines.shift().match(/^index ([0-9A-Fa-f]+)\.\.([0-9A-Fa-f]+) ?(.+)?$/);
- a_blob = parts[1];
- b_blob = parts[2];
- b_mode = parts[3];
-
- // Contains all the diff lines
- var diff_lines = [];
- // Fetch all the diff lines
- while(lines.length > 0 && !lines[0].match(/^diff/)) {
- diff_lines.push(lines.shift());
- }
-
- // Join the difflines
- var diff = diff_lines.join("\n");
- // Add the diff to the list
- diffs.push(new Diff(repo, a_path, b_path, a_blob, b_blob, a_mode, b_mode, new_file, deleted_file, diff));
- }
- }
-
- // Return the list of diffs
- callback(null, diffs);
-}
-
diff --git a/node_modules/git/lib/git/file_index.js b/node_modules/git/lib/git/file_index.js
deleted file mode 100644
index 1fd8b32..0000000
--- a/node_modules/git/lib/git/file_index.js
+++ /dev/null
@@ -1,241 +0,0 @@
-var util = require('util'),
- fs = require('fs');
-
-var FileIndex = exports.FileIndex = function(repo_path, callback) {
- var _repo_path = repo_path;
- var _index_file = repo_path + "/file-index";
- var self = this;
- // Set up internal index info
- var _sha_count = 0, _commit_index = {}, _commit_order = {}, _all_files = {};
-
- // Set up properites for instance
- Object.defineProperty(this, "repo_path", { get: function() { return _repo_path; }, enumerable: true});
- Object.defineProperty(this, "index_file", { get: function() { return _index_file; }, enumerable: true});
- // Other values that allow setting
- Object.defineProperty(this, "sha_count", { get: function() { return _sha_count; }, set: function(value) { _sha_count = value; }, enumerable: true});
- Object.defineProperty(this, "commit_index", { get: function() { return _commit_index; }, set: function(value) { _commit_index = value; }, enumerable: true});
- Object.defineProperty(this, "commit_order", { get: function() { return _commit_order; }, set: function(value) { _commit_order = value; }, enumerable: true});
- Object.defineProperty(this, "all_files", { get: function() { return _all_files; }, set: function(value) { _all_files = value; }, enumerable: true});
-
- fs.stat(_index_file, function(err, stat) {
- if(err) return callback(err, stat);
-
- if(stat.isFile() && stat.size < FileIndex.max_file_size) {
- read_index(self, _index_file, function(err, _index) {
- if(err) return callback(err, _index);
- callback(null, _index);
- })
- } else {
- callback("index file not found", null);
- }
- });
-}
-
-// Max size for file index
-FileIndex.max_file_size = 10000000;
-
-// Chomp text removing end carriage returns
-var chomp = function chomp(raw_text) {
- return raw_text.replace(/(\n|\r)+$/, '');
-}
-
-var dirname = function(file_name) {
- var elements = file_name.split('/');
- elements.pop();
- if(elements.length == 0) return ".";
- return elements.join("/");
-}
-
-// TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO
-// TODO Needs to be async reading files in pieces and parsing them
-// TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO
-// Read and parse the file index for git
-var read_index = function(file_index, _index_file, callback) {
- var current_sha = null;
-
- fs.readFile(_index_file, 'ascii', function(err, data) {
- if(err) return callback(err, data);
- // Split the text into lines
- var lines = data.split("\n");
- // Iterate over all the lines
- for(var i = 0; i < lines.length; i++) {
- var line = lines[i];
-
- // Ensure it's a line with a starting sha
- if(line.match(/^(\w{40})/)) {
- // Unpack all the sha values (first one being the current_sha and the rest the parents)
- var shas = line.match(/(\w{40})/g);
- current_sha = shas.shift();
- // The rest of the sha's are the parents
- file_index.commit_index[current_sha] = {files:[], parents:shas}
- file_index.commit_order[current_sha] = file_index.sha_count;
- file_index.sha_count = file_index.sha_count + 1;
- } else {
- var file_name = chomp(line);
- var tree = '';
- // Retrieve the directory name for the file passed in
- var dir = dirname(file_name);
- // Ensure it's not an empty line
- if(line.length > 0) {
- // Split up the directory
- var dir_parts = dir.split("/");
- for(var j = 0; j < dir_parts.length; j++) {
- var part = dir_parts[j];
-
- if(dir_parts[j] != '.') {
- tree = tree + part + '/'
- if(file_index.all_files[tree] == null) file_index.all_files[tree] = [];
- if(file_index.all_files[tree].indexOf(current_sha) == -1)
- file_index.all_files[tree].unshift(current_sha);
- }
- }
-
- // Finish up
- if(!file_index.all_files[file_name]) file_index.all_files[file_name] = [];
- file_index.all_files[file_name].unshift(current_sha);
- file_index.commit_index[current_sha].files.push(file_name);
- }
- }
- }
- // Return the parsed index
- callback(null, file_index);
- });
-}
-
-// Builds a list of all commits reachable from a single commit
-FileIndex.prototype.commits_from = function(commit_sha, callback) {
- if(Array.isArray(commit_sha)) return callback("unsuported reference", null);
- // Define some holding structures
- var already = {};
- var final = [];
- var left_to_do = [commit_sha];
- var self = this;
-
- while(left_to_do.length > 0) {
- commit_sha = left_to_do.shift();
-
- if(!already[commit_sha]) {
- // Add commit to list of final commits
- final.push(commit_sha);
- already[commit_sha] = true;
-
- // Get parents of the commit and add them to the list
- var commit = self.commit_index[commit_sha];
- if(commit) {
- commit.parents.forEach(function(sha) {
- left_to_do.push(sha);
- });
- }
- }
- }
- // Sort the commits
- final = this.sort_commits(final);
- // Callback
- callback(null, final);
-}
-
-FileIndex.prototype.sort_commits = function(sha_array) {
- var self = this;
-
- return sha_array.sort(function(a, b) {
- return compare(parseInt(self.commit_order[b]), parseInt(self.commit_order[a]));
- })
-}
-
-var convert = function(d) {
- return (
- d.constructor === Date ? d :
- d.constructor === Array ? new Date(d[0],d[1],d[2]) :
- d.constructor === Number ? new Date(d) :
- d.constructor === String ? new Date(d) :
- typeof d === "object" ? new Date(d.year,d.month,d.date) :
- NaN
- );
-}
-
-var compare = function(a,b) {
- return (
- isFinite(a=convert(a).valueOf()) &&
- isFinite(b=convert(b).valueOf()) ?
- (a>b)-(a 0) {
- self.call_git('', 'rev_list', '', options, [reference], function(err, result) {
- callback(err, result);
- })
- } else if(Object.keys(options).length == 0){
- // Fetch the file index (will create a file index on the first call)
- file_index(self, function(err, _file_index) {
- if(err) return callback(err, _file_index);
- // Parse the revision
- self.rev_parse({}, reference, 0, function(err, ref) {
- if(err) return callback(err, ref);
- // Fetch the commits from the revision passed in
- _file_index.commits_from(ref, function(err, commits) {
- if(err) {
- self.call_git('', 'rev_list', '', options, [reference], function(err, result) {
- callback(err, result);
- })
- } else {
- callback(null, commits.join("\n") + "\n");
- }
- })
- });
- })
- } else {
- self.rev_parse({}, reference, 0, function(err, ref) {
- if(err) return callback(err, ref);
-
- if(Array.isArray(ref)) {
- self.call_git('', 'rev_list', '', options, [reference], function(err, result) {
- callback(err, result);
- })
- } else {
- try {
- // Try to execute revision fetch
- self.repository.rev_list(ref, options, function(err, result) {
- callback(err, result);
- })
- } catch(err) {
- callback(err, null);
- }
- }
- });
- }
-}
-
-// Chomp text removing end carriage returns
-var chomp = function chomp(raw_text) {
- return raw_text.replace(/(\n|\r)+$/, '');
-}
-
-Git.prototype.rev_parse = function(options, string, level, callback) {
- if(string != null && string.constructor != String) return callback('only supports single sha reference');
- var self = this;
-
- // Allow leaving of level
- var args = Array.prototype.slice.call(arguments, 2);
- var callback = args.pop();
- level = args.length ? args.shift() : 0;
-
- if(string.match(/\.\./)) {
- var parts = string.split("..");
- var sha1 = parts[0], sha2 = parts[1];
- var value = [this.rev_parse({}, sha1, level + 1, callback), this.rev_parse({}, sha2, level + 1, callback)];
- if(level == 0) return callback(null, value);
- }
-
- // a sha is being passed in, chomp and return
- if(string.match(/^[0-9a-f]{40}$/)) {
- var value = chomp(string);
- if(level == 0) {
- return callback(null, value);
- } else {
- return value;
- }
- }
-
- // Check all the references
- var head = this.git_directory + "/refs/heads/" + string;
- try {
- if(level == 0) {
- return callback(null, chomp(fs.readFileSync(head, 'utf8')));
- } else {
- return chomp(fs.readFileSync(head, 'utf8'));
- }
- } catch(err) {}
-
- var head = this.git_directory + "/refs/remotes/" + string;
- try {
- if(level == 0) {
- return callback(null, chomp(fs.readFileSync(head, 'utf8')));
- } else {
- return chomp(fs.readFileSync(head, 'utf8'));
- }
- } catch(err) {}
-
- var head = this.git_directory + "/refs/tags/" + string;
- try {
- if(level == 0) {
- return callback(null, chomp(fs.readFileSync(head, 'utf8')));
- } else {
- return chomp(fs.readFileSync(head, 'utf8'));
- }
- } catch(err) {}
-
- // Check packed-refs file, too
- var packref = this.git_directory + "/packed-refs";
- try {
- // Read the file
- var parts = data.split(/\n/);
- // Locate head
- for(var i = 0; i < parts.length; i++) {
- var match_parts = parts[i].match(/^(\w{40}) refs\/.+?\/(.*?)$/);
- if(match_parts) {
- ref = match_parts[1];
- // If we have a match fetch reference and return
- if(new RegExp(string + '$').test(match_parts[3])) {
- if(level == 0) {
- return callback(null, chomp(ref));
- } else {
- return chomp(ref);
- }
- }
- }
- }
- } catch(err) {}
-
- // Wait until we got the git call
- self.call_git('', 'rev-parse', '', options, [string], function(err, result) {
- callback(null, result ? chomp(result) : result);
- })
-}
-
-// List tree content
-Git.prototype.ls_tree = function(treeish, paths, options, callback) {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 1);
- var callback = args.pop();
- paths = args.length ? args.shift() : [];
- paths = paths ? paths : [];
- options = args.length ? args.shift() : {};
-
- try {
- // Reverse parse the tree sha
- this.rev_parse({}, treeish, function(err, sha) {
- if(err) return callback(err, sha);
- var tree = self.repository.ls_tree(sha, flatten(paths), options['r']);
- if(tree == '') return callback('no such sha found', null);
- // Ls_tree
- callback(null, tree);
- })
- } catch(err) {
- callback(err, null);
- }
-}
-
-// Cat a file
-Git.prototype.cat_file = function(type, ref, callback) {
- if(type == "t") {
- this.file_type(ref, callback);
- } else if(type == "s") {
- this.file_size(ref, callback);
- } else if(type == "p") {
- callback(null, this.repository.cat_file(ref));
- }
-}
-
-Git.prototype.file_size = function(ref, callback) {
- callback(null, this.repository.cat_file_size(ref));
-}
-
-// Make a directory
-// dir: is the relative path to the directory to create
-//
-// Return nothing
-Git.prototype.fs_mkdir = function(dir, callback) {
- var path = this.git_directory + "/" + dir;
- GitFileOperations.fs_mkdir(path, callback);
-}
-
-// Initialize a new git repository (create physical setup)
-Git.prototype.init = function(options, callback) {
- var self = this;
- var arguments = Array.prototype.slice(arguments);
-
- if(Object.keys(options).length == 0) {
- Repository.init(this.git_directory, callback);
- } else {
- // Execute init with call git and return the object
- this.call_git('', 'init', '', options, arguments, function(err, result) {
- if(err) return callback(err, result);
- callback(null, self);
- });
- }
-}
-
-// Clone a directory
-Git.prototype.clone = function(options, original_path, target_path, callback) {
-}
-
-// Generate diff from the changes between two shas
-// Git.prototype.diff = function(options, sha1, sha2, callback) {
-// }
-//
-// var simple_diff = function(repo, options, sha1, sha2, callback) {
-//
-// }
-//
-// var native_diff = function(repo, options, sha1, sha2, base, paths, callback) {
-//
-// }
-
-// Gotten from
-var flatten = function(array) {
- return array.reduce(function(a,b) {
- return a.concat(b);
- }, []);
-}
-
-Git.prototype.diff = function(commit1, commit2, options, callback) {
- try {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 2);
- // Pop the callback
- var callback = args.pop();
- options = args.length ? args.shift() : {};
-
- // Initialize patch variable
- var patch = '', commit_obj1 = null, tree1 = null, tree2 = null;
- // Retrieve the first commit object
- var commit_obj1 = self.repository.get_object_by_sha1(commit1);
- var tree1 = commit_obj1.tree;
-
- if(commit2) {
- tree2 = self.repository.get_object_by_sha1(commit2).tree;
- } else {
- tree2 = self.repository.get_object_by_sha1(commit_obj1.parent[0]).tree;
- }
-
- var qdiff = self.repository.quick_diff(tree1, tree2).sort();
- qdiff.forEach(function(diff_arr) {
- // Set up all the variables
- var path = diff_arr[0];
- var status = diff_arr[1];
- var treeSHA1 = diff_arr[2];
- var treeSHA2 = diff_arr[3];
- var format = 'unified';
- var lines = 3;
- var output = '';
- var file_length_difference = 0;
-
- // Fetch the files
- var fileA = treeSHA1 ? self.repository.cat_file(treeSHA1) : '';
- var fileB = treeSHA2 ? self.repository.cat_file(treeSHA2) : '';
-
- // Get the sha's or set empty shas
- var sha1 = treeSHA1 || '0000000000000000000000000000000000000000';
- var sha2 = treeSHA2 || '0000000000000000000000000000000000000000';
-
- // Split up data
- var data_old = fileA.trim().split(/\n/).map(function(e) { return chomp(e); });
- var data_new = fileB.trim().split(/\n/).map(function(e) { return chomp(e); });
- // Javascript split's a file into [''] if it's an empty file
- if(data_old.length == 1 && data_old[0] == '') data_old = [];
- if(data_new.length == 1 && data_new[0] == '') data_new = [];
-
- // Get diffs
- var diffs = Difference.LCS.diff(data_old, data_new);
- if(diffs.length > 0) {
- // Create paths
- var a_path = "a/" + path.replace(/\.\//g, '');
- var b_path = "b/" + path.replace(/\.\//g, '');
- // Let's create the header
- var header = "diff --git " + a_path + " " + b_path;
- if(options['full_index']) {
- header = header + '\n' + 'index ' + sha1 + '..' + sha2;
- if(treeSHA2) header = header + "' 100644";
- } else {
- header = header + '\n' + 'index ' + sha1.substr(0, 7) + '..' + sha2.substr(0, 7);
- if(treeSHA2) header = header + ' 100644';
- }
-
- header = header + '\n--- ' + (treeSHA1 ? a_path : '/dev/null');
- header = header + '\n+++ ' + (treeSHA2 ? b_path : '/dev/null');
- header = header + '\n';
-
- // standard hunk
- var old_hunk = null, hunk = null;
- // Process all the diff changes
- diffs.forEach(function(piece) {
-
- try {
- hunk = new Difference.LCS.Hunk(data_old, data_new, piece, lines, file_length_difference);
- file_length_difference = hunk.file_length_difference;
-
- if(old_hunk) {
- if(lines > 0 && hunk.overlaps(old_hunk)) {
- hunk.unshift(old_hunk);
- } else {
- output = output + old_hunk.diff(format);
- }
- }
- } catch(err) {}
-
- old_hunk = hunk;
- output = output + '\n';
- });
-
- // Prepare next
- output = output + old_hunk.diff(format);
- output = output + '\n';
- patch = patch + header + output.trimLeft();
- }
- });
-
- // Return the patch
- callback(null, patch);
- } catch(err) {
- callback('tree was bad or lcs is not working', null);
- }
-}
-
-// Check if a file exists
-Git.prototype.fs_exist = function(path, callback) {
- GitFileOperations.fs_exist(this.git_directory, path, callback);
-}
-
-// Write a normal file to the filesystem
-// file: relative path from the Git dir
-// contents: String content to be written
-//
-// Return nothing
-Git.prototype.fs_write = function(file, content, callback) {
- GitFileOperations.fs_write(this.git_directory, file, content, callback);
-}
-
-// Log function, returns the number of logs
-Git.prototype.log = function(commit, path, options, callback) {
- args = ['--raw', '--no-abbrev', '--numstat'];
- if (path) {
- args.push('--');
- args.push(path);
- }
- options.color = 'never';
- this.call_git('', 'log', '', options, args, callback);
-}
-
-// Select the objects that exists
-// object_ids: array of object sha's
-//
-// Returns array of ids's that exist
-Git.prototype.select_existing_objects = function(object_ids, callback) {
- var existing_object_ids = [];
- // Process all the object ids
- for(var i = 0; i < object_ids.length; i++) {
- // Check if the object_id exists in the db
- this.repository.object_exists(object_ids[i], function(err, result) {
- if(err) return callback(err, result);
- if(result) existing_object_ids.push(object_ids[i]);
- });
- }
- // Return all the existing objects
- callback(null, existing_object_ids);
-}
-
-// Format the patch
-Git.prototype.format_patch = function(options, reference, callback) {
- this.call_git('', 'format_patch', '', options, [reference], function(err, result) {
- callback(err, result);
- })
-}
-
-// Fetch the blame
-Git.prototype.blame = function() {
- // Unpack parameters as commit might be null
- var args = Array.prototype.slice.call(arguments, 0);
- var callback = args.pop();
- var options = args.length ? args.shift() : {};
- var arguments = args;
-
- // Execute blame command
- this.call_git('', 'blame', '', options, arguments, function(err, result) {
- callback(err, result);
- });
-}
-
-var clean_paths = function(commits) {
- var new_commits = {};
- // Iterate over all the commit hash entries and clean the directory names
- Object.keys(commits).forEach(function(file) {
- var sha = commits[file];
- file = file.substr(file.length - 1, 1) == '/' ? file.substr(0, file.length - 1) : file;
- new_commits[file] = sha;
- })
- // Return all the cleaned commits
- return new_commits;
-}
-
-// Fetch blame tree
-Git.prototype.blame_tree = function(commit, path, callback) {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 1);
- var callback = args.pop();
- path = args.length ? args.shift() : null;
-
- // Create path
- path = path != null && path != '' ? [path].join("/").toString() + '/' : path;
- path = !path || path.constructor != String ? '' : path;
-
- // Fetch the file_index
- file_index(this, function(err, file_index_instance) {
- if(err) return callback(err, file_index_instance);
-
- self.rev_parse({}, commit, 0, function(err, rev_parse_output) {
- if(err) return callback(err, rev_parse_output);
-
- self.looking_for(commit, path, function(err, looking_for) {
- if(err) return callback(err, looking_for);
-
- file_index_instance.last_commits(rev_parse_output, looking_for, function(err, commits) {
- if(err) return callback(err, commits);
-
- callback(null, clean_paths(commits));
- });
- });
- });
- });
-}
-
-// Looking for
-Git.prototype.looking_for = function(commit, path, callback) {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 1);
- var callback = args.pop();
- path = args.length ? args.shift() : null;
- var file = null;
-
- // Fetch the commit sha
- self.rev_parse({}, commit, 0, function(err, rev_parse_output) {
- if(err) return callback(err, rev_parse_output);
-
- // Fetch the sub tree
- self.repository.get_subtree(rev_parse_output, path, function(err, tree_sha) {
- if(err) return callback(err, tree_sha);
-
- // Contains the files
- var looking_for = [];
- // Fetch and return the object by the tree sha
- var object = self.repository.get_object_by_sha1(tree_sha);
- // Process all the entries for the object
- object.entries.forEach(function(entry) {
- file = path && !(path == '' || path == '.' || path == './') ? path + "/" + entry.name : entry.name;
- // Ensure no double path characters
- file = file.replace('//', '/');
- // Add a slash if it's a directory
- if(entry.type == 'directory') file = file + "/";
- // Add to list of looking_for entries
- looking_for.push(file);
- });
-
- // Return the entries
- return callback(null, looking_for);
- });
- });
-}
-
-// Peform commit
-Git.prototype.commit = function() {
- // Unpack parameters as commit might be null
- var args = Array.prototype.slice.call(arguments, 0);
- var callback = args.pop();
- var options = args.length ? args.shift() : {};
- var arguments = args;
-
- // Execute blame command
- this.call_git('', 'commit', '', options, arguments, function(err, result) {
- callback(err, result);
- });
-}
-
-// Fetch config
-Git.prototype.config = function() {
- // Unpack parameters as commit might be null
- var args = Array.prototype.slice.call(arguments, 0);
- var callback = args.pop();
- var options = args.length ? args.shift() : {};
- var arguments = args;
- // Execute blame command
- this.call_git('', 'config', '', options, arguments, function(err, result) {
- callback(err, result);
- });
-}
-
-// Execute add command
-Git.prototype.add = function() {
- // Unpack parameters as commit might be null
- var args = Array.prototype.slice.call(arguments, 0);
- var callback = args.pop();
- var options = args.length ? args.shift() : {};
- var arguments = args;
- // Execute blame command
- this.call_git('', 'add', '', options, arguments, function(err, result) {
- callback(err, result);
- });
-}
-
-// Execute remove command
-Git.prototype.remove = function() {
- // Unpack parameters as commit might be null
- var args = Array.prototype.slice.call(arguments, 0);
- var callback = args.pop();
- var options = args.length ? args.shift() : {};
- var arguments = args;
- // Execute blame command
- this.call_git('', 'rm', '', options, arguments, function(err, result) {
- callback(err, result);
- });
-}
-
-// Execute ls-files
-Git.prototype.ls_files = function() {
- // Unpack parameters as commit might be null
- var args = Array.prototype.slice.call(arguments, 0);
- var callback = args.pop();
- var options = args.length ? args.shift() : {};
- var arguments = args;
- // Execute blame command
- this.call_git('', 'ls-files', '', options, arguments, function(err, result) {
- callback(err, result);
- });
-}
-
-// Execute diff-files
-Git.prototype.diff_files = function() {
- // Unpack parameters as commit might be null
- var args = Array.prototype.slice.call(arguments, 0);
- var callback = args.pop();
- var options = args.length ? args.shift() : {};
- var arguments = args;
- // Execute blame command
- this.call_git('', 'diff-files', '', options, arguments, function(err, result) {
- callback(err, result);
- });
-}
-
-// Execute diff-index
-Git.prototype.diff_index = function() {
- // Unpack parameters as commit might be null
- var args = Array.prototype.slice.call(arguments, 0);
- var callback = args.pop();
- var options = args.length ? args.shift() : {};
- var arguments = args;
- // Execute blame command
- this.call_git('', 'diff-index', '', options, arguments, function(err, result) {
- callback(err, result);
- });
-}
-
-Git.prototype.file_type = function(ref, callback) {
- return callback(null, this.repository.cat_file_type(ref));
-}
-
-Git.prototype.put_raw_object = function(content, type, callback) {
- return this.repository.put_raw_object(content, type, callback);
-}
-
-Git.prototype.commit_from_sha = function(id) {
- var repository = new Repository(this.git_directory);
- var object = repository.get_object_by_sha1(id);
-
- if(object.type == "commit") {
- return id;
- } else if(object.type == "tag") {
- return object.object;
- } else {
- return '';
- }
-}
-
-
-// // ===================================================================================================
-// //
-// // Decorates the Class prototype with functions wrapping git native functions (if not defined already)
-// //
-// // ===================================================================================================
-// Git.prototype.call_git('', 'help', '', {}, ['--all'], function(err, result) {
-// var index = result.indexOf("-----------");
-// result = result.substr(index);
-// var lines = result.trim().split("\n");
-// // Ship the first line
-// lines.shift();
-// // Process all the lines
-// while(lines.length > 0 && lines[0] != '') {
-// var line = lines.shift().trim().replace(/ +/g, ' ');
-// var parts = line.split(" ");
-//
-// parts.forEach(function(command) {
-// var function_name = command.replace(/\-/g, '_');
-// // For each entry create a new function if it does not exist on the prototype
-// if(Git.prototype[function_name] == null) {
-// Git.prototype[function_name] = function() {
-// // Unpack parameters as commit might be null
-// var args = Array.prototype.slice.call(arguments, 0);
-// callback = args.pop();
-// var options = args.length ? args.shift() : {};
-// var arguments = args;
-// // Execute blame command
-// this.call_git('', command, '', options, arguments, function(err, result) {
-// callback(err, result);
-// });
-// }
-// }
-// });
-//
-// }
-//
-// // callback(null, null);
-// pre_loading_done = true
-// // var g = new Git("..../")
-// });
-
diff --git a/node_modules/git/lib/git/git_file_operations.js b/node_modules/git/lib/git/git_file_operations.js
deleted file mode 100644
index 8af908c..0000000
--- a/node_modules/git/lib/git/git_file_operations.js
+++ /dev/null
@@ -1,170 +0,0 @@
-var util = require('util'),
- fs = require('fs'),
- exec = require('child_process').exec;
-
-var GitFileOperations = exports.GitFileOperations = function() {}
-
-// Streaming glob function
-var streaming_glob_function = function(path, stream) {
- var entries = fs.readdirSync(path);
- entries.forEach(function(entry) {
- var entry_path = path + "/" + entry;
- var stat = fs.statSync(entry_path);
-
- if(stat.isDirectory()) {
- stream.emit("data", {path:entry_path, stat:stat});
- streaming_glob_function(entry_path, stream);
- } else {
- stream.emit("data", {path:entry_path, stat:stat});
- }
- })
-}
-
-var stat_with_entry = function(entry_path, stream, callback) {
- return function() {
- fs.stat(entry_path, function(err, stat) {
- if(stat.isDirectory()) {
- // Dive into the directory
- streaming_glob_function(entry_path, stream);
- // Emit the directory and then update the count
- stream.emit("data", {path:entry_path, stat:stat});
- callback();
- } else if(stat.isFile()) {
- // Update the number of processed directories and emit the data event
- stream.emit("data", {path:entry_path, stat:stat});
- callback();
- }
- });
- }
-}
-
-// Glob function for the file system
-GitFileOperations.glob_streaming = function(path) {
- // Comptability
- var nextTick = global.setImmediate || process.nextTick;
- // Create a stream object
- var stream = new process.EventEmitter();
- var processed_directories_count = 0;
- var top_level_files_count = -1;
- // Tick method
- var tick_function = function() {
- // If we are done emit end otherwise execute the method again
- processed_directories_count == top_level_files_count ? stream.emit("end") : nextTick(tick_function);
- }
- // set nextTick handler into action
- nextTick(tick_function);
- // Fetch the top directory
- fs.readdir(path, function(err, entries) {
- // The top level of files that need to be finished processing for us to be done
- if(entries !== undefined && entries.length > 0) {
- entries.sort(function(a, b) {
- return a > b;
- });
-
- top_level_files_count = entries.length;
- // Execute the entries
- var procesEntry = function(i) {
- // Entry path
- var entry_path = path + "/" + entries[i];
- // Build glob function
- stat_with_entry(entry_path, stream, function() {
- processed_directories_count = processed_directories_count + 1;
- if (++i < entries.length) {
- procesEntry(i);
- }
- })();
- };
- procesEntry(0);
- } else {
- top_level_files_count = 0;
- }
- });
- // Return the stream for execution
- return stream;
-}
-
-// Execute recursive glob function (private function)
-var glob_function = function(path, files) {
- var entries = fs.readdirSync(path);
- entries.forEach(function(entry) {
- var entry_path = path + "/" + entry;
-
- var stat = fs.statSync(entry_path);
- if(stat.isDirectory()) {
- glob_function(entry_path, files);
- } else {
- files.push(entry_path);
- }
- })
-}
-
-// Glob function for the file system
-GitFileOperations.glob = function(path, files, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- files = args.length ? args.shift() : [];
- // Fetch all the files
- glob_function(path, files);
- callback(null, files);
-}
-
-// Read a file
-GitFileOperations.fs_read = function(path, file, callback) {
- fs.readFile(path + "/" + file, callback);
-}
-
-// Make a directory
-GitFileOperations.fs_mkdir = function(dir, callback) {
- fs.mkdir(dir, 16877, callback);
-}
-
-// Check if a directory exists
-GitFileOperations.fs_exist = function(dir, path, callback) {
-}
-
-// Delete directory
-GitFileOperations.fs_rmdir_r = function(dir, callback) {
- // Copy the old directory to the new one
- var child = exec('rm -rf ' + dir, function (error, stdout, stderr) {
- if (error !== null) {
- util.puts('exec error: ' + error);
- return callback(error, null);
- }
- return callback(null, null);
- });
-}
-
-// Write file
-GitFileOperations.fs_write = function(dir, file, content, callback) {
- // Let's make sure the parent directories exist, split the file into directories and content
- var file_parts = file.split("/");
- var file_name = file_parts.pop()
- var current_path = dir;
- // Create missing sub directories
- while(file_parts.length > 0) {
- var dir_path = file_parts.shift();
- current_path = current_path + "/" + dir_path;
- // Check if the directory exists (if it does not then create it)
- try {
- fs.statSync(current_path);
- } catch(err) {
- fs.mkdirSync(current_path, 16877);
- }
- }
-
- // Write the file to disk
- current_path = dir + "/" + file;
- // Append the entry to the file
- fs.writeFile(current_path, content, callback);
-}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/git_index.js b/node_modules/git/lib/git/git_index.js
deleted file mode 100644
index a457a29..0000000
--- a/node_modules/git/lib/git/git_index.js
+++ /dev/null
@@ -1,188 +0,0 @@
-var util = require('util'),
- Tree = require('./tree').Tree,
- Config = require('./config').Config;
-
-var GitIndex = exports.GitIndex = function(repo) {
- var _repo = repo, _tree = {}, _current_tree = null;
-
- Object.defineProperty(this, "tree", { get: function() { return _tree; }, set: function(value) { _tree = value; }, enumerable: true});
- Object.defineProperty(this, "current_tree", { get: function() { return _current_tree; }, set: function(value) { _current_tree = value; }, enumerable: true});
- Object.defineProperty(this, "repo", { get: function() { return _repo; }, set: function(value) { _repo = value; }, enumerable: true});
-}
-
-// Sets the current tree
-// +tree+ the branch/tag/sha... to use - a string
-//
-// Returns index (self)
-GitIndex.prototype.read_tree = function(tree, callback) {
- var self = this;
- // Load the tree
- this.repo.tree(tree, function(err, loaded_tree) {
- if(err) return callback(err, loaded_tree);
- self.current_tree = loaded_tree;
- callback(null, loaded_tree);
- })
-}
-
-// Add a file to the index
-// +path+ is the path (including filename)
-// +data+ is the binary contents of the file
-//
-// Returns nothing
-GitIndex.prototype.add = function(file_path, data) {
- var path = file_path.split('/');
- var filename = path.pop();
- var current = this.tree;
-
- path.forEach(function(dir) {
- current[dir] = current[dir] || {};
- var node = current[dir];
- current = node;
- });
-
- current[filename] = data;
-}
-
-// Commit the contents of the index
-// +message+ is the commit message [nil]
-// +parents+ is one or more commits to attach this commit to to form a new head [nil]
-// +actor+ is the details of the user making the commit [nil]
-// +last_tree+ is a tree to compare with - to avoid making empty commits [nil]
-// +head+ is the branch to write this head to [master]
-//
-// Returns a String of the SHA1 of the commit
-GitIndex.prototype.commit = function(message, parents, actor, last_tree, head, callback) {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- // Set variables to default values
- parents = args.length ? args.shift() : null;
- actor = args.length ? args.shift() : null;
- last_tree = args.length ? args.shift() : null;
- head = args.length ? args.shift() : 'master';
-
- this.write_tree(this.tree, this.current_tree, function(err, tree_sha1) {
- if(tree_sha1 == last_tree) return callback(null, false); // Don't write identical commits
- var contents = [];
- // Add tree to contents
- contents.push(['tree', tree_sha1].join(' '));
- // Add all parents if they exist
- if(parents) {
- parents.forEach(function(p) {
- if(p) contents.push(['parent', p].join(' '));
- });
- }
-
- // Define name and email
- var name = null, email = null;
-
- if(actor) {
- name = actor.name;
- email = actor.email;
- } else {
- config = new Config(self.repo);
- name = config['user.name'];
- email = config['user.email'];
- }
-
- var author_string = "" + name + " <" + email + "> " + parseInt(new Date().getTime()/1000) + " -0700"; // TODO must fix
- contents.push(['author', author_string].join(' '));
- contents.push(['committer', author_string].join(' '));
- contents.push('');
- contents.push(message);
- // Write commit and update reference tree
- self.repo.git.put_raw_object(contents.join("\n"), 'commit', function (commit_sha1) {
- self.repo.update_ref(head, commit_sha1, callback);
- });
- });
-}
-
-var to_bin = function(sha1o) {
- var sha1 = '';
- for(var i = 0; i < sha1o.length; i = i + 2) {
- sha1 = sha1 + String.fromCharCode(parseInt(sha1o.substr(i, 2), 16));
- }
- return sha1;
-}
-
-// Recursively write a tree to the index
-// +tree+ is the tree
-//
-// Returns the SHA1 String of the tree
-GitIndex.prototype.write_tree = function(tree, now_tree, callback) {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- // Set variables to default values
- now_tree = args.length ? args.shift() : null;
-
- // Holds the tree content
- var tree_contents = {};
-
- // Fill in the original tree
- if(now_tree) {
- now_tree.contents.forEach(function(obj) {
- var sha = to_bin(obj.id);
- var k = obj.name;
-
- if(obj instanceof Tree) k = k + '/';
- tree_contents[k] = "" + obj.mode.toString() + " " + obj.name + "\0" + sha;
- });
- }
-
- // overwrite with the new tree contents
- Object.keys(tree).forEach(function(key) {
- var value = tree[key];
-
- if(value.constructor == String) {
- var sha = self.write_blob(value);
- sha = to_bin(sha);
- tree_contents[key] = "" + '100644' + " " + key + '\0' + sha;
- } else if(Object.prototype.toString.call(value) === '[object Object]') {
- var ctree = now_tree ? (now_tree.find(key)) : null;
- // Write the next level
- self.write_tree(value, ctree, function(err, sha) {
- var sha = to_bin(sha);
- tree_contents[key + '/'] = "" + '040000' + " " + key + '\0' + sha;
- });
- }
- })
-
- var tr = Object.keys(tree_contents).sort().map(function(key) {
- return tree_contents[key];
- }).join('');
-
- // Return the object sha
- this.repo.git.put_raw_object(tr, 'tree', function (sha1) {
- callback(null, sha1);
- })
-}
-
-// Write the blob to the index
-// +data+ is the data to write
-//
-// Returns the SHA1 String of the blob
-GitIndex.prototype.write_blob = function(data) {
- return this.repo.git.put_raw_object(data, 'blob');
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/git_object.js b/node_modules/git/lib/git/git_object.js
deleted file mode 100644
index 1b9703a..0000000
--- a/node_modules/git/lib/git/git_object.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var GitCommit = require('./internal/git_commit').GitCommit,
- GitTree = require('./internal/git_tree').GitTree,
- GitTag = require('./internal/git_tag').GitTag,
- GitBlob = require('./internal/git_blob').GitBlob;
-
-var GitObject = exports.GitObject = function() {}
-
-GitObject.from_raw = function(raw_object, repository) {
- if(raw_object.type == "blob") {
- return GitBlob.from_raw(raw_object, repository);
- } else if(raw_object.type == "tree") {
- return GitTree.from_raw(raw_object, repository);
- } else if(raw_object.type == "commit") {
- return GitCommit.from_raw(raw_object, repository);
- } else if(raw_object.type == "tag") {
- return GitTag.from_raw(raw_object, repository);
- } else {
- throw "got invalid object-type";
- }
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/head.js b/node_modules/git/lib/git/head.js
deleted file mode 100644
index e851703..0000000
--- a/node_modules/git/lib/git/head.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var util = require('util'),
- Commit = require('./commit').Commit;
-
-var Head = exports.Head = function(name, commit) {
- var _name = name;
- var _commit = commit;
- // Define the properties
- Object.defineProperty(this, "name", { get: function() { return _name; }, enumerable: true});
- Object.defineProperty(this, "commit", { get: function() { return _commit; }, enumerable: true});
-}
-
-var prefix = function(name) {
- return "refs/" + name + "s";
- }
-
-Head.current = function(repo, options, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- options = args.length ? args.shift() : {};
- // Let's read the the head
- repo.git.fs_read('HEAD', function(err, head) {
- if(err) return callback(err, head);
- var matches = head.toString().match(/ref: refs\/heads\/(.*)/);
- if(!matches) return callback(null, null);
- // we have a correct reference, create a new head reference
- repo.git.rev_parse(options, 'HEAD', 0, function(err, rev) {
- if(err) return callback(err, rev);
- return callback(null, new Head(matches[1], rev));
- });
- });
-}
-
-Head.find_all = function(repo, options, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- options = args.length ? args.shift() : {};
- // Let's fetch the references
- repo.git.refs({}, prefix('head'), function(err, refs) {
- if(err) return callback(err, refs);
- // Map the references
- var mapped_refs = refs.split(/\n/).map(function(ref) {
- // Fetch the name and id for the reference
- var split_reference = ref.split(/ /);
- var name = split_reference[0];
- var id = split_reference[1];
-
- // Create a commit object wit the id
- var commit = new Commit(repo, id);
- // Wrap the commit object in a head object and return mapped object
- return new Head(name, commit);
- })
- callback(null, mapped_refs);
- })
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/index.js b/node_modules/git/lib/git/index.js
deleted file mode 100644
index a6c1f56..0000000
--- a/node_modules/git/lib/git/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-[
- 'actor', 'binary_parser', 'blame', 'blame_line', 'blob', 'commit', 'commit_stats', 'config',
- 'diff', 'file_index', 'file_window', 'git', 'git_file_operations', 'git_index', 'git_object',
- 'head', 'loose_storage', 'merge', 'pack_storage', 'raw_object', 'ref', 'remote', 'repo', 'repository',
- 'status', 'status_file', 'sub_module', 'tag', 'tree', 'user_info',
- 'internal/directory_entry', 'internal/git_blob', 'internal/git_commit', 'internal/git_tag', 'internal/git_tree'
-].forEach(function(path){
- var module = require('./' + path);
- for (var i in module)
- exports[i] = module[i];
-});
-
-[
- 'zlib'
-].forEach(function(path){
- var module = require('../zlib/' + path);
- for (var i in module)
- exports[i] = module[i];
-});
-
-[
- 'sprintf'
-].forEach(function(path){
- var module = require('../sprintf/' + path);
- for (var i in module)
- exports[i] = module[i];
-});
-
-[
- 'block', 'callbacks', 'change', 'diff', 'hunk'
-].forEach(function(path){
- var module = require('../diff/' + path);
- for (var i in module)
- exports[i] = module[i];
-});
-
diff --git a/node_modules/git/lib/git/internal/directory_entry.js b/node_modules/git/lib/git/internal/directory_entry.js
deleted file mode 100644
index 0ed41a9..0000000
--- a/node_modules/git/lib/git/internal/directory_entry.js
+++ /dev/null
@@ -1,60 +0,0 @@
-var StringUtil = require('../../sprintf/sprintf').StringUtil;
-
-var S_IFMT = parseInt('00170000', 8);
-var S_IFLNK = parseInt('0120000', 8);
-var S_IFREG = parseInt('0100000', 8);
-var S_IFDIR = parseInt('0040000', 8);
-var S_IFGITLINK = parseInt('0160000', 8);
-
-var DirectoryEntry = exports.DirectoryEntry = function(mode, file_name, sha1) {
- var _mode = 0, _name = file_name, _sha1 = sha1;
- var self = this;
-
- // Process the mode to correctly get the right value
- for(var i = 0; i < mode.length; i++) {
- _mode = (_mode << 3) | (mode.charCodeAt(i) - '0'.charCodeAt(0));
- }
-
- // Internal properties
- Object.defineProperty(this, "mode", { get: function() { return _mode; }, set: function(value) { _mode = value; }, enumerable: true});
- Object.defineProperty(this, "name", { get: function() { return _name; }, set: function(value) { _name = value; }, enumerable: true});
- Object.defineProperty(this, "sha1", { get: function() { return _sha1; }, set: function(value) { _sha1 = value; }, enumerable: true});
- // Return the type of entry
- Object.defineProperty(this, "type", { get: function() {
- var type = self.mode & S_IFMT;
- if(type == S_IFGITLINK) {
- return 'submodule';
- } else if(type == S_IFLNK) {
- return 'link';
- } else if(type == S_IFDIR) {
- return 'directory';
- } else if(type == S_IFREG) {
- return 'file';
- } else {
- return null;
- }
- }, enumerable: true});
-
- Object.defineProperty(this, "format_type", { get:function() {
- var type = this.type;
- if(type == 'link') {
- return 'link';
- } else if(type == 'directory') {
- return 'tree';
- } else if(type == 'file') {
- return 'blob';
- } else if(type == 'submodule') {
- return 'commit';
- }
- }, enumerable: false});
-
- Object.defineProperty(this, "format_mode", { get:function() {
- return StringUtil.sprintf("%06o", _mode);
- }, enumerable: false});
-
- // Ensure we don't have an illegal type of directory
- if([S_IFLNK, S_IFDIR, S_IFREG, S_IFGITLINK].indexOf(_mode & S_IFMT) == -1) {
- throw "unknown type for directory entry";
- }
-}
-
diff --git a/node_modules/git/lib/git/internal/git_blob.js b/node_modules/git/lib/git/internal/git_blob.js
deleted file mode 100644
index 584e20e..0000000
--- a/node_modules/git/lib/git/internal/git_blob.js
+++ /dev/null
@@ -1,14 +0,0 @@
-var util = require('util');
-
-var GitBlob = exports.GitBlob = function(content, repository) {
- var _content = content, _repository = repository;
-
- Object.defineProperty(this, "content", { get: function() { return _content; }, set: function(value) { _content = value; }, enumerable: true});
- Object.defineProperty(this, "repository", { get: function() { return _repository; }, set: function(value) { _repository = value; }, enumerable: false});
- Object.defineProperty(this, "type", { get: function() { return "blob"; }, enumerable: true});
- Object.defineProperty(this, "raw_content", { get: function() { return _content; }, set: function(value) { _content = value; }, enumerable: true});
-}
-
-GitBlob.from_raw = function(raw_object, repository) {
- return new GitBlob(raw_object.content);
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/internal/git_commit.js b/node_modules/git/lib/git/internal/git_commit.js
deleted file mode 100644
index 6c6cb77..0000000
--- a/node_modules/git/lib/git/internal/git_commit.js
+++ /dev/null
@@ -1,87 +0,0 @@
-var util = require('util'),
- UserInfo = require('../user_info').UserInfo;
-
-var GitCommit = exports.GitCommit = function(tree, parent, author, committer, message, headers, repository) {
- var _tree = tree, _parent = parent, _author = author, _committer = committer, _message = message, _headers = headers, _repository = repository;
-
- Object.defineProperty(this, "tree", { get: function() { return _tree; }, enumerable: true});
- Object.defineProperty(this, "parent", { get: function() { return _parent; }, enumerable: true});
- Object.defineProperty(this, "author", { get: function() { return _author; }, enumerable: true});
- Object.defineProperty(this, "committer", { get: function() { return _committer; }, enumerable: true});
- Object.defineProperty(this, "message", { get: function() { return _message; }, enumerable: true});
- Object.defineProperty(this, "headers", { get: function() { return _headers; }, enumerable: true});
- Object.defineProperty(this, "repository", { get: function() { return _repository; }, enumerable: true});
- Object.defineProperty(this, "type", { get: function() { return "commit"; }, enumerable: true});
-
- // Raw content of commit
- Object.defineProperty(this, "raw_content", { get: function() {
- return "tree " + _tree + "\n"
- + _parent.map(function(i) { return "parent " + i +"\n"; }).join('')
- + "author " + _author + "\ncommitter " + _committer + "\n\n" + _message;
- }, enumerable: true});
-}
-
-// Create a commit from a raw object
-GitCommit.from_raw = function(raw_object, repository) {
- var parent = [];
- var tree = null, author = null, committer = null;
-
- // Split the text but only grab the 2 first blocks
- var split_result = raw_object.content.split(/\n\n/);
- var headers = split_result.shift();
- var message = split_result.join("\n\n");
-
- // get all the headers
- var all_headers = headers.split(/\n/).map(function(header) {
- var parts = header.split(/ /);
- return [parts.shift(), parts.join(" ")];
- })
- // Iterate over all the headers
- all_headers.forEach(function(header) {
- var key = header[0];
- var value = header[1];
-
- if(key == "tree") {
- tree = value;
- } else if(key == "parent") {
- parent.push(value);
- } else if(key == "author") {
- author = new UserInfo(value);
- } else if(key == "committer") {
- committer = new UserInfo(value);
- } else {
- // Unknow header
- util.puts("unknow header '" + key + "' in commit " + raw_object.sha_hex())
- }
- })
-
- if(!tree && !author && !committer) {
- throw "incomplete raw commit object";
- }
- // Return the git commit object
- return new GitCommit(tree, parent, author, committer, message, headers, repository);
-}
-
-GitCommit.prototype.raw_log = function(sha1) {
- var output = "commit " + sha1 + "\n";
- output = output + this.headers + "\n\n";
- var lines = this.message.split("\n");
- // Remove the last line which will be empty
- for(var i = 0; i < (lines.length > 1 ? lines.length - 1 : lines.length); i++) {
- output = output + ' ' + lines[i] + '\n';
- }
- // Return the output
- return output + '\n';
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/internal/git_tag.js b/node_modules/git/lib/git/internal/git_tag.js
deleted file mode 100644
index ee7886a..0000000
--- a/node_modules/git/lib/git/internal/git_tag.js
+++ /dev/null
@@ -1,69 +0,0 @@
-var util = require('util'),
- UserInfo = require('../user_info').UserInfo;
-
-var GitTag = exports.GitTag = function(object, type, tag, tagger, message, repository) {
- var _object = object, _type = type, _tag = tag, _tagger = tagger, _message = message, _repository = repository;
-
- Object.defineProperty(this, "repository", { get: function() { return _repository; }, set: function(value) { _repository = value; }, enumerable: true});
- Object.defineProperty(this, "object", { get: function() { return _object; }, set: function(value) { _object = value; }, enumerable: true});
- // Object.defineProperty(this, "type", { get: function() { return _type; }, set: function(value) { _type = value; }, enumerable: true});
- Object.defineProperty(this, "tag", { get: function() { return _tag; }, set: function(value) { _tag = value; }, enumerable: true});
- Object.defineProperty(this, "tagger", { get: function() { return _tagger; }, set: function(value) { _tagger = value; }, enumerable: true});
- Object.defineProperty(this, "message", { get: function() { return _message; }, set: function(value) { _message = value; }, enumerable: true});
- Object.defineProperty(this, "type", { get: function() { return "tag"; }, enumerable: true});
-
- Object.defineProperty(this, "raw_content", { get: function() {
- return "object " + _object + "\ntype " + _type + "\ntag " + _tag + "\ntagger " + _tagger + " " + _message + "\n\n";
- }, enumerable: false});
-}
-
-GitTag.from_raw = function(raw_object, repository) {
- var parts = raw_object.content.split("\n\n");
- var headers = parts.shift();
- var message = parts.join(/\n\n/);
-
- // Further split the headers
- headers = headers.split(/\n/).map(function(header) {
- var parts = header.split(/ /);
- return [parts.shift(), parts.join(" ")];
- })
-
- // Initialize base variables
- var object = '', type = '', tag = '', tagger = '';
-
- headers.forEach(function(header) {
- var key = header[0];
- var value = header[1];
-
- if(key == 'object') {
- object = value;
- } else if (key == 'type') {
- if(['blob', 'tree', 'commit', 'tag'].indexOf(value) == -1) {
- throw "invalid type in tag";
- }
- // Set the type
- type = value;
- } else if(key == 'tag') {
- tag = value;
- } else if(key == 'tagger') {
- tagger = new UserInfo(value);
- } else {
- util.puts("unknown header '" + key);
- }
- });
-
- // If we have an illegal tag object
- if(object == null || type == null || tag == null || tagger == null) {
- throw "incomplete raw tag object";
- }
- // Return the tag
- return new GitTag(object, type, tag, tagger, message, repository);
-}
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/internal/git_tree.js b/node_modules/git/lib/git/internal/git_tree.js
deleted file mode 100644
index 82661c4..0000000
--- a/node_modules/git/lib/git/internal/git_tree.js
+++ /dev/null
@@ -1,70 +0,0 @@
-var util = require('util'),
- BinaryParser = require('../binary_parser').BinaryParser,
- DirectoryEntry = require('../internal/directory_entry').DirectoryEntry;
-
-var GitTree = exports.GitTree = function(entries, repository) {
- var _entries = entries ? entries : [], _repository = repository;
-
- // Internal properties
- Object.defineProperty(this, "entries", { get: function() { return _entries; }, set: function(value) { _entries = value; }, enumerable: true});
- Object.defineProperty(this, "repository", { get: function() { return _repository; }, set: function(value) { _repository = value; }, enumerable: true});
- Object.defineProperty(this, "type", { get: function() { return "tree"; }, enumerable: true});
-
- // Raw content of commit
- Object.defineProperty(this, "raw_content", { get: function() {
- return _entries.map(function(e) {
- return [[e.format_mode, e.format_type, e.sha1].join(' '), e.name].join('\t')
- }).join('\n');
- }, enumerable: true});
-}
-
-var read_until_chr = function(index, content, char) {
- var found = false;
- var content_length = content.length;
- var chr_code = char.charCodeAt(0);
- var offset = 0;
-
- // Search until we locate the content
- while(!found && (index + offset) < content_length) {
- if(content.charCodeAt(index + offset) == chr_code) found = true;
- offset = offset + 1;
- }
-
- // Extract content and return
- return content.substr(index, offset - 1);
-}
-
-var to_hex_string = function(string) {
- var hexString = '';
- for(var index = 0; index < string.length; index++) {
- var value = BinaryParser.toByte(string.substr(index, 1));
- var number = value <= 15 ? "0" + value.toString(16) : value.toString(16);
- hexString = hexString + number;
- }
- return hexString;
-};
-
-// Create Tree Object from Raw stream
-GitTree.from_raw = function(raw_object, repository) {
- var entries = [];
- var index = 0;
- var content_length = raw_object.content.length;
- var content = raw_object.content;
-
- // Parse the content
- while(index < content_length) {
- var mode = read_until_chr(index, content, ' ');
- index = index + mode.length + 1;
- var file_name = read_until_chr(index, content, '\0');
- index = index + file_name.length + 1;
- var raw_sha = content.substr(index, 20);
- index = index + raw_sha.length;
- var sha = to_hex_string(raw_sha);
-
- // Add the Entry to the directory list
- entries.push(new DirectoryEntry(mode, file_name, sha));
- }
-
- // Return a tree with all the entries
- return new GitTree(entries, repository);
-}
diff --git a/node_modules/git/lib/git/loose_storage.js b/node_modules/git/lib/git/loose_storage.js
deleted file mode 100644
index 11639d3..0000000
--- a/node_modules/git/lib/git/loose_storage.js
+++ /dev/null
@@ -1,172 +0,0 @@
-var util = require('util'),
- fs = require('fs'),
- BinaryParser = require('./binary_parser').BinaryParser,
- Zlib = require('../zlib/zlib').Zlib,
- RawObject = require('./raw_object').RawObject,
- crypto = require('crypto'),
- zlib = require('zlib');
-
-var OBJ_TYPES = [null, "commit", "tree", "blob", "tag"];
-
-LooseStorage = exports.LooseStorage = function(directory) {
- var _directory = directory;
-
- Object.defineProperty(this, "directory", { get: function() { return _directory; }, set: function(value) { _directory = value; }, enumerable: true});
-}
-
-LooseStorage.prototype.find = function(sha1) {
- try {
- sha1 = to_hex_string(sha1);
- // If we don't have a valid sha
- if(sha1.length != 40) return null;
- // Directory path
- var path = this.directory + "/" + sha1.substring(0, 2) + '/' + sha1.substring(2, 40);
- return this.get_raw_object(fs.readFileSync(path));
- } catch(err) {
- return null;
- }
-}
-
-// Read and parse the raw object
-LooseStorage.prototype.get_raw_object = function(buf) {
- if(buf.length < 2) throw "object file too small";
-
- // Set up variables
- var type = null;
- var size = null;
- var used = null;
- var content = null;
-
- if(this.is_legacy_loose_object(buf)) {
- content = new Zlib.Unzip(buf).unzip();
- content = Array.isArray(content) ? content[0] : content;
- // Let's split the content up
- var parts = content.split(/\0/)
- var header = parts.shift();
- content = parts.join("\0");
-
- // if no header or content we got an invalid object header
- if(header == null || content == null) throw "invalid object header";
-
- // Split out the header
- parts = header.split(/ /);
- type = parts[0];
- size = parts[1];
- // Check that we have a valid type
- if(['blob', 'tree', 'commit', 'tag'].indexOf(type) == -1 || !size.match(/^\d+$/)) throw "invalid object header";
- // Convert parts
- size = parseInt(size, 10);
- } else {
- var parts = this.unpack_object_header_gently(buf);
- type = parts[0];
- size = parts[1];
- used = parts[2];
- // Unpack content
- content = new Zlib.Unzip(buf.slice(used, buf.length)).unzip();
- content = Array.isArray(content) ? content[0] : content;
- }
- // Return a raw object
- return new RawObject(type, content);
-}
-
-LooseStorage.prototype.unpack_object_header_gently = function(buf) {
- var used = 0
- var c = buf[used];
- used = used + 1;
-
- var type = (c >> 4) & 7;
- var size = c & 15;
- var shift = 4;
-
- while(c & 0x80 != 0) {
- if(buf.length <= used) throw "object file too short";
- // Get next char
- c = buf[used];
- used = used + 1;
- // Calculate size
- size = size + ((c & 0x7f) << shift);
- }
-
- // Fetch the type
- type = OBJ_TYPES[type];
- // Check that we have a valid type
- if(['blob', 'tree', 'commit', 'tag'].indexOf(type) == -1) throw "invalid loose object type";
- return [type, size, used];
-}
-
-LooseStorage.prototype.is_legacy_loose_object = function(buf) {
- var word = (buf[0] << 8) + buf[1];
- return buf[0] == 0x78 && word % 31 == 0;
-}
-
-var to_hex_string = function(string) {
- var hexString = '';
- for(var index = 0; index < string.length; index++) {
- var value = BinaryParser.toByte(string.substr(index, 1));
- var number = value <= 15 ? "0" + value.toString(16) : value.toString(16);
- hexString = hexString + number;
- }
- return hexString;
-};
-
-// currently, I'm using the legacy format because it's easier to do
-// this function takes content and a type and writes out the loose object and returns a sha
-LooseStorage.prototype.put_raw_object = function(content, type, callback) {
- var self = this;
- // Retrieve size of message
- var size = content.length.toString();
- // Verify that header is ok
- LooseStorage.verify_header(type, size);
- // Create header
- var header = "" + type + " " + size + "\0";
- var store = header + content;
- // Use node crypto library to create sha1 hash
- var hash = crypto.createHash("sha1");
- hash.update(store);
- // Return the hash digest
- var sha1 = hash.digest('hex');
- // Create path
- var path = this.directory + "/" + sha1.substr(0, 2) + '/' + sha1.substr(2);
-
- try {
- fs.statSync(path);
- } catch(err) {
- // Deflate the data
- var data = zlib.gunzip(store, function (err, buffer) {
- if (err) {
- throw err;
- }
-
- // File does not exist create the directory
- fs.mkdir(self.directory + "/" + sha1.substr(0, 2), 16877, function (err) {
- if (err) {
- throw err;
- }
-
- fs.writeFile(path, data, 'binary', function (err) {
- if (err) {
- throw err;
- }
-
- callback(sha1);
- });
- });
- });
- }
-}
-
-LooseStorage.verify_header = function(type, size) {
- if(["blob", "tree", "commit", "tag"].indexOf(type) == -1 || size.match(/^\d+$/) == null) {
- throw "invalid object header";
- }
-}
-
-
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/merge.js b/node_modules/git/lib/git/merge.js
deleted file mode 100644
index bcd4def..0000000
--- a/node_modules/git/lib/git/merge.js
+++ /dev/null
@@ -1,39 +0,0 @@
-var Merge = exports.Merge = function(str) {
- var _conflicts = 0, _text = {}, _sections = null;
- var section = 0;
- var status = Merge.STATUS_BOTH;
-
- Object.defineProperty(this, "conflicts", { get: function() { return _conflicts; }, set: function(value) { _conflicts = value; }, enumerable: true});
- Object.defineProperty(this, "text", { get: function() { return _text; }, set: function(value) { _text = value; }, enumerable: true});
- Object.defineProperty(this, "sections", { get: function() { return _sections; }, set: function(value) { _sections = value; }, enumerable: true});
-
- var lines = str.split("\n");
- lines.forEach(function(line) {
- if(line.match(/^<<<<<<< (.*?)/)) {
- status = Merge.STATUS_OURS;
- _conflicts = _conflicts + 1;
- section = section + 1;
- } else if(line == '=======') {
- status = Merge.STATUS_THEIRS;
- } else if(line.match(/^>>>>>>> (.*?)/)) {
- status = Merge.STATUS_BOTH;
- section = section + 1;
- } else {
- _text[section] = _text[section] == null ? {} : _text[section];
- _text[section][status] = _text[section][status] == null ? [] : _text[section][status];
- _text[section][status].push(line);
- }
- });
-
- // Let's set the values
- _text = Object.keys(_text).map(function(key) {
- return _text[key];
- });
- // Set the number of sections
- _sections = _text.length;
-}
-
-// Static function
-Merge.STATUS_BOTH = 'both';
-Merge.STATUS_OURS = 'ours';
-Merge.STATUS_THEIRS = 'theirs';
diff --git a/node_modules/git/lib/git/pack_storage.js b/node_modules/git/lib/git/pack_storage.js
deleted file mode 100644
index 113b8b3..0000000
--- a/node_modules/git/lib/git/pack_storage.js
+++ /dev/null
@@ -1,393 +0,0 @@
-var util = require('util'),
- fs = require('fs'),
- Buffer = require('buffer').Buffer,
- BinaryParser = require('./binary_parser').BinaryParser,
- FileWindow = require('./file_window').FileWindow,
- RawObject = require('./raw_object').RawObject;
- Zlib = require('../zlib/zlib').Zlib;
-
-var PACK_IDX_SIGNATURE = '\xfftOc';
-var FAN_OUT_COUNT = 256;
-var IDX_OFFSET_SIZE = 4;
-var OFFSET_SIZE = 4;
-var OFFSET_START = FAN_OUT_COUNT * IDX_OFFSET_SIZE;
-var SHA1_SIZE = 20;
-var CRC_SIZE = 4;
-var SHA1_START = OFFSET_START + OFFSET_SIZE;
-var ENTRY_SIZE = OFFSET_SIZE + SHA1_SIZE;
-var ENTRY_SIZE_V2 = SHA1_SIZE + CRC_SIZE + OFFSET_SIZE;
-
-// Default types
-var OBJ_NONE = 0;
-var OBJ_COMMIT = 1;
-var OBJ_TREE = 2;
-var OBJ_BLOB = 3;
-var OBJ_TAG = 4;
-var OBJ_OFS_DELTA = 6;
-var OBJ_REF_DELTA = 7;
-var OBJ_TYPES = [null, "commit", "tree", "blob", "tag"];
-
-var PackStorage = exports.PackStorage = function(file) {
- var _name = file, _cache = {}, _version = null, _offsets = null, _size = 0;
- // Replace idx reference with pack
- if(file.match(/\.idx$/)) {
- file = file.substr(0, file.length - 3) + "pack";
- }
-
- Object.defineProperty(this, "name", { get: function() { return _name; }, set: function(value) { _name = value; }, enumerable: true});
- Object.defineProperty(this, "cache", { get: function() { return _cache; }, set: function(value) { _cache = value; }, enumerable: true});
- Object.defineProperty(this, "version", { get: function() { return _version; }, set: function(value) { _version = value; }, enumerable: true});
- Object.defineProperty(this, "offsets", { get: function() { return _offsets; }, set: function(value) { _offsets = value; }, enumerable: true});
- Object.defineProperty(this, "size", { get: function() { return _size; }, set: function(value) { _size = value; }, enumerable: true});
- // Initialize pack
- init_pack(this);
-}
-
-// Search for a sha1 in the pack
-PackStorage.prototype.find = function(sha1) {
- // If we have the object in the cache return it
- if(this.cache[sha1]) return this.cache[sha1];
- // We need to search for the object in the pack file
- var offset = find_object(this, sha1);
- // If no object found return null
- if(!offset) return null;
- // Parse the object at the located offset
- var obj = this.parse_object(this, offset);
- this.cache[sha1] = obj;
- return obj;
-}
-
-// Close the pack (nothing should be open, might be able to remove this TODO)
-PackStorage.prototype.close = function() {
-}
-
-PackStorage.prototype.parse_object = function(pack, offset) {
- // Open the pack file
- var packfile = fs.openSync(pack.name, "r");
- var result = this.unpack_object(pack, packfile, offset);
- var data = result[0];
- var type = result[1];
- // Close the packfile
- fs.closeSync(packfile)
- return new RawObject(OBJ_TYPES[type], data);
-}
-
-PackStorage.prototype.unpack_object = function(pack, packfile, offset, options) {
- // Ensure valid options variable
- options = options ? options : {};
- var obj_offset = offset;
-
- // TODO TODO TODO TODO TODO TODO
- // TODO TODO TODO TODO TODO TODO
- // TODO TODO TODO TODO TODO TODO
-
- var buf = new Buffer(1);
- fs.readSync(packfile, buf, 0, 1, offset);
- // Fetch the first byte
- var c = buf[0];
- var size = c & 0xf
- var type = (c >> 4) & 7;
- var shift = 4;
- var offset = offset + 1;
- // unpack until we have decoded size
- while((c & 0x80) != 0) {
- fs.readSync(packfile, buf, 0, 1, offset);
- c = buf[0];
- // Adjust size for the byte
- size = size | ((c & 0x7f) << shift);
- shift = shift + 7;
- offset = offset + 1;
- }
-
- // If it's not a commit or tree and caching is enabled then return false
- if(!(type == OBJ_COMMIT || type == OBJ_TREE) && options['caching']) return [false, false];
- // Check the type of object and either unpack the delta or the compressed data (gziped)
- if(type == OBJ_OFS_DELTA || type == OBJ_REF_DELTA) {
- return this.unpack_deltified(packfile, type, offset, obj_offset, size, options);
- } else if(type == OBJ_COMMIT || type == OBJ_TREE || type == OBJ_BLOB || type == OBJ_TAG) {
- var data = unpack_compressed(pack, offset, size);
- return [data, type];
- } else {
- throw new "invalid type " + type;
- }
-}
-
-PackStorage.prototype.unpack_deltified = function(packfile, type, offset, obj_offset, size, options) {
- var data = new Buffer(SHA1_SIZE);
- // Read the SHA
- fs.readSync(packfile, data, 0, SHA1_SIZE, offset);
-
- if(type == OBJ_OFS_DELTA) {
- var i = 0;
- var c = data[i];
- var base_offset = c & 0x7f;
-
- while((c & 0x80) != 0) {
- c = data[++i];
- base_offset = base_offset + 1;
- base_offset = base_offset << 7;
- base_offset = base_offset | (c & 0x7f);
- }
-
- base_offset = obj_offset - base_offset;
- offset = offset + i + 1;
- } else {
- base_offset = find_object(this, data.toString())
- offset = offset + SHA1_SIZE;
- }
-
- // Fetch the object at this offset and unpack the result
- var object_array = this.unpack_object(this, packfile, base_offset);
- var base = object_array[0];
- var type = object_array[1];
- // If it's not a Commit or Tree return an empty delta
- if(!(type == OBJ_COMMIT || type == OBJ_TREE) && options['caching']) return [false, false];
- // Unpack the the data
- var delta = unpack_compressed(this, offset, size);
- var delta2 = patch_delta(base, delta);
- return [delta2, type];
-}
-
-var to_hex_string = function(string) {
- var hexString = '';
- for(var index = 0; index < string.length; index++) {
- var value = BinaryParser.toByte(string.substr(index, 1));
- var number = value <= 15 ? "0" + value.toString(16) : value.toString(16);
- hexString = hexString + number;
- }
- return hexString;
-};
-
-var patch_delta = function(base, delta) {
- var delta_header_parts = patch_delta_header_size(delta, 0);
- var src_size = delta_header_parts[0];
- var pos = delta_header_parts[1];
-
- if(src_size != base.length) throw "invalid delta data";
-
- delta_header_parts = patch_delta_header_size(delta, pos);
- var dest_size = delta_header_parts[0];
- pos = delta_header_parts[1];
- var dest = '';
-
- while(pos < delta.length) {
- var c = delta.charCodeAt(pos);
- pos = pos + 1;
-
- // Keep reading until end of data pack
- if((c & 0x80) != 0) {
- pos = pos - 1;
- var cp_off = 0;
- var cp_size = 0;
-
- if((c & 0x01) != 0) cp_off = delta.charCodeAt(pos += 1);
- if((c & 0x02) != 0) cp_off = cp_off | (delta.charCodeAt(pos += 1) << 8);
- if((c & 0x04) != 0) cp_off = cp_off | (delta.charCodeAt(pos += 1) << 16);
- if((c & 0x08) != 0) cp_off = cp_off | (delta.charCodeAt(pos += 1) << 24);
-
- if((c & 0x10) != 0) cp_size = delta.charCodeAt(pos += 1);
- if((c & 0x20) != 0) cp_size = cp_size | (delta.charCodeAt(pos += 1) << 8);
- if((c & 0x40) != 0) cp_size = cp_size | (delta.charCodeAt(pos += 1) << 16);
- if(cp_size == 0) cp_size = 0x10000;
-
- pos = pos + 1;
- dest = dest + base.substr(cp_off, cp_size);
- } else if(c != 0) {
- dest = dest + delta.substr(pos, c);
- pos = pos + c;
- } else {
- throw "invalid delta data";
- }
- }
-
- return dest;
-}
-
-var patch_delta_header_size = function(delta, pos) {
- var size = 0;
- var shift = 0;
-
- do {
- var c = delta.charCodeAt(pos);
- if(c == null) throw 'invalid delta data';
- pos = pos + 1;
- size = size | ((c & 0x7f) << shift);
- shift = shift + 7
-
- } while((c & 0x80) != 0);
-
- // Return the header size and position
- return [size, pos];
-}
-
-var unpack_compressed = function(pack, offset, destsize) {
- var outdata = "";
- var file_offset = offset;
- var packfile = fs.openSync(pack.name, "r");
-
- // Read in the compressed object (this could be huge :()
- // TODO TODO TODO, change unzip method to allow for initializing the structure and then decoding
- // pieces
- var indata = new Buffer(destsize + 100);
- var bytes_read = fs.readSync(packfile, indata, 0, destsize + 100, file_offset);
- // Close the file
- fs.closeSync(packfile);
- // Adjust the file_offset
- file_offset = file_offset + destsize;
- outdata = outdata + new Zlib.Unzip(indata).unzip();
-
- if(outdata.size > destsize) {
- throw "error reading pack data";
- }
- // Return the data read from the compressed block
- return outdata;
-}
-
-var find_object_in_index = function(pack, idx, sha1) {
- // Parse the first value of the sha as an index
- var slot = sha1.charCodeAt(0);
- if(slot == NaN) return null;
-
- // Unpack the variables
- var first = pack.offsets[slot];
- var last = pack.offsets[slot + 1];
-
- while(first < last) {
- var mid = parseInt((first + last) / 2);
- // If we have a version 2 pack file
- if(pack.version == 2) {
- // Fetch the sha1
- var midsha1 = idx.index([(OFFSET_START + (mid * SHA1_SIZE)), SHA1_SIZE]);
- var compare_sha1 = '';
- // Convert midsha1 to allow for correct string comparision
- for(var i = 0; i < midsha1.length; i++) {
- compare_sha1 = compare_sha1 + String.fromCharCode(midsha1[i]);
- }
-
- // Do a locale Compare
- var cmp = compare_sha1.localeCompare(sha1);
- if(cmp < 0) {
- first = mid + 1;
- } else if(cmp > 0) {
- last = mid;
- } else {
- var pos = OFFSET_START + (pack.size * (SHA1_SIZE + CRC_SIZE)) + (mid * OFFSET_SIZE);
- var offset = idx.index([pos, OFFSET_SIZE]);
- offset = BinaryParser.toInt(reverse_buffer(offset).toString('binary', 0, 4));
- return offset;
- }
- } else {
- var midsha1 = idx.index([SHA1_START + mid * ENTRY_SIZE, SHA1_SIZE]);
- var compare_sha1 = '';
- // Convert midsha1 to allow for correct string comparision
- for(var i = 0; i < midsha1.length; i++) {
- compare_sha1 = compare_sha1 + String.fromCharCode(midsha1[i]);
- }
-
- // Do a locale Compare
- var cmp = compare_sha1.localeCompare(sha1);
- if(cmp < 0) {
- first = mid + 1;
- } else if(cmp > 0) {
- last = mid;
- } else {
- var pos = OFFSET_START + mid * ENTRY_SIZE;
- var offset = idx.index([pos, OFFSET_SIZE]);
- offset = BinaryParser.toInt(reverse_buffer(offset).toString('binary', 0, 4));
- return offset;
- }
- }
- }
- return null;
-}
-
-var find_object = function(pack, sha1) {
- var obj = null;
- // Should I not use the cached version in the future ? TODO
- with_idx(pack, function(err, idx) {
- obj = find_object_in_index(pack, idx, sha1);
- })
-
- return obj;
-}
-
-var reverse_buffer = function(buffer) {
- var result_buffer = new Buffer(buffer.length);
- var length = buffer.length;
-
- for(var i = 0; i < length; i++) {
- result_buffer[length - 1 - i] = buffer[i];
- }
-
- return result_buffer;
-}
-
-var init_pack = function(pack) {
- // TODO TODO TODO
- with_idx(pack, function(err, idx) {
- // Reset pack offsets
- pack.offsets = [0];
- // Do a max of FAN_OUT_COUNT to avoid going crazy
- for(var i = 0; i < FAN_OUT_COUNT; i++) {
- // Each offset value is a 4 byte network encoded integer
- var pos = idx.index([i * IDX_OFFSET_SIZE, IDX_OFFSET_SIZE])
- pos = BinaryParser.toInt(reverse_buffer(pos).toString('binary', 0, 4));
- // If the position is less than the pack offset stored the pack index is corrupt
- if(pos < pack.offsets[i]) {
- throw "pack " + pack.name + " has discontinuous index " + i;
- }
- // Add offset position to list of tracked offsets
- pack.offsets.push(pos);
- }
- // Adjust the pack size
- pack.size = pack.offsets[pack.offsets.length - 1];
- // Close all files
- idx.close();
- });
-}
-
-var with_idx = function(pack, index_file, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- index_file = args.length ? args.shift() : null;
- // Final idx file name
- var idx_file_name = null;
- // Define file handle variable
- var idxfile = null;
-
- if(!index_file) {
- index_file = pack.name;
- idx_file_name = pack.name.substr(0, pack.name.length - 4) + "idx";
- idxfile = fs.openSync(pack.name.substr(0, pack.name.length - 4) + "idx", "r");
- } else {
- idx_file_name = index_file;
- idxfile = fs.openSync(index_file, "r");
- }
-
- // Read header
- var sign_buffer = new Buffer(4);
- var signature = '';
- fs.readSync(idxfile, sign_buffer, 0, 4);
- for(var i = 0; i < sign_buffer.length; i++) {
- signature = signature + BinaryParser.fromByte(sign_buffer[i]);
- }
-
- // Extract version of pack
- var ver_buffer = new Buffer(4);
- fs.readSync(idxfile, ver_buffer, 0, 4);
- var ver = BinaryParser.toInt(reverse_buffer(ver_buffer).toString('binary', 0, 4));
- // Close idx file
- fs.closeSync(idxfile);
- // If we have a IDX pack signature this is at least version 2 of the file format
- if(signature == PACK_IDX_SIGNATURE) {
- if(ver != 2) {
- throw ("pack " + pack.name + " has unknown pack file version " + ver);
- }
- pack.version = 2;
- } else {
- pack.version = 1;
- }
- // Create a file window and return it
- var idx = new FileWindow(idx_file_name, pack.version);
- callback(null, idx);
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/raw_object.js b/node_modules/git/lib/git/raw_object.js
deleted file mode 100644
index c363e5c..0000000
--- a/node_modules/git/lib/git/raw_object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var crypto = require('crypto'),
- util = require('util'),
- Buffer = require('buffer').Buffer,
- BinaryParser = require('./binary_parser').BinaryParser;
-
-var RawObject = exports.RawObject = function(type, content) {
- var _type = type, _content = content;
-
- Object.defineProperty(this, "type", { get: function() { return _type; }, set: function(value) { _type = value; }, enumerable: true});
- Object.defineProperty(this, "content", { get: function() { return _content; }, set: function(value) { _content = value; }, enumerable: true});
-}
-
-RawObject.prototype.sha1 = function(encoding) {
- type = type ? type : 'binary';
- // Create the basis for the digest
- var digest_content = this.type + " " + this.content.length + BinaryParser.fromByte(0) + this.content;
- // Use node crypto library to create sha1 hash
- var hash = crypto.createHash("sha1");
- hash.update(digest_content);
- // Return the hash digest
- return hash.digest('binary');
-}
-
-RawObject.prototype.sha1_hex = function() {
- this.sha1('hex');
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/ref.js b/node_modules/git/lib/git/ref.js
deleted file mode 100644
index b7eb2cd..0000000
--- a/node_modules/git/lib/git/ref.js
+++ /dev/null
@@ -1 +0,0 @@
-var Ref = exports.Ref = function() {}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/remote.js b/node_modules/git/lib/git/remote.js
deleted file mode 100644
index 6e0efd8..0000000
--- a/node_modules/git/lib/git/remote.js
+++ /dev/null
@@ -1,37 +0,0 @@
-var Commit = require('./commit').Commit;
-
-var Remote = exports.Remote = function(name, commit) {
- var _name = name;
- var _commit = commit;
- // Define the properties
- Object.defineProperty(this, "name", { get: function() { return _name; }, enumerable: true});
- Object.defineProperty(this, "commit", { get: function() { return _commit; }, enumerable: true});
-}
-
-var prefix = function(name) {
- return "refs/" + name + "s";
- }
-
-Remote.find_all = function(repo, options, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- options = args.length ? args.shift() : {};
-
- // Let's fetch the references
- repo.git.refs({}, prefix('remote'), function(err, refs) {
- if(err) return callback(err, refs);
- // Map the references
- var mapped_refs = refs.split(/\n/).map(function(ref) {
- // Fetch the name and id for the reference
- var split_reference = ref.split(/ /);
- var name = split_reference[0];
- var id = split_reference[1];
-
- // Create a commit object wit the id
- var commit = new Commit(repo, id);
- // Wrap the commit object in a head object and return mapped object
- return new Remote(name, commit);
- })
- callback(null, mapped_refs);
- })
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/repo.js b/node_modules/git/lib/git/repo.js
deleted file mode 100644
index 6913b4e..0000000
--- a/node_modules/git/lib/git/repo.js
+++ /dev/null
@@ -1,507 +0,0 @@
-var Head = require('./head').Head,
- Git = require('./git').Git,
- Commit = require('./commit').Commit,
- fs = require('fs'),
- util = require('util'),
- Tree = require('./tree').Tree,
- Blob = require('./blob').Blob,
- Head = require('./head').Head,
- Tag = require('./tag').Tag,
- Remote = require('./remote').Remote,
- Blame = require('./blame').Blame,
- CommitStats = require('./commit_stats').CommitStats,
- Config = require('./config').Config,
- Status = require('./status').Status,
- GitIndex = require('./git_index').GitIndex;
-
-var Repo = exports.Repo = function(path, options, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- options = args.length ? args.shift() : {};
-
- var _path = path;
- var _options = options;
- var _working_directory = _path;
- var _bare = true;
- var _git = null;
- var _config_object = null;
- // Create git object
- var self = this;
- // Control access to internal variables
- Object.defineProperty(this, "path", { get: function() { return _path; }, enumerable: true});
- Object.defineProperty(this, "options", { get: function() { return _options; }, enumerable: true});
- Object.defineProperty(this, "git", { get: function() { return _git; }, enumerable: true});
- Object.defineProperty(this, "config_object", { get: function() { return _config_object; }, enumerable: true});
- Object.defineProperty(this, "bare", { get: function() { return _bare; }, enumerable: true});
- Object.defineProperty(this, "working_directory", { get: function() { return _working_directory; }, enumerable: true});
-
- try {
- var epath = fs.realpathSync(path);
- // Todo checks on paths
- fs.stat(epath + "/.git", function(err, stat) {
- if(!err) {
- _working_directory = epath;
- _path = epath + "/.git";
- _bare = false;
- _git = new Git(_path);
- // Return the repo
- callback(null, self);
- } else {
- // Check if it's a bare or already is pointing to the .git directory
- fs.stat(epath, function(err, stat) {
- if(!err && stat.isDirectory() && (epath.match(/\.git$/) || options.is_bare)) {
- _path = epath;
- _bare = true;
- _git = new Git(_path);
- // Return the repo
- callback(null, self);
- } else if(!err && stat.isDirectory()) {
- callback("invalid git repository", null);
- } else {
- callback("no such path", null);
- }
- });
- }
- });
- } catch (err) {
- callback("no such path", null);
- }
-}
-
-// Fetch the current head
-Repo.prototype.head = function(callback) {
- Head.current(this, callback);
-}
-
-// Fetch the repo heads
-Repo.prototype.heads = function(callback) {
- Head.find_all(this, callback);
-}
-
-// Returns the tag objects that are available in this repo
-Repo.prototype.tags = function(callback) {
- Tag.find_all(this, callback);
-}
-
-// Fetch a set of commits
-Repo.prototype.commits = function(start, max_count, skip, callback) {
- var args = Array.prototype.slice.call(arguments, 0);
- callback = args.pop();
- start = args.length ? args.shift() : 'master';
- max_count = args.length ? args.shift() : 10;
- skip = args.length ? args.shift() : 0;
-
- var options = {max_count:max_count, skip:skip}
- // Locate all commits with the specified options
- Commit.find_all(this, start, options, callback);
-}
-
-// Fetch a specific commit
-Repo.prototype.commit = function(id, callback) {
- var options = {max_count:1};
- // Locate commits and return the first one
- Commit.find_all(this, id, options, function(err, commits) {
- if(err) return callback(err, commits);
- callback(null, commits[0]);
- })
-}
-
-// Fetch the commit count based on a start reference
-Repo.prototype.commit_count = function(start, callback) {
- start = start ? start : 'master';
- Commit.count(this, start, callback);
-}
-
-// Fetch a repository tree
-Repo.prototype.tree = function(treeish, paths, callback) {
- var args = Array.prototype.slice.call(arguments, 0);
- callback = args.pop();
- // Set variables to default values
- treeish = args.length ? args.shift() : 'master';
- paths = args.length ? args.shift() : [];
- // Construct the tree
- Tree.construct(this, treeish, paths, callback);
-}
-
-// Create a blob object
-Repo.prototype.blob = function(id, callback) {
- callback(null, new Blob(this, id));
-}
-
-// Initialize a bare git repository at the given path
-// path: full path to the repo (traditionally ends with /.git)
-// options: is any additional options to the git init command
-//
-// Examples
-// Repo.init_bare('/var/git/myrepo.git')
-//
-// Return repo (newly created repo)
-Repo.init_bare = function(path, git_options, repo_options, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- // Set variables to default values
- git_options = args.length ? args.shift() : {};
- repo_options = repo_options ? repo_options : {};
- // Set up bare option
- git_options['bare'] = true;
- repo_options['is_bare'] = true;
- // Create a git object
- var git = new Git(path);
- // Create the directory
- git.fs_mkdir('', function(err, result) {
- if(err) return callback(err, result);
- git.init(git_options, function(err, git) {
- if(err) return callback(err, git);
- new Repo(path, repo_options, callback);
- })
- })
-}
-
-// Fork a bare git repository from this repo
-// path: is the full path of the new repo (traditionally ends with /.git)
-// options: is additional options to the git clone command (:bare and :shared are true by default)
-//
-// Return repo (newly created forked repo)
-Repo.prototype.fork_bare = function(path, options, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- var self = this;
- // Set variables to default values
- options = args.length ? args.shift() : {};
- options['bare'] = true;
- options['shared'] = true;
- // Create a git object
- var git = new Git(path);
- git.fs_mkdir('', function(err, result) {
- if(err) return callback(err, result);
- self.git.clone(options, self.path, path, function(err, result) {
- if(err) return callback(err, result);
- new Repo(path, {is_bare:true}, callback);
- })
- })
-}
-
-// The diff from commit a to commit b, optionally restricted to the fiven file(s)
-// a: the base commit
-// b: the end commit
-// paths: optional list of file paths on which to restrict the diff
-Repo.prototype.diff = function(a, b, paths, callback) {
- var self = this;
- var args = Array.prototype.slice.call(arguments, 0); // XXX doesnt seem correct but it works for me
- callback = args.pop();
- b = args.length ? args.shift() : null;
- paths = args.length ? args.shift() : [];
-
- Commit.diff(this, a, b, paths, callback);
-}
-
-// The commit diff for the given commit
-// commit: the commit name/id
-//
-// Returns array of diff objects
-Repo.prototype.commit_diff = function(commit, callback) {
- Commit.diff(this, commit, callback);
-}
-
-// The list of alternates for this repo
-//
-// Returns array of string (pathnames of alternates)
-Repo.prototype.alternates = function(callback) {
- var alternates_path = "objects/info/alternates";
- var self = this;
-
- this.git.fs_exist(alternates_path, function(err, result) {
- if(err) return callback(err, result);
- if(!result) return callback(null, []);
- self.git.fs_read(alternates_path, function(err, data) {
- if(err) return callback(err, data);
- callback(null, data.trim().split("\n"));
- })
- });
-}
-
-// Sets the alternates
-// alts: array of string paths representing the alternates
-//
-// Returns nothing
-Repo.prototype.set_alternates = function(alts, callback) {
- var self = this;
- var fail_msg = null;
- // check all the entries
- for(var i = 0; i < alts.length; i++) {
-
- // Is sync underneath (to avoid to many files open)
- this.git.fs_exist(alts[i], function(err, result) {
- if(err) fail_msg = err;
- if(!result) fail_msg = "could not set alternates. alternate path " + alts[i] + " must exist";
- });
- }
-
- // If we have a fail message return
- if(fail_msg) { return callback(fail_msg, null); }
- // Otherwise let's set the alternate
- if(alts.length == 0) {
- this.git.fs_write('objects/info/alternates', '', callback);
- } else {
- this.git.fs_write('objects/info/alternates', alts.join("\n"), callback);
- }
-}
-
-// The commit log for a treeish
-//
-// Returns array of commits
-Repo.prototype.log = function(commit, path, options, callback) {
- var args = Array.prototype.slice.call(arguments, 0);
- callback = args.pop();
- var self = this;
- // Unpack variables
- commit = args.length ? args.shift() : 'master';
- path = args.length ? args.shift() : null;
- options = args.length ? args.shift() : {};
- // Merge in extra parameters
- options['pretty'] = "raw";
- // var arg = path ? [commit, '--', path] : [commit];
- // Extract the commits
- this.git.log(commit, path, options, function(err, commits) {
- if(err) return callback(err, commits);
- callback(null, Commit.list_from_string(self, commits))
- });
-}
-
-// Returns a list of commits that is in other_repo but not in self
-//
-// Returns array of commits
-Repo.prototype.commit_deltas_from = function(other_repo, reference, other_reference, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- var self = this;
- // Unpack variables
- reference = args.length ? args.shift() : 'master';
- other_reference = args.length ? args.shift() : 'master';
- // Let's fetch revlist
- self.git.rev_list({}, reference, function(err, rev_text) {
- if(err) return callback(err, rev_text);
- var repo_refs = rev_text.trim().split("\n");
-
- other_repo.git.rev_list({}, other_reference, function(err, other_rev_text) {
- if(err) return callback(err, other_rev_text);
- var other_repo_refs = other_rev_text.trim().split("\n");
-
- // Subtract the references from other references
- // create map for the array to avoid binary searches
- var repo_ref_map = {};
- repo_refs.forEach(function(line) {
- repo_ref_map[line] = 1;
- });
-
- // Subtract one array from the other
- var intersection = other_repo_refs.filter(function(line) { return !repo_ref_map[line]; })
- // Returned commits
- var commits = [];
- // Process all the intersected values
- for(var i = 0; i < intersection.length; i++) {
- var ref = intersection[i];
- Commit.find_all(other_repo, ref, {max_count:1}, function(err, ref_commits) {
- commits.push(ref_commits[0]);
- })
- }
-
- // Return the commits
- callback(null, commits);
- })
- });
-}
-
-// An array of ref objects representing the refs in this repo
-//
-// Returns array of references (baked)
-Repo.prototype.refs = function(callback) {
- var self = this;
- // Let's fetch all the references for the head
- Head.find_all(self, function(err, head_refs) {
- if(err) return callback(err, head_refs);
- // Fetch all the references for the tags
- Tag.find_all(self, function(err, tag_refs) {
- if(err) return callback(err, tag_refs);
- // Fetch all the remote references
- Remote.find_all(self, function(err, remote_refs) {
- if(err) return callback(err, remote_refs);
- // Return the complete list of references
- callback(null, head_refs.concat(tag_refs, remote_refs));
- });
- });
- });
-}
-
-// Chomp text removing end carriage returns
-var chomp = function chomp(raw_text) {
- return raw_text.replace(/(\n|\r)+$/, '');
-}
-
-// The project's description, Taken directly from /description file in the repo
-//
-// Return string
-Repo.prototype.description = function(callback) {
- this.git.fs_read('description', function(err, data) {
- if(err) return callback(err, data);
- callback(null, chomp(data.toString()));
- });
-}
-
-// Update a reference
-// head: reference name
-// commit_sha: commit to update
-//
-// Return commit_sha
-Repo.prototype.update_ref = function(head, commit_sha, callback) {
- if(!commit_sha || commit_sha.length != 40) return callback('not a legal commit sha', null);
- this.git.fs_write("refs/heads/" + head, commit_sha, function(err, result) {
- if(err) return callback(err, result);
- callback(null, commit_sha);
- });
-}
-
-// Get a specific head by name
-// head_name: name of the head
-//
-// Return the head object
-Repo.prototype.get_head = function(head_name, callback) {
- this.heads(function(err, heads) {
- if(err) return callback(err, heads);
- for(var i = 0; i < heads.length; i++) {
- if(heads[i].name == head_name) return callback(null, heads[i])
- }
- // No head found
- callback(null, null);
- });
-}
-
-// Return a blam object
-// file: name of file we want to locate blame for
-// commit: the commit sha for the blame
-//
-// Return blame object
-Repo.prototype.blame = function(file, commit, callback) {
- new Blame(this, file, commit, callback);
-}
-
-// Returns a stats object about the commits for the repo
-// start: start commit or name
-// max_count: maximum count traversing
-// skip: Number of commits to skip
-Repo.prototype.commit_stats = function(start, max_count, skip, callback) {
- var args = Array.prototype.slice.call(arguments, 0);
- callback = args.pop();
- var self = this;
- // Unpack variables
- start = args.length ? args.shift() : 'master';
- max_count = args.length ? args.shift() : 10;
- skip = args.length ? args.shift() : 0;
-
- // Build options hash
- var options = {max_count:max_count, skip:skip};
- // Fetch all the commit stats
- CommitStats.find_all(self, start, options, callback);
-}
-
-// Commits current index
-//
-// Return true/false if commit worked
-Repo.prototype.commit_index = function(message, callback) {
- this.git.commit({}, '-m' + message, callback);
-}
-
-// Commits all tracked and modified files
-//
-// Return true/false if commit worked
-Repo.prototype.commit_all = function(message, callback) {
- this.git.commit({}, '-a', '-m' + message, callback);
-}
-
-// Fetch the config for the repo
-//
-// Returns assoc array with config options
-Repo.prototype.config = function(callback) {
- if(this.config_object) return callback(null, this.config_object);
- callback(null, new Config(this));
-}
-
-// Gotten from
-var flatten = function(array) {
- return array.reduce(function(a,b) {
- return a.concat(b);
- }, []);
-}
-
-// Adds files to the index
-Repo.prototype.add = function(files, callback) {
- var flattened_files = null;
- // Let's unpack the variables
- var args = Array.prototype.slice.call(arguments, 0);
- // Pop the callback
- var callback = args.pop();
-
- if(Array.isArray(files)) {
- flattened_files = flatten(files);
- } else if(args.length > 1){
- flattened_files = flatten(args);
- } else {
- flattened_files = [files];
- }
- // Add the parameters
- flattened_files.unshift({});
- flattened_files.push(callback);
- // Execut add function against git repo
- this.git.add.apply(this.git, flattened_files);
-}
-
-// Removes files to the index
-Repo.prototype.remove = function(files, callback) {
- var flattened_files = null;
- // Let's unpack the variables
- var args = Array.prototype.slice.call(arguments, 0);
- // Pop the callback
- var callback = args.pop();
-
- if(Array.isArray(files)) {
- flattened_files = flatten(files);
- } else if(args.length > 1){
- flattened_files = flatten(args);
- } else {
- flattened_files = [files];
- }
- // Add the parameters
- flattened_files.unshift({});
- flattened_files.push(callback);
- // Execut add function against git repo
- this.git.remove.apply(this.git, flattened_files);
-}
-
-// Fetch repo status
-Repo.prototype.status = function(callback) {
- new Status(this, callback);
-}
-
-// Array off Remote objects representing the remote branches in
-// this repo
-//
-// Return array of remote references (baked)
-Repo.prototype.remotes = function(callback) {
- Remote.find_all(this, callback);
-}
-
-// Validate if something is a head
-//
-// Return head
-Repo.prototype.is_head = function(head_name, callback) {
- this.get_head(head_name, function(err, head) {
- if(err) return callback(err, head);
- var exists = head == null ? false : true;
- callback(null, exists);
- });
-}
-
-Repo.prototype.index = function(callback) {
- callback(null, new GitIndex(this));
-}
-
diff --git a/node_modules/git/lib/git/repository.js b/node_modules/git/lib/git/repository.js
deleted file mode 100644
index 73c8ff2..0000000
--- a/node_modules/git/lib/git/repository.js
+++ /dev/null
@@ -1,764 +0,0 @@
-var util = require('util'),
- GitObject = require('./git_object').GitObject,
- fs = require('fs'),
- LooseStorage = require('./loose_storage').LooseStorage,
- PackStorage = require('./pack_storage').PackStorage,
- BinaryParser = require('./binary_parser').BinaryParser;
-
-Repository = exports.Repository = function(git_directory, options) {
- var _git_directory = git_directory;
- var _options = options ? options : {};
- var _packs = [];
- var _loose = null;
- var _already_searched = {};
- var self = this;
-
- Object.defineProperty(this, "git_directory", { get: function() { return _git_directory; }, set: function(value) { _git_directory = value; }, enumerable: true});
- Object.defineProperty(this, "options", { get: function() { return _options; }, set: function(value) { _options = value; }, enumerable: true});
- Object.defineProperty(this, "already_searched", { get: function() { return _already_searched; }, set: function(value) { _already_searched = value; }, enumerable: true});
- Object.defineProperty(this, "packs", { get: function() { return _packs; }, set: function(value) { _packs = value; }, enumerable: true});
- Object.defineProperty(this, "loose", { get: function() { return _loose; }, set: function(value) { _loose = value; }, enumerable: true});
-}
-
-// Chomp text removing end carriage returns
-var chomp = function chomp(raw_text) {
- return raw_text.replace(/(\n|\r)+$/, '');
-}
-
-var truncate_array = function(array, sha) {
-
-}
-
-// takes the following options:
-// :since - Time object specifying that you don't want commits BEFORE this
-// :until - Time object specifying that you don't want commit AFTER this
-// :first_parent - tells log to only walk first parent
-// :path_limiter - string or array of strings to limit path
-// :max_count - number to limit the output
-Repository.prototype.log = function(sha, options, callback) {
- this.already_searched = {}
- return walk_log(this, sha, options);
-}
-
-var close = function(repo) {
- if(repo.packs) {
- repo.packs.forEach(function(pack) {
- pack.close();
- });
- }
-}
-
-var git_path = function(repo, path) { return repo.git_directory + "/" + path; }
-
-var initloose = function(repo) {
- repo.loaded = [];
- repo.loose = [];
- load_loose(repo, git_path(repo, 'objects'));
- load_alternate_loose(repo, git_path(repo, 'objects'));
- return repo.loose;
-}
-
-var load_loose = function(repo, path) {
- repo.loaded.push(path);
- try {
- fs.statSync(path);
- repo.loose.push(new LooseStorage(path));
- } catch (err) {
- return;
- }
-}
-
-var load_alternate_loose = function(repo, path) {
- // load alternate loose too
- var alt = path + '/info/alternates';
- try {
- fs.statSync(alt);
- // Read and process all entries in the directory
- var lines = fs.readFileSync(alt, 'utf8').split('\n');
- lines.length > 0 && lines[lines.length - 1] == '' ? lines.pop() : null;
- // Iterate over alternate loose storage locations
- lines.forEach(function(line) {
- // Only load the path once
- if(repo.loaded.indexOf(chomp(line)) == -1) {
- if(line.substr(0, 2) == "..") {
- line = fs.realpathSync(repo.git_directory + "/" + line);
- }
-
- load_loose(repo, chomp(line));
- load_alternate_loose(repo, chomp(line));
- }
- });
- } catch(err) {}
-}
-
-var initpacks = function(repo) {
- close(repo);
- repo.loaded_packs = [];
- repo.packs = [];
- load_packs(repo, git_path(repo, "objects/pack"));
- load_alternate_packs(repo, git_path(repo, "objects"));
- return repo.packs;
-}
-
-var load_packs = function(repo, path) {
- repo.loaded_packs.push(path);
- try {
- fs.statSync(path);
- // Read and process all entries in the directory
- fs.readdirSync(path).forEach(function(entry) {
- // If we have a pack file create a new storage object
- if(entry.match(/\.pack$/i)) {
- var pack = new PackStorage(path + "/" + entry);
- // If we have specified the map for the pack then load the entire object map
- if(repo.options["map_packfile"]) {
- pack.cache_objects();
- }
- // Add pack to list of packs in the repo
- repo.packs.push(pack)
- }
- });
- } catch (err) {
- }
-}
-
-var load_alternate_packs = function(repo, path) {
- var alt = path + "/info/alternates";
-
- try {
- fs.statSync(alt);
- // Read and process all entries in the directory
- var lines = fs.readFileSync(alt, 'utf8').split('\n');
- lines.length > 0 && lines[lines.length - 1] == '' ? lines.pop() : null;
-
- lines.forEach(function(line) {
- if(line.substr(0, 2) == "..") {
- line = fs.realpathSync(repo.git_directory + "/" + line);
- }
-
- // Get pack file name
- var full_pack = chomp(line) + "/pack";
- if(repo.loaded_packs.indexOf(full_pack) == -1) {
- load_packs(repo, full_pack);
- load_alternate_packs(repo, chomp(line));
- }
- })
- } catch(err) {
- }
-}
-
-var get_raw_object_by_sha1 = function(repo, sha1o) {
- if(!sha1o || sha1o == "" || sha1o.constructor != String) throw "no such sha found";
-
- var sha1 = '';
- for(var i = 0; i < sha1o.length; i = i + 2) {
- sha1 = sha1 + String.fromCharCode(parseInt(sha1o.substr(i, 2), 16));
- }
- // Init packs if we have none set yet
- if(!repo.packs) initpacks(repo);
- // Try packs
- var packs = repo.packs;
- for(var i = 0; i < packs.length; i++) {
- var o = packs[i].find(sha1);
- if(o != null) return o;
- }
-
- if(!repo.loose) initloose(repo);
- // Try loose storage
- var looses = repo.loose;
- for(var i = 0; i < looses.length; i++) {
- var o = looses[i].find(sha1);
- if(o) return o;
- }
-
- // try packs again maybe the object got packed in the meantime
- initpacks(repo);
- // Try packs
- var packs = repo.packs;
- for(var i = 0; i < packs.length; i++) {
- var o = packs[i].find(sha1);
- if(o != null) return o;
- }
-
- // No results throw an error that no sha pack object was found
- throw "no such sha found";
-}
-
-Repository.prototype.get_object_by_sha1 = function(sha1) {
- var r = get_raw_object_by_sha1(this, sha1);
- if(!r) return null;
- return GitObject.from_raw(r, this);
-}
-
-// returns true if the files in the path_limiter were changed or no path limiter
-// used by the log() function when passed with a path_limiter
-Repository.prototype.files_changed = function(tree_sha1, tree_sha2, path_limiter) {
- if(path_limiter == null) return true;
- // We got a path limiter, let's perform the diff to check for changes
- var mod = this.quick_diff(tree_sha1, tree_sha2);
- var files = mod.map(function(c) { return c[0]; });
- path_limiter = Array.isArray(path_limiter) ? path_limiter : path_limiter != null ? [path_limiter] : [];
-
- for(var i = 0; i < path_limiter.length; i++) {
- if(files.indexOf(path_limiter[i]) != -1) return true;
- }
- return false;
-}
-
-// Returns the raw file contents of this sha
-Repository.prototype.cat_file = function(sha) {
- return this.get_object_by_sha1(sha).raw_content;
-}
-
-// Returns the file size (as an int) of this sha
-Repository.prototype.cat_file_size = function(sha) {
- return get_raw_object_by_sha1(this, sha).content.length;
-}
-
-// Returns the file type as string of this sha
-Repository.prototype.cat_file_type = function(sha) {
- return get_raw_object_by_sha1(this, sha).type;
-}
-
-// returns the raw (cat-file) output for a tree
-// if given a commit sha, it will print the tree of that commit
-// if given a path limiter array, it will limit the output to those
-// if asked for recursive trees, will traverse trees
-Repository.prototype.ls_tree = function(sha, paths, recursive) {
- var self = this;
- paths = paths ? paths : [];
- recursive = recursive ? recursive : false;
-
- try {
- if(paths.length > 0) {
- // pathing
- var part = [];
- paths.forEach(function(path) {
- part = part.concat(self.ls_tree_path(sha, path));
- })
- // Return the parts
- return part.join("\n");
- } else {
- return this.get_raw_tree(sha, recursive);
- }
- } catch (err) {
- return '';
- }
-}
-
-Repository.prototype.get_raw_tree = function(sha, recursive) {
- var self = this;
- recursive = recursive ? recursive : false;
- var tree = null;
-
- var o = get_raw_object_by_sha1(this, sha);
- if(o.type == 'commit') {
- tree = this.get_object_by_sha1(sha).tree;
- } else if(o.type == 'tag') {
- var commit_sha = this.get_object_by_sha1(sha).object;
- tree = this.get_object_by_sha1(commit_sha).tree;
- } else if(o.type == 'tree') {
- tree = sha;
- } else {
- return null;
- }
-
- // If recursive execute next level of trees otherwise return the raw file
- return recursive ? this.get_raw_trees(tree) : this.cat_file(tree);
-}
-
-// Grabs tree contents recursively,
-// e.g. `git ls-tree -r sha`
-Repository.prototype.get_raw_trees = function(sha, path) {
- var self = this;
- path = path ? path : '';
- var out = '';
-
- this.cat_file(sha).split('\n').forEach(function(line) {
- var parts = line.split(/\s/);
- var mode = parts[0], type = parts[1], sha = parts[2], name = parts[3];
-
- if(type == 'tree') {
- var full_name = path.length == 0 ? name : (path + '/' + name);
- out = out + self.get_raw_trees(sha, full_name);
- } else if(path.length == 0) {
- out = out + line + '\n';
- } else {
- out = out + line.replace(new RegExp(name, 'g'), (path + '/' + name)) + '\n';
- }
- });
- // Return the out
- return out;
-}
-
-// return array of tree entries
-// TODO : refactor this to remove the fugly
-Repository.prototype.ls_tree_path = function(sha, path, append) {
- var self = this;
- var tree = this.get_raw_tree(sha);
-
- if(path.match(/\//)) {
- var paths = path.split('/');
- paths.length > 0 && paths[paths.length - 1] == '' ? paths.pop() : null;
- var last = path.substr(path.length - 1, 1);
-
- if((last == '/') && (paths.length == 1)) {
- var append = append ? (append + "/" + paths[0]) : paths[0];
- var dir_name = tree.split('\n').filter(function(p) { return p.split('\t')[1] == paths[0]; })[0];
-
- if(dir_name == null) throw "no such path";
- var next_sha = dir_name.split(/ |\t/)[2];
- var tree = self.get_raw_tree(next_sha);
-
- tree = tree.split('\n');
-
- if(append) {
- var mod_tree = [];
- tree.forEach(function(ent) {
- var parts = ent.split('\t');
- var info = parts[0], fpath = parts[1];
- mod_tree.push([info, (append + "/" + fpath)].join('\t'));
- });
- return mod_tree;
- } else {
- return tree;
- }
- } else {
- if(tree == null) throw "no such path";
- var next_path = paths.shift();
- var dir_name = tree.split('\n').filter(function(p) { return p.split('\t')[1] == next_path; })[0];
- if(dir_name == null) throw "no such path";
- var next_sha = dir_name.split(/ |\t/)[2];
- next_path = append ? (append + "/" + next_path) : next_path;
-
- if(last == '/') {
- return self.ls_tree_path(next_sha, (paths.join('/') + '/'), next_path);
- } else {
- return self.ls_tree_path(next_sha, paths.join('/'), next_path);
- }
- }
- } else {
- if(tree == null) throw "no such path";
- var tree = tree.split('\n');
- tree = tree.filter(function(p) { return p.split('\t')[1] == path; });
-
- if(append) {
- var mod_tree = [];
- tree.forEach(function(ent) {
- var parts = ent.split('\t');
- var info = parts[0], fpath = parts[1];
- mod_tree.push([info, (append + '/' + fpath)].join('\t'));
- });
- return mod_tree;
- } else {
- return tree;
- }
- }
-}
-
-// takes 2 tree shas and recursively walks them to find out what
-// files or directories have been modified in them and returns on
-// array of changes
-// [ [full_path, 'added', tree1_hash, nil],
-// [full_path, 'removed', nil, tree2_hash],
-// [full_path, 'modified', tree1_hash, tree2_hash]
-// ]
-Repository.prototype.quick_diff = function(tree1, tree2, path, recurse) {
- var self = this;
- path = path ? path : '.';
- recurse = recurse ? recurse : true;
- // Handle empty trees
- var changed = [];
- if(tree1 == tree2) return changed;
-
- var t1 = tree1 ? this.list_tree(tree1) : null;
- var t2 = tree2 ? this.list_tree(tree2) : null;
-
- // Check that we have tree 1 blob differences
- if(t1) {
- Object.keys(t1['blob']).forEach(function(file) {
- var hsh = t1['blob'][file];
- // Fetch the same file in tree 2
- var t2_file = t2 ? t2['blob'][file] : null;
- var full = path + "/" + file;
- if(!t2_file) {
- changed.push([full, 'added', hsh['sha'], null]); // not in parent
- } else if(hsh['sha'] != t2_file['sha']) {
- changed.push([full, 'modified', hsh['sha'], t2_file['sha']]); // file changed
- }
- });
- }
-
-
- // Check tree 2 blobs
- if(t2) {
- Object.keys(t2['blob']).forEach(function(file) {
- var hsh = t2 ? t2['blob'][file] : null;
- if(t1 == null || t1['blob'][file] == null) {
- changed.push([path + "/" + file, 'removed', null, hsh['sha']]);
- }
- });
- }
-
- // Check for all the tree objects
- if(t1) {
- Object.keys(t1['tree']).forEach(function(dir) {
- var hsh = t1['tree'][dir];
- var t2_tree = t2 ? t2['tree'][dir] : null;
- var full = path + "/" + dir;
-
- if(!t2_tree) {
- if(recurse) {
- changed = changed.concat(self.quick_diff(hsh['sha'], null, full, true));
- } else {
- changed.push([full, 'added', hsh['sha', null]]);
- }
- } else if(hsh['sha'] != t2_tree['sha']) {
- if(recurse) {
- changed = changed.concat(self.quick_diff(hsh['sha'], t2_tree['sha'], full, true));
- } else {
- changed.push([full, 'modified', hsh['sha'], t2_tree['sha']]);
- }
- }
- });
- }
-
- if(t2) {
- Object.keys(t2['tree']).forEach(function(dir) {
- var hsh = t2['tree'][dir];
- var t1_tree = t1 ? t1['tree'][dir] : null;
-
- if(!t1_tree) {
- if(recurse) {
- changed = changed.concat(self.quick_diff(null, hsh['sha'], full, true));
- } else {
- changed.push([full, 'removed', null, hsh['sha']]);
- }
- }
- });
- }
- // Return all the changed files
- return changed;
-}
-
-// returna 2-d hash of the tree
-// ['blob']['FILENAME'] = {:mode => '100644', :sha => SHA}
-// ['tree']['DIRNAME'] = {:mode => '040000', :sha => SHA}
-Repository.prototype.list_tree = function(sha) {
- var data = {blob:{}, tree:{}, link:{}, commit:{}};
- var object = this.get_object_by_sha1(sha);
- object.entries.forEach(function(entry) {
- data[entry.format_type][entry.name] = {mode:entry.format_type, sha:entry.sha1};
- });
-
- return data;
-}
-
-var walk_log = function(repo, sha, options, total_size) {
- if(total_size == null) total_size = 0;
- if(repo.already_searched[sha]) return [];
- // Add the sha to the list of allready searched for sha's
- repo.already_searched[sha] = true;
- // Empty array
- var array = [];
- var o = null, commit_sha = null, c = null, output = null;
-
- if(sha) {
- // Get the raw object
- o = get_raw_object_by_sha1(repo, sha);
-
- // Create a git object from the raw object
- if(o.type == "tag") {
- commit_sha = repo.get_object_by_sha1(sha).object;
- c = repo.get_object_by_sha1(commit_sha);
- } else {
- c = GitObject.from_raw(o, repo);
- }
-
- // If it is not a commit
- if(c.type != "commit") return [];
-
- // Add sha
- var add_sha = true;
- // Check if the commit should be in the results
- if(options["since"] && (options["since"] && options["since"].constructor == Date) && (options["since"] > c.committer.date)) {
- add_sha = false;
- }
- if(options["until"] && (options["until"] && options["until"].constructor == Date) && (options["until"] < c.committer.date)) {
- add_sha = false;
- }
-
- // Follow all parents unless --first-parent is specified
- var subarray = [];
-
- if(c.parent.length == 0 && options["path_limiter"]) {
- add_sha = false;
- }
-
- if(options["max_count"] == null || ((array.length + total_size) < options["max_count"])) {
- if(options["path_limiter"] == null) {
- output = c.raw_log(sha);
- array.push([sha, output, c.committer.date]);
- }
-
- if(options["max_count"] != null && (array.length + total_size) >= options["max_count"]) {
- return array;
- }
-
- for(var i = 0; i < c.parent.length; i++) {
- var psha = c.parent[i];
- var tree = repo.get_object_by_sha1(psha).tree;
-
- if(psha && !repo.files_changed(c.tree, tree, options["path_limiter"])) {
- add_sha = false;
- }
-
- // Walk the next level of the tree
- var results = walk_log(repo, psha, options, (array.length + total_size));
- subarray = subarray.concat(results);
- if(options["first_parent"]) break;
- }
-
- if(options["path_limiter"] != null && add_sha) {
- output = c.raw_log(sha);
- array.push([sha, output, c.comitter.date]);
- }
-
- if(add_sha) {
- array = array.concat(subarray);
- }
- }
- }
- // Return all the commits
- return array;
-}
-
-var convert = function(d) {
- return (
- d.constructor === Date ? d :
- d.constructor === Array ? new Date(d[0],d[1],d[2]) :
- d.constructor === Number ? new Date(d) :
- d.constructor === String ? new Date(d) :
- typeof d === "object" ? new Date(d.year,d.month,d.date) :
- NaN
- );
-}
-
-var compare = function(a,b) {
- return (
- isFinite(a=convert(a).valueOf()) &&
- isFinite(b=convert(b).valueOf()) ?
- (a>b)-(a => { 'url' => , 'id' => } }
-// Returns {} if no .gitmodules file was found
-Submodule.config = function(repo, ref, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- ref = args.length ? args.shift() : 'master';
-
- // Fetch code
- repo.commit(ref, function(err, commit) {
- if(err) return callback(err, commit);
- // Fetch the blob
- var blob = commit.tree.find('.gitmodules');
- // If there is no blob return an empty object
- if(blob == null) return callback(null, {});
- // Parse all the lines
- var lines = blob.data.trim().replace(/\r\n?/g, "\n").split("\n");
- var config = {};
- var current = null;
-
- lines.forEach(function(line) {
- if(line.match(/^\[submodule "(.+)"\]$/)) {
- var parts = line.match(/^\[submodule "(.+)"\]$/);
- current = parts[1];
- config[current] = {};
- config[current]['id'] = commit.tree.find(current).id;
- } else if(line.match(/^\t(\w+) = (.+)$/)) {
- var parts = line.match(/^\t(\w+) = (.+)$/);
- config[current][parts[1]] = parts[2];
- if(parts[1] == 'path') {
- config[current]['id'] = commit.tree.find(parts[2]).id;
- }
- } else {}
- });
- // Return the config
- callback(null, config);
- });
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/git/tag.js b/node_modules/git/lib/git/tag.js
deleted file mode 100644
index 731f374..0000000
--- a/node_modules/git/lib/git/tag.js
+++ /dev/null
@@ -1,41 +0,0 @@
-var Commit = require('./commit').Commit;
-
-var Tag = exports.Tag = function(name, commit) {
- var _name = name;
- var _commit = commit;
- // Define the properties
- Object.defineProperty(this, "name", { get: function() { return _name; }, enumerable: true});
- Object.defineProperty(this, "commit", { get: function() { return _commit; }, enumerable: true});
-}
-
-var prefix = function(name) {
- return "refs/" + name + "s";
- }
-
-Tag.find_all = function(repo, options, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- options = args.length ? args.shift() : {};
-
- // Let's fetch the references
- repo.git.refs({}, prefix('tag'), function(err, refs) {
- if(err) return callback(err, refs);
- if(!refs) return callback(null, []);
- // Map the references
- var mapped_refs = refs.split(/\n/).map(function(ref) {
- // Fetch the name and id for the reference
- var split_reference = ref.split(/ /);
- var name = split_reference[0];
- var id = split_reference[1];
- // Ensure we have the right id (if it's a tag it's the actual commit of the tag not the tag id)
- var cid = repo.git.commit_from_sha(id)
- if(cid == '') throw "unknown object type";
- // Create a commit object wit the id
- var commit = new Commit(repo, cid);
- // Wrap the commit object in a head object and return mapped object
- return new Tag(name, commit);
- })
-
- callback(null, mapped_refs);
- })
-}
diff --git a/node_modules/git/lib/git/tree.js b/node_modules/git/lib/git/tree.js
deleted file mode 100644
index 05358e0..0000000
--- a/node_modules/git/lib/git/tree.js
+++ /dev/null
@@ -1,159 +0,0 @@
-var util = require('util'),
- Submodule = require('./sub_module').Submodule,
- Blob = require('./blob').Blob;
-
-var Tree = exports.Tree = function(repo, id, mode, name, contents) {
- var _repo = repo, _id = id, _contents = contents, _mode = mode, _name = name;
-
- // Internal properties
- Object.defineProperty(this, "repo", { get: function() { return _repo; }, set: function(value) { _repo = value; }, enumerable: true});
- Object.defineProperty(this, "id", { get: function() { return _id; }, set: function(value) { _id = value; }, enumerable: true});
- Object.defineProperty(this, "mode", { get: function() { return _mode; }, set: function(value) { _mode = value; }, enumerable: true});
- Object.defineProperty(this, "name", { get: function() { return _name; }, set: function(value) { _name = value; }, enumerable: true});
- Object.defineProperty(this, "contents", { get: function() {
- _contents = lazy_reader(_repo, _id, 'contents', _contents);
- return _contents;
- }, set: function(value) { _contents = value; }, enumerable: true});
-
- // Return the base name
- Object.defineProperty(this, "basename", { get: function() {
- if(_name) {
- var parts = _name.split("/");
- return parts[parts.length - 1];
- } else {
- return null;
- }
- }, enumerable: false});
-}
-
-var lazy_reader = function(repo, id, type, variable) {
- if(variable != null) return variable;
- // Control the flow
- var done = false;
- var value = [];
-
- // Fetch the content
- repo.git.ls_tree(id, [], {}, function(err, text) {
- if(err) return done = true;
- // Split the output
- var lines = text.split("\n");
- // Create objects for all the entries
- for(var i = 0; i < lines.length; i++) {
- Tree.content_from_string(repo, lines[i], function(err, entry) {
- value.push(entry);
- });
- }
-
- done = true;
- })
-
- while(!done) {};
- return value ? value : '';
-}
-
-// Construct the contents of the tree
-// repo: the current rep
-// treeish: the reference
-// paths: optional array of directory paths to restrict the tree
-Tree.construct = function(repo, treeish, paths, callback) {
- // Set the path to the default if it's null
- paths = paths ? paths : [];
- // Run the ls_tree command
- repo.git.ls_tree(treeish, paths, function(err, output) {
- if(err) return callback(err, output);
- construct_initialize(repo, treeish, output, callback);
- });
-}
-
-// Create a new instance of the tree class
-var construct_initialize = function(repo, id, text, callback) {
- // Create a tree object
- var tree = new Tree(repo, id, null, null, []);
- var lines = text.trim().split("\n");
- if(lines.length == 1 && lines[0] == '') lines = [];
- // Fetch all the lines
- for(var i = 0; i < lines.length; i++) {
- Tree.content_from_string(repo, lines[i], function(err, entry) {
- if(err) return callback(err, entry);
- tree.contents.push(entry);
- });
- }
-
- // Remove all the null entries
- tree.contents = tree.contents.filter(function(entry) { return entry ? true : false; });
- // Return the object
- callback(null, tree);
-}
-
-Tree.content_from_string = function(repo, text, callback) {
- // Split the text into parts and extract the variables
- var parts = text.replace(/\t/, ' ').split(" ");
- var mode = parts[0];
- var type = parts[1];
- var id = parts[2];
- var name = parts[3];
-
- if(type == "tree") {
- callback(null, new Tree(repo, id, mode, name));
- } else if(type == "blob") {
- callback(null, new Blob(repo, id, mode, name));
- } else if(type == "link") {
- callback(null, new Blob(repo, id, mode, name));
- } else if(type == "commit") {
- callback(null, new Submodule(repo, id, mode, name));
- } else {
- callback("invalid type: " + type, null);
- }
-}
-
-// Find the named object in this tree's contents
-//
-// Examples
-// Repo.new('/path/to/grit').tree/'lib'
-// // => //
-// Repo.new('/path/to/grit').tree/'README.txt'
-// // => //
-//
-// Returns Grit::Blob or Grit::Tree or nil if not found
-Tree.prototype.find = function(file) {
- var self = this;
-
- if(file.match(/\//)) {
- var paths = file.split('/');
- paths.length > 0 && paths[paths.length - 1] == '' ? paths.pop() : null;
- return paths.map(function(x) {
- return self && (self = self.find(x));
- });
- } else {
- var results = self.contents.filter(function(c) {
- return c.name == file;
- })
-
- return results.length == 1 ? results[0] : null;
- }
-}
-
-Tree.create = function(repo, attributes, callback) {
- var args = Array.prototype.slice.call(arguments, 1);
- callback = args.pop();
- attributes = args.length ? args.shift() : {};
-
- var tree = new Tree(repo);
- for(var name in attributes) {
- tree[name] = attributes[name];
- }
-
- callback(null, tree);
-}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/node_modules/git/lib/git/user_info.js b/node_modules/git/lib/git/user_info.js
deleted file mode 100644
index 88b43d9..0000000
--- a/node_modules/git/lib/git/user_info.js
+++ /dev/null
@@ -1,42 +0,0 @@
-var util = require('util'),
- StringUtil = require('../sprintf/sprintf').StringUtil;
-
-var UserInfo = exports.UserInfo = function(string) {
- var _email = '', _date = new Date(), _offset = 0, _name = '';
-
- // Parse the content
- var match_results = string.match(/^(.*?) <(.*)> (\d+) ([+-])0*(\d+?)$/);
- // If we don't have a correct match set parse it partially
- if(!match_results) {
- if(string.match(/<.+>/)) {
- var sub_match = string.match(/(.*) <(.+?)>/);
- _name = sub_match[1];
- _email = sub_match[2];
- } else {
- _name = string;
- }
- } else {
- _name = match_results[1];
- _email = match_results[2];
- _date = new Date(parseInt(match_results[3] * 1000));
- _offset = (match_results[4] == "-" ? -1 : 1) * parseInt(match_results[5]);
- }
-
- // Define properties
- Object.defineProperty(this, "name", { get: function() { return _name; }, enumerable: true});
- Object.defineProperty(this, "email", { get: function() { return _email; }, enumerable: true});
- Object.defineProperty(this, "date", { get: function() { return _date; }, enumerable: true});
- Object.defineProperty(this, "offset", { get: function() { return _offset; }, enumerable: true});
-}
-
-UserInfo.prototype.toString = function() {
- // Ensure correct formating for the offset
- var offset_str = this.offset.toString();
- var add_string = '';
- if(offset_str.length < 5) {
- for(var i = 0; i < (5 - offset_str.length); i++) { add_string += '0'; }
- offset_str = offset_str.substr(0, 1) + add_string + offset_str.substr(1);
- }
- // Return the userinfo as a string
- return "" + this.name + " <" + this.email + "> " + (this.date.getTime()/1000) + " " + offset_str;
-}
\ No newline at end of file
diff --git a/node_modules/git/lib/sprintf/sprintf.js b/node_modules/git/lib/sprintf/sprintf.js
deleted file mode 100644
index fe1bdc4..0000000
--- a/node_modules/git/lib/sprintf/sprintf.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
-sprintf() for JavaScript 0.6
-
-Copyright (c) Alexandru Marasteanu
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of sprintf() for JavaScript nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-Changelog:
-2007.04.03 - 0.1:
- - initial release
-2007.09.11 - 0.2:
- - feature: added argument swapping
-2007.09.17 - 0.3:
- - bug fix: no longer throws exception on empty paramenters (Hans Pufal)
-2007.10.21 - 0.4:
- - unit test and patch (David Baird)
-2010.05.09 - 0.5:
- - bug fix: 0 is now preceeded with a + sign
- - bug fix: the sign was not at the right position on padded results (Kamal Abdali)
- - switched from GPL to BSD license
-2010.05.22 - 0.6:
- - reverted to 0.4 and fixed the bug regarding the sign of the number 0
- Note:
- Thanks to Raphael Pigulla (http://www.n3rd.org/)
- who warned me about a bug in 0.5, I discovered that the last update was
- a regress. I appologize for that.
-**/
-
-var StringUtil = exports.StringUtil = function() {};
-StringUtil.str_repeat = str_repeat;
-StringUtil.sprintf = sprintf;
-
-function str_repeat(i, m) {
- for (var o = []; m > 0; o[--m] = i);
- return o.join('');
-}
-
-function sprintf() {
- var i = 0, a, f = arguments[i++], o = [], m, p, c, x, s = '';
- while (f) {
- if (m = /^[^\x25]+/.exec(f)) {
- o.push(m[0]);
- }
- else if (m = /^\x25{2}/.exec(f)) {
- o.push('%');
- }
- else if (m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)) {
- if (((a = arguments[m[1] || i++]) == null) || (a == undefined)) {
- throw('Too few arguments.');
- }
- if (/[^s]/.test(m[7]) && (typeof(a) != 'number')) {
- throw('Expecting number but found ' + typeof(a));
- }
- switch (m[7]) {
- case 'b': a = a.toString(2); break;
- case 'c': a = String.fromCharCode(a); break;
- case 'd': a = parseInt(a); break;
- case 'e': a = m[6] ? a.toExponential(m[6]) : a.toExponential(); break;
- case 'f': a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a); break;
- case 'o': a = a.toString(8); break;
- case 's': a = ((a = String(a)) && m[6] ? a.substring(0, m[6]) : a); break;
- case 'u': a = Math.abs(a); break;
- case 'x': a = a.toString(16); break;
- case 'X': a = a.toString(16).toUpperCase(); break;
- }
- a = (/[def]/.test(m[7]) && m[2] && a >= 0 ? '+'+ a : a);
- c = m[3] ? m[3] == '0' ? '0' : m[3].charAt(1) : ' ';
- x = m[5] - String(a).length - s.length;
- p = m[5] ? str_repeat(c, x) : '';
- o.push(s + (m[4] ? a + p : p + a));
- }
- else {
- throw('Huh ?!');
- }
- f = f.substring(m[0].length);
- }
- return o.join('');
-}
diff --git a/node_modules/git/lib/zlib/zlib.js b/node_modules/git/lib/zlib/zlib.js
deleted file mode 100644
index e4b46fe..0000000
--- a/node_modules/git/lib/zlib/zlib.js
+++ /dev/null
@@ -1,1172 +0,0 @@
-/*
- Copyright 2008,2009
- Matthias Ehmann,
- Michael Gerhaeuser,
- Carsten Miller,
- Bianca Valentin,
- Alfred Wassermann,
- Peter Wilfahrt
-
- This file is part of JSXGraph.
-
- JSXGraph is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- JSXGraph is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with JSXGraph. If not, see .
-*/
-
-/**
- * @fileoverview Utilities for uncompressing and base64 decoding
- */
-
-/**
- * @class Util class
- * Class for gunzipping, unzipping and base64 decoding of files.
- * It is used for reading GEONExT, Geogebra and Intergeo files.
- *
- * Only Huffman codes are decoded in gunzip.
- * The code is based on the source code for gunzip.c by Pasi Ojala
- * @see http://www.cs.tut.fi/~albert/Dev/gunzip/gunzip.c
- * @see http://www.cs.tut.fi/~albert
- */
-var util = require('util');
-var Zlib = exports.Zlib = {};
-
-/**
- * Unzip zip files
- */
-Zlib.Unzip = function (barray){
- var outputArr = [],
- output = "",
- debug = false,
- gpflags,
- files = 0,
- unzipped = [],
- crc,
- buf32k = new Array(32768),
- bIdx = 0,
- modeZIP=false,
-
- CRC, SIZE,
-
- bitReverse = [
- 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
- 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
- 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
- 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
- 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
- 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
- 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
- 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
- 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
- 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
- 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
- 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
- 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
- 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
- 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
- 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
- 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
- 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
- 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
- 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
- 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
- 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
- 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
- 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
- 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
- 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
- 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
- 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
- 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
- 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
- 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
- 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
- ],
-
- cplens = [
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
- 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
- ],
-
- cplext = [
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
- 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99
- ], /* 99==invalid */
-
- cpdist = [
- 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0007, 0x0009, 0x000d,
- 0x0011, 0x0019, 0x0021, 0x0031, 0x0041, 0x0061, 0x0081, 0x00c1,
- 0x0101, 0x0181, 0x0201, 0x0301, 0x0401, 0x0601, 0x0801, 0x0c01,
- 0x1001, 0x1801, 0x2001, 0x3001, 0x4001, 0x6001
- ],
-
- cpdext = [
- 0, 0, 0, 0, 1, 1, 2, 2,
- 3, 3, 4, 4, 5, 5, 6, 6,
- 7, 7, 8, 8, 9, 9, 10, 10,
- 11, 11, 12, 12, 13, 13
- ],
-
- border = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],
-
- bA = barray,
-
- bytepos=0,
- bitpos=0,
- bb = 1,
- bits=0,
-
- NAMEMAX = 256,
-
- nameBuf = [],
-
- fileout;
-
- function readByte(){
- bits+=8;
- if (bytepos");
- // util.debug(bA[bytepos++].toString(16))
- // return String.fromCharCode(bA[bytepos++]);
- return bA[bytepos++];
- } else
- return -1;
- };
-
- function byteAlign(){
- bb = 1;
- };
-
- function readBit(){
- var carry;
- bits++;
- carry = (bb & 1);
- bb >>= 1;
- if (bb==0){
- bb = readByte();
- carry = (bb & 1);
- bb = (bb>>1) | 0x80;
- }
- return carry;
- };
-
- function readBits(a) {
- var res = 0,
- i = a;
-
- while(i--) {
- res = (res<<1) | readBit();
- }
- if(a) {
- res = bitReverse[res]>>(8-a);
- }
- return res;
- };
-
- function flushBuffer(){
- //document.write('FLUSHBUFFER:'+buf32k);
- bIdx = 0;
- };
- function addBuffer(a){
- SIZE++;
- //CRC=updcrc(a,crc);
- buf32k[bIdx++] = a;
- outputArr.push(String.fromCharCode(a));
- //output+=String.fromCharCode(a);
- if(bIdx==0x8000){
- //document.write('ADDBUFFER:'+buf32k);
- bIdx=0;
- }
- };
-
- function HufNode() {
- this.b0=0;
- this.b1=0;
- this.jump = null;
- this.jumppos = -1;
- };
-
- var LITERALS = 288;
-
- var literalTree = new Array(LITERALS);
- var distanceTree = new Array(32);
- var treepos=0;
- var Places = null;
- var Places2 = null;
-
- var impDistanceTree = new Array(64);
- var impLengthTree = new Array(64);
-
- var len = 0;
- var fpos = new Array(17);
- fpos[0]=0;
- var flens;
- var fmax;
-
- function IsPat() {
- while (1) {
- if (fpos[len] >= fmax)
- return -1;
- if (flens[fpos[len]] == len)
- return fpos[len]++;
- fpos[len]++;
- }
- };
-
- function Rec() {
- var curplace = Places[treepos];
- var tmp;
- if (debug)
- util.debug("len: " + len + " treepos: " + treepos)
- if(len==17) { //war 17
- return -1;
- }
- treepos++;
- len++;
-
- tmp = IsPat();
- if (debug)
- util.debug("IsPat " + tmp)
- if(tmp >= 0) {
- curplace.b0 = tmp; /* leaf cell for 0-bit */
- if (debug)
- util.debug("b0 " + curplace.b0)
- } else {
- /* Not a Leaf cell */
- curplace.b0 = 0x8000;
- if (debug)
- util.debug("b0 " + curplace.b0)
- if(Rec())
- return -1;
- }
- tmp = IsPat();
- if(tmp >= 0) {
- curplace.b1 = tmp; /* leaf cell for 1-bit */
- if (debug)
- util.debug("b1 " + curplace.b1);
- curplace.jump = null; /* Just for the display routine */
- } else {
- /* Not a Leaf cell */
- curplace.b1 = 0x8000;
- if (debug)
- util.debug("b1 " + curplace.b1);
- curplace.jump = Places[treepos];
- curplace.jumppos = treepos;
- if(Rec())
- return -1;
- }
- len--;
- return 0;
- };
-
- function CreateTree(currentTree, numval, lengths, show) {
- var i;
- /* Create the Huffman decode tree/table */
- //document.write("
createtree
");
- if (debug)
- util.debug("currentTree " + currentTree + " numval " + numval + " lengths " + lengths + " show " + show);
- Places = currentTree;
- treepos=0;
- flens = lengths;
- fmax = numval;
- for (i=0;i<17;i++)
- fpos[i] = 0;
- len = 0;
- if(Rec()) {
- //fprintf(stderr, "invalid huffman tree\n");
- if (debug)
- util.debug("invalid huffman tree");
- return -1;
- }
- if (debug){
- util.debug("Tree: " + Places.length);
- for (var a=0;a<32;a++){
- util.debug("Places[" + a + "].b0=" + Places[a].b0);
- util.debug("Places[" + a + "].b1=" + Places[a].b1);
- }
- }
-
- /*if(show) {
- var tmp;
- for(tmp=currentTree;tmpjump?tmp->jump-currentTree:0,(tmp->jump?tmp->jump-currentTree:0)*6+0xcf0);
- if(!(tmp.b0 & 0x8000)) {
- //fprintf(stdout, " 0x%03x (%c)", tmp->b0,(tmp->b0<256 && isprint(tmp->b0))?tmp->b0:'�');
- }
- if(!(tmp.b1 & 0x8000)) {
- if((tmp.b0 & 0x8000))
- fprintf(stdout, " ");
- fprintf(stdout, " 0x%03x (%c)", tmp->b1,(tmp->b1<256 && isprint(tmp->b1))?tmp->b1:'�');
- }
- fprintf(stdout, "\n");
- }
- }*/
- return 0;
- };
-
- function DecodeValue(currentTree) {
- var len, i,
- xtreepos=0,
- X = currentTree[xtreepos],
- b;
-
- /* decode one symbol of the data */
- while(1) {
- b=readBit();
- if (debug)
- util.debug("b=" + b);
- if(b) {
- if(!(X.b1 & 0x8000)){
- if (debug)
- util.debug("ret1");
- return X.b1; /* If leaf node, return data */
- }
- X = X.jump;
- len = currentTree.length;
- for (i=0;i>1);
- if(j > 23) {
- j = (j<<1) | readBit(); /* 48..255 */
-
- if(j > 199) { /* 200..255 */
- j -= 128; /* 72..127 */
- j = (j<<1) | readBit(); /* 144..255 << */
- } else { /* 48..199 */
- j -= 48; /* 0..151 */
- if(j > 143) {
- j = j+136; /* 280..287 << */
- /* 0..143 << */
- }
- }
- } else { /* 0..23 */
- j += 256; /* 256..279 << */
- }
- if(j < 256) {
- addBuffer(j);
- //document.write("out:"+String.fromCharCode(j));
- /*fprintf(errfp, "@%d %02x\n", SIZE, j);*/
- } else if(j == 256) {
- /* EOF */
- break;
- } else {
- var len, dist;
-
- j -= 256 + 1; /* bytes + EOF */
- len = readBits(cplext[j]) + cplens[j];
-
- j = bitReverse[readBits(5)]>>3;
- if(cpdext[j] > 8) {
- dist = readBits(8);
- dist |= (readBits(cpdext[j]-8)<<8);
- } else {
- dist = readBits(cpdext[j]);
- }
- dist += cpdist[j];
-
- /*fprintf(errfp, "@%d (l%02x,d%04x)\n", SIZE, len, dist);*/
- for(j=0;jparam: "+literalCodes+" "+distCodes+" "+lenCodes+"
");
- for(j=0; j<19; j++) {
- ll[j] = 0;
- }
-
- // Get the decode tree code lengths
-
- //document.write("
");
- for(j=0; jll:'+ll);
- len = distanceTree.length;
- for (i=0; itree created');
-
- //read in literal and distance code lengths
- n = literalCodes + distCodes;
- i = 0;
- var z=-1;
- if (debug)
- util.debug("n=" + n + " bits: " + bits);
- while(i < n) {
- z++;
- j = DecodeValue(distanceTree);
- if (debug)
- util.debug("" + z + " i:" + i + " decode: " + j + " bits" + bits);
- if(j<16) { // length of code in bits (0..15)
- ll[i++] = j;
- } else if(j==16) { // repeat last length 3 to 6 times
- var l;
- j = 3 + readBits(2);
- if(i+j > n) {
- flushBuffer();
- return 1;
- }
- l = i ? ll[i-1] : 0;
- while(j--) {
- ll[i++] = l;
- }
- } else {
- if(j==17) { // 3 to 10 zero length codes
- j = 3 + readBits(3);
- } else { // j == 18: 11 to 138 zero length codes
- j = 11 + readBits(7);
- }
- if(i+j > n) {
- flushBuffer();
- return 1;
- }
- while(j--) {
- ll[i++] = 0;
- }
- }
- }
- /*for(j=0; j= 256) { // In C64: if carry set
- var len, dist;
- j -= 256;
- if(j == 0) {
- // EOF
- break;
- }
- j--;
- len = readBits(cplext[j]) + cplens[j];
-
- j = DecodeValue(distanceTree);
- if(cpdext[j] > 8) {
- dist = readBits(8);
- dist |= (readBits(cpdext[j]-8)<<8);
- } else {
- dist = readBits(cpdext[j]);
- }
- dist += cpdist[j];
- while(len--) {
- var c = buf32k[(bIdx - dist) & 0x7fff];
- addBuffer(c);
- }
- } else {
- addBuffer(j);
- }
- }
- }
- } while(!last);
- flushBuffer();
-
- byteAlign();
- return 0;
-};
-
-Zlib.Unzip.prototype.unzipFile = function(name) {
- var i;
- this.unzip();
- //alert(unzipped[0][1]);
- for (i=0;i");
- }
- */
- //alert(bA);
- nextFile();
- return unzipped;
- };
-
- function nextFile(){
- if (debug)
- util.debug("NEXTFILE");
- outputArr = [];
- var tmp = [];
- modeZIP = false;
- tmp[0] = readByte();
- tmp[1] = readByte();
-
- if (debug)
- util.debug("type: " + tmp[0] + " " + tmp[1]);
- if (tmp[0] == parseInt("78",16) && (tmp[1] == parseInt("156",10) || tmp[1] == parseInt("1", 10))){ //GZIP
- if (debug)
- util.debug("GEONExT-GZIP");
- DeflateLoop();
- if (debug)
- util.debug(outputArr.join(''));
- // unzipped[files] = new Array(2);
- unzipped[files] = outputArr.join('');
- files++;
- }
- if (tmp[0] == parseInt("1f",16) && tmp[1] == parseInt("8b",16)){ //GZIP
- if (debug)
- util.debug("GZIP");
- //DeflateLoop();
- skipdir();
- if (debug)
- util.debug(outputArr.join(''));
- unzipped[files] = new Array(2);
- unzipped[files][0] = outputArr.join('');
- unzipped[files][1] = "file";
- files++;
- }
- if (tmp[0] == parseInt("50",16) && tmp[1] == parseInt("4b",16)){ //ZIP
- modeZIP = true;
- tmp[2] = readByte();
- tmp[3] = readByte();
- if (tmp[2] == parseInt("3",16) && tmp[3] == parseInt("4",16)){
- //MODE_ZIP
- tmp[0] = readByte();
- tmp[1] = readByte();
- if (debug)
- util.debug("ZIP-Version: "+tmp[1]+" "+tmp[0]/10+"."+tmp[0]%10);
-
- gpflags = readByte();
- gpflags |= (readByte()<<8);
- if (debug)
- util.debug("gpflags: "+gpflags);
-
- var method = readByte();
- method |= (readByte()<<8);
- if (debug)
- util.debug("method: "+method);
-
- readByte();
- readByte();
- readByte();
- readByte();
-
- var crc = readByte();
- crc |= (readByte()<<8);
- crc |= (readByte()<<16);
- crc |= (readByte()<<24);
-
- var compSize = readByte();
- compSize |= (readByte()<<8);
- compSize |= (readByte()<<16);
- compSize |= (readByte()<<24);
-
- var size = readByte();
- size |= (readByte()<<8);
- size |= (readByte()<<16);
- size |= (readByte()<<24);
-
- if (debug)
- util.debug("local CRC: "+crc+"\nlocal Size: "+size+"\nlocal CompSize: "+compSize);
-
- var filelen = readByte();
- filelen |= (readByte()<<8);
-
- var extralen = readByte();
- extralen |= (readByte()<<8);
-
- if (debug)
- util.debug("filelen "+filelen);
- i = 0;
- nameBuf = [];
- while (filelen--){
- var c = readByte();
- if (c == "/" | c ==":"){
- i = 0;
- } else if (i < NAMEMAX-1)
- nameBuf[i++] = String.fromCharCode(c);
- }
- if (debug)
- util.debug("nameBuf: "+nameBuf);
-
- //nameBuf[i] = "\0";
- if (!fileout)
- fileout = nameBuf;
-
- var i = 0;
- while (i < extralen){
- c = readByte();
- i++;
- }
-
- CRC = 0xffffffff;
- SIZE = 0;
-
- if (size = 0 && fileOut.charAt(fileout.length-1)=="/"){
- //skipdir
- if (debug)
- util.debug("skipdir");
- }
- if (method == 8){
- DeflateLoop();
- if (debug)
- util.debug(outputArr.join(''));
- unzipped[files] = new Array(2);
- unzipped[files][0] = outputArr.join('');
- unzipped[files][1] = nameBuf.join('');
- files++;
- //return outputArr.join('');
- }
- skipdir();
- }
- }
- };
-
-function skipdir(){
- var crc,
- tmp = [],
- compSize, size, os, i, c;
-
- if ((gpflags & 8)) {
- tmp[0] = readByte();
- tmp[1] = readByte();
- tmp[2] = readByte();
- tmp[3] = readByte();
-
- if (tmp[0] == parseInt("50",16) &&
- tmp[1] == parseInt("4b",16) &&
- tmp[2] == parseInt("07",16) &&
- tmp[3] == parseInt("08",16))
- {
- crc = readByte();
- crc |= (readByte()<<8);
- crc |= (readByte()<<16);
- crc |= (readByte()<<24);
- } else {
- crc = tmp[0] | (tmp[1]<<8) | (tmp[2]<<16) | (tmp[3]<<24);
- }
-
- compSize = readByte();
- compSize |= (readByte()<<8);
- compSize |= (readByte()<<16);
- compSize |= (readByte()<<24);
-
- size = readByte();
- size |= (readByte()<<8);
- size |= (readByte()<<16);
- size |= (readByte()<<24);
-
- if (debug)
- util.debug("CRC:");
- }
-
- if (modeZIP)
- nextFile();
-
- tmp[0] = readByte();
- if (tmp[0] != 8) {
- if (debug)
- util.debug("Unknown compression method!");
- return 0;
- }
-
- gpflags = readByte();
- if (debug){
- if ((gpflags & ~(parseInt("1f",16))))
- util.debug("Unknown flags set!");
- }
-
- readByte();
- readByte();
- readByte();
- readByte();
-
- readByte();
- os = readByte();
-
- if ((gpflags & 4)){
- tmp[0] = readByte();
- tmp[2] = readByte();
- len = tmp[0] + 256*tmp[1];
- if (debug)
- util.debug("Extra field size: "+len);
- for (i=0;ihttp://www.webtoolkit.info/
-*/
-Zlib.Base64 = {
-
- // private property
- _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
-
- // public method for encoding
- encode : function (input) {
- var output = [],
- chr1, chr2, chr3, enc1, enc2, enc3, enc4,
- i = 0;
-
- input = Zlib.Base64._utf8_encode(input);
-
- while (i < input.length) {
-
- chr1 = input.charCodeAt(i++);
- chr2 = input.charCodeAt(i++);
- chr3 = input.charCodeAt(i++);
-
- enc1 = chr1 >> 2;
- enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
- enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
- enc4 = chr3 & 63;
-
- if (isNaN(chr2)) {
- enc3 = enc4 = 64;
- } else if (isNaN(chr3)) {
- enc4 = 64;
- }
-
- output.push([this._keyStr.charAt(enc1),
- this._keyStr.charAt(enc2),
- this._keyStr.charAt(enc3),
- this._keyStr.charAt(enc4)].join(''));
- }
-
- return output.join('');
- },
-
- // public method for decoding
- decode : function (input, utf8) {
- var output = [],
- chr1, chr2, chr3,
- enc1, enc2, enc3, enc4,
- i = 0;
-
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
-
- while (i < input.length) {
-
- enc1 = this._keyStr.indexOf(input.charAt(i++));
- enc2 = this._keyStr.indexOf(input.charAt(i++));
- enc3 = this._keyStr.indexOf(input.charAt(i++));
- enc4 = this._keyStr.indexOf(input.charAt(i++));
-
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
-
- output.push(String.fromCharCode(chr1));
-
- if (enc3 != 64) {
- output.push(String.fromCharCode(chr2));
- }
- if (enc4 != 64) {
- output.push(String.fromCharCode(chr3));
- }
- }
-
- output = output.join('');
-
- if (utf8) {
- output = Zlib.Base64._utf8_decode(output);
- }
- return output;
-
- },
-
- // private method for UTF-8 encoding
- _utf8_encode : function (string) {
- string = string.replace(/\r\n/g,"\n");
- var utftext = "";
-
- for (var n = 0; n < string.length; n++) {
-
- var c = string.charCodeAt(n);
-
- if (c < 128) {
- utftext += String.fromCharCode(c);
- }
- else if((c > 127) && (c < 2048)) {
- utftext += String.fromCharCode((c >> 6) | 192);
- utftext += String.fromCharCode((c & 63) | 128);
- }
- else {
- utftext += String.fromCharCode((c >> 12) | 224);
- utftext += String.fromCharCode(((c >> 6) & 63) | 128);
- utftext += String.fromCharCode((c & 63) | 128);
- }
-
- }
-
- return utftext;
- },
-
- // private method for UTF-8 decoding
- _utf8_decode : function (utftext) {
- var string = [],
- i = 0,
- c = 0, c2 = 0, c3 = 0;
-
- while ( i < utftext.length ) {
- c = utftext.charCodeAt(i);
- if (c < 128) {
- string.push(String.fromCharCode(c));
- i++;
- }
- else if((c > 191) && (c < 224)) {
- c2 = utftext.charCodeAt(i+1);
- string.push(String.fromCharCode(((c & 31) << 6) | (c2 & 63)));
- i += 2;
- }
- else {
- c2 = utftext.charCodeAt(i+1);
- c3 = utftext.charCodeAt(i+2);
- string.push(String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)));
- i += 3;
- }
- }
- return string.join('');
- },
-
- _destrip: function (stripped, wrap){
- var lines = [], lineno, i,
- destripped = [];
-
- if (wrap==null)
- wrap = 76;
-
- stripped.replace(/ /g, "");
- lineno = stripped.length / wrap;
- for (i = 0; i < lineno; i++)
- lines[i]=stripped.substr(i * wrap, wrap);
- if (lineno != stripped.length / wrap)
- lines[lines.length]=stripped.substr(lineno * wrap, stripped.length-(lineno * wrap));
-
- for (i = 0; i < lines.length; i++)
- destripped.push(lines[i]);
- return destripped.join('\n');
- },
-
- decodeAsArray: function (input){
- var dec = this.decode(input),
- ar = [], i;
- for (i=0;i255){
- switch (c) {
- case 8364: c=128;
- break;
- case 8218: c=130;
- break;
- case 402: c=131;
- break;
- case 8222: c=132;
- break;
- case 8230: c=133;
- break;
- case 8224: c=134;
- break;
- case 8225: c=135;
- break;
- case 710: c=136;
- break;
- case 8240: c=137;
- break;
- case 352: c=138;
- break;
- case 8249: c=139;
- break;
- case 338: c=140;
- break;
- case 381: c=142;
- break;
- case 8216: c=145;
- break;
- case 8217: c=146;
- break;
- case 8220: c=147;
- break;
- case 8221: c=148;
- break;
- case 8226: c=149;
- break;
- case 8211: c=150;
- break;
- case 8212: c=151;
- break;
- case 732: c=152;
- break;
- case 8482: c=153;
- break;
- case 353: c=154;
- break;
- case 8250: c=155;
- break;
- case 339: c=156;
- break;
- case 382: c=158;
- break;
- case 376: c=159;
- break;
- default:
- break;
- }
- }
- return c;
-};
-
-/**
- * Decoding string into utf-8
- * @param {String} string to decode
- * @return {String} utf8 decoded string
- */
-Zlib.utf8Decode = function(utftext) {
- var string = [];
- var i = 0;
- var c = 0, c1 = 0, c2 = 0;
-
- while ( i < utftext.length ) {
- c = utftext.charCodeAt(i);
-
- if (c < 128) {
- string.push(String.fromCharCode(c));
- i++;
- } else if((c > 191) && (c < 224)) {
- c2 = utftext.charCodeAt(i+1);
- string.push(String.fromCharCode(((c & 31) << 6) | (c2 & 63)));
- i += 2;
- } else {
- c2 = utftext.charCodeAt(i+1);
- c3 = utftext.charCodeAt(i+2);
- string.push(String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)));
- i += 3;
- }
- };
- return string.join('');
-};
\ No newline at end of file
diff --git a/node_modules/git/package.json b/node_modules/git/package.json
deleted file mode 100644
index c4811ac..0000000
--- a/node_modules/git/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "name" : "git"
-, "description" : "A node.js library for git"
-, "version" : "0.1.5"
-, "author" : "Christian Amor Kvalheim "
-, "contributors" : [ "Vincent Giersch " ]
-, "repository" : { "type" : "git"
- , "url" : "git@github.com:christkv/node-git.git" }
-, "bugs" : { "mail" : "node-git@googlegroups.com"
- , "web" : "http://groups.google.com/group/nodegit" }
-, "main": "./lib/git/index"
-, "directories" : { "lib" : "./lib/git" }
-, "engines" : { "node" : ">=0.4.0" }
-, "dependencies": { "mime": "1.2.9" }
-, "devDependencies":{ "nodeunit" : ">=0.5.1" }
-, "licenses" : [ { "type" : "Apache License, Version 2.0"
- , "url" : "http://www.apache.org/licenses/LICENSE-2.0" } ]
-, "scripts" : { "test" : "./node_modules/.bin/nodeunit test" }
-}
diff --git a/node_modules/mime/LICENSE b/node_modules/mime/LICENSE
deleted file mode 100644
index 451fc45..0000000
--- a/node_modules/mime/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2010 Benjamin Thomas, Robert Kieffer
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/node_modules/mime/README.md b/node_modules/mime/README.md
deleted file mode 100644
index b90552a..0000000
--- a/node_modules/mime/README.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# mime
-
-Comprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community.
-
-## Install
-
-Install with [npm](http://github.com/isaacs/npm):
-
- npm install mime
-
-## API - Queries
-
-### mime.lookup(path)
-Get the mime type associated with a file. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.'). E.g.
-
- var mime = require('mime');
-
- mime.lookup('/path/to/file.txt'); // => 'text/plain'
- mime.lookup('file.txt'); // => 'text/plain'
- mime.lookup('.TXT'); // => 'text/plain'
- mime.lookup('htm'); // => 'text/html'
-
-### mime.extension(type)
-Get the default extension for `type`
-
- mime.extension('text/html'); // => 'html'
- mime.extension('application/octet-stream'); // => 'bin'
-
-### mime.charsets.lookup()
-
-Map mime-type to charset
-
- mime.charsets.lookup('text/plain'); // => 'UTF-8'
-
-(The logic for charset lookups is pretty rudimentary. Feel free to suggest improvements.)
-
-## API - Defining Custom Types
-
-The following APIs allow you to add your own type mappings within your project. If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/broofa/node-mime/wiki/Requesting-New-Types).
-
-### mime.define()
-
-Add custom mime/extension mappings
-
- mime.define({
- 'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],
- 'application/x-my-type': ['x-mt', 'x-mtt'],
- // etc ...
- });
-
- mime.lookup('x-sft'); // => 'text/x-some-format'
-
-The first entry in the extensions array is returned by `mime.extension()`. E.g.
-
- mime.extension('text/x-some-format'); // => 'x-sf'
-
-### mime.load(filepath)
-
-Load mappings from an Apache ".types" format file
-
- mime.load('./my_project.types');
-
-The .types file format is simple - See the `types` dir for examples.
diff --git a/node_modules/mime/mime.js b/node_modules/mime/mime.js
deleted file mode 100644
index 70a6384..0000000
--- a/node_modules/mime/mime.js
+++ /dev/null
@@ -1,113 +0,0 @@
-var path = require('path');
-var fs = require('fs');
-
-function Mime() {
- // Map of extension -> mime type
- this.types = Object.create(null);
-
- // Map of mime type -> extension
- this.extensions = Object.create(null);
-}
-
-/**
- * Define mimetype -> extension mappings. Each key is a mime-type that maps
- * to an array of extensions associated with the type. The first extension is
- * used as the default extension for the type.
- *
- * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});
- *
- * @param map (Object) type definitions
- */
-Mime.prototype.define = function (map) {
- for (var type in map) {
- var exts = map[type];
-
- for (var i = 0; i < exts.length; i++) {
- if (process.env.DEBUG_MIME && this.types[exts]) {
- console.warn(this._loading.replace(/.*\//, ''), 'changes "' + exts[i] + '" extension type from ' +
- this.types[exts] + ' to ' + type);
- }
-
- this.types[exts[i]] = type;
- }
-
- // Default extension is the first one we encounter
- if (!this.extensions[type]) {
- this.extensions[type] = exts[0];
- }
- }
-};
-
-/**
- * Load an Apache2-style ".types" file
- *
- * This may be called multiple times (it's expected). Where files declare
- * overlapping types/extensions, the last file wins.
- *
- * @param file (String) path of file to load.
- */
-Mime.prototype.load = function(file) {
-
- this._loading = file;
- // Read file and split into lines
- var map = {},
- content = fs.readFileSync(file, 'ascii'),
- lines = content.split(/[\r\n]+/);
-
- lines.forEach(function(line) {
- // Clean up whitespace/comments, and split into fields
- var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/);
- map[fields.shift()] = fields;
- });
-
- this.define(map);
-
- this._loading = null;
-};
-
-/**
- * Lookup a mime type based on extension
- */
-Mime.prototype.lookup = function(path, fallback) {
- var ext = path.replace(/.*[\.\/]/, '').toLowerCase();
-
- return this.types[ext] || fallback || this.default_type;
-};
-
-/**
- * Return file extension associated with a mime type
- */
-Mime.prototype.extension = function(mimeType) {
- return this.extensions[mimeType];
-};
-
-// Default instance
-var mime = new Mime();
-
-// Load local copy of
-// http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
-mime.load(path.join(__dirname, 'types/mime.types'));
-
-// Load additional types from node.js community
-mime.load(path.join(__dirname, 'types/node.types'));
-
-// Default type
-mime.default_type = mime.lookup('bin');
-
-//
-// Additional API specific to the default instance
-//
-
-mime.Mime = Mime;
-
-/**
- * Lookup a charset based on mime type.
- */
-mime.charsets = {
- lookup: function(mimeType, fallback) {
- // Assume text types are utf8
- return (/^text\//).test(mimeType) ? 'UTF-8' : fallback;
- }
-};
-
-module.exports = mime;
diff --git a/node_modules/mime/package.json b/node_modules/mime/package.json
deleted file mode 100644
index 6e116b1..0000000
--- a/node_modules/mime/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "author": {
- "name": "Robert Kieffer",
- "url": "http://github.com/broofa",
- "email": "robert@broofa.com"
- },
- "contributors": [
- {
- "name": "Benjamin Thomas",
- "url": "http://github.com/bentomas",
- "email": "benjamin@benjaminthomas.org"
- }
- ],
- "dependencies": {},
- "description": "A comprehensive library for mime-type mapping",
- "devDependencies": {},
- "keywords": ["util", "mime"],
- "main": "mime.js",
- "name": "mime",
- "repository": {"url": "https://github.com/broofa/node-mime", "type": "git"},
- "version": "1.2.9"
-}
diff --git a/node_modules/mime/test.js b/node_modules/mime/test.js
deleted file mode 100644
index cbad034..0000000
--- a/node_modules/mime/test.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Usage: node test.js
- */
-
-var mime = require('./mime');
-var assert = require('assert');
-
-function eq(a, b) {
- console.log('Test: ' + a + ' === ' + b);
- assert.strictEqual.apply(null, arguments);
-}
-
-console.log(Object.keys(mime.extensions).length + ' types');
-console.log(Object.keys(mime.types).length + ' extensions\n');
-
-//
-// Test mime lookups
-//
-
-eq('text/plain', mime.lookup('text.txt'));
-eq('text/plain', mime.lookup('.text.txt'));
-eq('text/plain', mime.lookup('.txt'));
-eq('text/plain', mime.lookup('txt'));
-eq('application/octet-stream', mime.lookup('text.nope'));
-eq('fallback', mime.lookup('text.fallback', 'fallback'));
-eq('application/octet-stream', mime.lookup('constructor'));
-eq('text/plain', mime.lookup('TEXT.TXT'));
-eq('text/event-stream', mime.lookup('text/event-stream'));
-eq('application/x-web-app-manifest+json', mime.lookup('text.webapp'));
-
-//
-// Test extensions
-//
-
-eq('txt', mime.extension(mime.types.text));
-eq('html', mime.extension(mime.types.htm));
-eq('bin', mime.extension('application/octet-stream'));
-eq(undefined, mime.extension('constructor'));
-
-//
-// Test node types
-//
-
-eq('application/octet-stream', mime.lookup('file.buffer'));
-eq('audio/mp4', mime.lookup('file.m4a'));
-
-//
-// Test charsets
-//
-
-eq('UTF-8', mime.charsets.lookup('text/plain'));
-eq(undefined, mime.charsets.lookup(mime.types.js));
-eq('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
-
-console.log('\nOK');
diff --git a/node_modules/mime/types/mime.types b/node_modules/mime/types/mime.types
deleted file mode 100644
index b90b165..0000000
--- a/node_modules/mime/types/mime.types
+++ /dev/null
@@ -1,1588 +0,0 @@
-# This file maps Internet media types to unique file extension(s).
-# Although created for httpd, this file is used by many software systems
-# and has been placed in the public domain for unlimited redisribution.
-#
-# The table below contains both registered and (common) unregistered types.
-# A type that has no unique extension can be ignored -- they are listed
-# here to guide configurations toward known types and to make it easier to
-# identify "new" types. File extensions are also commonly used to indicate
-# content languages and encodings, so choose them carefully.
-#
-# Internet media types should be registered as described in RFC 4288.
-# The registry is at .
-#
-# MIME type (lowercased) Extensions
-# ============================================ ==========
-# application/1d-interleaved-parityfec
-# application/3gpp-ims+xml
-# application/activemessage
-application/andrew-inset ez
-# application/applefile
-application/applixware aw
-application/atom+xml atom
-application/atomcat+xml atomcat
-# application/atomicmail
-application/atomsvc+xml atomsvc
-# application/auth-policy+xml
-# application/batch-smtp
-# application/beep+xml
-# application/calendar+xml
-# application/cals-1840
-# application/ccmp+xml
-application/ccxml+xml ccxml
-application/cdmi-capability cdmia
-application/cdmi-container cdmic
-application/cdmi-domain cdmid
-application/cdmi-object cdmio
-application/cdmi-queue cdmiq
-# application/cea-2018+xml
-# application/cellml+xml
-# application/cfw
-# application/cnrp+xml
-# application/commonground
-# application/conference-info+xml
-# application/cpl+xml
-# application/csta+xml
-# application/cstadata+xml
-application/cu-seeme cu
-# application/cybercash
-application/davmount+xml davmount
-# application/dca-rft
-# application/dec-dx
-# application/dialog-info+xml
-# application/dicom
-# application/dns
-application/docbook+xml dbk
-# application/dskpp+xml
-application/dssc+der dssc
-application/dssc+xml xdssc
-# application/dvcs
-application/ecmascript ecma
-# application/edi-consent
-# application/edi-x12
-# application/edifact
-application/emma+xml emma
-# application/epp+xml
-application/epub+zip epub
-# application/eshop
-# application/example
-application/exi exi
-# application/fastinfoset
-# application/fastsoap
-# application/fits
-application/font-tdpfr pfr
-# application/framework-attributes+xml
-application/gml+xml gml
-application/gpx+xml gpx
-application/gxf gxf
-# application/h224
-# application/held+xml
-# application/http
-application/hyperstudio stk
-# application/ibe-key-request+xml
-# application/ibe-pkg-reply+xml
-# application/ibe-pp-data
-# application/iges
-# application/im-iscomposing+xml
-# application/index
-# application/index.cmd
-# application/index.obj
-# application/index.response
-# application/index.vnd
-application/inkml+xml ink inkml
-# application/iotp
-application/ipfix ipfix
-# application/ipp
-# application/isup
-application/java-archive jar
-application/java-serialized-object ser
-application/java-vm class
-application/javascript js
-application/json json
-application/jsonml+json jsonml
-# application/kpml-request+xml
-# application/kpml-response+xml
-application/lost+xml lostxml
-application/mac-binhex40 hqx
-application/mac-compactpro cpt
-# application/macwriteii
-application/mads+xml mads
-application/marc mrc
-application/marcxml+xml mrcx
-application/mathematica ma nb mb
-# application/mathml-content+xml
-# application/mathml-presentation+xml
-application/mathml+xml mathml
-# application/mbms-associated-procedure-description+xml
-# application/mbms-deregister+xml
-# application/mbms-envelope+xml
-# application/mbms-msk+xml
-# application/mbms-msk-response+xml
-# application/mbms-protection-description+xml
-# application/mbms-reception-report+xml
-# application/mbms-register+xml
-# application/mbms-register-response+xml
-# application/mbms-user-service-description+xml
-application/mbox mbox
-# application/media_control+xml
-application/mediaservercontrol+xml mscml
-application/metalink+xml metalink
-application/metalink4+xml meta4
-application/mets+xml mets
-# application/mikey
-application/mods+xml mods
-# application/moss-keys
-# application/moss-signature
-# application/mosskey-data
-# application/mosskey-request
-application/mp21 m21 mp21
-application/mp4 mp4s
-# application/mpeg4-generic
-# application/mpeg4-iod
-# application/mpeg4-iod-xmt
-# application/msc-ivr+xml
-# application/msc-mixer+xml
-application/msword doc dot
-application/mxf mxf
-# application/nasdata
-# application/news-checkgroups
-# application/news-groupinfo
-# application/news-transmission
-# application/nss
-# application/ocsp-request
-# application/ocsp-response
-application/octet-stream bin dms lrf mar so dist distz pkg bpk dump elc deploy
-application/oda oda
-application/oebps-package+xml opf
-application/ogg ogx
-application/omdoc+xml omdoc
-application/onenote onetoc onetoc2 onetmp onepkg
-application/oxps oxps
-# application/parityfec
-application/patch-ops-error+xml xer
-application/pdf pdf
-application/pgp-encrypted pgp
-# application/pgp-keys
-application/pgp-signature asc sig
-application/pics-rules prf
-# application/pidf+xml
-# application/pidf-diff+xml
-application/pkcs10 p10
-application/pkcs7-mime p7m p7c
-application/pkcs7-signature p7s
-application/pkcs8 p8
-application/pkix-attr-cert ac
-application/pkix-cert cer
-application/pkix-crl crl
-application/pkix-pkipath pkipath
-application/pkixcmp pki
-application/pls+xml pls
-# application/poc-settings+xml
-application/postscript ai eps ps
-# application/prs.alvestrand.titrax-sheet
-application/prs.cww cww
-# application/prs.nprend
-# application/prs.plucker
-# application/prs.rdf-xml-crypt
-# application/prs.xsf+xml
-application/pskc+xml pskcxml
-# application/qsig
-application/rdf+xml rdf
-application/reginfo+xml rif
-application/relax-ng-compact-syntax rnc
-# application/remote-printing
-application/resource-lists+xml rl
-application/resource-lists-diff+xml rld
-# application/riscos
-# application/rlmi+xml
-application/rls-services+xml rs
-application/rpki-ghostbusters gbr
-application/rpki-manifest mft
-application/rpki-roa roa
-# application/rpki-updown
-application/rsd+xml rsd
-application/rss+xml rss
-application/rtf rtf
-# application/rtx
-# application/samlassertion+xml
-# application/samlmetadata+xml
-application/sbml+xml sbml
-application/scvp-cv-request scq
-application/scvp-cv-response scs
-application/scvp-vp-request spq
-application/scvp-vp-response spp
-application/sdp sdp
-# application/set-payment
-application/set-payment-initiation setpay
-# application/set-registration
-application/set-registration-initiation setreg
-# application/sgml
-# application/sgml-open-catalog
-application/shf+xml shf
-# application/sieve
-# application/simple-filter+xml
-# application/simple-message-summary
-# application/simplesymbolcontainer
-# application/slate
-# application/smil
-application/smil+xml smi smil
-# application/soap+fastinfoset
-# application/soap+xml
-application/sparql-query rq
-application/sparql-results+xml srx
-# application/spirits-event+xml
-application/srgs gram
-application/srgs+xml grxml
-application/sru+xml sru
-application/ssdl+xml ssdl
-application/ssml+xml ssml
-# application/tamp-apex-update
-# application/tamp-apex-update-confirm
-# application/tamp-community-update
-# application/tamp-community-update-confirm
-# application/tamp-error
-# application/tamp-sequence-adjust
-# application/tamp-sequence-adjust-confirm
-# application/tamp-status-query
-# application/tamp-status-response
-# application/tamp-update
-# application/tamp-update-confirm
-application/tei+xml tei teicorpus
-application/thraud+xml tfi
-# application/timestamp-query
-# application/timestamp-reply
-application/timestamped-data tsd
-# application/tve-trigger
-# application/ulpfec
-# application/vcard+xml
-# application/vemmi
-# application/vividence.scriptfile
-# application/vnd.3gpp.bsf+xml
-application/vnd.3gpp.pic-bw-large plb
-application/vnd.3gpp.pic-bw-small psb
-application/vnd.3gpp.pic-bw-var pvb
-# application/vnd.3gpp.sms
-# application/vnd.3gpp2.bcmcsinfo+xml
-# application/vnd.3gpp2.sms
-application/vnd.3gpp2.tcap tcap
-application/vnd.3m.post-it-notes pwn
-application/vnd.accpac.simply.aso aso
-application/vnd.accpac.simply.imp imp
-application/vnd.acucobol acu
-application/vnd.acucorp atc acutc
-application/vnd.adobe.air-application-installer-package+zip air
-application/vnd.adobe.formscentral.fcdt fcdt
-application/vnd.adobe.fxp fxp fxpl
-# application/vnd.adobe.partial-upload
-application/vnd.adobe.xdp+xml xdp
-application/vnd.adobe.xfdf xfdf
-# application/vnd.aether.imp
-# application/vnd.ah-barcode
-application/vnd.ahead.space ahead
-application/vnd.airzip.filesecure.azf azf
-application/vnd.airzip.filesecure.azs azs
-application/vnd.amazon.ebook azw
-application/vnd.americandynamics.acc acc
-application/vnd.amiga.ami ami
-# application/vnd.amundsen.maze+xml
-application/vnd.android.package-archive apk
-application/vnd.anser-web-certificate-issue-initiation cii
-application/vnd.anser-web-funds-transfer-initiation fti
-application/vnd.antix.game-component atx
-application/vnd.apple.installer+xml mpkg
-application/vnd.apple.mpegurl m3u8
-# application/vnd.arastra.swi
-application/vnd.aristanetworks.swi swi
-application/vnd.astraea-software.iota iota
-application/vnd.audiograph aep
-# application/vnd.autopackage
-# application/vnd.avistar+xml
-application/vnd.blueice.multipass mpm
-# application/vnd.bluetooth.ep.oob
-application/vnd.bmi bmi
-application/vnd.businessobjects rep
-# application/vnd.cab-jscript
-# application/vnd.canon-cpdl
-# application/vnd.canon-lips
-# application/vnd.cendio.thinlinc.clientconf
-application/vnd.chemdraw+xml cdxml
-application/vnd.chipnuts.karaoke-mmd mmd
-application/vnd.cinderella cdy
-# application/vnd.cirpack.isdn-ext
-application/vnd.claymore cla
-application/vnd.cloanto.rp9 rp9
-application/vnd.clonk.c4group c4g c4d c4f c4p c4u
-application/vnd.cluetrust.cartomobile-config c11amc
-application/vnd.cluetrust.cartomobile-config-pkg c11amz
-# application/vnd.collection+json
-# application/vnd.commerce-battelle
-application/vnd.commonspace csp
-application/vnd.contact.cmsg cdbcmsg
-application/vnd.cosmocaller cmc
-application/vnd.crick.clicker clkx
-application/vnd.crick.clicker.keyboard clkk
-application/vnd.crick.clicker.palette clkp
-application/vnd.crick.clicker.template clkt
-application/vnd.crick.clicker.wordbank clkw
-application/vnd.criticaltools.wbs+xml wbs
-application/vnd.ctc-posml pml
-# application/vnd.ctct.ws+xml
-# application/vnd.cups-pdf
-# application/vnd.cups-postscript
-application/vnd.cups-ppd ppd
-# application/vnd.cups-raster
-# application/vnd.cups-raw
-# application/vnd.curl
-application/vnd.curl.car car
-application/vnd.curl.pcurl pcurl
-# application/vnd.cybank
-application/vnd.dart dart
-application/vnd.data-vision.rdz rdz
-application/vnd.dece.data uvf uvvf uvd uvvd
-application/vnd.dece.ttml+xml uvt uvvt
-application/vnd.dece.unspecified uvx uvvx
-application/vnd.dece.zip uvz uvvz
-application/vnd.denovo.fcselayout-link fe_launch
-# application/vnd.dir-bi.plate-dl-nosuffix
-application/vnd.dna dna
-application/vnd.dolby.mlp mlp
-# application/vnd.dolby.mobile.1
-# application/vnd.dolby.mobile.2
-application/vnd.dpgraph dpg
-application/vnd.dreamfactory dfac
-application/vnd.ds-keypoint kpxx
-application/vnd.dvb.ait ait
-# application/vnd.dvb.dvbj
-# application/vnd.dvb.esgcontainer
-# application/vnd.dvb.ipdcdftnotifaccess
-# application/vnd.dvb.ipdcesgaccess
-# application/vnd.dvb.ipdcesgaccess2
-# application/vnd.dvb.ipdcesgpdd
-# application/vnd.dvb.ipdcroaming
-# application/vnd.dvb.iptv.alfec-base
-# application/vnd.dvb.iptv.alfec-enhancement
-# application/vnd.dvb.notif-aggregate-root+xml
-# application/vnd.dvb.notif-container+xml
-# application/vnd.dvb.notif-generic+xml
-# application/vnd.dvb.notif-ia-msglist+xml
-# application/vnd.dvb.notif-ia-registration-request+xml
-# application/vnd.dvb.notif-ia-registration-response+xml
-# application/vnd.dvb.notif-init+xml
-# application/vnd.dvb.pfr
-application/vnd.dvb.service svc
-# application/vnd.dxr
-application/vnd.dynageo geo
-# application/vnd.easykaraoke.cdgdownload
-# application/vnd.ecdis-update
-application/vnd.ecowin.chart mag
-# application/vnd.ecowin.filerequest
-# application/vnd.ecowin.fileupdate
-# application/vnd.ecowin.series
-# application/vnd.ecowin.seriesrequest
-# application/vnd.ecowin.seriesupdate
-# application/vnd.emclient.accessrequest+xml
-application/vnd.enliven nml
-# application/vnd.eprints.data+xml
-application/vnd.epson.esf esf
-application/vnd.epson.msf msf
-application/vnd.epson.quickanime qam
-application/vnd.epson.salt slt
-application/vnd.epson.ssf ssf
-# application/vnd.ericsson.quickcall
-application/vnd.eszigno3+xml es3 et3
-# application/vnd.etsi.aoc+xml
-# application/vnd.etsi.cug+xml
-# application/vnd.etsi.iptvcommand+xml
-# application/vnd.etsi.iptvdiscovery+xml
-# application/vnd.etsi.iptvprofile+xml
-# application/vnd.etsi.iptvsad-bc+xml
-# application/vnd.etsi.iptvsad-cod+xml
-# application/vnd.etsi.iptvsad-npvr+xml
-# application/vnd.etsi.iptvservice+xml
-# application/vnd.etsi.iptvsync+xml
-# application/vnd.etsi.iptvueprofile+xml
-# application/vnd.etsi.mcid+xml
-# application/vnd.etsi.overload-control-policy-dataset+xml
-# application/vnd.etsi.sci+xml
-# application/vnd.etsi.simservs+xml
-# application/vnd.etsi.tsl+xml
-# application/vnd.etsi.tsl.der
-# application/vnd.eudora.data
-application/vnd.ezpix-album ez2
-application/vnd.ezpix-package ez3
-# application/vnd.f-secure.mobile
-application/vnd.fdf fdf
-application/vnd.fdsn.mseed mseed
-application/vnd.fdsn.seed seed dataless
-# application/vnd.ffsns
-# application/vnd.fints
-application/vnd.flographit gph
-application/vnd.fluxtime.clip ftc
-# application/vnd.font-fontforge-sfd
-application/vnd.framemaker fm frame maker book
-application/vnd.frogans.fnc fnc
-application/vnd.frogans.ltf ltf
-application/vnd.fsc.weblaunch fsc
-application/vnd.fujitsu.oasys oas
-application/vnd.fujitsu.oasys2 oa2
-application/vnd.fujitsu.oasys3 oa3
-application/vnd.fujitsu.oasysgp fg5
-application/vnd.fujitsu.oasysprs bh2
-# application/vnd.fujixerox.art-ex
-# application/vnd.fujixerox.art4
-# application/vnd.fujixerox.hbpl
-application/vnd.fujixerox.ddd ddd
-application/vnd.fujixerox.docuworks xdw
-application/vnd.fujixerox.docuworks.binder xbd
-# application/vnd.fut-misnet
-application/vnd.fuzzysheet fzs
-application/vnd.genomatix.tuxedo txd
-# application/vnd.geocube+xml
-application/vnd.geogebra.file ggb
-application/vnd.geogebra.tool ggt
-application/vnd.geometry-explorer gex gre
-application/vnd.geonext gxt
-application/vnd.geoplan g2w
-application/vnd.geospace g3w
-# application/vnd.globalplatform.card-content-mgt
-# application/vnd.globalplatform.card-content-mgt-response
-application/vnd.gmx gmx
-application/vnd.google-earth.kml+xml kml
-application/vnd.google-earth.kmz kmz
-application/vnd.grafeq gqf gqs
-# application/vnd.gridmp
-application/vnd.groove-account gac
-application/vnd.groove-help ghf
-application/vnd.groove-identity-message gim
-application/vnd.groove-injector grv
-application/vnd.groove-tool-message gtm
-application/vnd.groove-tool-template tpl
-application/vnd.groove-vcard vcg
-# application/vnd.hal+json
-application/vnd.hal+xml hal
-application/vnd.handheld-entertainment+xml zmm
-application/vnd.hbci hbci
-# application/vnd.hcl-bireports
-application/vnd.hhe.lesson-player les
-application/vnd.hp-hpgl hpgl
-application/vnd.hp-hpid hpid
-application/vnd.hp-hps hps
-application/vnd.hp-jlyt jlt
-application/vnd.hp-pcl pcl
-application/vnd.hp-pclxl pclxl
-# application/vnd.httphone
-application/vnd.hydrostatix.sof-data sfd-hdstx
-# application/vnd.hzn-3d-crossword
-# application/vnd.ibm.afplinedata
-# application/vnd.ibm.electronic-media
-application/vnd.ibm.minipay mpy
-application/vnd.ibm.modcap afp listafp list3820
-application/vnd.ibm.rights-management irm
-application/vnd.ibm.secure-container sc
-application/vnd.iccprofile icc icm
-application/vnd.igloader igl
-application/vnd.immervision-ivp ivp
-application/vnd.immervision-ivu ivu
-# application/vnd.informedcontrol.rms+xml
-# application/vnd.informix-visionary
-# application/vnd.infotech.project
-# application/vnd.infotech.project+xml
-# application/vnd.innopath.wamp.notification
-application/vnd.insors.igm igm
-application/vnd.intercon.formnet xpw xpx
-application/vnd.intergeo i2g
-# application/vnd.intertrust.digibox
-# application/vnd.intertrust.nncp
-application/vnd.intu.qbo qbo
-application/vnd.intu.qfx qfx
-# application/vnd.iptc.g2.conceptitem+xml
-# application/vnd.iptc.g2.knowledgeitem+xml
-# application/vnd.iptc.g2.newsitem+xml
-# application/vnd.iptc.g2.newsmessage+xml
-# application/vnd.iptc.g2.packageitem+xml
-# application/vnd.iptc.g2.planningitem+xml
-application/vnd.ipunplugged.rcprofile rcprofile
-application/vnd.irepository.package+xml irp
-application/vnd.is-xpr xpr
-application/vnd.isac.fcs fcs
-application/vnd.jam jam
-# application/vnd.japannet-directory-service
-# application/vnd.japannet-jpnstore-wakeup
-# application/vnd.japannet-payment-wakeup
-# application/vnd.japannet-registration
-# application/vnd.japannet-registration-wakeup
-# application/vnd.japannet-setstore-wakeup
-# application/vnd.japannet-verification
-# application/vnd.japannet-verification-wakeup
-application/vnd.jcp.javame.midlet-rms rms
-application/vnd.jisp jisp
-application/vnd.joost.joda-archive joda
-application/vnd.kahootz ktz ktr
-application/vnd.kde.karbon karbon
-application/vnd.kde.kchart chrt
-application/vnd.kde.kformula kfo
-application/vnd.kde.kivio flw
-application/vnd.kde.kontour kon
-application/vnd.kde.kpresenter kpr kpt
-application/vnd.kde.kspread ksp
-application/vnd.kde.kword kwd kwt
-application/vnd.kenameaapp htke
-application/vnd.kidspiration kia
-application/vnd.kinar kne knp
-application/vnd.koan skp skd skt skm
-application/vnd.kodak-descriptor sse
-application/vnd.las.las+xml lasxml
-# application/vnd.liberty-request+xml
-application/vnd.llamagraphics.life-balance.desktop lbd
-application/vnd.llamagraphics.life-balance.exchange+xml lbe
-application/vnd.lotus-1-2-3 123
-application/vnd.lotus-approach apr
-application/vnd.lotus-freelance pre
-application/vnd.lotus-notes nsf
-application/vnd.lotus-organizer org
-application/vnd.lotus-screencam scm
-application/vnd.lotus-wordpro lwp
-application/vnd.macports.portpkg portpkg
-# application/vnd.marlin.drm.actiontoken+xml
-# application/vnd.marlin.drm.conftoken+xml
-# application/vnd.marlin.drm.license+xml
-# application/vnd.marlin.drm.mdcf
-application/vnd.mcd mcd
-application/vnd.medcalcdata mc1
-application/vnd.mediastation.cdkey cdkey
-# application/vnd.meridian-slingshot
-application/vnd.mfer mwf
-application/vnd.mfmp mfm
-application/vnd.micrografx.flo flo
-application/vnd.micrografx.igx igx
-application/vnd.mif mif
-# application/vnd.minisoft-hp3000-save
-# application/vnd.mitsubishi.misty-guard.trustweb
-application/vnd.mobius.daf daf
-application/vnd.mobius.dis dis
-application/vnd.mobius.mbk mbk
-application/vnd.mobius.mqy mqy
-application/vnd.mobius.msl msl
-application/vnd.mobius.plc plc
-application/vnd.mobius.txf txf
-application/vnd.mophun.application mpn
-application/vnd.mophun.certificate mpc
-# application/vnd.motorola.flexsuite
-# application/vnd.motorola.flexsuite.adsi
-# application/vnd.motorola.flexsuite.fis
-# application/vnd.motorola.flexsuite.gotap
-# application/vnd.motorola.flexsuite.kmr
-# application/vnd.motorola.flexsuite.ttc
-# application/vnd.motorola.flexsuite.wem
-# application/vnd.motorola.iprm
-application/vnd.mozilla.xul+xml xul
-application/vnd.ms-artgalry cil
-# application/vnd.ms-asf
-application/vnd.ms-cab-compressed cab
-# application/vnd.ms-color.iccprofile
-application/vnd.ms-excel xls xlm xla xlc xlt xlw
-application/vnd.ms-excel.addin.macroenabled.12 xlam
-application/vnd.ms-excel.sheet.binary.macroenabled.12 xlsb
-application/vnd.ms-excel.sheet.macroenabled.12 xlsm
-application/vnd.ms-excel.template.macroenabled.12 xltm
-application/vnd.ms-fontobject eot
-application/vnd.ms-htmlhelp chm
-application/vnd.ms-ims ims
-application/vnd.ms-lrm lrm
-# application/vnd.ms-office.activex+xml
-application/vnd.ms-officetheme thmx
-# application/vnd.ms-opentype
-# application/vnd.ms-package.obfuscated-opentype
-application/vnd.ms-pki.seccat cat
-application/vnd.ms-pki.stl stl
-# application/vnd.ms-playready.initiator+xml
-application/vnd.ms-powerpoint ppt pps pot
-application/vnd.ms-powerpoint.addin.macroenabled.12 ppam
-application/vnd.ms-powerpoint.presentation.macroenabled.12 pptm
-application/vnd.ms-powerpoint.slide.macroenabled.12 sldm
-application/vnd.ms-powerpoint.slideshow.macroenabled.12 ppsm
-application/vnd.ms-powerpoint.template.macroenabled.12 potm
-# application/vnd.ms-printing.printticket+xml
-application/vnd.ms-project mpp mpt
-# application/vnd.ms-tnef
-# application/vnd.ms-wmdrm.lic-chlg-req
-# application/vnd.ms-wmdrm.lic-resp
-# application/vnd.ms-wmdrm.meter-chlg-req
-# application/vnd.ms-wmdrm.meter-resp
-application/vnd.ms-word.document.macroenabled.12 docm
-application/vnd.ms-word.template.macroenabled.12 dotm
-application/vnd.ms-works wps wks wcm wdb
-application/vnd.ms-wpl wpl
-application/vnd.ms-xpsdocument xps
-application/vnd.mseq mseq
-# application/vnd.msign
-# application/vnd.multiad.creator
-# application/vnd.multiad.creator.cif
-# application/vnd.music-niff
-application/vnd.musician mus
-application/vnd.muvee.style msty
-application/vnd.mynfc taglet
-# application/vnd.ncd.control
-# application/vnd.ncd.reference
-# application/vnd.nervana
-# application/vnd.netfpx
-application/vnd.neurolanguage.nlu nlu
-application/vnd.nitf ntf nitf
-application/vnd.noblenet-directory nnd
-application/vnd.noblenet-sealer nns
-application/vnd.noblenet-web nnw
-# application/vnd.nokia.catalogs
-# application/vnd.nokia.conml+wbxml
-# application/vnd.nokia.conml+xml
-# application/vnd.nokia.isds-radio-presets
-# application/vnd.nokia.iptv.config+xml
-# application/vnd.nokia.landmark+wbxml
-# application/vnd.nokia.landmark+xml
-# application/vnd.nokia.landmarkcollection+xml
-# application/vnd.nokia.n-gage.ac+xml
-application/vnd.nokia.n-gage.data ngdat
-application/vnd.nokia.n-gage.symbian.install n-gage
-# application/vnd.nokia.ncd
-# application/vnd.nokia.pcd+wbxml
-# application/vnd.nokia.pcd+xml
-application/vnd.nokia.radio-preset rpst
-application/vnd.nokia.radio-presets rpss
-application/vnd.novadigm.edm edm
-application/vnd.novadigm.edx edx
-application/vnd.novadigm.ext ext
-# application/vnd.ntt-local.file-transfer
-# application/vnd.ntt-local.sip-ta_remote
-# application/vnd.ntt-local.sip-ta_tcp_stream
-application/vnd.oasis.opendocument.chart odc
-application/vnd.oasis.opendocument.chart-template otc
-application/vnd.oasis.opendocument.database odb
-application/vnd.oasis.opendocument.formula odf
-application/vnd.oasis.opendocument.formula-template odft
-application/vnd.oasis.opendocument.graphics odg
-application/vnd.oasis.opendocument.graphics-template otg
-application/vnd.oasis.opendocument.image odi
-application/vnd.oasis.opendocument.image-template oti
-application/vnd.oasis.opendocument.presentation odp
-application/vnd.oasis.opendocument.presentation-template otp
-application/vnd.oasis.opendocument.spreadsheet ods
-application/vnd.oasis.opendocument.spreadsheet-template ots
-application/vnd.oasis.opendocument.text odt
-application/vnd.oasis.opendocument.text-master odm
-application/vnd.oasis.opendocument.text-template ott
-application/vnd.oasis.opendocument.text-web oth
-# application/vnd.obn
-# application/vnd.oftn.l10n+json
-# application/vnd.oipf.contentaccessdownload+xml
-# application/vnd.oipf.contentaccessstreaming+xml
-# application/vnd.oipf.cspg-hexbinary
-# application/vnd.oipf.dae.svg+xml
-# application/vnd.oipf.dae.xhtml+xml
-# application/vnd.oipf.mippvcontrolmessage+xml
-# application/vnd.oipf.pae.gem
-# application/vnd.oipf.spdiscovery+xml
-# application/vnd.oipf.spdlist+xml
-# application/vnd.oipf.ueprofile+xml
-# application/vnd.oipf.userprofile+xml
-application/vnd.olpc-sugar xo
-# application/vnd.oma-scws-config
-# application/vnd.oma-scws-http-request
-# application/vnd.oma-scws-http-response
-# application/vnd.oma.bcast.associated-procedure-parameter+xml
-# application/vnd.oma.bcast.drm-trigger+xml
-# application/vnd.oma.bcast.imd+xml
-# application/vnd.oma.bcast.ltkm
-# application/vnd.oma.bcast.notification+xml
-# application/vnd.oma.bcast.provisioningtrigger
-# application/vnd.oma.bcast.sgboot
-# application/vnd.oma.bcast.sgdd+xml
-# application/vnd.oma.bcast.sgdu
-# application/vnd.oma.bcast.simple-symbol-container
-# application/vnd.oma.bcast.smartcard-trigger+xml
-# application/vnd.oma.bcast.sprov+xml
-# application/vnd.oma.bcast.stkm
-# application/vnd.oma.cab-address-book+xml
-# application/vnd.oma.cab-feature-handler+xml
-# application/vnd.oma.cab-pcc+xml
-# application/vnd.oma.cab-user-prefs+xml
-# application/vnd.oma.dcd
-# application/vnd.oma.dcdc
-application/vnd.oma.dd2+xml dd2
-# application/vnd.oma.drm.risd+xml
-# application/vnd.oma.group-usage-list+xml
-# application/vnd.oma.pal+xml
-# application/vnd.oma.poc.detailed-progress-report+xml
-# application/vnd.oma.poc.final-report+xml
-# application/vnd.oma.poc.groups+xml
-# application/vnd.oma.poc.invocation-descriptor+xml
-# application/vnd.oma.poc.optimized-progress-report+xml
-# application/vnd.oma.push
-# application/vnd.oma.scidm.messages+xml
-# application/vnd.oma.xcap-directory+xml
-# application/vnd.omads-email+xml
-# application/vnd.omads-file+xml
-# application/vnd.omads-folder+xml
-# application/vnd.omaloc-supl-init
-application/vnd.openofficeorg.extension oxt
-# application/vnd.openxmlformats-officedocument.custom-properties+xml
-# application/vnd.openxmlformats-officedocument.customxmlproperties+xml
-# application/vnd.openxmlformats-officedocument.drawing+xml
-# application/vnd.openxmlformats-officedocument.drawingml.chart+xml
-# application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml
-# application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml
-# application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml
-# application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml
-# application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml
-# application/vnd.openxmlformats-officedocument.extended-properties+xml
-# application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml
-# application/vnd.openxmlformats-officedocument.presentationml.comments+xml
-# application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml
-# application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml
-# application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml
-application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
-# application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml
-# application/vnd.openxmlformats-officedocument.presentationml.presprops+xml
-application/vnd.openxmlformats-officedocument.presentationml.slide sldx
-# application/vnd.openxmlformats-officedocument.presentationml.slide+xml
-# application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml
-# application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml
-application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
-# application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml
-# application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml
-# application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml
-# application/vnd.openxmlformats-officedocument.presentationml.tags+xml
-application/vnd.openxmlformats-officedocument.presentationml.template potx
-# application/vnd.openxmlformats-officedocument.presentationml.template.main+xml
-# application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml
-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
-# application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml
-application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
-# application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml
-# application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml
-# application/vnd.openxmlformats-officedocument.theme+xml
-# application/vnd.openxmlformats-officedocument.themeoverride+xml
-# application/vnd.openxmlformats-officedocument.vmldrawing
-# application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml
-application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
-# application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml
-application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
-# application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml
-# application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml
-# application/vnd.openxmlformats-package.core-properties+xml
-# application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml
-# application/vnd.openxmlformats-package.relationships+xml
-# application/vnd.quobject-quoxdocument
-# application/vnd.osa.netdeploy
-application/vnd.osgeo.mapguide.package mgp
-# application/vnd.osgi.bundle
-application/vnd.osgi.dp dp
-application/vnd.osgi.subsystem esa
-# application/vnd.otps.ct-kip+xml
-application/vnd.palm pdb pqa oprc
-# application/vnd.paos.xml
-application/vnd.pawaafile paw
-application/vnd.pg.format str
-application/vnd.pg.osasli ei6
-# application/vnd.piaccess.application-licence
-application/vnd.picsel efif
-application/vnd.pmi.widget wg
-# application/vnd.poc.group-advertisement+xml
-application/vnd.pocketlearn plf
-application/vnd.powerbuilder6 pbd
-# application/vnd.powerbuilder6-s
-# application/vnd.powerbuilder7
-# application/vnd.powerbuilder7-s
-# application/vnd.powerbuilder75
-# application/vnd.powerbuilder75-s
-# application/vnd.preminet
-application/vnd.previewsystems.box box
-application/vnd.proteus.magazine mgz
-application/vnd.publishare-delta-tree qps
-application/vnd.pvi.ptid1 ptid
-# application/vnd.pwg-multiplexed
-# application/vnd.pwg-xhtml-print+xml
-# application/vnd.qualcomm.brew-app-res
-application/vnd.quark.quarkxpress qxd qxt qwd qwt qxl qxb
-# application/vnd.radisys.moml+xml
-# application/vnd.radisys.msml+xml
-# application/vnd.radisys.msml-audit+xml
-# application/vnd.radisys.msml-audit-conf+xml
-# application/vnd.radisys.msml-audit-conn+xml
-# application/vnd.radisys.msml-audit-dialog+xml
-# application/vnd.radisys.msml-audit-stream+xml
-# application/vnd.radisys.msml-conf+xml
-# application/vnd.radisys.msml-dialog+xml
-# application/vnd.radisys.msml-dialog-base+xml
-# application/vnd.radisys.msml-dialog-fax-detect+xml
-# application/vnd.radisys.msml-dialog-fax-sendrecv+xml
-# application/vnd.radisys.msml-dialog-group+xml
-# application/vnd.radisys.msml-dialog-speech+xml
-# application/vnd.radisys.msml-dialog-transform+xml
-# application/vnd.rainstor.data
-# application/vnd.rapid
-application/vnd.realvnc.bed bed
-application/vnd.recordare.musicxml mxl
-application/vnd.recordare.musicxml+xml musicxml
-# application/vnd.renlearn.rlprint
-application/vnd.rig.cryptonote cryptonote
-application/vnd.rim.cod cod
-application/vnd.rn-realmedia rm
-application/vnd.rn-realmedia-vbr rmvb
-application/vnd.route66.link66+xml link66
-# application/vnd.rs-274x
-# application/vnd.ruckus.download
-# application/vnd.s3sms
-application/vnd.sailingtracker.track st
-# application/vnd.sbm.cid
-# application/vnd.sbm.mid2
-# application/vnd.scribus
-# application/vnd.sealed.3df
-# application/vnd.sealed.csf
-# application/vnd.sealed.doc
-# application/vnd.sealed.eml
-# application/vnd.sealed.mht
-# application/vnd.sealed.net
-# application/vnd.sealed.ppt
-# application/vnd.sealed.tiff
-# application/vnd.sealed.xls
-# application/vnd.sealedmedia.softseal.html
-# application/vnd.sealedmedia.softseal.pdf
-application/vnd.seemail see
-application/vnd.sema sema
-application/vnd.semd semd
-application/vnd.semf semf
-application/vnd.shana.informed.formdata ifm
-application/vnd.shana.informed.formtemplate itp
-application/vnd.shana.informed.interchange iif
-application/vnd.shana.informed.package ipk
-application/vnd.simtech-mindmapper twd twds
-application/vnd.smaf mmf
-# application/vnd.smart.notebook
-application/vnd.smart.teacher teacher
-# application/vnd.software602.filler.form+xml
-# application/vnd.software602.filler.form-xml-zip
-application/vnd.solent.sdkm+xml sdkm sdkd
-application/vnd.spotfire.dxp dxp
-application/vnd.spotfire.sfs sfs
-# application/vnd.sss-cod
-# application/vnd.sss-dtf
-# application/vnd.sss-ntf
-application/vnd.stardivision.calc sdc
-application/vnd.stardivision.draw sda
-application/vnd.stardivision.impress sdd
-application/vnd.stardivision.math smf
-application/vnd.stardivision.writer sdw vor
-application/vnd.stardivision.writer-global sgl
-application/vnd.stepmania.package smzip
-application/vnd.stepmania.stepchart sm
-# application/vnd.street-stream
-application/vnd.sun.xml.calc sxc
-application/vnd.sun.xml.calc.template stc
-application/vnd.sun.xml.draw sxd
-application/vnd.sun.xml.draw.template std
-application/vnd.sun.xml.impress sxi
-application/vnd.sun.xml.impress.template sti
-application/vnd.sun.xml.math sxm
-application/vnd.sun.xml.writer sxw
-application/vnd.sun.xml.writer.global sxg
-application/vnd.sun.xml.writer.template stw
-# application/vnd.sun.wadl+xml
-application/vnd.sus-calendar sus susp
-application/vnd.svd svd
-# application/vnd.swiftview-ics
-application/vnd.symbian.install sis sisx
-application/vnd.syncml+xml xsm
-application/vnd.syncml.dm+wbxml bdm
-application/vnd.syncml.dm+xml xdm
-# application/vnd.syncml.dm.notification
-# application/vnd.syncml.ds.notification
-application/vnd.tao.intent-module-archive tao
-application/vnd.tcpdump.pcap pcap cap dmp
-application/vnd.tmobile-livetv tmo
-application/vnd.trid.tpt tpt
-application/vnd.triscape.mxs mxs
-application/vnd.trueapp tra
-# application/vnd.truedoc
-# application/vnd.ubisoft.webplayer
-application/vnd.ufdl ufd ufdl
-application/vnd.uiq.theme utz
-application/vnd.umajin umj
-application/vnd.unity unityweb
-application/vnd.uoml+xml uoml
-# application/vnd.uplanet.alert
-# application/vnd.uplanet.alert-wbxml
-# application/vnd.uplanet.bearer-choice
-# application/vnd.uplanet.bearer-choice-wbxml
-# application/vnd.uplanet.cacheop
-# application/vnd.uplanet.cacheop-wbxml
-# application/vnd.uplanet.channel
-# application/vnd.uplanet.channel-wbxml
-# application/vnd.uplanet.list
-# application/vnd.uplanet.list-wbxml
-# application/vnd.uplanet.listcmd
-# application/vnd.uplanet.listcmd-wbxml
-# application/vnd.uplanet.signal
-application/vnd.vcx vcx
-# application/vnd.vd-study
-# application/vnd.vectorworks
-# application/vnd.verimatrix.vcas
-# application/vnd.vidsoft.vidconference
-application/vnd.visio vsd vst vss vsw
-application/vnd.visionary vis
-# application/vnd.vividence.scriptfile
-application/vnd.vsf vsf
-# application/vnd.wap.sic
-# application/vnd.wap.slc
-application/vnd.wap.wbxml wbxml
-application/vnd.wap.wmlc wmlc
-application/vnd.wap.wmlscriptc wmlsc
-application/vnd.webturbo wtb
-# application/vnd.wfa.wsc
-# application/vnd.wmc
-# application/vnd.wmf.bootstrap
-# application/vnd.wolfram.mathematica
-# application/vnd.wolfram.mathematica.package
-application/vnd.wolfram.player nbp
-application/vnd.wordperfect wpd
-application/vnd.wqd wqd
-# application/vnd.wrq-hp3000-labelled
-application/vnd.wt.stf stf
-# application/vnd.wv.csp+wbxml
-# application/vnd.wv.csp+xml
-# application/vnd.wv.ssp+xml
-application/vnd.xara xar
-application/vnd.xfdl xfdl
-# application/vnd.xfdl.webform
-# application/vnd.xmi+xml
-# application/vnd.xmpie.cpkg
-# application/vnd.xmpie.dpkg
-# application/vnd.xmpie.plan
-# application/vnd.xmpie.ppkg
-# application/vnd.xmpie.xlim
-application/vnd.yamaha.hv-dic hvd
-application/vnd.yamaha.hv-script hvs
-application/vnd.yamaha.hv-voice hvp
-application/vnd.yamaha.openscoreformat osf
-application/vnd.yamaha.openscoreformat.osfpvg+xml osfpvg
-# application/vnd.yamaha.remote-setup
-application/vnd.yamaha.smaf-audio saf
-application/vnd.yamaha.smaf-phrase spf
-# application/vnd.yamaha.through-ngn
-# application/vnd.yamaha.tunnel-udpencap
-application/vnd.yellowriver-custom-menu cmp
-application/vnd.zul zir zirz
-application/vnd.zzazz.deck+xml zaz
-application/voicexml+xml vxml
-# application/vq-rtcpxr
-# application/watcherinfo+xml
-# application/whoispp-query
-# application/whoispp-response
-application/widget wgt
-application/winhlp hlp
-# application/wita
-# application/wordperfect5.1
-application/wsdl+xml wsdl
-application/wspolicy+xml wspolicy
-application/x-7z-compressed 7z
-application/x-abiword abw
-application/x-ace-compressed ace
-# application/x-amf
-application/x-apple-diskimage dmg
-application/x-authorware-bin aab x32 u32 vox
-application/x-authorware-map aam
-application/x-authorware-seg aas
-application/x-bcpio bcpio
-application/x-bittorrent torrent
-application/x-blorb blb blorb
-application/x-bzip bz
-application/x-bzip2 bz2 boz
-application/x-cbr cbr cba cbt cbz cb7
-application/x-cdlink vcd
-application/x-cfs-compressed cfs
-application/x-chat chat
-application/x-chess-pgn pgn
-application/x-conference nsc
-# application/x-compress
-application/x-cpio cpio
-application/x-csh csh
-application/x-debian-package deb udeb
-application/x-dgc-compressed dgc
-application/x-director dir dcr dxr cst cct cxt w3d fgd swa
-application/x-doom wad
-application/x-dtbncx+xml ncx
-application/x-dtbook+xml dtb
-application/x-dtbresource+xml res
-application/x-dvi dvi
-application/x-envoy evy
-application/x-eva eva
-application/x-font-bdf bdf
-# application/x-font-dos
-# application/x-font-framemaker
-application/x-font-ghostscript gsf
-# application/x-font-libgrx
-application/x-font-linux-psf psf
-application/x-font-otf otf
-application/x-font-pcf pcf
-application/x-font-snf snf
-# application/x-font-speedo
-# application/x-font-sunos-news
-application/x-font-ttf ttf ttc
-application/x-font-type1 pfa pfb pfm afm
-application/x-font-woff woff
-# application/x-font-vfont
-application/x-freearc arc
-application/x-futuresplash spl
-application/x-gca-compressed gca
-application/x-glulx ulx
-application/x-gnumeric gnumeric
-application/x-gramps-xml gramps
-application/x-gtar gtar
-# application/x-gzip
-application/x-hdf hdf
-application/x-install-instructions install
-application/x-iso9660-image iso
-application/x-java-jnlp-file jnlp
-application/x-latex latex
-application/x-lzh-compressed lzh lha
-application/x-mie mie
-application/x-mobipocket-ebook prc mobi
-application/x-ms-application application
-application/x-ms-shortcut lnk
-application/x-ms-wmd wmd
-application/x-ms-wmz wmz
-application/x-ms-xbap xbap
-application/x-msaccess mdb
-application/x-msbinder obd
-application/x-mscardfile crd
-application/x-msclip clp
-application/x-msdownload exe dll com bat msi
-application/x-msmediaview mvb m13 m14
-application/x-msmetafile wmf wmz emf emz
-application/x-msmoney mny
-application/x-mspublisher pub
-application/x-msschedule scd
-application/x-msterminal trm
-application/x-mswrite wri
-application/x-netcdf nc cdf
-application/x-nzb nzb
-application/x-pkcs12 p12 pfx
-application/x-pkcs7-certificates p7b spc
-application/x-pkcs7-certreqresp p7r
-application/x-rar-compressed rar
-application/x-research-info-systems ris
-application/x-sh sh
-application/x-shar shar
-application/x-shockwave-flash swf
-application/x-silverlight-app xap
-application/x-sql sql
-application/x-stuffit sit
-application/x-stuffitx sitx
-application/x-subrip srt
-application/x-sv4cpio sv4cpio
-application/x-sv4crc sv4crc
-application/x-t3vm-image t3
-application/x-tads gam
-application/x-tar tar
-application/x-tcl tcl
-application/x-tex tex
-application/x-tex-tfm tfm
-application/x-texinfo texinfo texi
-application/x-tgif obj
-application/x-ustar ustar
-application/x-wais-source src
-application/x-x509-ca-cert der crt
-application/x-xfig fig
-application/x-xliff+xml xlf
-application/x-xpinstall xpi
-application/x-xz xz
-application/x-zmachine z1 z2 z3 z4 z5 z6 z7 z8
-# application/x400-bp
-application/xaml+xml xaml
-# application/xcap-att+xml
-# application/xcap-caps+xml
-application/xcap-diff+xml xdf
-# application/xcap-el+xml
-# application/xcap-error+xml
-# application/xcap-ns+xml
-# application/xcon-conference-info-diff+xml
-# application/xcon-conference-info+xml
-application/xenc+xml xenc
-application/xhtml+xml xhtml xht
-# application/xhtml-voice+xml
-application/xml xml xsl
-application/xml-dtd dtd
-# application/xml-external-parsed-entity
-# application/xmpp+xml
-application/xop+xml xop
-application/xproc+xml xpl
-application/xslt+xml xslt
-application/xspf+xml xspf
-application/xv+xml mxml xhvml xvml xvm
-application/yang yang
-application/yin+xml yin
-application/zip zip
-# audio/1d-interleaved-parityfec
-# audio/32kadpcm
-# audio/3gpp
-# audio/3gpp2
-# audio/ac3
-audio/adpcm adp
-# audio/amr
-# audio/amr-wb
-# audio/amr-wb+
-# audio/asc
-# audio/atrac-advanced-lossless
-# audio/atrac-x
-# audio/atrac3
-audio/basic au snd
-# audio/bv16
-# audio/bv32
-# audio/clearmode
-# audio/cn
-# audio/dat12
-# audio/dls
-# audio/dsr-es201108
-# audio/dsr-es202050
-# audio/dsr-es202211
-# audio/dsr-es202212
-# audio/dv
-# audio/dvi4
-# audio/eac3
-# audio/evrc
-# audio/evrc-qcp
-# audio/evrc0
-# audio/evrc1
-# audio/evrcb
-# audio/evrcb0
-# audio/evrcb1
-# audio/evrcwb
-# audio/evrcwb0
-# audio/evrcwb1
-# audio/example
-# audio/fwdred
-# audio/g719
-# audio/g722
-# audio/g7221
-# audio/g723
-# audio/g726-16
-# audio/g726-24
-# audio/g726-32
-# audio/g726-40
-# audio/g728
-# audio/g729
-# audio/g7291
-# audio/g729d
-# audio/g729e
-# audio/gsm
-# audio/gsm-efr
-# audio/gsm-hr-08
-# audio/ilbc
-# audio/ip-mr_v2.5
-# audio/isac
-# audio/l16
-# audio/l20
-# audio/l24
-# audio/l8
-# audio/lpc
-audio/midi mid midi kar rmi
-# audio/mobile-xmf
-audio/mp4 mp4a
-# audio/mp4a-latm
-# audio/mpa
-# audio/mpa-robust
-audio/mpeg mpga mp2 mp2a mp3 m2a m3a
-# audio/mpeg4-generic
-# audio/musepack
-audio/ogg oga ogg spx
-# audio/opus
-# audio/parityfec
-# audio/pcma
-# audio/pcma-wb
-# audio/pcmu-wb
-# audio/pcmu
-# audio/prs.sid
-# audio/qcelp
-# audio/red
-# audio/rtp-enc-aescm128
-# audio/rtp-midi
-# audio/rtx
-audio/s3m s3m
-audio/silk sil
-# audio/smv
-# audio/smv0
-# audio/smv-qcp
-# audio/sp-midi
-# audio/speex
-# audio/t140c
-# audio/t38
-# audio/telephone-event
-# audio/tone
-# audio/uemclip
-# audio/ulpfec
-# audio/vdvi
-# audio/vmr-wb
-# audio/vnd.3gpp.iufp
-# audio/vnd.4sb
-# audio/vnd.audiokoz
-# audio/vnd.celp
-# audio/vnd.cisco.nse
-# audio/vnd.cmles.radio-events
-# audio/vnd.cns.anp1
-# audio/vnd.cns.inf1
-audio/vnd.dece.audio uva uvva
-audio/vnd.digital-winds eol
-# audio/vnd.dlna.adts
-# audio/vnd.dolby.heaac.1
-# audio/vnd.dolby.heaac.2
-# audio/vnd.dolby.mlp
-# audio/vnd.dolby.mps
-# audio/vnd.dolby.pl2
-# audio/vnd.dolby.pl2x
-# audio/vnd.dolby.pl2z
-# audio/vnd.dolby.pulse.1
-audio/vnd.dra dra
-audio/vnd.dts dts
-audio/vnd.dts.hd dtshd
-# audio/vnd.dvb.file
-# audio/vnd.everad.plj
-# audio/vnd.hns.audio
-audio/vnd.lucent.voice lvp
-audio/vnd.ms-playready.media.pya pya
-# audio/vnd.nokia.mobile-xmf
-# audio/vnd.nortel.vbk
-audio/vnd.nuera.ecelp4800 ecelp4800
-audio/vnd.nuera.ecelp7470 ecelp7470
-audio/vnd.nuera.ecelp9600 ecelp9600
-# audio/vnd.octel.sbc
-# audio/vnd.qcelp
-# audio/vnd.rhetorex.32kadpcm
-audio/vnd.rip rip
-# audio/vnd.sealedmedia.softseal.mpeg
-# audio/vnd.vmx.cvsd
-# audio/vorbis
-# audio/vorbis-config
-audio/webm weba
-audio/x-aac aac
-audio/x-aiff aif aiff aifc
-audio/x-caf caf
-audio/x-flac flac
-audio/x-matroska mka
-audio/x-mpegurl m3u
-audio/x-ms-wax wax
-audio/x-ms-wma wma
-audio/x-pn-realaudio ram ra
-audio/x-pn-realaudio-plugin rmp
-# audio/x-tta
-audio/x-wav wav
-audio/xm xm
-chemical/x-cdx cdx
-chemical/x-cif cif
-chemical/x-cmdf cmdf
-chemical/x-cml cml
-chemical/x-csml csml
-# chemical/x-pdb
-chemical/x-xyz xyz
-image/bmp bmp
-image/cgm cgm
-# image/example
-# image/fits
-image/g3fax g3
-image/gif gif
-image/ief ief
-# image/jp2
-image/jpeg jpeg jpg jpe
-# image/jpm
-# image/jpx
-image/ktx ktx
-# image/naplps
-image/png png
-image/prs.btif btif
-# image/prs.pti
-image/sgi sgi
-image/svg+xml svg svgz
-# image/t38
-image/tiff tiff tif
-# image/tiff-fx
-image/vnd.adobe.photoshop psd
-# image/vnd.cns.inf2
-image/vnd.dece.graphic uvi uvvi uvg uvvg
-image/vnd.dvb.subtitle sub
-image/vnd.djvu djvu djv
-image/vnd.dwg dwg
-image/vnd.dxf dxf
-image/vnd.fastbidsheet fbs
-image/vnd.fpx fpx
-image/vnd.fst fst
-image/vnd.fujixerox.edmics-mmr mmr
-image/vnd.fujixerox.edmics-rlc rlc
-# image/vnd.globalgraphics.pgb
-# image/vnd.microsoft.icon
-# image/vnd.mix
-image/vnd.ms-modi mdi
-image/vnd.ms-photo wdp
-image/vnd.net-fpx npx
-# image/vnd.radiance
-# image/vnd.sealed.png
-# image/vnd.sealedmedia.softseal.gif
-# image/vnd.sealedmedia.softseal.jpg
-# image/vnd.svf
-image/vnd.wap.wbmp wbmp
-image/vnd.xiff xif
-image/webp webp
-image/x-3ds 3ds
-image/x-cmu-raster ras
-image/x-cmx cmx
-image/x-freehand fh fhc fh4 fh5 fh7
-image/x-icon ico
-image/x-mrsid-image sid
-image/x-pcx pcx
-image/x-pict pic pct
-image/x-portable-anymap pnm
-image/x-portable-bitmap pbm
-image/x-portable-graymap pgm
-image/x-portable-pixmap ppm
-image/x-rgb rgb
-image/x-tga tga
-image/x-xbitmap xbm
-image/x-xpixmap xpm
-image/x-xwindowdump xwd
-# message/cpim
-# message/delivery-status
-# message/disposition-notification
-# message/example
-# message/external-body
-# message/feedback-report
-# message/global
-# message/global-delivery-status
-# message/global-disposition-notification
-# message/global-headers
-# message/http
-# message/imdn+xml
-# message/news
-# message/partial
-message/rfc822 eml mime
-# message/s-http
-# message/sip
-# message/sipfrag
-# message/tracking-status
-# message/vnd.si.simp
-# model/example
-model/iges igs iges
-model/mesh msh mesh silo
-model/vnd.collada+xml dae
-model/vnd.dwf dwf
-# model/vnd.flatland.3dml
-model/vnd.gdl gdl
-# model/vnd.gs-gdl
-# model/vnd.gs.gdl
-model/vnd.gtw gtw
-# model/vnd.moml+xml
-model/vnd.mts mts
-# model/vnd.parasolid.transmit.binary
-# model/vnd.parasolid.transmit.text
-model/vnd.vtu vtu
-model/vrml wrl vrml
-model/x3d+binary x3db x3dbz
-model/x3d+vrml x3dv x3dvz
-model/x3d+xml x3d x3dz
-# multipart/alternative
-# multipart/appledouble
-# multipart/byteranges
-# multipart/digest
-# multipart/encrypted
-# multipart/example
-# multipart/form-data
-# multipart/header-set
-# multipart/mixed
-# multipart/parallel
-# multipart/related
-# multipart/report
-# multipart/signed
-# multipart/voice-message
-# text/1d-interleaved-parityfec
-text/cache-manifest appcache
-text/calendar ics ifb
-text/css css
-text/csv csv
-# text/directory
-# text/dns
-# text/ecmascript
-# text/enriched
-# text/example
-# text/fwdred
-text/html html htm
-# text/javascript
-text/n3 n3
-# text/parityfec
-text/plain txt text conf def list log in
-# text/prs.fallenstein.rst
-text/prs.lines.tag dsc
-# text/vnd.radisys.msml-basic-layout
-# text/red
-# text/rfc822-headers
-text/richtext rtx
-# text/rtf
-# text/rtp-enc-aescm128
-# text/rtx
-text/sgml sgml sgm
-# text/t140
-text/tab-separated-values tsv
-text/troff t tr roff man me ms
-text/turtle ttl
-# text/ulpfec
-text/uri-list uri uris urls
-text/vcard vcard
-# text/vnd.abc
-text/vnd.curl curl
-text/vnd.curl.dcurl dcurl
-text/vnd.curl.scurl scurl
-text/vnd.curl.mcurl mcurl
-# text/vnd.dmclientscript
-text/vnd.dvb.subtitle sub
-# text/vnd.esmertec.theme-descriptor
-text/vnd.fly fly
-text/vnd.fmi.flexstor flx
-text/vnd.graphviz gv
-text/vnd.in3d.3dml 3dml
-text/vnd.in3d.spot spot
-# text/vnd.iptc.newsml
-# text/vnd.iptc.nitf
-# text/vnd.latex-z
-# text/vnd.motorola.reflex
-# text/vnd.ms-mediapackage
-# text/vnd.net2phone.commcenter.command
-# text/vnd.si.uricatalogue
-text/vnd.sun.j2me.app-descriptor jad
-# text/vnd.trolltech.linguist
-# text/vnd.wap.si
-# text/vnd.wap.sl
-text/vnd.wap.wml wml
-text/vnd.wap.wmlscript wmls
-text/x-asm s asm
-text/x-c c cc cxx cpp h hh dic
-text/x-fortran f for f77 f90
-text/x-java-source java
-text/x-opml opml
-text/x-pascal p pas
-text/x-nfo nfo
-text/x-setext etx
-text/x-sfv sfv
-text/x-uuencode uu
-text/x-vcalendar vcs
-text/x-vcard vcf
-# text/xml
-# text/xml-external-parsed-entity
-# video/1d-interleaved-parityfec
-video/3gpp 3gp
-# video/3gpp-tt
-video/3gpp2 3g2
-# video/bmpeg
-# video/bt656
-# video/celb
-# video/dv
-# video/example
-video/h261 h261
-video/h263 h263
-# video/h263-1998
-# video/h263-2000
-video/h264 h264
-# video/h264-rcdo
-# video/h264-svc
-video/jpeg jpgv
-# video/jpeg2000
-video/jpm jpm jpgm
-video/mj2 mj2 mjp2
-# video/mp1s
-# video/mp2p
-# video/mp2t
-video/mp4 mp4 mp4v mpg4
-# video/mp4v-es
-video/mpeg mpeg mpg mpe m1v m2v
-# video/mpeg4-generic
-# video/mpv
-# video/nv
-video/ogg ogv
-# video/parityfec
-# video/pointer
-video/quicktime qt mov
-# video/raw
-# video/rtp-enc-aescm128
-# video/rtx
-# video/smpte292m
-# video/ulpfec
-# video/vc1
-# video/vnd.cctv
-video/vnd.dece.hd uvh uvvh
-video/vnd.dece.mobile uvm uvvm
-# video/vnd.dece.mp4
-video/vnd.dece.pd uvp uvvp
-video/vnd.dece.sd uvs uvvs
-video/vnd.dece.video uvv uvvv
-# video/vnd.directv.mpeg
-# video/vnd.directv.mpeg-tts
-# video/vnd.dlna.mpeg-tts
-video/vnd.dvb.file dvb
-video/vnd.fvt fvt
-# video/vnd.hns.video
-# video/vnd.iptvforum.1dparityfec-1010
-# video/vnd.iptvforum.1dparityfec-2005
-# video/vnd.iptvforum.2dparityfec-1010
-# video/vnd.iptvforum.2dparityfec-2005
-# video/vnd.iptvforum.ttsavc
-# video/vnd.iptvforum.ttsmpeg2
-# video/vnd.motorola.video
-# video/vnd.motorola.videop
-video/vnd.mpegurl mxu m4u
-video/vnd.ms-playready.media.pyv pyv
-# video/vnd.nokia.interleaved-multimedia
-# video/vnd.nokia.videovoip
-# video/vnd.objectvideo
-# video/vnd.sealed.mpeg1
-# video/vnd.sealed.mpeg4
-# video/vnd.sealed.swf
-# video/vnd.sealedmedia.softseal.mov
-video/vnd.uvvu.mp4 uvu uvvu
-video/vnd.vivo viv
-video/webm webm
-video/x-f4v f4v
-video/x-fli fli
-video/x-flv flv
-video/x-m4v m4v
-video/x-matroska mkv mk3d mks
-video/x-mng mng
-video/x-ms-asf asf asx
-video/x-ms-vob vob
-video/x-ms-wm wm
-video/x-ms-wmv wmv
-video/x-ms-wmx wmx
-video/x-ms-wvx wvx
-video/x-msvideo avi
-video/x-sgi-movie movie
-video/x-smv smv
-x-conference/x-cooltalk ice
diff --git a/node_modules/mime/types/node.types b/node_modules/mime/types/node.types
deleted file mode 100644
index 970a1bd..0000000
--- a/node_modules/mime/types/node.types
+++ /dev/null
@@ -1,60 +0,0 @@
-# What: WebVTT
-# Why: To allow formats intended for marking up external text track resources.
-# http://dev.w3.org/html5/webvtt/
-# Added by: niftylettuce
-text/vtt vtt
-
-# What: Google Chrome Extension
-# Why: To allow apps to (work) be served with the right content type header.
-# http://codereview.chromium.org/2830017
-# Added by: niftylettuce
-application/x-chrome-extension crx
-
-# What: HTC support
-# Why: To properly render .htc files such as CSS3PIE
-# Added by: niftylettuce
-text/x-component htc
-
-# What: HTML5 application cache manifest
-# Why: De-facto standard. Required by Mozilla browser when serving HTML5 apps
-# per https://developer.mozilla.org/en/offline_resources_in_firefox
-# Added by: louisremi
-text/cache-manifest appcache manifest
-
-# What: node binary buffer format
-# Why: semi-standard extension w/in the node community
-# Added by: tootallnate
-application/octet-stream buffer
-
-# What: The "protected" MP-4 formats used by iTunes.
-# Why: Required for streaming music to browsers (?)
-# Added by: broofa
-application/mp4 m4p
-audio/mp4 m4a
-
-# What: Video format, Part of RFC1890
-# Why: See https://github.com/bentomas/node-mime/pull/6
-# Added by: mjrusso
-video/MP2T ts
-
-# What: EventSource mime type
-# Why: mime type of Server-Sent Events stream
-# http://www.w3.org/TR/eventsource/#text-event-stream
-# Added by: francois2metz
-text/event-stream event-stream
-
-# What: Mozilla App manifest mime type
-# Why: https://developer.mozilla.org/en/Apps/Manifest#Serving_manifests
-# Added by: ednapiranha
-application/x-web-app-manifest+json webapp
-
-# What: Lua file types
-# Why: Googling around shows de-facto consensus on these
-# Added by: creationix (Issue #45)
-text/x-lua lua
-application/x-lua-bytecode luac
-
-# What: Markdown files, as per http://daringfireball.net/projects/markdown/syntax
-# Why: http://stackoverflow.com/questions/10701983/what-is-the-mime-type-for-markdown
-# Added by: avoidwork
-text/x-markdown markdown md mkd
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 3143e90..0000000
--- a/package-lock.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": "TransferGo",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "dependencies": {
- "git": "^0.1.5"
- }
- },
- "node_modules/git": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/git/-/git-0.1.5.tgz",
- "integrity": "sha512-N+bfOrXyKMU/fQtCj6D/U9MQOEN0DAA8TLHSLdUQRSWBOkeRvsjJHdrdkvcq05xO7GSDKWc3nDEGoTZ4DfCCSg==",
- "dependencies": {
- "mime": "1.2.9"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/mime": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz",
- "integrity": "sha512-WiLgbHTIq5AYUvU/Luli4mZ1bUcHpGNHyCsbl+KPMg4zt+XUDpQehWjuBjdLaEvDTinvKj/FgfQt3fPoT7j08g=="
- }
- },
- "dependencies": {
- "git": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/git/-/git-0.1.5.tgz",
- "integrity": "sha512-N+bfOrXyKMU/fQtCj6D/U9MQOEN0DAA8TLHSLdUQRSWBOkeRvsjJHdrdkvcq05xO7GSDKWc3nDEGoTZ4DfCCSg==",
- "requires": {
- "mime": "1.2.9"
- }
- },
- "mime": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz",
- "integrity": "sha512-WiLgbHTIq5AYUvU/Luli4mZ1bUcHpGNHyCsbl+KPMg4zt+XUDpQehWjuBjdLaEvDTinvKj/FgfQt3fPoT7j08g=="
- }
- }
-}
diff --git a/package.json b/package.json
deleted file mode 100644
index 3ef4c2a..0000000
--- a/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "dependencies": {
- "git": "^0.1.5"
- }
-}
diff --git a/src/backend/TransferGo/.gitignore b/src/backend/TransferGo/.gitignore
index a9d0f21..409d282 100644
--- a/src/backend/TransferGo/.gitignore
+++ b/src/backend/TransferGo/.gitignore
@@ -1,9 +1,195 @@
-00*_*.py
+# Created by https://www.toptal.com/developers/gitignore/api/django
+# Edit at https://www.toptal.com/developers/gitignore?templates=django
+
+### Django ###
+*.log
+*.pot
+*.pyc
+__pycache__/
+core/management/__pycache__
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+media
+
+# If your build process includes running collect
+# static, then you probably don't need or want to include staticfiles/
+# in your Git repository. Update and uncomment the following line accordingly.
+# /staticfiles/
+
+### Django.Python Stack ###
+# Byte-compiled / optimized / DLL files
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+
+# Django stuff:
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.env.bat
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# End of https://www.toptal.com/developers/gitignore/api/django
+.vercel
+
+./env
+/env/
+env/
+makefile
+
+^db.sqlite3$
+./db.sqlite3
+*.sqlite3
+
+other/
+
+# Byte-compiled / optimized / DLL files
+__pycache__
+**/__pycache__/**
+*.py[cod]
+*$py.class
+
+# migrations/**
+**/migrations/**
+!**/migrations
+!**/migrations/__init__.py
+
+*.rdb
+celerybeat-schedule
+
+
+*_*.py
*.pyc
*__pycache__*
.env/
+env
venv
**.idea**
*.log
*media*
-.idea
\ No newline at end of file
+.idea
+.sqlite3
+
diff --git a/src/backend/TransferGo/TransferGo/__pycache__/__init__.cpython-310.pyc b/src/backend/TransferGo/TransferGo/__pycache__/__init__.cpython-310.pyc
index d365dc5..6b96e9a 100644
Binary files a/src/backend/TransferGo/TransferGo/__pycache__/__init__.cpython-310.pyc and b/src/backend/TransferGo/TransferGo/__pycache__/__init__.cpython-310.pyc differ
diff --git a/src/backend/TransferGo/TransferGo/__pycache__/settings.cpython-310.pyc b/src/backend/TransferGo/TransferGo/__pycache__/settings.cpython-310.pyc
index b53cf7b..3e6e72a 100644
Binary files a/src/backend/TransferGo/TransferGo/__pycache__/settings.cpython-310.pyc and b/src/backend/TransferGo/TransferGo/__pycache__/settings.cpython-310.pyc differ
diff --git a/src/backend/TransferGo/TransferGo/settings.py b/src/backend/TransferGo/TransferGo/settings.py
index 0fbe5c2..c3d2ef9 100644
--- a/src/backend/TransferGo/TransferGo/settings.py
+++ b/src/backend/TransferGo/TransferGo/settings.py
@@ -35,7 +35,7 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
- 'django_filters',
+ "corsheaders",
'rest_framework',
'rest_framework.authtoken',
'core',
@@ -43,6 +43,7 @@
]
MIDDLEWARE = [
+ 'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
@@ -137,6 +138,7 @@
# Dossier où seront stockés les médias
MEDIA_ROOT = BASE_DIR / 'media'
+CORS_ALLOW_ALL_ORIGINS = True
# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
diff --git a/src/backend/TransferGo/core/api_views.py b/src/backend/TransferGo/core/api_views.py
index 47db92e..e6c2090 100644
--- a/src/backend/TransferGo/core/api_views.py
+++ b/src/backend/TransferGo/core/api_views.py
@@ -40,7 +40,7 @@ def create(self, request, *args, **kwargs):
class UpdatePasswordViewSet(CreateModelMixin,GenericViewSet):
serializer_class = PasswordSerializer
- permission_classes = [AllowAny]
+ permission_classes = [IsAuthenticatedOrReadOnly]
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
@@ -72,15 +72,9 @@ class ProfileViewSet(CreateModelMixin, ListModelMixin, UpdateModelMixin, Retriev
serializer_class = ProfileSerializer
permission_classes = [AllowAny]
- def get_user(self):
- user = self.request.user
- if not user.is_authenticated:
- token = Token.objects.get(key=self.request.headers['Token'])
- user = token.user
- return user
-
def get_queryset(self):
- user = self.get_user()
+ user = self.request.user
+ print(user)
queryset = Profile.objects.filter(user=user.id)
return queryset
@@ -116,17 +110,10 @@ def partial_update(self, request, *args, **kwargs):
), 'create')
class AccountViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, UpdateModelMixin, RetrieveModelMixin, GenericViewSet):
serializer_class = AccountSerializer
- permission_classes = [AllowAny]
-
- def get_user(self):
- user = self.request.user
- if not user.is_authenticated:
- token = Token.objects.get(key=self.request.headers['Token'])
- user = token.user
- return user
+ permission_classes = [IsAuthenticatedOrReadOnly]
def get_queryset(self):
- user = self.get_user()
+ user = self.request.user
queryset = Account.objects.filter(user=user.id)
return queryset
@@ -139,21 +126,14 @@ def create(self, request, *args, **kwargs):
@method_decorator(swagger_auto_schema(
- request_body=TransactionSerializer()
+ request_body=TransactionCreateserializer()
), 'create')
class TransactionViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, RetrieveModelMixin, GenericViewSet):
serializer_class = TransactionSerializer
- permission_classes = [AllowAny]
-
- def get_user(self):
- user = self.request.user
- if not user.is_authenticated:
- token = Token.objects.get(key=self.request.headers['Token'])
- user = token.user
- return user
+ permission_classes = [IsAuthenticatedOrReadOnly]
def get_queryset(self):
- user = self.get_user()
+ user = self.request.user
queryset = Transaction.objects.filter(sender=user.account).order_by('-id')
return queryset
@@ -176,6 +156,9 @@ def create(self, request, *args, **kwargs):
if profile is None:
return Response({'detail': 'this number does not match with no one of our users'})
+ if profile.user == request.user:
+ return Response({'detail':'Sorry, You can\'t make a transaction to your self'})
+
serializer.validated_data['sender'] = sender
receiver = profile.user.account
serializer.validated_data['receiver'] = receiver
diff --git a/src/backend/TransferGo/core/models.py b/src/backend/TransferGo/core/models.py
index 860faaa..f57c802 100644
--- a/src/backend/TransferGo/core/models.py
+++ b/src/backend/TransferGo/core/models.py
@@ -4,6 +4,7 @@
from django.dispatch import receiver
from rest_framework.authtoken.models import Token
from django.core.exceptions import ValidationError
+from django.utils.translation import ugettext_lazy as _
User = get_user_model()
@@ -16,7 +17,7 @@ class Profile(models.Model):
pin = models.PositiveIntegerField(default=1234)
created_at = models.DateTimeField(auto_now_add=True )
deleted_at = models.DateTimeField(blank=True,null=True)
- user = models.OneToOneField(User, on_delete=models.SET_NULL, null=True, related_name='profile')
+ user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
def __str__(self):
return f"profile of {self.user.username}"
@@ -85,6 +86,6 @@ def clean_fields(self, exclude=None):
})
if not self.sender.is_commercial():
raise ValidationError({
- "sender": _("your are not allow to done a transaction you heve a simple account ")
+ "sender": _("your are not allow to perform the transaction you heve a simple account ")
})
diff --git a/src/backend/TransferGo/core/serializers.py b/src/backend/TransferGo/core/serializers.py
index 836aa28..97610b9 100644
--- a/src/backend/TransferGo/core/serializers.py
+++ b/src/backend/TransferGo/core/serializers.py
@@ -62,16 +62,23 @@ class Meta:
'required': True,
},
'pin': {
- 'write_only': True,
+ 'read_only': True,
},
+ 'deleted_at': {
+ 'read_only': True,
+ }
}
def create(self, validated_data):
user = validated_data.pop('user')
+ print(user)
serializer = UserSerializer(data=user)
serializer.is_valid(raise_exception=True)
user_instance = serializer.save()
+ user_instance.set_password(user_instance.password)
+ user_instance.save()
+ print(user_instance.password)
validated_data['user'] = user_instance
profile = Profile(**validated_data)
@@ -87,6 +94,15 @@ class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = '__all__'
+ extra_kwargs = {
+ 'pin': {
+ 'write_only': True,
+ },
+ 'deleted_at': {
+ 'write_only': True,
+ }
+
+ }
class AccountSerializer(serializers.ModelSerializer):
@@ -112,7 +128,8 @@ class Meta:
},
'receiver': {
'read_only': True,
- }
+ },
+
}
def create(self, validated_data):
diff --git a/src/backend/TransferGo/core/tests.py b/src/backend/TransferGo/core/tests.py
index 7ce503c..b946040 100644
--- a/src/backend/TransferGo/core/tests.py
+++ b/src/backend/TransferGo/core/tests.py
@@ -1,3 +1,278 @@
+import json
+
from django.test import TestCase
+from django.urls import include, path, reverse
+from .models import *
+from rest_framework import status
+from rest_framework.test import APITestCase, URLPatternsTestCase
+
+
+class Tests(APITestCase, URLPatternsTestCase):
+ urlpatterns = [
+ path('api/', include('core.urls')),
+ ]
+
+ def test_get_account(self):
+ """self.client.credentials(HTTP_AUTHORIZATION=f"token {token}")"""
+ response = self.client.get('account/', format='json')
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
+ self.assertEqual(len(response.data), 1)
+
+
+class AccounTestCase(APITestCase):
+
+ def setUp(self):
+ """Here we create the user account immediately when the test scripts are lanched"""
+ self.user1 = json.loads(self.create_user().content)
+ self.user2 = json.loads(self.create_user1().content)
+
+ self.token1 = json.loads(self.get_token({
+ 'username': 'ivantom',
+ 'password': '1234'
+ }).content)['Token']
+ self.token2 = json.loads(self.get_token({
+ 'username': 'ivantom1',
+ 'password': '1234'
+ }).content)['Token']
+
+ def create_user(self):
+ data = {
+ "user": {
+ "username": "ivantom",
+ "first_name": "navi",
+ "last_name": "test",
+ "email": "test@gmail1.com",
+ "password": "1234"
+ },
+ "phone": '650039773',
+ "birthday": '2022-1-1',
+ "adress": "nkolmesseng",
+ "pin": '0000'
+ }
+
+ response = self.client.post('/api/profile/', data)
+
+ return response
+
+ def create_user1(self):
+ data = {
+ "user": {
+ "username": "ivantom1",
+ "first_name": "navi",
+ "last_name": "test",
+ "email": "test@gmail.com",
+ "password": "1234"
+ },
+ "phone": '620284228',
+ "birthday": '2022-1-1',
+ "adress": "nkolmesseng",
+ "pin": '0000'
+ }
+
+ response = self.client.post('/api/profile/', data)
+
+ return response
+
+ def test_display_user(self):
+ """This test case just check if the username created corresponds to ivantom"""
+
+ self.assertEquals(self.user1['user']['username'], "ivantom")
+
+ def get_token(self, data: dict):
+ # data = {
+ # 'username':'ivantom',
+ # 'password':'1234'
+ # }
+ response = self.client.post('/api/auth/sing_in/', data)
+ return response
+
+ def test_login(self):
+ """
+ Here we are gong to test if the user can login successfully
+ The request must return a status cde of 200 other wise the authentication
+ was not successfull
+ """
+ data = {
+ 'username': 'ivantom',
+ 'password': '1234'
+ }
+ response = self.client.post('/api/auth/sing_in/', data)
+
+ # token = json.loads(response.content)['Token']
+
+ self.assertEquals(response.status_code, 200)
+
+ def get_user1_account_info(self):
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token1}")
+
+ response = self.client.get('/api/account/')
+
+ return json.loads(response.content)[0]
+
+ def get_user2_account_info(self):
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token2}")
+
+ response = self.client.get('/api/account/')
+
+ return json.loads(response.content)[0]
+
+ def test_get_account_info(self):
+ """
+ This test case if just to display the user account and check if the account balance
+ is empty
+ """
+ token = json.loads(self.get_token({
+ 'username': 'ivantom',
+ 'password': '1234'
+ }).content)['Token']
+
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {token}")
+
+ response = self.client.get('/api/account/')
+ # data = json.loads(response.content)
+
+ # self.assertEquals(data[0]['balance'],0,'The account balance must be empty')
+ self.assertEquals(response.status_code, 200, 'Passed')
+
+ def test_set_account_balance_of_user1_to_5000(self):
+ # print(self.token1)
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token1}")
+
+ response = self.client.get('/api/account/')
+ data = json.loads(response.content)[0]
+ # print(response)
+
+ response = self.client.patch('/api/account/{}/'.format(data['id']), {'balance': 5000})
+ data = json.loads(response.content)
+ # print(response.content)
+ self.assertEquals(response.status_code, 200, 'Passed')
+ self.assertEquals(data['balance'], 5000, "The balance must be 5000")
+
+ def test_set_account_balance_of_user2_to_10000(self):
+ # print(self.token1)
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token2}")
+
+ response = self.client.get('/api/account/')
+ data = json.loads(response.content)[0]
+
+ # print(response)
+
+ response = self.client.patch('/api/account/{}/'.format(data['id']), {'balance': 10000})
+ data = json.loads(response.content)
+ # print(response.content)
+ self.assertEquals(response.status_code, 200, 'Passed')
+ self.assertEquals(data['balance'], 10000, "The balance must be 5000")
+
+ def update_users_account(self, balance1: int = 5000, balance2: int = 10000):
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token1}")
+
+ response = self.client.get('/api/account/')
+ data = json.loads(response.content)[0]
+ # print(response)
+
+ response = self.client.patch('/api/account/{}/'.format(data['id']), {'balance': balance1})
+
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token2}")
+
+ response = self.client.get('/api/account/')
+ data = json.loads(response.content)[0]
+
+ # print(response)
+
+ response = self.client.patch('/api/account/{}/'.format(data['id']), {'balance': balance2})
+
+ def test_transfer_money_from_user1_to_user2(self):
+ self.update_users_account()
+ # Set user's 1 token in the request headers
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token1}")
+
+ response = self.client.get('/api/account/')
+ user_1_account_data = json.loads(response.content)[0]
+
+ # print(user_1_account_data)
+
+ # Set user's 2 token in the request headers
+
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token2}")
+
+ response = self.client.get('/api/account/')
+ user_2_account_data = json.loads(response.content)[0]
+
+ # print(user_2_account_data)
+
+ # Resetting user's 1 token in the request headers
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token1}")
+
+ # Transaction data
+ # print(self.user2)
+ data = {
+ "amount": 1000,
+ "type": "transfert",
+ "number": self.user2['phone']
+ }
+
+ response = self.client.post('/api/transactions/', data)
+
+ transaction_data = json.loads(response.content)
+
+ print(transaction_data)
+
+ self.assertEquals(response.status_code, 201, "Transaction must be successfull")
+
+ self.assertEquals(transaction_data['sender'], user_1_account_data['id'], "The account id must be equal")
+
+ self.assertEquals(transaction_data['receiver'], user_2_account_data['id'], "The user id must be equal")
+
+ # print(self.get_user1_account_info())
+ # print(self.get_user2_account_info())
+
+ self.assertEquals(self.get_user2_account_info()['balance'], user_2_account_data['balance'] + 1000,
+ "The account balance must be 11000")
+
+ def test_transfer_money_from_user1_to_user2_show_return_an_error(self):
+ self.update_users_account(balance1=200, balance2=400)
+ # Set user's 1 token in the request headers
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token1}")
+
+ response = self.client.get('/api/account/')
+ user_1_account_data = json.loads(response.content)[0]
+
+ print(user_1_account_data)
+
+ # Set user's 2 token in the request headers
+
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token2}")
+
+ response = self.client.get('/api/account/')
+ user_2_account_data = json.loads(response.content)[0]
+
+ # print(user_2_account_data)
+
+ # Resetting user's 1 token in the request headers
+ self.client.credentials(HTTP_AUTHORIZATION=f"token {self.token1}")
+
+ # Transaction data
+ # print(self.user2)
+ data = {
+ "amount": 100000,
+ "type": "transfert",
+ "number": self.user2['phone']
+ }
+
+ response = self.client.post('/api/transactions/', data)
+
+ transaction_data = json.loads(response.content)
+
+ print(transaction_data)
+
+ self.assertEquals(response.status_code, 200, "Transaction must be successfull")
+
+ self.assertEquals(transaction_data['detail'], 'your balance is insufficient to complete this transaction')
+
+ # Since the account balance of user 1 is insufficient the account balance must not change
+
+ # print(self.get_user1_account_info())
+ # print(self.get_user2_account_info())
-# Create your tests here.
+ self.assertEquals(self.get_user1_account_info()['balance'], 200)
+ self.assertEquals(self.get_user2_account_info()['balance'], 400)
diff --git a/src/backend/TransferGo/db.sqlite3 b/src/backend/TransferGo/db.sqlite3
index 13b3d29..680d3db 100644
Binary files a/src/backend/TransferGo/db.sqlite3 and b/src/backend/TransferGo/db.sqlite3 differ
diff --git a/src/backend/TransferGo/pytest.ini b/src/backend/TransferGo/pytest.ini
new file mode 100644
index 0000000..6f9e438
--- /dev/null
+++ b/src/backend/TransferGo/pytest.ini
@@ -0,0 +1,3 @@
+[pytest]
+DJANGO_SETTINGS_MODULE = TransferGo.settings
+python_files = tests.py test_*.py *_tests.py
diff --git a/src/backend/TransferGo/requirements.txt b/src/backend/TransferGo/requirements.txt
index 4190474..55f0412 100644
--- a/src/backend/TransferGo/requirements.txt
+++ b/src/backend/TransferGo/requirements.txt
@@ -4,6 +4,8 @@ charset-normalizer==2.1.1
coreapi==2.3.3
coreschema==0.0.4
Django==3.2.15
+django-cors-headers==3.13.0
+django-filter==22.1
djangorestframework==3.13.1
drf-yasg==1.21.3
idna==3.4
@@ -25,3 +27,5 @@ sqlparse==0.4.3
typing_extensions==4.3.0
uritemplate==4.1.1
urllib3==1.26.12
+pytest==7.2.0
+pytest-django==4.5.2
diff --git a/src/frontend/react_native_frontend/App.js b/src/frontend/react_native_frontend/App.js
index 28b246d..7057474 100644
--- a/src/frontend/react_native_frontend/App.js
+++ b/src/frontend/react_native_frontend/App.js
@@ -1,17 +1,13 @@
import { StatusBar } from "expo-status-bar";
import React from "react";
-import { NavigationContainer } from "@react-navigation/native"
-
-// navigation
-import AuthStack from './navigation/AuthStack';
-import AppStack from './navigation/AppStack';
+import AppNav from './navigation/AppNav';
+import { AuthProvider } from "./context/AuthContext";
export default function App() {
-
return (
-
-
- {/*
+
+
+
+
);
}
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/Config.jsx b/src/frontend/react_native_frontend/Config.jsx
new file mode 100644
index 0000000..e730959
--- /dev/null
+++ b/src/frontend/react_native_frontend/Config.jsx
@@ -0,0 +1 @@
+export const BASE_URL = 'http://172.20.10.4:8000/api';
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/README.md b/src/frontend/react_native_frontend/README.md
index 5122317..7daefdf 100644
--- a/src/frontend/react_native_frontend/README.md
+++ b/src/frontend/react_native_frontend/README.md
@@ -17,4 +17,5 @@
```
- Go to playstore an download the expo client app
+
- scan the QRCode in the console with the expo client app and the result will be display in the app
diff --git a/src/frontend/react_native_frontend/app.json b/src/frontend/react_native_frontend/app.json
index 9aee0b7..ac0a5ec 100644
--- a/src/frontend/react_native_frontend/app.json
+++ b/src/frontend/react_native_frontend/app.json
@@ -18,13 +18,15 @@
"**/*"
],
"ios": {
- "supportsTablet": true
+ "supportsTablet": true,
+ "bundleIdentifier": "com.anonymous.project1"
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#FFFFFF"
- }
+ },
+ "package": "com.anonymous.project1"
},
"web": {
"favicon": "./assets/favicon.png"
diff --git a/src/frontend/react_native_frontend/components/.List.jsx.swp b/src/frontend/react_native_frontend/components/.List.jsx.swp
new file mode 100644
index 0000000..9ac7ac7
Binary files /dev/null and b/src/frontend/react_native_frontend/components/.List.jsx.swp differ
diff --git a/src/frontend/react_native_frontend/components/CustomButton.jsx b/src/frontend/react_native_frontend/components/CustomButton.jsx
index af3f1dd..3f24ce9 100644
--- a/src/frontend/react_native_frontend/components/CustomButton.jsx
+++ b/src/frontend/react_native_frontend/components/CustomButton.jsx
@@ -3,16 +3,13 @@ import React from "react";
export default function CustomButton({label, onPress}) {
return (
-
+
{label}
- )
+
+ )
}
const styles = StyleSheet.create({
-
icon: {
width: 200,
height: 200,
diff --git a/src/frontend/react_native_frontend/components/CustomDrawer.jsx b/src/frontend/react_native_frontend/components/CustomDrawer.jsx
index 616886f..e95abc5 100644
--- a/src/frontend/react_native_frontend/components/CustomDrawer.jsx
+++ b/src/frontend/react_native_frontend/components/CustomDrawer.jsx
@@ -1,18 +1,43 @@
-import React from "react";
+import React, { useContext } from "react";
import { View, Text } from "react-native";
import { DrawerContentScrollView, DrawerItemList } from "@react-navigation/drawer";
import MaterialIcons from "react-native-vector-icons/MaterialIcons";
import { TouchableOpacity } from "react-native-gesture-handler";
-
+import { AuthContext } from "../context/AuthContext";
export default function CustomDrawer(props) {
+ const {userInfo} = useContext(AuthContext);
+ const {logout} = useContext(AuthContext);
+ let letter = userInfo.profile.user.username[0];
+ letter = letter.toUpperCase();
return(
-
-
+
+
+
+ {letter}
+
+
+
+
+
+
+
- {}} style={{paddingVertical: 15}}>
+ {alert('About the evelopment team:\nRonan(frontend, Design)\nBrown(backend)\nIvan(backend, Test)\nAgnès(Design)')}} style={{paddingVertical: 15}}>
@@ -21,7 +46,7 @@ export default function CustomDrawer(props) {
- {}} style={{paddingVertical: 15}}>
+ {logout()}} style={{paddingVertical: 15}}>
@@ -31,6 +56,5 @@ export default function CustomDrawer(props) {
-
)
}
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/components/Header.jsx b/src/frontend/react_native_frontend/components/Header.jsx
index d87b32b..7527fa7 100644
--- a/src/frontend/react_native_frontend/components/Header.jsx
+++ b/src/frontend/react_native_frontend/components/Header.jsx
@@ -2,13 +2,13 @@ import { View,Text, TouchableOpacity, StyleSheet } from "react-native";
import React from "react";
import MaterialIcons from "react-native-vector-icons/MaterialIcons";
-export default function Header({label, onPress}) {
+export default function Header({label, ...navigation}) {
return (
{label}
-
+ {navigation.openDrawer()}}>
diff --git a/src/frontend/react_native_frontend/components/InputField.jsx b/src/frontend/react_native_frontend/components/InputField.jsx
index 5f203a5..2495e22 100644
--- a/src/frontend/react_native_frontend/components/InputField.jsx
+++ b/src/frontend/react_native_frontend/components/InputField.jsx
@@ -1,7 +1,16 @@
import { StyleSheet, View, Text, TextInput, TouchableOpacity } from "react-native";
import React from "react";
-export default function InputField({label, icon, inputType, keyboardType, fieldButtonLabel, fieldButtonfunction}) {
+export default function InputField({
+ label,
+ icon,
+ inputType,
+ keyboardType,
+ fieldButtonLabel,
+ fieldButtonfunction,
+ value,
+ onChangeText,
+}) {
return (
@@ -12,12 +21,16 @@ export default function InputField({label, icon, inputType, keyboardType, fieldB
keyboardType={keyboardType}
style={styles.inputText}
secureTextEntry={true}
+ value={value}
+ onChangeText={onChangeText}
/>
) : (
)}
@@ -25,14 +38,11 @@ export default function InputField({label, icon, inputType, keyboardType, fieldB
{fieldButtonLabel}
-
-
)
}
const styles = StyleSheet.create({
-
loginText: {
fontSize: 28,
fontWeight: '500',
diff --git a/src/frontend/react_native_frontend/components/List.jsx b/src/frontend/react_native_frontend/components/List.jsx
new file mode 100644
index 0000000..070ec05
--- /dev/null
+++ b/src/frontend/react_native_frontend/components/List.jsx
@@ -0,0 +1,74 @@
+import React, { useContext } from "react";
+import { View, Text, StyleSheet, ScrollView, Touchable } from "react-native";
+import { AuthContext } from "../context/AuthContext";
+
+const List = () => {
+ const {userTransactionList} = useContext(AuthContext);
+ const {DeleteTransaction} = useContext(AuthContext);
+ let data = userTransactionList;
+ const listItems = data.map(
+ (element) => {
+ let date = element.date.substring(0,10);
+ date = date.split("-").reverse().join("-");
+ let time = element.date.substring(11,19);
+ return(
+
+
+ {element.amount} FCFA
+
+ {element.sender}
+
+ {date}
+ at {time}
+
+
+ )
+ }
+ )
+
+ return(
+
+
+ Amount
+ SenderId
+ Date
+
+
+
+ {listItems}
+
+
+
+
+ )
+
+
+}
+
+export default List;
+
+const styles = StyleSheet.create({
+ elt: {
+ alignItems: "center",
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ padding: 15,
+ backgroundColor: '#ccc',
+ borderRadius: 10,
+ marginTop: 10,
+ marginLeft: 10,
+ marginRight: 10,
+ },
+ head: {
+ backgroundColor: "#2137B2",
+ marginTop: 10,
+ color: "#fff",
+ alignItems: "center",
+ justifyContent: "space-between",
+ flexDirection: "row",
+ padding: 20,
+ marginLeft: 10,
+ marginRight: 10,
+ borderRadius: 10,
+ }
+})
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/context/AuthContext.jsx b/src/frontend/react_native_frontend/context/AuthContext.jsx
index d2541b6..3a11987 100644
--- a/src/frontend/react_native_frontend/context/AuthContext.jsx
+++ b/src/frontend/react_native_frontend/context/AuthContext.jsx
@@ -1,11 +1,260 @@
-import React, { createContext } from "react";
+import React, { createContext, useState, useEffect } from "react";
+import AsyncStorage from "@react-native-async-storage/async-storage";
+import { BASE_URL } from "../Config";
-export const AuthContext = createContext()
+export const AuthContext = createContext();
+export const AuthProvider = ({children }) => {
+ const [isLoading, setIsLoading] = useState(true);
+ const [userToken, setUserToken] = useState(null);
+ const [userInfo, setUserInfo] = useState(null);
+ const [userAccount, setUserAccount] = useState(null);
+ const [userTransactionList, setUserTransactionList] = useState(null);
-const AuthProvider = () => {
- return(
-
+ const login = async(username, password) => {
+ let data = JSON.stringify({username, password})
+ setIsLoading(true);
+
+ const userInfo = await fetch(`${BASE_URL}/auth/sing_in/`, {
+ method: 'POST',
+ headers: {
+ 'Content-type': 'application/json'
+ },
+ body: data
+ })
+ .then(function(response){
+ return response.json()
+ })
+ .catch(error => {console.log("myy error is a "+error); alert("Either user name or password are incorrect, account doesn't exist")})
+
+ if(userInfo){
+ setUserInfo(userInfo);
+ setUserToken(userInfo.Token)
+
+ AsyncStorage.setItem('userInfo', JSON.stringify(userInfo))
+ AsyncStorage.setItem('userToken', userInfo.Token)
+ var token = "token " + userInfo.Token;
+ }
+
+ const userAccountInfo = await fetch(`${BASE_URL}/account/`, {
+ method: 'GET',
+ headers: {
+ 'Content-type': 'application/json',
+ 'Authorization' : token
+ }
+ })
+ .then(function(response){
+ return response.json()
+ })
+ .catch(error => {console.log("My error "+error)})
+
+ if(userInfo){
+ const userAccount = userAccountInfo[0];
+
+ setUserAccount(userAccount);
+ AsyncStorage.setItem('userAccount', JSON.stringify(userAccount))
+ }
+
+ const userTransactionList = await fetch(`${BASE_URL}/transactions/`, {
+ method: 'GET',
+ headers: {
+ 'Content-type': 'application/json',
+ 'Authorization' : token
+ }
+ })
+ .then(function(response){
+ return response.json()
+ })
+ .catch(error => {console.log("my "+error)});
+
+ if(userInfo){
+ setUserTransactionList(userTransactionList);
+ AsyncStorage.setItem('userTransactionList', JSON.stringify(userTransactionList));
+ }
+
+ setIsLoading(false);
+ }
+
+ const listRefresh = async(token) => {
+ AsyncStorage.removeItem('userTransactionList');
+
+ const userTransactionList = await fetch(`${BASE_URL}/transactions/`, {
+ method: 'GET',
+ headers: {
+ 'Content-type': 'application/json',
+ 'Authorization' : token
+ }
+ })
+ .then(function(response){
+ return response.json()
+ })
+ .catch(error => {console.log("my "+error)});
+
+ setUserTransactionList(userTransactionList);
+ AsyncStorage.setItem('userTransactionList', JSON.stringify(userTransactionList));
+ }
+
+ const accountRefresh = async(token) => {
+ AsyncStorage.removeItem('userAccount');
+
+ const userAccountInfo = await fetch(`${BASE_URL}/account/`, {
+ method: 'GET',
+ headers: {
+ 'Content-type': 'application/json',
+ 'Authorization' : token
+ }
+ })
+ .then(function(response){
+ return response.json()
+ })
+ .catch(error => {console.log("My error "+error)})
+
+ const userAccount = userAccountInfo[0];
+ AsyncStorage.removeItem('userAccount');
+
+ setUserAccount(userAccount);
+ AsyncStorage.setItem('userAccount', JSON.stringify(userAccount))
+ }
+ const logout = (username, password) => {
+ setIsLoading(true);
+ setUserToken(null);
+ AsyncStorage.removeItem('userInfo');
+ AsyncStorage.removeItem('userToken');
+ AsyncStorage.removeItem('userAccount');
+ AsyncStorage.removeItem('userTransactionList');
+
+ setIsLoading(false);
+ }
+
+ const isLoggedIn = async() => {
+ try {
+ setIsLoading(true);
+ let userInfo = await AsyncStorage.getItem('userInfo');
+ let userToken = await AsyncStorage.getItem('userToken');
+ let userAccount = await AsyncStorage.getItem('userAccount');
+ let userTransactionList = await AsyncStorage.getItem('userTransactionList');
+
+ userInfo = JSON.parse(userInfo);
+ userAccount = JSON.parse(userAccount);
+ userTransactionList = JSON.parse(userTransactionList);
+
+ if(userInfo) {
+ setUserToken(userToken);
+ setUserInfo(userInfo);
+ setUserAccount(userAccount);
+ setUserTransactionList(userTransactionList);
+ }
+ setIsLoading(false);
+ } catch(e) {
+ console.log(`isLogged in error ${e}`)
+ }
+
+ }
+
+ const register = (username, first_name, last_name, email, password1, phone, birthday, adress) => {
+ //var validPass = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
+
+ birthday = birthday.split("/").reverse().join("-");
+ let d = {
+ "user":{
+ "username":username,
+ "first_name":first_name,
+ "last_name":last_name,
+ "email":email,
+ "password":password1
+ },
+ "phone":phone,
+ "birthday":birthday,
+ "adress":adress
+ }
+ let data = JSON.stringify(d)
+
+ fetch(`${BASE_URL}/profile/`, {
+ method: 'POST',
+ headers: {
+ 'Content-type': 'application/json'
+ },
+ body: data
+ })
+ .then(function(response) {
+ return response.json()
+ })
+ .then(function(data){
+ let userRegInfo = data
+ console.log(userRegInfo)
+ })
+ .catch(function(error){
+ console.log(error);
+ })
+ }
+
+ const transfer = async (amount, type, number) => {
+ let token = "token " + userInfo.Token;
+ let d = {
+ "amount":amount,
+ "type":type,
+ "number":number
+ }
+ let data = JSON.stringify(d);
+
+ const transferInfo = await fetch(`${BASE_URL}/transactions/`, {
+ method: 'POST',
+ headers: {
+ 'Content-type': 'application/json',
+ 'Authorization' : token
+ },
+ body:data
+ })
+ .then(function(response) {
+ return response.json();
+ })
+ .catch(function(error){
+ console.log(error);
+ })
+
+ if(transferInfo.id) {
+ accountRefresh(token);
+ listRefresh(token);
+ alert("Transaction completed\n Amount : "+amount+"\nTo : "+number)
+ }else {
+ console.log(userInfo.token)
+ alert('An error occured')
+ }
+ }
+
+ const changePassword = async (old_password, new_password, confirm_password) => {
+ let token = "token " + userInfo.Token;
+ let data = JSON.stringify({old_password, new_password, confirm_password});
+
+ const changePasswordInfo = await fetch(`${BASE_URL}/auth/update_password/`, {
+ method: "POST",
+ headers: {
+ 'Content-type': 'application/json',
+ 'Authorization' : token
+ },
+ body:data
+ })
+ .then(function(response){
+ return response.json();
+ })
+ .catch(function(error){
+ console.log(error);
+ })
+
+ if(changePasswordInfo.detail == "password successfully updated") {
+ alert("Password successfully updated");
+ }else {
+ alert("An error occured, please retry");
+ }
+ }
+
+ useEffect(() => {
+ isLoggedIn();
+ }, []);
+
+ return(
+
+ {children}
);
}
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/html.html b/src/frontend/react_native_frontend/html.html
new file mode 100644
index 0000000..ae0c3f9
--- /dev/null
+++ b/src/frontend/react_native_frontend/html.html
@@ -0,0 +1,29 @@
+
+
+
+ Fetch API
+
+
+
+
Fetch API GET REQUEST
+
Fetching Users
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/index.js b/src/frontend/react_native_frontend/index.js
new file mode 100644
index 0000000..1d6e981
--- /dev/null
+++ b/src/frontend/react_native_frontend/index.js
@@ -0,0 +1,8 @@
+import { registerRootComponent } from 'expo';
+
+import App from './App';
+
+// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
+// It also ensures that whether you load the app in Expo Go or in a native build,
+// the environment is set up appropriately
+registerRootComponent(App);
diff --git a/src/frontend/react_native_frontend/main.js b/src/frontend/react_native_frontend/main.js
new file mode 100644
index 0000000..21cdc3d
--- /dev/null
+++ b/src/frontend/react_native_frontend/main.js
@@ -0,0 +1,108 @@
+let username = "wilbrown"
+let password = "D@rkness1234"
+let first_name = "ronan"
+let last_name = "teyou"
+let email ="teyouronan@gmail.com"
+let phone = "696715846"
+let birthday = "2002/08/15"
+let adress = "odza"
+
+const login = async(username, password) => {
+ let data = JSON.stringify({username, password})
+
+ const userInfo = await fetch(`http://0.0.0.0:8000/api/auth/sing_in/`, {
+ method: 'POST',
+ headers: {
+ 'Content-type': 'application/json'
+ },
+ body: data
+ })
+ .then(function(response){
+ return response.json()
+ })
+ .catch(error => {console.log(error)})
+
+ let usr = userInfo.profile.user.username;
+ let mail = userInfo.profile.user.email;
+ let phone = userInfo.profile.phone ;
+ document.getElementById("name").innerHTML = usr;
+ document.getElementById("email").innerHTML = mail;
+ document.getElementById("phone").innerHTML = phone;
+
+ const token = "token " + userInfo.Token;
+ const userAccountInfo = await fetch(`http://0.0.0.0:8000/api/account/`, {
+ method: 'GET',
+ headers: {
+ 'Content-type': 'application/json',
+ 'Authorization' : token
+ }
+ })
+ .then(function(response){
+ return response.json()
+ })
+ .catch(error => {console.log(error)})
+
+ let userAccount = userAccountInfo[0];
+ let me = userAccount.balance;
+ document.getElementById("me").innerHTML = me;
+
+ /*
+ let amount = 1000;
+ let type = "transfert"; //transfer, withdraw
+ let number = 697667213;
+
+ let d = {
+ "amount":amount,
+ "type":type,
+ "number":number
+ }
+ let dat = JSON.stringify(d);
+
+ const transferInfo = await fetch(`http://0.0.0.0:8000/api/transactions/`, {
+ method: 'POST',
+ headers: {
+ 'Content-type': 'application/json',
+ 'Authorization': token
+ },
+ body: dat
+ })
+ .then(function(response) {
+ return response.json();
+ })
+ .catch(function(error){
+ console.log("this is my error " +error);
+ })
+
+ console.log(transferInfo);*/
+
+ //document.getElementById("id").innerHTML = met;
+
+}
+
+login(username, password);
+
+
+/*let user = JSON.stringify({username, first_name, last_name, email, password});
+let data = JSON.stringify({user, phone, birthday, adress});
+
+let d = {
+ user:user,
+ phone:phone
+}
+
+let o = {
+ "user":{
+ "username":username,
+ "first_name":first_name,
+ "last_name":last_name,
+ "email":"teyouronan@gmail.com",
+ "password":"terb1234"
+ },
+ "phone":"696715846",
+ "birthday":"22-08-2002",
+ "adress":"odza"
+ }
+ document.getElementById("name").innerHTML = o;
+ console.log(o.user.username)
+*/
+
diff --git a/src/frontend/react_native_frontend/metro.config.js b/src/frontend/react_native_frontend/metro.config.js
new file mode 100644
index 0000000..9430b0f
--- /dev/null
+++ b/src/frontend/react_native_frontend/metro.config.js
@@ -0,0 +1,4 @@
+// Learn more https://docs.expo.io/guides/customizing-metro
+const { getDefaultConfig } = require('expo/metro-config');
+
+module.exports = getDefaultConfig(__dirname);
diff --git a/src/frontend/react_native_frontend/navigation/AppNav.jsx b/src/frontend/react_native_frontend/navigation/AppNav.jsx
new file mode 100644
index 0000000..7998709
--- /dev/null
+++ b/src/frontend/react_native_frontend/navigation/AppNav.jsx
@@ -0,0 +1,24 @@
+import React, { useContext } from "react";
+import { View, ActivityIndicator } from "react-native";
+import { NavigationContainer } from '@react-navigation/native';
+import AuthStack from './AuthStack';
+import AppStack from './AppStack';
+import { AuthContext } from "../context/AuthContext";
+
+function AppNav() {
+ const { isLoading, userToken } = useContext(AuthContext);
+ if(isLoading) {
+ return(
+
+
+
+ );
+ }
+ return(
+
+ {userToken !== null ? : }
+
+ )
+}
+
+export default AppNav;
diff --git a/src/frontend/react_native_frontend/navigation/AppStack.jsx b/src/frontend/react_native_frontend/navigation/AppStack.jsx
index f9637b1..d3f9216 100644
--- a/src/frontend/react_native_frontend/navigation/AppStack.jsx
+++ b/src/frontend/react_native_frontend/navigation/AppStack.jsx
@@ -1,38 +1,48 @@
-import { StatusBar } from "expo-status-bar";
-import { NavigationContainer } from "@react-navigation/native";
-import { createNativeStackNavigator } from "@react-navigation/native-stack";
-import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { SafeAreaView, Platform } from "react-native";
import { createDrawerNavigator } from "@react-navigation/drawer";
-import 'react-native-gesture-handler';
-
+import MaterialIcons from "react-native-vector-icons/MaterialIcons";
+import { createNativeStackNavigator } from "@react-navigation/native-stack";
import CustomDrawer from "../components/CustomDrawer";
-import ProfilScreen from "../screens/ProfilScreen";
-import TransferScreen from "../screens/TransferScreen";
import SettingScreen from "../screens/SettingScreen";
-import AccountScreen from "../screens/AccountScreen";
import HelpScreen from "../screens/HelpScreen";
-
import TabNavigator from "./TabNavigation";
const Drawer = createDrawerNavigator();
-
+const Stack = createNativeStackNavigator();
export default function App() {
return (
<>
-
-
- } screenOptions={{headerShown: false}}>
-
-
-
-
-
+ }
+ screenOptions={{
+ headerShown: false,
+ drawerActiveBackgroundColor: "#2137B2",
+ drawerActiveTintColor: "#fff",
+ drawerInactiveTintColor: "#555",
+ drawerLabelStyle: {
+ marginLeft: -20,
+ fontSize: 15
+ }}}>
+ (
+
+ )
+ }} />
+ (
+
+ )
+ }} />
+ (
+
+ )
+ }} />
+
>
);
diff --git a/src/frontend/react_native_frontend/navigation/AuthStack.jsx b/src/frontend/react_native_frontend/navigation/AuthStack.jsx
index 987c51c..79c1507 100644
--- a/src/frontend/react_native_frontend/navigation/AuthStack.jsx
+++ b/src/frontend/react_native_frontend/navigation/AuthStack.jsx
@@ -1,17 +1,11 @@
-import { StatusBar } from "expo-status-bar";
import React from "react";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
-
-// screens
import StartScreen from "../screens/StartScreen";
import LoginScreen from "../screens/LoginScreen";
import RegisterScreen from "../screens/RegisterScreen";
-import ProfilScreen from "../screens/ProfilScreen";
const Stack = createNativeStackNavigator();
-
const AuthStack = () => {
-
return (
{
component={RegisterScreen}
name="Register"
/>
-
);
};
diff --git a/src/frontend/react_native_frontend/navigation/TabNavigation.jsx b/src/frontend/react_native_frontend/navigation/TabNavigation.jsx
index 42ecb87..d27ad82 100644
--- a/src/frontend/react_native_frontend/navigation/TabNavigation.jsx
+++ b/src/frontend/react_native_frontend/navigation/TabNavigation.jsx
@@ -3,9 +3,10 @@ import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import MaterialIcons from "react-native-vector-icons/MaterialIcons";
import ProfilScreen from "../screens/ProfilScreen";
-import TransferScreen from "../screens/TransferScreen";
import AccountScreen from "../screens/AccountScreen";
import MessageScreen from "../screens/MessageScreen";
+import Transactions from "../screens/Transactions";
+import Accountmanager from "../screens/AccountManager";
const Tab = createBottomTabNavigator();
@@ -14,7 +15,7 @@ export default function TabNavigator() {
(
@@ -42,7 +43,7 @@ export default function TabNavigator() {
(
diff --git a/src/frontend/react_native_frontend/package-lock.json b/src/frontend/react_native_frontend/package-lock.json
index def25b1..709aea2 100644
--- a/src/frontend/react_native_frontend/package-lock.json
+++ b/src/frontend/react_native_frontend/package-lock.json
@@ -1,31 +1,38 @@
{
- "name": "project1",
+ "name": "transfergo",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "project1",
+ "name": "transfergo",
"version": "1.0.0",
"dependencies": {
- "@expo/webpack-config": "^0.17.0",
- "@react-native-community/datetimepicker": "6.2.0",
+ "@expo/webpack-config": "^0.17.2",
+ "@react-native-async-storage/async-storage": "~1.17.3",
+ "@react-native-community/datetimepicker": "6.5.2",
+ "@react-native-picker/picker": "2.4.8",
"@react-navigation/bottom-tabs": "^6.4.0",
"@react-navigation/drawer": "^6.5.6",
"@react-navigation/native": "^6.0.14",
"@react-navigation/native-stack": "^6.9.2",
- "expo": "~46.0.16",
- "expo-status-bar": "~1.4.0",
+ "axios": "^1.2.1",
+ "expo": "^47.0.0",
+ "expo-dev-client": "~2.0.1",
+ "expo-splash-screen": "~0.17.5",
+ "expo-status-bar": "~1.4.2",
"material-icons-react": "^1.0.4",
- "react": "18.0.0",
- "react-dom": "18.0.0",
- "react-native": "0.69.6",
+ "react": "18.1.0",
+ "react-dom": "18.1.0",
+ "react-native": "0.70.5",
"react-native-date-picker": "^4.2.6",
- "react-native-gesture-handler": "~2.5.0",
+ "react-native-gesture-handler": "~2.8.0",
+ "react-native-material-dropdown": "^0.11.1",
"react-native-paper": "^5.0.0-rc.9",
- "react-native-reanimated": "~2.9.1",
- "react-native-safe-area-context": "^4.3.1",
- "react-native-screens": "~3.15.0",
+ "react-native-reanimated": "~2.12.0",
+ "react-native-safe-area-context": "4.4.1",
+ "react-native-screens": "~3.18.0",
+ "react-native-select-dropdown": "^3.2.1",
"react-native-vector-icons": "^9.2.0",
"react-native-web": "~0.18.7"
},
@@ -57,9 +64,9 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
- "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==",
+ "version": "7.20.10",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz",
+ "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==",
"engines": {
"node": ">=6.9.0"
}
@@ -94,11 +101,11 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz",
- "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
+ "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
"dependencies": {
- "@babel/types": "^7.19.4",
+ "@babel/types": "^7.20.7",
"@jridgewell/gen-mapping": "^0.3.2",
"jsesc": "^2.5.1"
},
@@ -143,13 +150,14 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.19.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
- "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz",
+ "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==",
"dependencies": {
- "@babel/compat-data": "^7.19.3",
+ "@babel/compat-data": "^7.20.5",
"@babel/helper-validator-option": "^7.18.6",
"browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
"semver": "^6.3.0"
},
"engines": {
@@ -159,17 +167,30 @@
"@babel/core": "^7.0.0"
}
},
+ "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ },
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz",
- "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.7.tgz",
+ "integrity": "sha512-LtoWbDXOaidEf50hmdDqn9g8VEzsorMexoWMQdQODbvmqYmaF23pBP5VNPAGIFHsFQCIeKokDiz3CH5Y2jlY6w==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.20.7",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-replace-supers": "^7.20.7",
"@babel/helper-split-export-declaration": "^7.18.6"
},
"engines": {
@@ -253,11 +274,11 @@
}
},
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
- "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz",
+ "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==",
"dependencies": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
@@ -275,18 +296,18 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz",
- "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz",
+ "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==",
"dependencies": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.19.4",
+ "@babel/helper-simple-access": "^7.20.2",
"@babel/helper-split-export-declaration": "^7.18.6",
"@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.6",
- "@babel/types": "^7.19.4"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.10",
+ "@babel/types": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
@@ -304,9 +325,9 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz",
- "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==",
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
"engines": {
"node": ">=6.9.0"
}
@@ -329,37 +350,38 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
- "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz",
+ "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==",
"dependencies": {
"@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.20.7",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/traverse": "^7.19.1",
- "@babel/types": "^7.19.0"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.7",
+ "@babel/types": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz",
- "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==",
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
"dependencies": {
- "@babel/types": "^7.19.4"
+ "@babel/types": "^7.20.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
- "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+ "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
"dependencies": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.20.0"
},
"engines": {
"node": ">=6.9.0"
@@ -441,9 +463,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz",
- "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
+ "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -466,13 +488,13 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz",
+ "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
@@ -482,12 +504,12 @@
}
},
"node_modules/@babel/plugin-proposal-async-generator-functions": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz",
- "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
"dependencies": {
"@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-remap-async-to-generator": "^7.18.9",
"@babel/plugin-syntax-async-generators": "^7.8.4"
},
@@ -514,12 +536,12 @@
}
},
"node_modules/@babel/plugin-proposal-class-static-block": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
- "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz",
+ "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
"engines": {
@@ -530,13 +552,13 @@
}
},
"node_modules/@babel/plugin-proposal-decorators": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.6.tgz",
- "integrity": "sha512-PKWforYpkVkogpOW0RaPuh7eQ7AoFgBJP+d87tQCRY2LVbvyGtfRM7RtrhCBsNgZb+2EY28SeWB6p2xe1Z5oAw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.7.tgz",
+ "integrity": "sha512-JB45hbUweYpwAGjkiM7uCyXMENH2lG+9r3G2E+ttc2PRXAoEkpfd/KW5jDg4j8RS6tLtTG1jZi9LbHZVSfs1/A==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-replace-supers": "^7.19.1",
+ "@babel/helper-create-class-features-plugin": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
"@babel/helper-split-export-declaration": "^7.18.6",
"@babel/plugin-syntax-decorators": "^7.19.0"
},
@@ -608,11 +630,11 @@
}
},
"node_modules/@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
- "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
+ "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
},
"engines": {
@@ -653,15 +675,15 @@
}
},
"node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz",
- "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
"dependencies": {
- "@babel/compat-data": "^7.19.4",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.18.8"
+ "@babel/plugin-transform-parameters": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
@@ -686,12 +708,12 @@
}
},
"node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz",
+ "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
},
"engines": {
@@ -717,13 +739,13 @@
}
},
"node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
- "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz",
+ "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
"engines": {
@@ -849,11 +871,11 @@
}
},
"node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
- "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+ "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.19.0"
},
"engines": {
"node": ">=6.9.0"
@@ -1040,11 +1062,11 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
- "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz",
+ "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.20.2"
},
"engines": {
"node": ">=6.9.0"
@@ -1054,17 +1076,17 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz",
- "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz",
+ "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-compilation-targets": "^7.19.0",
+ "@babel/helper-compilation-targets": "^7.20.7",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
"@babel/helper-split-export-declaration": "^7.18.6",
"globals": "^11.1.0"
},
@@ -1090,11 +1112,11 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
- "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz",
+ "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.20.2"
},
"engines": {
"node": ">=6.9.0"
@@ -1221,12 +1243,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz",
- "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz",
+ "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2"
},
"engines": {
"node": ">=6.9.0"
@@ -1252,13 +1274,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz",
- "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz",
+ "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==",
"dependencies": {
"@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-validator-identifier": "^7.19.1"
},
"engines": {
@@ -1342,11 +1364,11 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
- "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz",
+ "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.20.2"
},
"engines": {
"node": ">=6.9.0"
@@ -1430,12 +1452,12 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
- "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz",
+ "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "regenerator-transform": "^0.15.0"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "regenerator-transform": "^0.15.1"
},
"engines": {
"node": ">=6.9.0"
@@ -1594,17 +1616,17 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz",
- "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==",
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz",
+ "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==",
"dependencies": {
- "@babel/compat-data": "^7.19.4",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/compat-data": "^7.20.1",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-validator-option": "^7.18.6",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-async-generator-functions": "^7.19.1",
+ "@babel/plugin-proposal-async-generator-functions": "^7.20.1",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-class-static-block": "^7.18.6",
"@babel/plugin-proposal-dynamic-import": "^7.18.6",
@@ -1613,7 +1635,7 @@
"@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
- "@babel/plugin-proposal-object-rest-spread": "^7.19.4",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
"@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
"@babel/plugin-proposal-private-methods": "^7.18.6",
@@ -1624,7 +1646,7 @@
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.18.6",
+ "@babel/plugin-syntax-import-assertions": "^7.20.0",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -1637,10 +1659,10 @@
"@babel/plugin-transform-arrow-functions": "^7.18.6",
"@babel/plugin-transform-async-to-generator": "^7.18.6",
"@babel/plugin-transform-block-scoped-functions": "^7.18.6",
- "@babel/plugin-transform-block-scoping": "^7.19.4",
- "@babel/plugin-transform-classes": "^7.19.0",
+ "@babel/plugin-transform-block-scoping": "^7.20.2",
+ "@babel/plugin-transform-classes": "^7.20.2",
"@babel/plugin-transform-computed-properties": "^7.18.9",
- "@babel/plugin-transform-destructuring": "^7.19.4",
+ "@babel/plugin-transform-destructuring": "^7.20.2",
"@babel/plugin-transform-dotall-regex": "^7.18.6",
"@babel/plugin-transform-duplicate-keys": "^7.18.9",
"@babel/plugin-transform-exponentiation-operator": "^7.18.6",
@@ -1648,14 +1670,14 @@
"@babel/plugin-transform-function-name": "^7.18.9",
"@babel/plugin-transform-literals": "^7.18.9",
"@babel/plugin-transform-member-expression-literals": "^7.18.6",
- "@babel/plugin-transform-modules-amd": "^7.18.6",
- "@babel/plugin-transform-modules-commonjs": "^7.18.6",
- "@babel/plugin-transform-modules-systemjs": "^7.19.0",
+ "@babel/plugin-transform-modules-amd": "^7.19.6",
+ "@babel/plugin-transform-modules-commonjs": "^7.19.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.19.6",
"@babel/plugin-transform-modules-umd": "^7.18.6",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1",
"@babel/plugin-transform-new-target": "^7.18.6",
"@babel/plugin-transform-object-super": "^7.18.6",
- "@babel/plugin-transform-parameters": "^7.18.8",
+ "@babel/plugin-transform-parameters": "^7.20.1",
"@babel/plugin-transform-property-literals": "^7.18.6",
"@babel/plugin-transform-regenerator": "^7.18.6",
"@babel/plugin-transform-reserved-words": "^7.18.6",
@@ -1667,7 +1689,7 @@
"@babel/plugin-transform-unicode-escapes": "^7.18.10",
"@babel/plugin-transform-unicode-regex": "^7.18.6",
"@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.19.4",
+ "@babel/types": "^7.20.2",
"babel-plugin-polyfill-corejs2": "^0.3.3",
"babel-plugin-polyfill-corejs3": "^0.6.0",
"babel-plugin-polyfill-regenerator": "^0.4.1",
@@ -1758,31 +1780,31 @@
}
},
"node_modules/@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
+ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
"dependencies": {
"@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz",
- "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==",
+ "version": "7.20.10",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz",
+ "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==",
"dependencies": {
"@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.6",
+ "@babel/generator": "^7.20.7",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-hoist-variables": "^7.18.6",
"@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.19.6",
- "@babel/types": "^7.19.4",
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -1791,9 +1813,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
- "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
+ "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
"dependencies": {
"@babel/helper-string-parser": "^7.19.4",
"@babel/helper-validator-identifier": "^7.19.1",
@@ -1850,22 +1872,22 @@
}
},
"node_modules/@expo/cli": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.3.2.tgz",
- "integrity": "sha512-P6yogdPCRKaoLjuH7D8jgq6kTzM4gWuQ+vssBPWhbnoymV5AClQOxvACPDHD+biKhvGsaXEQLMoi93lPQzcDlQ==",
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.4.10.tgz",
+ "integrity": "sha512-c8NJOVa5b8g9CYj8ahdaN21cVE2wPwUaFrtTE0kLeRR5ASy8reWLFEOcstEtt6eufdcN/uGgBWQ0FLovgLZuzw==",
"dependencies": {
"@babel/runtime": "^7.14.0",
- "@expo/code-signing-certificates": "^0.0.2",
- "@expo/config": "~7.0.1",
- "@expo/config-plugins": "~5.0.1",
- "@expo/dev-server": "~0.1.120",
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~7.0.2",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/dev-server": "0.1.123",
"@expo/devcert": "^1.0.0",
"@expo/json-file": "^8.2.35",
- "@expo/metro-config": "~0.4.0",
+ "@expo/metro-config": "~0.5.0",
"@expo/osascript": "^2.0.31",
"@expo/package-manager": "~0.0.53",
"@expo/plist": "^0.0.18",
- "@expo/prebuild-config": "~5.0.3",
+ "@expo/prebuild-config": "5.0.7",
"@expo/rudder-sdk-node": "1.1.1",
"@expo/spawn-async": "1.5.0",
"@expo/xcpretty": "^4.2.1",
@@ -1886,6 +1908,7 @@
"getenv": "^1.0.0",
"graphql": "15.8.0",
"graphql-tag": "^2.10.1",
+ "https-proxy-agent": "^5.0.1",
"internal-ip": "4.3.0",
"is-root": "^2.1.0",
"js-yaml": "^3.13.1",
@@ -1919,87 +1942,22 @@
"expo-internal": "build/bin/cli"
}
},
- "node_modules/@expo/cli/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@expo/cli/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@expo/cli/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@expo/cli/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@expo/cli/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/cli/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/code-signing-certificates": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz",
- "integrity": "sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg==",
+ "node_modules/@expo/cli/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"dependencies": {
- "node-forge": "^1.2.1",
- "nullthrows": "^1.1.1"
+ "@babel/highlight": "^7.10.4"
}
},
- "node_modules/@expo/config": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.1.tgz",
- "integrity": "sha512-4lu0wr45XXJ2MXiLAm2+fmOyy/jjqF3NuDm92fO6nuulRzEEvTP4w3vsibJ690rT81ohtvhpruKhkRs0wSjKWA==",
+ "node_modules/@expo/cli/node_modules/@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
"dependencies": {
"@babel/code-frame": "~7.10.4",
- "@expo/config-plugins": "~5.0.1",
- "@expo/config-types": "^46.0.1",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
"@expo/json-file": "8.2.36",
"getenv": "^1.0.0",
"glob": "7.1.6",
@@ -2010,12 +1968,12 @@
"sucrase": "^3.20.0"
}
},
- "node_modules/@expo/config-plugins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.1.tgz",
- "integrity": "sha512-1OfnsOrfeSkB0VZfT01UjQ5Uq6p+yYbq8yNkj0e99K/6NLHpyvIxj+5tZIV0nQXgkOcqBIABL2uA7lwB8CkaBQ==",
+ "node_modules/@expo/cli/node_modules/@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
"dependencies": {
- "@expo/config-types": "^46.0.0",
+ "@expo/config-types": "^47.0.0",
"@expo/json-file": "8.2.36",
"@expo/plist": "0.0.18",
"@expo/sdk-runtime-versions": "^1.0.0",
@@ -2032,7 +1990,57 @@
"xml2js": "0.4.23"
}
},
- "node_modules/@expo/config-plugins/node_modules/ansi-styles": {
+ "node_modules/@expo/cli/node_modules/@expo/config-plugins/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "node_modules/@expo/cli/node_modules/@expo/config/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
+ "dependencies": {
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
@@ -2046,7 +2054,7 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@expo/config-plugins/node_modules/chalk": {
+ "node_modules/@expo/cli/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
@@ -2061,7 +2069,7 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@expo/config-plugins/node_modules/color-convert": {
+ "node_modules/@expo/cli/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
@@ -2072,12 +2080,20 @@
"node": ">=7.0.0"
}
},
- "node_modules/@expo/config-plugins/node_modules/color-name": {
+ "node_modules/@expo/cli/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "node_modules/@expo/config-plugins/node_modules/has-flag": {
+ "node_modules/@expo/cli/node_modules/crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
@@ -2085,21 +2101,29 @@
"node": ">=8"
}
},
- "node_modules/@expo/config-plugins/node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "node_modules/@expo/cli/node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
- "lru-cache": "^6.0.0"
+ "minimist": "^1.2.0"
},
"bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
+ "json5": "lib/cli.js"
}
},
- "node_modules/@expo/config-plugins/node_modules/supports-color": {
+ "node_modules/@expo/cli/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
@@ -2110,42 +2134,141 @@
"node": ">=8"
}
},
- "node_modules/@expo/config-types": {
- "version": "46.0.2",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-46.0.2.tgz",
- "integrity": "sha512-PXkmOgNwRyBfgVT1HmFZhfh3Qm7WKKyV6mk3/5HJ/LzPh1t+Zs2JrWX8U2YncTLV1QzV7nV8tnkyvszzqnZEzQ=="
+ "node_modules/@expo/cli/node_modules/temp-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
+ "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/@expo/config/node_modules/@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "node_modules/@expo/cli/node_modules/tempy": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
+ "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
"dependencies": {
- "@babel/highlight": "^7.10.4"
+ "del": "^6.0.0",
+ "is-stream": "^2.0.0",
+ "temp-dir": "^2.0.0",
+ "type-fest": "^0.16.0",
+ "unique-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@expo/config/node_modules/semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "node_modules/@expo/cli/node_modules/type-fest": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
+ "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@expo/cli/node_modules/unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "dependencies": {
+ "crypto-random-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@expo/code-signing-certificates": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "dependencies": {
+ "node-forge": "^1.2.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "node_modules/@expo/configure-splash-screen": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz",
+ "integrity": "sha512-4DyPoNXJqx9bN4nEwF3HQreo//ECu7gDe1Xor3dnnzFm9P/VDxAKdbEhA0n+R6fgkNfT2onVHWijqvdpTS3Xew==",
+ "dependencies": {
+ "color-string": "^1.5.3",
+ "commander": "^5.1.0",
+ "fs-extra": "^9.0.0",
+ "glob": "^7.1.6",
+ "lodash": "^4.17.15",
+ "pngjs": "^5.0.0",
+ "xcode": "^3.0.0",
+ "xml-js": "^1.6.11"
+ },
"bin": {
- "semver": "bin/semver.js"
+ "configure-splash-screen": "build/index-cli.js",
+ "expo-splash-screen": "build/index-cli.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@expo/configure-splash-screen/node_modules/commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@expo/configure-splash-screen/node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
},
"engines": {
"node": ">=10"
}
},
+ "node_modules/@expo/configure-splash-screen/node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@expo/configure-splash-screen/node_modules/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
"node_modules/@expo/dev-server": {
- "version": "0.1.120",
- "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.120.tgz",
- "integrity": "sha512-x5/jCv0EOpz6FyehXpI5bgDQTVsGZYvgISkAw7n60RhtG+aid6N2CCR9SDMCH70XaUpFnfTW9qvderpCEj7Puw==",
+ "version": "0.1.123",
+ "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.123.tgz",
+ "integrity": "sha512-N6UVzzeemfX0AONUSWInvkAAbqon8hRXpyYE/nMPaC6TvAmgGY5ILZAGoXwlpxwY2VKNT0Lx4s/UJ53ytIaHbA==",
"dependencies": {
"@expo/bunyan": "4.0.0",
- "@expo/metro-config": "~0.4.0",
+ "@expo/metro-config": "~0.5.1",
"@expo/osascript": "2.0.33",
+ "@expo/spawn-async": "^1.5.0",
"body-parser": "1.19.0",
"chalk": "^4.0.0",
"connect": "^3.7.0",
"fs-extra": "9.0.0",
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1",
"node-fetch": "^2.6.0",
"open": "^8.3.0",
"resolve-from": "^5.0.0",
@@ -2262,6 +2385,14 @@
"node": ">=8"
}
},
+ "node_modules/@expo/dev-server/node_modules/temp-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
+ "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@expo/dev-server/node_modules/universalify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
@@ -2271,9 +2402,9 @@
}
},
"node_modules/@expo/devcert": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz",
- "integrity": "sha512-cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz",
+ "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==",
"dependencies": {
"application-config-path": "^0.1.0",
"command-exists": "^1.2.4",
@@ -2287,7 +2418,7 @@
"rimraf": "^2.6.2",
"sudo-prompt": "^8.2.0",
"tmp": "^0.0.33",
- "tslib": "^1.10.0"
+ "tslib": "^2.4.0"
}
},
"node_modules/@expo/devcert/node_modules/debug": {
@@ -2299,9 +2430,9 @@
}
},
"node_modules/@expo/image-utils": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.20.tgz",
- "integrity": "sha512-NgF/80XENyCS+amwC0P6uk1fauEtUq7gijD19jvl2xknJaADq8M2dMCRHwWMVOXosr2v46f3Z++G/NjmyOVS7A==",
+ "version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.23.tgz",
+ "integrity": "sha512-nhUVvW0TrRE4jtWzHQl8TR4ox7kcmrc2I0itaeJGjxF5A54uk7avgA0wRt7jP1rdvqQo1Ke1lXyLYREdhN9tPw==",
"dependencies": {
"@expo/spawn-async": "1.5.0",
"chalk": "^4.0.0",
@@ -2361,14 +2492,6 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "node_modules/@expo/image-utils/node_modules/crypto-random-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
- "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@expo/image-utils/node_modules/fs-extra": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
@@ -2432,46 +2555,6 @@
"node": ">=8"
}
},
- "node_modules/@expo/image-utils/node_modules/temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@expo/image-utils/node_modules/tempy": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
- "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
- "dependencies": {
- "temp-dir": "^1.0.0",
- "type-fest": "^0.3.1",
- "unique-string": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@expo/image-utils/node_modules/type-fest": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
- "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@expo/image-utils/node_modules/unique-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
- "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
- "dependencies": {
- "crypto-random-string": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@expo/image-utils/node_modules/universalify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
@@ -2480,17 +2563,22 @@
"node": ">= 10.0.0"
}
},
- "node_modules/@expo/json-file": {
- "version": "8.2.36",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
- "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "node_modules/@expo/metro-config": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.5.2.tgz",
+ "integrity": "sha512-W1qsZPA5BXuRBkNLydKBYQ1+ubObhOK0gk2Fpc+XnhW+UUIHC9sDR5pZRYGNSnDDc3rG8y7c32UzSW9nlK+mog==",
"dependencies": {
- "@babel/code-frame": "~7.10.4",
- "json5": "^1.0.1",
- "write-file-atomic": "^2.3.0"
+ "@expo/config": "~7.0.2",
+ "@expo/json-file": "8.2.36",
+ "chalk": "^4.1.0",
+ "debug": "^4.3.2",
+ "find-yarn-workspace-root": "~2.0.0",
+ "getenv": "^1.0.0",
+ "resolve-from": "^5.0.0",
+ "sucrase": "^3.20.0"
}
},
- "node_modules/@expo/json-file/node_modules/@babel/code-frame": {
+ "node_modules/@expo/metro-config/node_modules/@babel/code-frame": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
"integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
@@ -2498,30 +2586,83 @@
"@babel/highlight": "^7.10.4"
}
},
- "node_modules/@expo/json-file/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "node_modules/@expo/metro-config/node_modules/@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
"dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
}
},
- "node_modules/@expo/metro-config": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.4.0.tgz",
- "integrity": "sha512-QhOiotuzklalLbbsTMXJ5v4q4jffQ5xXhy1zsosgc2DL/ZzUr/Yhm3xUcOGnPQ2x7UyeY9Tl3njPHBOJJe7CSA==",
+ "node_modules/@expo/metro-config/node_modules/@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
"dependencies": {
- "@expo/config": "7.0.1",
+ "@expo/config-types": "^47.0.0",
"@expo/json-file": "8.2.36",
- "chalk": "^4.1.0",
- "debug": "^4.3.2",
- "find-yarn-workspace-root": "~2.0.0",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
"getenv": "^1.0.0",
+ "glob": "7.1.6",
"resolve-from": "^5.0.0",
- "sucrase": "^3.20.0"
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ }
+ },
+ "node_modules/@expo/metro-config/node_modules/@expo/config-plugins/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/metro-config/node_modules/@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "node_modules/@expo/metro-config/node_modules/@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "node_modules/@expo/metro-config/node_modules/@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
+ "dependencies": {
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
}
},
"node_modules/@expo/metro-config/node_modules/ansi-styles": {
@@ -2577,6 +2718,28 @@
"node": ">=8"
}
},
+ "node_modules/@expo/metro-config/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/@expo/metro-config/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@expo/metro-config/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -2601,9 +2764,9 @@
}
},
"node_modules/@expo/package-manager": {
- "version": "0.0.56",
- "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.56.tgz",
- "integrity": "sha512-PGk34uz4XDyhoNIlPh2D+BDsiXYuW2jXavTiax8d32uvHlRO6FN0cAsqlWD6fx3H2hRn8cU/leTuc4M7pYovCQ==",
+ "version": "0.0.57",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.57.tgz",
+ "integrity": "sha512-Y4RpSL9EqaPF+Vd2GrK6r7Xx7Dv0Xdq3AGAD9C0KwV21WqP/scj/dpjxFY+ABwmdhNsFzYXb8fmDyh4tiKenPQ==",
"dependencies": {
"@expo/json-file": "8.2.36",
"@expo/spawn-async": "^1.5.0",
@@ -2617,6 +2780,24 @@
"sudo-prompt": "9.1.1"
}
},
+ "node_modules/@expo/package-manager/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/package-manager/node_modules/@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
"node_modules/@expo/package-manager/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -2670,6 +2851,17 @@
"node": ">=8"
}
},
+ "node_modules/@expo/package-manager/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
"node_modules/@expo/package-manager/node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -2700,7 +2892,144 @@
"node": ">=8"
}
},
- "node_modules/@expo/plist": {
+ "node_modules/@expo/prebuild-config": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-5.0.7.tgz",
+ "integrity": "sha512-D+TBpJUHe4+oTGFPb4o0rrw/h1xxc6wF+abJnbDHUkhnaeiHkE2O3ByS7FdiZ2FT36t0OKqeSKG/xFwWT3m1Ew==",
+ "dependencies": {
+ "@expo/config": "~7.0.2",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/image-utils": "0.3.22",
+ "@expo/json-file": "8.2.36",
+ "debug": "^4.3.1",
+ "fs-extra": "^9.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "xml2js": "0.4.23"
+ },
+ "peerDependencies": {
+ "expo-modules-autolinking": ">=0.8.1"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
+ "dependencies": {
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/config-plugins/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/image-utils": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.22.tgz",
+ "integrity": "sha512-uzq+RERAtkWypOFOLssFnXXqEqKjNj9eXN7e97d/EXUAojNcLDoXc0sL+F5B1I4qtlsnhX01kcpoIBBZD8wZNQ==",
+ "dependencies": {
+ "@expo/spawn-async": "1.5.0",
+ "chalk": "^4.0.0",
+ "fs-extra": "9.0.0",
+ "getenv": "^1.0.0",
+ "jimp-compact": "0.16.1",
+ "mime": "^2.4.4",
+ "node-fetch": "^2.6.0",
+ "parse-png": "^2.1.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "tempy": "0.3.0"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/image-utils/node_modules/fs-extra": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
+ "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/image-utils/node_modules/universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/@expo/plist": {
"version": "0.0.18",
"resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
"integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
@@ -2710,26 +3039,51 @@
"xmlbuilder": "^14.0.0"
}
},
- "node_modules/@expo/prebuild-config": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-5.0.3.tgz",
- "integrity": "sha512-G4j1H3WFjRaiQ+FgFNULrnIm7RsQyjc4xp6lLTP2ydBv79wO3x8wAdeZvaZh7eOkfu9BESpQzACT1uuJTag5jg==",
+ "node_modules/@expo/prebuild-config/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
- "@expo/config": "7.0.1",
- "@expo/config-plugins": "~5.0.1",
- "@expo/config-types": "^46.0.0",
- "@expo/image-utils": "0.3.20",
- "@expo/json-file": "8.2.36",
- "debug": "^4.3.1",
- "fs-extra": "^9.0.0",
- "resolve-from": "^5.0.0",
- "semver": "7.3.2",
- "xml2js": "0.4.23"
+ "color-convert": "^2.0.1"
},
- "peerDependencies": {
- "expo-modules-autolinking": ">=0.8.1"
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
+ "node_modules/@expo/prebuild-config/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
"node_modules/@expo/prebuild-config/node_modules/fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -2744,6 +3098,25 @@
"node": ">=10"
}
},
+ "node_modules/@expo/prebuild-config/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@expo/prebuild-config/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
"node_modules/@expo/prebuild-config/node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -2766,6 +3139,17 @@
"node": ">=10"
}
},
+ "node_modules/@expo/prebuild-config/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@expo/prebuild-config/node_modules/universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
@@ -3126,35 +3510,36 @@
}
},
"node_modules/@jest/create-cache-key-function": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz",
- "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==",
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.3.1.tgz",
+ "integrity": "sha512-4i+E+E40gK13K78ffD/8cy4lSSqeWwyXeTZoq16tndiCP12hC8uQsPJdIu5C6Kf22fD8UbBk71so7s/6VwpUOQ==",
"dependencies": {
- "@jest/types": "^27.5.1"
+ "@jest/types": "^29.3.1"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/create-cache-key-function/node_modules/@jest/types": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
- "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz",
+ "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==",
"dependencies": {
+ "@jest/schemas": "^29.0.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
"@types/node": "*",
- "@types/yargs": "^16.0.0",
+ "@types/yargs": "^17.0.8",
"chalk": "^4.0.0"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": {
- "version": "16.0.4",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
- "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
+ "version": "17.0.18",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.18.tgz",
+ "integrity": "sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw==",
"dependencies": {
"@types/yargs-parser": "*"
}
@@ -3223,6 +3608,17 @@
"node": ">=8"
}
},
+ "node_modules/@jest/schemas": {
+ "version": "29.0.0",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz",
+ "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==",
+ "dependencies": {
+ "@sinclair/typebox": "^0.24.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
"node_modules/@jest/types": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
@@ -3436,29 +3832,37 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/@react-native-async-storage/async-storage": {
+ "version": "1.17.11",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.17.11.tgz",
+ "integrity": "sha512-bzs45n5HNcDq6mxXnSsOHysZWn1SbbebNxldBXCQs8dSvF8Aor9KCdpm+TpnnGweK3R6diqsT8lFhX77VX0NFw==",
+ "dependencies": {
+ "merge-options": "^3.0.4"
+ },
+ "peerDependencies": {
+ "react-native": "^0.0.0-0 || 0.60 - 0.71 || 1000.0.0"
+ }
+ },
"node_modules/@react-native-community/cli": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-8.0.6.tgz",
- "integrity": "sha512-E36hU/if3quQCfJHGWVkpsCnwtByRCwORuAX0r6yr1ebKktpKeEO49zY9PAu/Z1gfyxCtgluXY0HfRxjKRFXTg==",
- "dependencies": {
- "@react-native-community/cli-clean": "^8.0.4",
- "@react-native-community/cli-config": "^8.0.6",
- "@react-native-community/cli-debugger-ui": "^8.0.0",
- "@react-native-community/cli-doctor": "^8.0.6",
- "@react-native-community/cli-hermes": "^8.0.5",
- "@react-native-community/cli-plugin-metro": "^8.0.4",
- "@react-native-community/cli-server-api": "^8.0.4",
- "@react-native-community/cli-tools": "^8.0.4",
- "@react-native-community/cli-types": "^8.0.0",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.2.1.tgz",
+ "integrity": "sha512-feMYS5WXXKF4TSWnCXozHxtWq36smyhGaENXlkiRESfYZ1mnCUlPfOanNCAvNvBqdyh9d4o0HxhYKX1g9l6DCQ==",
+ "dependencies": {
+ "@react-native-community/cli-clean": "^9.2.1",
+ "@react-native-community/cli-config": "^9.2.1",
+ "@react-native-community/cli-debugger-ui": "^9.0.0",
+ "@react-native-community/cli-doctor": "^9.2.1",
+ "@react-native-community/cli-hermes": "^9.2.1",
+ "@react-native-community/cli-plugin-metro": "^9.2.1",
+ "@react-native-community/cli-server-api": "^9.2.1",
+ "@react-native-community/cli-tools": "^9.2.1",
+ "@react-native-community/cli-types": "^9.1.0",
"chalk": "^4.1.2",
- "commander": "^2.19.0",
+ "commander": "^9.4.0",
"execa": "^1.0.0",
"find-up": "^4.1.0",
"fs-extra": "^8.1.0",
"graceful-fs": "^4.1.3",
- "leven": "^3.1.0",
- "lodash": "^4.17.15",
- "minimist": "^1.2.0",
"prompts": "^2.4.0",
"semver": "^6.3.0"
},
@@ -3466,18 +3870,15 @@
"react-native": "build/bin.js"
},
"engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "react-native": "*"
+ "node": ">=14"
}
},
"node_modules/@react-native-community/cli-clean": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-8.0.4.tgz",
- "integrity": "sha512-IwS1M1NHg6+qL8PThZYMSIMYbZ6Zbx+lIck9PLBskbosFo24M3lCOflOl++Bggjakp6mR+sRXxLMexid/GeOsQ==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz",
+ "integrity": "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==",
"dependencies": {
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"prompts": "^2.4.0"
@@ -3548,11 +3949,11 @@
}
},
"node_modules/@react-native-community/cli-config": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-8.0.6.tgz",
- "integrity": "sha512-mjVpVvdh8AviiO8xtqeX+BkjqE//NMDnISwsLWSJUfNCwTAPmdR8PGbhgP5O4hWHyJ3WkepTopl0ya7Tfi3ifw==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz",
+ "integrity": "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==",
"dependencies": {
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-tools": "^9.2.1",
"cosmiconfig": "^5.1.0",
"deepmerge": "^3.2.0",
"glob": "^7.1.3",
@@ -3560,21 +3961,21 @@
}
},
"node_modules/@react-native-community/cli-debugger-ui": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-8.0.0.tgz",
- "integrity": "sha512-u2jq06GZwZ9sRERzd9FIgpW6yv4YOW4zz7Ym/B8eSzviLmy3yI/8mxJtvlGW+J8lBsfMcQoqJpqI6Rl1nZy9yQ==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-9.0.0.tgz",
+ "integrity": "sha512-7hH05ZwU9Tp0yS6xJW0bqcZPVt0YCK7gwj7gnRu1jDNN2kughf6Lg0Ys29rAvtZ7VO1PK5c1O+zs7yFnylQDUA==",
"dependencies": {
"serve-static": "^1.13.1"
}
},
"node_modules/@react-native-community/cli-doctor": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-8.0.6.tgz",
- "integrity": "sha512-ZQqyT9mJMVeFEVIwj8rbDYGCA2xXjJfsQjWk2iTRZ1CFHfhPSUuUiG8r6mJmTinAP9t+wYcbbIYzNgdSUKnDMw==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz",
+ "integrity": "sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==",
"dependencies": {
- "@react-native-community/cli-config": "^8.0.6",
- "@react-native-community/cli-platform-ios": "^8.0.6",
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-config": "^9.2.1",
+ "@react-native-community/cli-platform-ios": "^9.3.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"command-exists": "^1.2.8",
"envinfo": "^7.7.2",
@@ -3590,6 +3991,18 @@
"wcwidth": "^1.0.1"
}
},
+ "node_modules/@react-native-community/cli-doctor/node_modules/@react-native-community/cli-platform-ios": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz",
+ "integrity": "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "^9.2.1",
+ "chalk": "^4.1.2",
+ "execa": "^1.0.0",
+ "glob": "^7.1.3",
+ "ora": "^5.4.1"
+ }
+ },
"node_modules/@react-native-community/cli-doctor/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -3753,17 +4166,31 @@
}
},
"node_modules/@react-native-community/cli-hermes": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-8.0.5.tgz",
- "integrity": "sha512-Zm0wM6SfgYAEX1kfJ1QBvTayabvh79GzmjHyuSnEROVNPbl4PeCG4WFbwy489tGwOP9Qx9fMT5tRIFCD8bp6/g==",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz",
+ "integrity": "sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==",
"dependencies": {
- "@react-native-community/cli-platform-android": "^8.0.5",
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-platform-android": "^9.3.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"hermes-profile-transformer": "^0.0.6",
"ip": "^1.1.5"
}
},
+ "node_modules/@react-native-community/cli-hermes/node_modules/@react-native-community/cli-platform-android": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz",
+ "integrity": "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==",
+ "dependencies": {
+ "@react-native-community/cli-tools": "^9.2.1",
+ "chalk": "^4.1.2",
+ "execa": "^1.0.0",
+ "fs-extra": "^8.1.0",
+ "glob": "^7.1.3",
+ "logkitty": "^0.7.1",
+ "slash": "^3.0.0"
+ }
+ },
"node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -3829,17 +4256,15 @@
}
},
"node_modules/@react-native-community/cli-platform-android": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-8.0.5.tgz",
- "integrity": "sha512-z1YNE4T1lG5o9acoQR1GBvf7mq6Tzayqo/za5sHVSOJAC9SZOuVN/gg/nkBa9a8n5U7qOMFXfwhTMNqA474gXA==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz",
+ "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==",
"dependencies": {
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"fs-extra": "^8.1.0",
"glob": "^7.1.3",
- "jetifier": "^1.6.2",
- "lodash": "^4.17.15",
"logkitty": "^0.7.1",
"slash": "^3.0.0"
}
@@ -3909,18 +4334,15 @@
}
},
"node_modules/@react-native-community/cli-platform-ios": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-8.0.6.tgz",
- "integrity": "sha512-CMR6mu/LVx6JVfQRDL9uULsMirJT633bODn+IrYmrwSz250pnhON16We8eLPzxOZHyDjm7JPuSgHG3a/BPiRuQ==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz",
+ "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==",
"dependencies": {
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"glob": "^7.1.3",
- "js-yaml": "^3.13.1",
- "lodash": "^4.17.15",
- "ora": "^5.4.1",
- "plist": "^3.0.2"
+ "ora": "^5.4.1"
}
},
"node_modules/@react-native-community/cli-platform-ios/node_modules/ansi-styles": {
@@ -4081,19 +4503,19 @@
}
},
"node_modules/@react-native-community/cli-plugin-metro": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-8.0.4.tgz",
- "integrity": "sha512-UWzY1eMcEr/6262R2+d0Is5M3L/7Y/xXSDIFMoc5Rv5Wucl3hJM/TxHXmByvHpuJf6fJAfqOskyt4bZCvbI+wQ==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz",
+ "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==",
"dependencies": {
- "@react-native-community/cli-server-api": "^8.0.4",
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-server-api": "^9.2.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
- "metro": "^0.70.1",
- "metro-config": "^0.70.1",
- "metro-core": "^0.70.1",
- "metro-react-native-babel-transformer": "^0.70.1",
- "metro-resolver": "^0.70.1",
- "metro-runtime": "^0.70.1",
+ "metro": "0.72.3",
+ "metro-config": "0.72.3",
+ "metro-core": "0.72.3",
+ "metro-react-native-babel-transformer": "0.72.3",
+ "metro-resolver": "0.72.3",
+ "metro-runtime": "0.72.3",
"readline": "^1.3.0"
}
},
@@ -4162,12 +4584,12 @@
}
},
"node_modules/@react-native-community/cli-server-api": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-8.0.4.tgz",
- "integrity": "sha512-Orr14njx1E70CVrUA8bFdl+mrnbuXUjf1Rhhm0RxUadFpvkHuOi5dh8Bryj2MKtf8eZrpEwZ7tuQPhJEULW16A==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz",
+ "integrity": "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==",
"dependencies": {
- "@react-native-community/cli-debugger-ui": "^8.0.0",
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-debugger-ui": "^9.0.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"compression": "^1.7.1",
"connect": "^3.6.5",
"errorhandler": "^1.5.0",
@@ -4198,14 +4620,13 @@
}
},
"node_modules/@react-native-community/cli-tools": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-8.0.4.tgz",
- "integrity": "sha512-ePN9lGxh6LRFiotyddEkSmuqpQhnq2iw9oiXYr4EFWpIEy0yCigTuSTiDF68+c8M9B+7bTwkRpz/rMPC4ViO5Q==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz",
+ "integrity": "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==",
"dependencies": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
"find-up": "^5.0.0",
- "lodash": "^4.17.15",
"mime": "^2.4.1",
"node-fetch": "^2.6.0",
"open": "^6.2.0",
@@ -4391,9 +4812,9 @@
}
},
"node_modules/@react-native-community/cli-types": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-8.0.0.tgz",
- "integrity": "sha512-1lZS1PEvMlFaN3Se1ksyoFWzMjk+YfKi490GgsqKJln9gvFm8tqVPdnXttI5Uf2DQf3BMse8Bk8dNH4oV6Ewow==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.1.0.tgz",
+ "integrity": "sha512-KDybF9XHvafLEILsbiKwz5Iobd+gxRaPyn4zSaAerBxedug4er5VUWa8Szy+2GeYKZzMh/gsb1o9lCToUwdT/g==",
"dependencies": {
"joi": "^17.2.1"
}
@@ -4444,9 +4865,12 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/@react-native-community/cli/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
},
"node_modules/@react-native-community/cli/node_modules/find-up": {
"version": "4.1.0",
@@ -4524,13 +4948,22 @@
}
},
"node_modules/@react-native-community/datetimepicker": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-6.2.0.tgz",
- "integrity": "sha512-w1ZS+wYO3qSASliRp+B7mPphOhtVm++rhSbj1WsgXdgLgDXSkDxpMnAXXQu9M0XdcgBwVJ6wDExeIwuzU5Jtfg==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-6.5.2.tgz",
+ "integrity": "sha512-9K3zhIH1zmpIGSG3GJTWLIoAx+sR4kJ1wqpGKMwWJ5IYXBsFxMdvGw023t0pz2CQStlnNbbNhnZY/HMYFBCsCg==",
"dependencies": {
"invariant": "^2.2.4"
}
},
+ "node_modules/@react-native-picker/picker": {
+ "version": "2.4.8",
+ "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz",
+ "integrity": "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg==",
+ "peerDependencies": {
+ "react": ">=16",
+ "react-native": ">=0.57"
+ }
+ },
"node_modules/@react-native/assets": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz",
@@ -4749,15 +5182,20 @@
}
},
"node_modules/@sideway/formula": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz",
- "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
},
"node_modules/@sideway/pinpoint": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
"integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
},
+ "node_modules/@sinclair/typebox": {
+ "version": "0.24.51",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
+ "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA=="
+ },
"node_modules/@types/glob": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
@@ -4767,14 +5205,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/graceful-fs": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/hammerjs": {
"version": "2.0.41",
"resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz",
@@ -5083,9 +5513,9 @@
}
},
"node_modules/@xmldom/xmldom": {
- "version": "0.7.6",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz",
- "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==",
+ "version": "0.7.9",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.9.tgz",
+ "integrity": "sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA==",
"engines": {
"node": ">=10.0.0"
}
@@ -5147,6 +5577,17 @@
"node": ">= 0.12.0"
}
},
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
"node_modules/aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
@@ -5279,9 +5720,9 @@
"integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
},
"node_modules/application-config-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz",
- "integrity": "sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q=="
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
+ "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
},
"node_modules/aproba": {
"version": "1.2.0",
@@ -5434,11 +5875,6 @@
"node": ">=4"
}
},
- "node_modules/ast-types/node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- },
"node_modules/astral-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
@@ -5486,6 +5922,29 @@
"node": ">= 4.5.0"
}
},
+ "node_modules/axios": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz",
+ "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==",
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/axios/node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/babel-core": {
"version": "7.0.0-bridge.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
@@ -5514,9 +5973,9 @@
}
},
"node_modules/babel-loader/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -5525,9 +5984,9 @@
}
},
"node_modules/babel-loader/node_modules/loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -5606,9 +6065,9 @@
}
},
"node_modules/babel-plugin-react-native-web": {
- "version": "0.18.9",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.9.tgz",
- "integrity": "sha512-A9rrSfV98CFRS+ACgZorxaHH8gDrVyK2Nea8OHepY4Sv/Mf+vk8uvQq+tRUEBpHnUvd/qRDKIjFLbygecAt9VA=="
+ "version": "0.18.10",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.10.tgz",
+ "integrity": "sha512-2UiwS6G7XKJvpo0X5OFkzGjHGFuNx9J+DgEG8TEmm+X5S0z6EB59W11RDEZghdKzsQzVbs1jB+2VHBuVgjMTiw=="
},
"node_modules/babel-plugin-syntax-trailing-function-commas": {
"version": "7.0.0-beta.0",
@@ -5616,16 +6075,17 @@
"integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
},
"node_modules/babel-preset-expo": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.2.0.tgz",
- "integrity": "sha512-aM2htiNx0H49H+MWCp9+cKVSdcdNSn0tbE5Dln/GO1xna4ZlnA30clbfClcYJFUcZtW90IsYeZwQ/hj8zyWhNA==",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.2.2.tgz",
+ "integrity": "sha512-69cSPObZWFz0AaUT6IhCu2VzPVTICUtXzhX5ecoDttFe+9wb9yMV8m7rBNZptJQ3wtiKB5iEL7/wvtKygPz/mQ==",
"dependencies": {
"@babel/plugin-proposal-decorators": "^7.12.9",
+ "@babel/plugin-proposal-object-rest-spread": "^7.12.13",
"@babel/plugin-transform-react-jsx": "^7.12.17",
"@babel/preset-env": "^7.12.9",
"babel-plugin-module-resolver": "^4.1.0",
"babel-plugin-react-native-web": "~0.18.2",
- "metro-react-native-babel-preset": "~0.70.3"
+ "metro-react-native-babel-preset": "0.72.3"
}
},
"node_modules/babel-preset-fbjs": {
@@ -5865,9 +6325,9 @@
}
},
"node_modules/bplist-parser": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
- "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
+ "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
"dependencies": {
"big-integer": "1.6.x"
},
@@ -6232,11 +6692,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/camel-case/node_modules/tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- },
"node_modules/camelcase": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
@@ -7233,11 +7688,11 @@
}
},
"node_modules/crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
"node_modules/css-color-names": {
@@ -7308,9 +7763,9 @@
}
},
"node_modules/css-loader/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -7319,9 +7774,9 @@
}
},
"node_modules/css-loader/node_modules/loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -7560,9 +8015,9 @@
"integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
},
"node_modules/dayjs": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz",
- "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ=="
+ "version": "1.11.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"node_modules/debug": {
"version": "4.3.4",
@@ -7589,9 +8044,9 @@
}
},
"node_modules/decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"engines": {
"node": ">=0.10"
}
@@ -7955,11 +8410,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/dot-case/node_modules/tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- },
"node_modules/dot-prop": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
@@ -8492,23 +8942,25 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/expo": {
- "version": "46.0.17",
- "resolved": "https://registry.npmjs.org/expo/-/expo-46.0.17.tgz",
- "integrity": "sha512-rB+KMvjU3lFMkec5LcVFFn0Q2iJUEIoyB9TckKMirA15H5mW4yZMao0ilR7239fJ5ytVoDC8SIf7ZAvTmiMuMw==",
+ "version": "47.0.9",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-47.0.9.tgz",
+ "integrity": "sha512-NZtwk2Q+8DYlEpY/vBWDOVeN20AdlsVlZlhLOHAqvXpUSlNhG5XYBJD3wW+GQ1BQetq/8Hxe5NaZu0N5YkYsvA==",
"dependencies": {
"@babel/runtime": "^7.14.0",
- "@expo/cli": "0.3.2",
+ "@expo/cli": "0.4.10",
+ "@expo/config": "7.0.3",
+ "@expo/config-plugins": "5.0.4",
"@expo/vector-icons": "^13.0.0",
- "babel-preset-expo": "~9.2.0",
+ "babel-preset-expo": "~9.2.2",
"cross-spawn": "^6.0.5",
- "expo-application": "~4.2.2",
- "expo-asset": "~8.6.1",
- "expo-constants": "~13.2.4",
- "expo-file-system": "~14.1.0",
- "expo-font": "~10.2.1",
- "expo-keep-awake": "~10.2.0",
- "expo-modules-autolinking": "0.10.3",
- "expo-modules-core": "0.11.9",
+ "expo-application": "~5.0.1",
+ "expo-asset": "~8.7.0",
+ "expo-constants": "~14.0.2",
+ "expo-file-system": "~15.1.1",
+ "expo-font": "~11.0.1",
+ "expo-keep-awake": "~11.0.1",
+ "expo-modules-autolinking": "1.0.0",
+ "expo-modules-core": "1.0.4",
"fbemitter": "^3.0.0",
"getenv": "^1.0.0",
"invariant": "^2.2.4",
@@ -8521,25 +8973,25 @@
"expo": "bin/cli.js"
},
"optionalDependencies": {
- "expo-error-recovery": "~3.2.0"
+ "expo-error-recovery": "~4.0.1"
}
},
"node_modules/expo-application": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.2.2.tgz",
- "integrity": "sha512-bFEaFRUdV6aK2iBd+HzkHNPYsyj88EAhaQW5leznmO0qQMJxpAQ3eoUXMey1hfDBh1qgkkHgSyCZ9BIgMAGJ1g==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-5.0.1.tgz",
+ "integrity": "sha512-bThxK5zH/Lc2tkCvEXGjfM7ayvOVmPWYcWzXsMIU1RtG73TyXo4cq+73FvfDNIWn6gKS0WyMcmoPB3WXEV/jsw==",
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-asset": {
- "version": "8.6.1",
- "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.6.1.tgz",
- "integrity": "sha512-urbUp1YtwH2J0Qc3inGQJdqTjWKML77SeMNgff+iR9MUE8gDkFqSCDjrBi7i5Oj5DDtq43mmtDg8G8ei6Vchcg==",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.7.0.tgz",
+ "integrity": "sha512-lkoNsHK6vf+outISB6/37SonXcAL6Buw0ycjiwQVFfpOBKpkQa+zw5wm1m3KwjH2txmR3xdIzcpWsJkgovYCvQ==",
"dependencies": {
"blueimp-md5": "^2.10.0",
- "expo-constants": "~13.2.2",
- "expo-file-system": "~14.1.0",
+ "expo-constants": "~14.0.0",
+ "expo-file-system": "~15.1.0",
"invariant": "^2.2.4",
"md5-file": "^3.2.3",
"path-browserify": "^1.0.0",
@@ -8547,32 +8999,280 @@
}
},
"node_modules/expo-constants": {
- "version": "13.2.4",
- "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.2.4.tgz",
- "integrity": "sha512-Zobau8EuTk2GgafwkfGnWM6CmSLB7X8qnQXVuXe0nd3v92hfQUmRWGhJwH88uxXj3LrfqctM6PaJ8taG1vxfBw==",
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-14.0.2.tgz",
+ "integrity": "sha512-wzV3nrzTXTI8yG0tfas3fnqCfKV6YE+1GphEREyVDAShEB6mBInX1b6HgtpHFy2wOtnml+lPVmTCeGtjjLnZhA==",
"dependencies": {
- "@expo/config": "~7.0.0",
+ "@expo/config": "~7.0.2",
"uuid": "^3.3.2"
},
"peerDependencies": {
"expo": "*"
}
},
+ "node_modules/expo-constants/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/expo-constants/node_modules/@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "node_modules/expo-constants/node_modules/@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
+ "dependencies": {
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ }
+ },
+ "node_modules/expo-constants/node_modules/@expo/config-plugins/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo-constants/node_modules/@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "node_modules/expo-constants/node_modules/@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "node_modules/expo-constants/node_modules/@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
+ "dependencies": {
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "node_modules/expo-constants/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/expo-constants/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/expo-constants/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/expo-constants/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/expo-constants/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expo-constants/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/expo-constants/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo-constants/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expo-dev-client": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-2.0.1.tgz",
+ "integrity": "sha512-+OXXZKKo/CplqklpaZasHAX7qaRrzC83biqXTFa1z5NiFW41uqtAqTFx6gmPi4kx3YgwtD+ep6R3SRrKjdCukg==",
+ "dependencies": {
+ "expo-dev-launcher": "2.0.2",
+ "expo-dev-menu": "2.0.2",
+ "expo-dev-menu-interface": "1.0.0",
+ "expo-manifests": "~0.4.0",
+ "expo-updates-interface": "~0.8.0"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-launcher": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-2.0.2.tgz",
+ "integrity": "sha512-MQT7VSOHJQrEs3YAv5BQLYs3Uk7P1dNqBw6kKrj3jKBq0z92k2LLg1aCk7nP8OGJVDvrb2jTXBka8VXVqF0ECg==",
+ "dependencies": {
+ "expo-dev-menu": "2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-launcher/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo-dev-menu": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-2.0.2.tgz",
+ "integrity": "sha512-SxR5riXgm+VVKsDKC/bOLuOJ0CKutW07G+OqJ9eYfxwGfxa8omLJHwagbCsd8FwUPGkzvzgfRJRGLo5J6REMow==",
+ "dependencies": {
+ "expo-dev-menu-interface": "1.0.0",
+ "semver": "^7.3.5"
+ },
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-menu-interface": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-1.0.0.tgz",
+ "integrity": "sha512-4lsVofTwV9oBM+zo7XhtmvbfiXD4I7I3Rqns6U0i6IOnH7OGBDpKvGZ5YikWPFGn6NOu8loqqd8S7inFIaxC0A==",
+ "peerDependencies": {
+ "expo": "*"
+ }
+ },
+ "node_modules/expo-dev-menu/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/expo-error-recovery": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.2.0.tgz",
- "integrity": "sha512-XZ630ks5HNxa9oc2Ya1hEn1ez031Cy4VnyxerPC2o9fKNKSrD/64cRqGF9NkGM3X2uf8+PCB9adxVflAIXBf6w==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-4.0.1.tgz",
+ "integrity": "sha512-wceptnRX+N3qCSVTNbIchUFu3GmY30onRH5L66OF8HMLpAIQfrZMLxJfz7SAMJTcr3jxsJ11vSa2l2RaPKgHsQ==",
"optional": true,
"peerDependencies": {
"expo": "*"
}
},
"node_modules/expo-file-system": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-14.1.0.tgz",
- "integrity": "sha512-lJcPGQ8yKXVknVkD5TmcJnR/TpQbEL0JP8hknLejfq3FIqPqI/LBFn31YiP37grxW8lITz1al8pq5T6CSUjAzQ==",
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-15.1.1.tgz",
+ "integrity": "sha512-MYYDKxjLo9VOkvGHqym5EOAUS+ero9O66X5zI+EXJzqNznKvnfScdXeeAaQzShmWtmLkdVDCoYFGOaTvTA1wTQ==",
"dependencies": {
- "@expo/config-plugins": "~5.0.0",
"uuid": "^3.4.0"
},
"peerDependencies": {
@@ -8580,9 +9280,9 @@
}
},
"node_modules/expo-font": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.2.1.tgz",
- "integrity": "sha512-sxy5GrdtY+Ka8Wo5wnrcFFeO6MbYC6Dris5wMLqshvVK6BneJNMUsFvwRfvVgg0TzsmMAc3Rlca2xyZ8ettinw==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.0.1.tgz",
+ "integrity": "sha512-LGAIluWZfru0J0n87dzb6pwAB6TVMTEiLcsd/ktozzbn4DlN7SeQy40+ruU6bvAKCOGrnRneYbKSIOGkrd7oNg==",
"dependencies": {
"fontfaceobserver": "^2.1.0"
},
@@ -8590,18 +9290,31 @@
"expo": "*"
}
},
+ "node_modules/expo-json-utils": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.4.0.tgz",
+ "integrity": "sha512-lK6gjea72XTYafpKNNJaMrBK5dYAX8LFLXrp/M1MKJU4Zy7EHd2rKrLwop3GZts8VdwLHeVcMko79SAbhe3i5Q=="
+ },
"node_modules/expo-keep-awake": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.2.0.tgz",
- "integrity": "sha512-kIRtO4Hmrvxh4E45IPWG/NiUZsuRe1AQwBT09pq+kx8nm6tUS4B9TeL6+1NFy+qVBLbGKDqoQD5Ez7XYTFtBeQ==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-11.0.1.tgz",
+ "integrity": "sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A==",
"peerDependencies": {
"expo": "*"
}
},
+ "node_modules/expo-manifests": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.4.0.tgz",
+ "integrity": "sha512-IdZjIYDxx4nH0Gb3X4T4/2YknmR/jSLxymAS0m7SfJ9V7Vlu/y0p3lNwUys9/JzihxX9PDIuOi/Y4/uqL6TlXg==",
+ "dependencies": {
+ "expo-json-utils": "~0.4.0"
+ }
+ },
"node_modules/expo-modules-autolinking": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.10.3.tgz",
- "integrity": "sha512-av9ln2zwUt303g98raX7sDmESgL3SXs1sbbtIjh1rL7R0676XIUacIKgbydR0/4tMbOShWx14Z9fozpk9xIAJA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.0.0.tgz",
+ "integrity": "sha512-MoRRkOVMoGUH/Lr8XS6UmBIZT/qrwbRt2IzUBALcM6MWZKtDn9Uct9XgMRxue82FJhRCfy9p1xZJVKHBRo4zEA==",
"dependencies": {
"chalk": "^4.1.0",
"commander": "^7.2.0",
@@ -8711,9 +9424,9 @@
}
},
"node_modules/expo-modules-core": {
- "version": "0.11.9",
- "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.11.9.tgz",
- "integrity": "sha512-6AlOE4KHN3/WWbY8hH7W6ceuIFj0qbk1N+UhmMhiCEUas3NvXA6wcH3xjO+8JZ+BRcIB9M4QEeX72j6vDDuExg==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.0.4.tgz",
+ "integrity": "sha512-Cf2G8f2h3TGASKNDYXlOwe5CBMmRt32wZzBAmau6qComw0e13Y9sDYORSfgk+NJWvLnHJrInN4qGytxHfal/aA==",
"dependencies": {
"compare-versions": "^3.4.0",
"invariant": "^2.2.4"
@@ -8736,24 +9449,6 @@
"expo": "*"
}
},
- "node_modules/expo-pwa/node_modules/@expo/image-utils": {
- "version": "0.3.23",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.23.tgz",
- "integrity": "sha512-nhUVvW0TrRE4jtWzHQl8TR4ox7kcmrc2I0itaeJGjxF5A54uk7avgA0wRt7jP1rdvqQo1Ke1lXyLYREdhN9tPw==",
- "dependencies": {
- "@expo/spawn-async": "1.5.0",
- "chalk": "^4.0.0",
- "fs-extra": "9.0.0",
- "getenv": "^1.0.0",
- "jimp-compact": "0.16.1",
- "mime": "^2.4.4",
- "node-fetch": "^2.6.0",
- "parse-png": "^2.1.0",
- "resolve-from": "^5.0.0",
- "semver": "7.3.2",
- "tempy": "0.3.0"
- }
- },
"node_modules/expo-pwa/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -8804,59 +9499,105 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
},
- "node_modules/expo-pwa/node_modules/crypto-random-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
- "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
+ "node_modules/expo-pwa/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/expo-pwa/node_modules/fs-extra": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
- "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+ "node_modules/expo-pwa/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^1.0.0"
+ "has-flag": "^4.0.0"
},
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/expo-pwa/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
- "node_modules/expo-pwa/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "node_modules/expo-splash-screen": {
+ "version": "0.17.5",
+ "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.17.5.tgz",
+ "integrity": "sha512-ejSO78hwHXz8T9u8kh8t4r6CR4h70iBvA65gX8GK+dYxZl6/IANPbIb2VnUpND9vqfW+JnkDw+ZFst+gDnkpcQ==",
"dependencies": {
- "universalify": "^2.0.0"
+ "@expo/configure-splash-screen": "^0.6.0",
+ "@expo/prebuild-config": "5.0.7"
},
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
+ "peerDependencies": {
+ "expo": "*"
}
},
- "node_modules/expo-pwa/node_modules/jsonfile/node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "engines": {
- "node": ">= 10.0.0"
+ "node_modules/expo-status-bar": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.4.2.tgz",
+ "integrity": "sha512-ZWjO6D4ARGYfAd3SWDD3STNudHDhyBZDZjhhseqoEmsf7bS9ykny8KKOhlzJW24qIQNPhkgdvHhaw9fQwMJy3Q=="
+ },
+ "node_modules/expo-updates-interface": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.8.1.tgz",
+ "integrity": "sha512-1TPFCTQFHMZbltFGnxig3PbN/b6nO4T0RyL8XqdmYvQY0ElOCprZXQQ8vNDqeLYHgausG1lD4OyJwFzh2SNBSA==",
+ "peerDependencies": {
+ "expo": "*"
}
},
- "node_modules/expo-pwa/node_modules/semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "node_modules/expo/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/expo/node_modules/@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "node_modules/expo/node_modules/@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
+ "dependencies": {
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ }
+ },
+ "node_modules/expo/node_modules/@expo/config-plugins/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
"bin": {
"semver": "bin/semver.js"
},
@@ -8864,69 +9605,116 @@
"node": ">=10"
}
},
- "node_modules/expo-pwa/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/expo/node_modules/@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "node_modules/expo/node_modules/@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "node_modules/expo/node_modules/@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
+ "dependencies": {
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "node_modules/expo/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/expo-pwa/node_modules/temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
+ "node_modules/expo/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/expo-pwa/node_modules/tempy": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
- "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
+ "node_modules/expo/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
- "temp-dir": "^1.0.0",
- "type-fest": "^0.3.1",
- "unique-string": "^1.0.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=8"
+ "node": ">=7.0.0"
}
},
- "node_modules/expo-pwa/node_modules/type-fest": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
- "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "node_modules/expo/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/expo/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
- "node": ">=6"
+ "node": ">=8"
}
},
- "node_modules/expo-pwa/node_modules/unique-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
- "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
+ "node_modules/expo/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
- "crypto-random-string": "^1.0.0"
+ "minimist": "^1.2.0"
},
- "engines": {
- "node": ">=4"
+ "bin": {
+ "json5": "lib/cli.js"
}
},
- "node_modules/expo-pwa/node_modules/universalify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
- "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "node_modules/expo/node_modules/semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=10"
}
},
- "node_modules/expo-status-bar": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.4.0.tgz",
- "integrity": "sha512-vh98g8qMIjig/2XTBsoAWS6Vo2dIIwDWjB3/GiuZ9Lazpxc9GO/APfJ4dar7MibzIDUKIrjotrcL6rLdPH13Ew=="
+ "node_modules/expo/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/express": {
"version": "4.18.2",
@@ -9972,11 +10760,6 @@
"graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
}
},
- "node_modules/graphql-tag/node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- },
"node_modules/gzip-size": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
@@ -10177,22 +10960,17 @@
"he": "bin/he"
}
},
- "node_modules/hermes-engine": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.11.0.tgz",
- "integrity": "sha512-7aMUlZja2IyLYAcZ69NBnwJAR5ZOYlSllj0oMpx08a8HzxHOys0eKCzfphrf6D0vX1JGO1QQvVsQKe6TkYherw=="
- },
"node_modules/hermes-estree": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.6.0.tgz",
- "integrity": "sha512-2YTGzJCkhdmT6VuNprWjXnvTvw/3iPNw804oc7yknvQpNKo+vJGZmtvLLCghOZf0OwzKaNAzeIMp71zQbNl09w=="
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz",
+ "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q=="
},
"node_modules/hermes-parser": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.6.0.tgz",
- "integrity": "sha512-Vf58jBZca2+QBLR9h7B7mdg8oFz2g5ILz1iVouZ5DOrOrAfBmPfJjdjDT8jrO0f+iJ4/hSRrQHqHIjSnTaLUDQ==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz",
+ "integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==",
"dependencies": {
- "hermes-estree": "0.6.0"
+ "hermes-estree": "0.8.0"
}
},
"node_modules/hermes-profile-transformer": {
@@ -10361,9 +11139,9 @@
}
},
"node_modules/html-webpack-plugin/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -10372,9 +11150,9 @@
}
},
"node_modules/html-webpack-plugin/node_modules/loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -10573,6 +11351,18 @@
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
"integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg=="
},
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/hyphenate-style-name": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
@@ -11126,6 +11916,14 @@
"node": ">=8"
}
},
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -11308,118 +12106,6 @@
"node": ">= 10.14.2"
}
},
- "node_modules/jest-haste-map": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
- "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
- "dependencies": {
- "@jest/types": "^27.5.1",
- "@types/graceful-fs": "^4.1.2",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^27.5.1",
- "jest-serializer": "^27.5.1",
- "jest-util": "^27.5.1",
- "jest-worker": "^27.5.1",
- "micromatch": "^4.0.4",
- "walker": "^1.0.7"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-haste-map/node_modules/@jest/types": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
- "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
- "dependencies": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^16.0.0",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-haste-map/node_modules/@types/yargs": {
- "version": "16.0.4",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
- "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/jest-haste-map/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-haste-map/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-haste-map/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-haste-map/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-haste-map/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-haste-map/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/jest-regex-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
@@ -11658,25 +12344,15 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/jetifier": {
- "version": "1.6.8",
- "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.8.tgz",
- "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==",
- "bin": {
- "jetifier": "bin/jetify",
- "jetifier-standalone": "bin/jetifier-standalone",
- "jetify": "bin/jetify"
- }
- },
"node_modules/jimp-compact": {
"version": "0.16.1",
"resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz",
"integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
},
"node_modules/joi": {
- "version": "17.6.4",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.4.tgz",
- "integrity": "sha512-tPzkTJHZQjSFCc842QpdVpOZ9LI2txApboNUbW70qgnRB14Lzl+oWQOPdF2N4yqyiY14wBGe8lc7f/2hZxbGmw==",
+ "version": "17.7.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz",
+ "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==",
"dependencies": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
@@ -12006,9 +12682,9 @@
"integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA=="
},
"node_modules/json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"bin": {
"json5": "lib/cli.js"
},
@@ -12084,9 +12760,9 @@
}
},
"node_modules/loader-utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz",
- "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -12165,9 +12841,9 @@
}
},
"node_modules/loglevel": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz",
- "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz",
+ "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==",
"engines": {
"node": ">= 0.6.0"
},
@@ -12195,11 +12871,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/lower-case/node_modules/tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- },
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -12392,6 +13063,17 @@
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
+ "node_modules/merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "dependencies": {
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -12414,9 +13096,9 @@
}
},
"node_modules/metro": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro/-/metro-0.70.3.tgz",
- "integrity": "sha512-uEWS7xg8oTetQDABYNtsyeUjdLhH3KAvLFpaFFoJqUpOk2A3iygszdqmjobFl6W4zrvKDJS+XxdMR1roYvUhTw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz",
+ "integrity": "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==",
"dependencies": {
"@babel/code-frame": "^7.0.0",
"@babel/core": "^7.14.0",
@@ -12436,27 +13118,27 @@
"error-stack-parser": "^2.0.6",
"fs-extra": "^1.0.0",
"graceful-fs": "^4.2.4",
- "hermes-parser": "0.6.0",
+ "hermes-parser": "0.8.0",
"image-size": "^0.6.0",
"invariant": "^2.2.4",
- "jest-haste-map": "^27.3.1",
"jest-worker": "^27.2.0",
"lodash.throttle": "^4.1.1",
- "metro-babel-transformer": "0.70.3",
- "metro-cache": "0.70.3",
- "metro-cache-key": "0.70.3",
- "metro-config": "0.70.3",
- "metro-core": "0.70.3",
- "metro-hermes-compiler": "0.70.3",
- "metro-inspector-proxy": "0.70.3",
- "metro-minify-uglify": "0.70.3",
- "metro-react-native-babel-preset": "0.70.3",
- "metro-resolver": "0.70.3",
- "metro-runtime": "0.70.3",
- "metro-source-map": "0.70.3",
- "metro-symbolicate": "0.70.3",
- "metro-transform-plugins": "0.70.3",
- "metro-transform-worker": "0.70.3",
+ "metro-babel-transformer": "0.72.3",
+ "metro-cache": "0.72.3",
+ "metro-cache-key": "0.72.3",
+ "metro-config": "0.72.3",
+ "metro-core": "0.72.3",
+ "metro-file-map": "0.72.3",
+ "metro-hermes-compiler": "0.72.3",
+ "metro-inspector-proxy": "0.72.3",
+ "metro-minify-uglify": "0.72.3",
+ "metro-react-native-babel-preset": "0.72.3",
+ "metro-resolver": "0.72.3",
+ "metro-runtime": "0.72.3",
+ "metro-source-map": "0.72.3",
+ "metro-symbolicate": "0.72.3",
+ "metro-transform-plugins": "0.72.3",
+ "metro-transform-worker": "0.72.3",
"mime-types": "^2.1.27",
"node-fetch": "^2.2.0",
"nullthrows": "^1.1.1",
@@ -12474,62 +13156,96 @@
}
},
"node_modules/metro-babel-transformer": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.70.3.tgz",
- "integrity": "sha512-bWhZRMn+mIOR/s3BDpFevWScz9sV8FGktVfMlF1eJBLoX24itHDbXvTktKBYi38PWIKcHedh6THSFpJogfuwNA==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz",
+ "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==",
"dependencies": {
"@babel/core": "^7.14.0",
- "hermes-parser": "0.6.0",
- "metro-source-map": "0.70.3",
+ "hermes-parser": "0.8.0",
+ "metro-source-map": "0.72.3",
"nullthrows": "^1.1.1"
}
},
"node_modules/metro-cache": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.70.3.tgz",
- "integrity": "sha512-iCix/+z812fUqa6KlOxaTkY6LQQDoXIe/VljXkGIvpygSCmYyhjQpfQVZEVVPezFmUBYXNdabdQ6cYx6JX3yMg==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz",
+ "integrity": "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==",
"dependencies": {
- "metro-core": "0.70.3",
+ "metro-core": "0.72.3",
"rimraf": "^2.5.4"
}
},
"node_modules/metro-cache-key": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.70.3.tgz",
- "integrity": "sha512-0zpw+IcpM3hmGd5sKMdxNv3sbOIUYnMUvx1/yaM6vNRReSPmOLX0bP8fYf3CGgk8NEreZ1OHbVsuw7bdKt40Mw=="
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz",
+ "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg=="
},
"node_modules/metro-config": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.70.3.tgz",
- "integrity": "sha512-SSCDjSTygoCgzoj61DdrBeJzZDRwQxUEfcgc6t6coxWSExXNR4mOngz0q4SAam49Bmjq9J2Jft6qUKnUTPrRgA==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz",
+ "integrity": "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==",
"dependencies": {
"cosmiconfig": "^5.0.5",
"jest-validate": "^26.5.2",
- "metro": "0.70.3",
- "metro-cache": "0.70.3",
- "metro-core": "0.70.3",
- "metro-runtime": "0.70.3"
+ "metro": "0.72.3",
+ "metro-cache": "0.72.3",
+ "metro-core": "0.72.3",
+ "metro-runtime": "0.72.3"
}
},
"node_modules/metro-core": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.70.3.tgz",
- "integrity": "sha512-NzfHB/w5R7yLaOeU1tzPTbBzCRsYSvpKJkLMP0yudszKZzIAZqNdjoEJ9GZ688Wi0ynZxcU0BxukXh4my80ZBw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz",
+ "integrity": "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==",
"dependencies": {
- "jest-haste-map": "^27.3.1",
"lodash.throttle": "^4.1.1",
- "metro-resolver": "0.70.3"
+ "metro-resolver": "0.72.3"
}
},
+ "node_modules/metro-file-map": {
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz",
+ "integrity": "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "anymatch": "^3.0.3",
+ "debug": "^2.2.0",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.4",
+ "invariant": "^2.2.4",
+ "jest-regex-util": "^27.0.6",
+ "jest-serializer": "^27.0.6",
+ "jest-util": "^27.2.0",
+ "jest-worker": "^27.2.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.1.2"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/metro-file-map/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/metro-hermes-compiler": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.70.3.tgz",
- "integrity": "sha512-W6WttLi4E72JL/NyteQ84uxYOFMibe0PUr9aBKuJxxfCq6QRnJKOVcNY0NLW0He2tneXGk+8ZsNz8c0flEvYqg=="
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz",
+ "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg=="
},
"node_modules/metro-inspector-proxy": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.70.3.tgz",
- "integrity": "sha512-qQoNdPGrmyoJSWYkxSDpTaAI8xyqVdNDVVj9KRm1PG8niSuYmrCCFGLLFsMvkVYwsCWUGHoGBx0UoAzVp14ejw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz",
+ "integrity": "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==",
"dependencies": {
"connect": "^3.6.5",
"debug": "^2.2.0",
@@ -12574,17 +13290,17 @@
}
},
"node_modules/metro-minify-uglify": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.70.3.tgz",
- "integrity": "sha512-oHyjV9WDqOlDE1FPtvs6tIjjeY/oP1PNUPYL1wqyYtqvjN+zzAOrcbsAAL1sv+WARaeiMsWkF2bwtNo+Hghoog==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz",
+ "integrity": "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==",
"dependencies": {
"uglify-es": "^3.1.9"
}
},
"node_modules/metro-react-native-babel-preset": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.70.3.tgz",
- "integrity": "sha512-4Nxc1zEiHEu+GTdEMEsHnRgfaBkg8f/Td3+FcQ8NTSvs+xL3LBrQy6N07idWSQZHIdGFf+tTHvRfSIWLD8u8Tg==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz",
+ "integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/plugin-proposal-async-generator-functions": "^7.0.0",
@@ -12631,16 +13347,16 @@
}
},
"node_modules/metro-react-native-babel-transformer": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.70.3.tgz",
- "integrity": "sha512-WKBU6S/G50j9cfmFM4k4oRYprd8u3qjleD4so1E2zbTNILg+gYla7ZFGCAvi2G0ZcqS2XuGCR375c2hF6VVvwg==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz",
+ "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==",
"dependencies": {
"@babel/core": "^7.14.0",
"babel-preset-fbjs": "^3.4.0",
- "hermes-parser": "0.6.0",
- "metro-babel-transformer": "0.70.3",
- "metro-react-native-babel-preset": "0.70.3",
- "metro-source-map": "0.70.3",
+ "hermes-parser": "0.8.0",
+ "metro-babel-transformer": "0.72.3",
+ "metro-react-native-babel-preset": "0.72.3",
+ "metro-source-map": "0.72.3",
"nullthrows": "^1.1.1"
},
"peerDependencies": {
@@ -12648,32 +13364,33 @@
}
},
"node_modules/metro-resolver": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.70.3.tgz",
- "integrity": "sha512-5Pc5S/Gs4RlLbziuIWtvtFd9GRoILlaRC8RZDVq5JZWcWHywKy/PjNmOBNhpyvtRlzpJfy/ssIfLhu8zINt1Mw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz",
+ "integrity": "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==",
"dependencies": {
"absolute-path": "^0.0.0"
}
},
"node_modules/metro-runtime": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.70.3.tgz",
- "integrity": "sha512-22xU7UdXZacniTIDZgN2EYtmfau2pPyh97Dcs+cWrLcJYgfMKjWBtesnDcUAQy3PHekDYvBdJZkoQUeskYTM+w==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz",
+ "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==",
"dependencies": {
- "@babel/runtime": "^7.0.0"
+ "@babel/runtime": "^7.0.0",
+ "react-refresh": "^0.4.0"
}
},
"node_modules/metro-source-map": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.70.3.tgz",
- "integrity": "sha512-zsYtZGrwRbbGEFHtmMqqeCH9K9aTGNVPsurMOWCUeQA3VGyVGXPGtLMC+CdAM9jLpUyg6jw2xh0esxi+tYH7Uw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz",
+ "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==",
"dependencies": {
"@babel/traverse": "^7.14.0",
"@babel/types": "^7.0.0",
"invariant": "^2.2.4",
- "metro-symbolicate": "0.70.3",
+ "metro-symbolicate": "0.72.3",
"nullthrows": "^1.1.1",
- "ob1": "0.70.3",
+ "ob1": "0.72.3",
"source-map": "^0.5.6",
"vlq": "^1.0.0"
}
@@ -12687,12 +13404,12 @@
}
},
"node_modules/metro-symbolicate": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.70.3.tgz",
- "integrity": "sha512-JTYkF1dpeDUssQ84juE1ycnhHki2ylJBBdJE1JHtfu5oC+z1ElDbBdPHq90Uvt8HbRov/ZAnxvv7Zy6asS+WCA==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz",
+ "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==",
"dependencies": {
"invariant": "^2.2.4",
- "metro-source-map": "0.70.3",
+ "metro-source-map": "0.72.3",
"nullthrows": "^1.1.1",
"source-map": "^0.5.6",
"through2": "^2.0.1",
@@ -12714,9 +13431,9 @@
}
},
"node_modules/metro-transform-plugins": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.70.3.tgz",
- "integrity": "sha512-dQRIJoTkWZN2IVS2KzgS1hs7ZdHDX3fS3esfifPkqFAEwHiLctCf0EsPgIknp0AjMLvmGWfSLJigdRB/dc0ASw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz",
+ "integrity": "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/generator": "^7.14.0",
@@ -12726,22 +13443,22 @@
}
},
"node_modules/metro-transform-worker": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.70.3.tgz",
- "integrity": "sha512-MtVVsnHhhBOp9GRLCdAb2mD1dTCsIzT4+m34KMRdBDCEbDIb90YafT5prpU8qbj5uKd0o2FOQdrJ5iy5zQilHw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz",
+ "integrity": "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/generator": "^7.14.0",
"@babel/parser": "^7.14.0",
"@babel/types": "^7.0.0",
"babel-preset-fbjs": "^3.4.0",
- "metro": "0.70.3",
- "metro-babel-transformer": "0.70.3",
- "metro-cache": "0.70.3",
- "metro-cache-key": "0.70.3",
- "metro-hermes-compiler": "0.70.3",
- "metro-source-map": "0.70.3",
- "metro-transform-plugins": "0.70.3",
+ "metro": "0.72.3",
+ "metro-babel-transformer": "0.72.3",
+ "metro-cache": "0.72.3",
+ "metro-cache-key": "0.72.3",
+ "metro-hermes-compiler": "0.72.3",
+ "metro-source-map": "0.72.3",
+ "metro-transform-plugins": "0.72.3",
"nullthrows": "^1.1.1"
}
},
@@ -12981,9 +13698,9 @@
}
},
"node_modules/mini-css-extract-plugin/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -12992,9 +13709,9 @@
}
},
"node_modules/mini-css-extract-plugin/node_modules/loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -13311,11 +14028,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/no-case/node_modules/tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- },
"node_modules/nocache": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
@@ -13510,9 +14222,9 @@
"integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
},
"node_modules/ob1": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.70.3.tgz",
- "integrity": "sha512-Vy9GGhuXgDRY01QA6kdhToPd8AkLdLpX9GjH5kpqluVqTu70mgOm7tpGoJDZGaNbr9nJlJgnipqHJQRPORixIQ=="
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz",
+ "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg=="
},
"node_modules/object-assign": {
"version": "4.1.1",
@@ -13945,11 +14657,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/param-case/node_modules/tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- },
"node_modules/parse-asn1": {
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
@@ -13985,6 +14692,14 @@
"node": ">=10"
}
},
+ "node_modules/parse-png/node_modules/pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/parse-srcset": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
@@ -14007,11 +14722,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/pascal-case/node_modules/tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- },
"node_modules/pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -14291,11 +15001,11 @@
}
},
"node_modules/pngjs": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
"engines": {
- "node": ">=4.0.0"
+ "node": ">=10.13.0"
}
},
"node_modules/pnp-webpack-plugin": {
@@ -15048,6 +15758,11 @@
"node": ">= 0.10"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"node_modules/prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@@ -15252,9 +15967,9 @@
}
},
"node_modules/react": {
- "version": "18.0.0",
- "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz",
- "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==",
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz",
+ "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==",
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -15553,15 +16268,15 @@
}
},
"node_modules/react-dom": {
- "version": "18.0.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz",
- "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==",
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz",
+ "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==",
"dependencies": {
"loose-envify": "^1.1.0",
- "scheduler": "^0.21.0"
+ "scheduler": "^0.22.0"
},
"peerDependencies": {
- "react": "^18.0.0"
+ "react": "^18.1.0"
}
},
"node_modules/react-error-overlay": {
@@ -15586,14 +16301,14 @@
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
},
"node_modules/react-native": {
- "version": "0.69.6",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.69.6.tgz",
- "integrity": "sha512-wwXpqM+12kdEYdBZCJUb5SBu95CzgejrwFeYJ78RzHZV/Sj6DBRekbsHGrDDsY4R25QXALQxy4DQYQCObVvWjA==",
- "dependencies": {
- "@jest/create-cache-key-function": "^27.0.1",
- "@react-native-community/cli": "^8.0.4",
- "@react-native-community/cli-platform-android": "^8.0.4",
- "@react-native-community/cli-platform-ios": "^8.0.4",
+ "version": "0.70.5",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.5.tgz",
+ "integrity": "sha512-5NZM80LC3L+TIgQX/09yiyy48S73wMgpIgN5cCv3XTMR394+KpDI3rBZGH4aIgWWuwijz31YYVF5504+9n2Zfw==",
+ "dependencies": {
+ "@jest/create-cache-key-function": "^29.0.3",
+ "@react-native-community/cli": "9.2.1",
+ "@react-native-community/cli-platform-android": "9.2.1",
+ "@react-native-community/cli-platform-ios": "9.2.1",
"@react-native/assets": "1.0.0",
"@react-native/normalize-color": "2.0.0",
"@react-native/polyfills": "2.0.0",
@@ -15601,24 +16316,23 @@
"anser": "^1.4.9",
"base64-js": "^1.1.2",
"event-target-shim": "^5.0.1",
- "hermes-engine": "~0.11.0",
"invariant": "^2.2.4",
"jsc-android": "^250230.2.1",
"memoize-one": "^5.0.0",
- "metro-react-native-babel-transformer": "0.70.3",
- "metro-runtime": "0.70.3",
- "metro-source-map": "0.70.3",
+ "metro-react-native-babel-transformer": "0.72.3",
+ "metro-runtime": "0.72.3",
+ "metro-source-map": "0.72.3",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^26.5.2",
- "promise": "^8.2.0",
+ "promise": "^8.0.3",
"react-devtools-core": "4.24.0",
- "react-native-codegen": "^0.69.2",
- "react-native-gradle-plugin": "^0.0.7",
+ "react-native-codegen": "^0.70.6",
+ "react-native-gradle-plugin": "^0.70.3",
"react-refresh": "^0.4.0",
- "react-shallow-renderer": "16.15.0",
+ "react-shallow-renderer": "^16.15.0",
"regenerator-runtime": "^0.13.2",
- "scheduler": "^0.21.0",
+ "scheduler": "^0.22.0",
"stacktrace-parser": "^0.1.3",
"use-sync-external-store": "^1.0.0",
"whatwg-fetch": "^3.0.0",
@@ -15631,13 +16345,13 @@
"node": ">=14"
},
"peerDependencies": {
- "react": "18.0.0"
+ "react": "18.1.0"
}
},
"node_modules/react-native-codegen": {
- "version": "0.69.2",
- "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.69.2.tgz",
- "integrity": "sha512-yPcgMHD4mqLbckqnWjFBaxomDnBREfRjDi2G/WxNyPBQLD+PXUEmZTkDx6QoOXN+Bl2SkpnNOSsLE2+/RUHoPw==",
+ "version": "0.70.6",
+ "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz",
+ "integrity": "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==",
"dependencies": {
"@babel/parser": "^7.14.0",
"flow-parser": "^0.121.0",
@@ -15654,9 +16368,9 @@
}
},
"node_modules/react-native-gesture-handler": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.5.0.tgz",
- "integrity": "sha512-djZdcprFf08PZC332D+AeG5wcGeAPhzfCJtB3otUgOgTlvjVXmg/SLFdPJSpzLBqkRAmrC77tM79QgKbuLxkfw==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.8.0.tgz",
+ "integrity": "sha512-poOSfz/w0IyD6Qwq7aaIRRfEaVTl1ecQFoyiIbpOpfNTjm2B1niY2FLrdVQIOtIOe+K9nH55Qal04nr4jGkHdQ==",
"dependencies": {
"@egjs/hammerjs": "^2.0.17",
"hoist-non-react-statics": "^3.3.0",
@@ -15670,9 +16384,9 @@
}
},
"node_modules/react-native-gradle-plugin": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.0.7.tgz",
- "integrity": "sha512-+4JpbIx42zGTONhBTIXSyfyHICHC29VTvhkkoUOJAh/XHPEixpuBduYgf6Y4y9wsN1ARlQhBBoptTvXvAFQf5g=="
+ "version": "0.70.3",
+ "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz",
+ "integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A=="
},
"node_modules/react-native-iphone-x-helper": {
"version": "1.3.1",
@@ -15682,6 +16396,70 @@
"react-native": ">=0.42.0"
}
},
+ "node_modules/react-native-material-buttons": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/react-native-material-buttons/-/react-native-material-buttons-0.5.0.tgz",
+ "integrity": "sha512-WRQyCG1hd4ZvTr+YdMoyKwoyt/onaFAh8DmyC8BxZ0JT1gy/hs9qTYAilbYb8C1l+okTusalyJeqoPh5GzA1pQ==",
+ "dependencies": {
+ "prop-types": "^15.5.9",
+ "react-native-material-ripple": "^0.7.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-material-buttons/node_modules/react-native-material-ripple": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/react-native-material-ripple/-/react-native-material-ripple-0.7.5.tgz",
+ "integrity": "sha512-pHUrmxuPQMBcOssFfr+kERfAwkLhHqiP2ZTJeUsC77W9h+k2IU17T/cOb184S1jkbZP3CFJcOLd9V7RW112YGQ==",
+ "dependencies": {
+ "prop-types": "^15.5.10"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-material-dropdown": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/react-native-material-dropdown/-/react-native-material-dropdown-0.11.1.tgz",
+ "integrity": "sha512-GoY3bHUzLnHM2OWM2jWeFssJCU8Uwml7z6OpVeC/RqUPhRwvPCd0UeEZKI6QU5/U8SoS6VJWdWA1Vp1WB1ze7Q==",
+ "dependencies": {
+ "prop-types": "^15.5.9",
+ "react-native-material-buttons": "^0.5.0",
+ "react-native-material-ripple": "^0.8.0",
+ "react-native-material-textfield": "^0.12.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-material-ripple": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/react-native-material-ripple/-/react-native-material-ripple-0.8.0.tgz",
+ "integrity": "sha512-ZgamZTJlrAPMg5Im8+ruK3zsSDHdPKgYA52qK7g0x/LJvzE/99M01kjmUVERqQAHxlVzOfIfVpxn9SjzNn6TEA==",
+ "dependencies": {
+ "prop-types": "^15.5.10"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-material-textfield": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/react-native-material-textfield/-/react-native-material-textfield-0.12.0.tgz",
+ "integrity": "sha512-eB2xjsOtdrQ4KuikXeGf0CSYS4Vg9K7ii5YsWX57VvzPSVp08P8bdqTrLY6QucBR397YWlewN/n17H34kd7teA==",
+ "dependencies": {
+ "prop-types": "^15.5.9"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/react-native-paper": {
"version": "5.0.0-rc.9",
"resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.0.0-rc.9.tgz",
@@ -15698,11 +16476,10 @@
}
},
"node_modules/react-native-reanimated": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.9.1.tgz",
- "integrity": "sha512-309SIhDBwY4F1n6e5Mr5D1uPZm2ESIcmZsGXHUu8hpKX4oIOlZj2MilTk+kHhi05LjChoJkcpfkstotCJmPRPg==",
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.12.0.tgz",
+ "integrity": "sha512-nrlPyw+Hx9u4iJhZk9PoTvDo/QmVAd+bo7OK9Tv3hveNEF9++5oig/g3Uv9V93shy9avTYGsUprUvAEt/xdzeQ==",
"dependencies": {
- "@babel/plugin-proposal-export-namespace-from": "^7.17.12",
"@babel/plugin-transform-object-assign": "^7.16.7",
"@babel/preset-typescript": "^7.16.7",
"@types/invariant": "^2.2.35",
@@ -15718,18 +16495,18 @@
}
},
"node_modules/react-native-safe-area-context": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.3.1.tgz",
- "integrity": "sha512-cEr7fknJCToTrSyDCVNg0GRdRMhyLeQa2NZwVCuzEQcWedOw/59ExomjmzCE4rxrKXs6OJbyfNtFRNyewDaHuA==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz",
+ "integrity": "sha512-N9XTjiuD73ZpVlejHrUWIFZc+6Z14co1K/p1IFMkImU7+avD69F3y+lhkqA2hN/+vljdZrBSiOwXPkuo43nFQA==",
"peerDependencies": {
"react": "*",
"react-native": "*"
}
},
"node_modules/react-native-screens": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.15.0.tgz",
- "integrity": "sha512-ezC5TibsUYyqPuuHpZoM3iEl6bRzCVBMJeGaFkn7xznuOt1VwkZVub0BvafIEYR/+AQC/RjxzMSQPs1qal0+wA==",
+ "version": "3.18.2",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.18.2.tgz",
+ "integrity": "sha512-ANUEuvMUlsYJ1QKukEhzhfrvOUO9BVH9Nzg+6eWxpn3cfD/O83yPBOF8Mx6x5H/2+sMy+VS5x/chWOOo/U7QJw==",
"dependencies": {
"react-freeze": "^1.0.0",
"warn-once": "^0.1.0"
@@ -15739,6 +16516,11 @@
"react-native": "*"
}
},
+ "node_modules/react-native-select-dropdown": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/react-native-select-dropdown/-/react-native-select-dropdown-3.2.1.tgz",
+ "integrity": "sha512-4kLmjm3z9JUzIw98oKdQYvk8XsxhNg5NfKN112m1oIufu+6w2HcPw438rVpXzrWntvs9ZLf8Za6ZQO6GqZHdzA=="
+ },
"node_modules/react-native-vector-icons": {
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz",
@@ -15905,11 +16687,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/recast/node_modules/tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- },
"node_modules/recursive-readdir": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz",
@@ -15954,9 +16731,9 @@
"integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
},
"node_modules/regenerator-transform": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
- "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz",
+ "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==",
"dependencies": {
"@babel/runtime": "^7.8.4"
}
@@ -16194,9 +16971,9 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"node_modules/reselect": {
- "version": "4.1.6",
- "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz",
- "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ=="
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz",
+ "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A=="
},
"node_modules/resolve": {
"version": "1.22.1",
@@ -16387,9 +17164,9 @@
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"node_modules/scheduler": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
- "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz",
+ "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==",
"dependencies": {
"loose-envify": "^1.1.0"
}
@@ -16561,6 +17338,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/serialize-error/node_modules/type-fest": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz",
+ "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/serialize-javascript": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
@@ -16763,17 +17551,6 @@
"plist": "^3.0.5"
}
},
- "node_modules/simple-plist/node_modules/bplist-parser": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
- "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
- "dependencies": {
- "big-integer": "1.6.x"
- },
- "engines": {
- "node": ">= 5.10.0"
- }
- },
"node_modules/simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
@@ -17535,9 +18312,9 @@
"integrity": "sha512-EBNuMVSxpssuFcJq/c4zmZ4tpCyX9E27hz5xPJhw4URjRHcYXPHh8rDHY/tJsw5gtP0+tIL3IBYeQVIYjdZFhg=="
},
"node_modules/sucrase": {
- "version": "3.28.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.28.0.tgz",
- "integrity": "sha512-TK9600YInjuiIhVM3729rH4ZKPOsGeyXUwY+Ugu9eilNbdTFyHr6XcAGYbRVZPDgWj6tgI7bx95aaJjHnbffag==",
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.29.0.tgz",
+ "integrity": "sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==",
"dependencies": {
"commander": "^4.0.0",
"glob": "7.1.6",
@@ -17748,11 +18525,11 @@
}
},
"node_modules/temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
"node_modules/temp/node_modules/rimraf": {
@@ -17764,43 +18541,16 @@
}
},
"node_modules/tempy": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
- "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
+ "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
"dependencies": {
- "del": "^6.0.0",
- "is-stream": "^2.0.0",
- "temp-dir": "^2.0.0",
- "type-fest": "^0.16.0",
- "unique-string": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
+ "temp-dir": "^1.0.0",
+ "type-fest": "^0.3.1",
+ "unique-string": "^1.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tempy/node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"engines": {
"node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tempy/node_modules/type-fest": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
- "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/terminal-link": {
@@ -18232,9 +18982,9 @@
}
},
"node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/tty-browserify": {
"version": "0.0.0",
@@ -18242,14 +18992,11 @@
"integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw=="
},
"node_modules/type-fest": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz",
- "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=6"
}
},
"node_modules/type-is": {
@@ -18415,14 +19162,14 @@
}
},
"node_modules/unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
"dependencies": {
- "crypto-random-string": "^2.0.0"
+ "crypto-random-string": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
"node_modules/universalify": {
@@ -19838,9 +20585,9 @@
}
},
"node_modules/webpack/node_modules/json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -19849,9 +20596,9 @@
}
},
"node_modules/webpack/node_modules/loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -20145,6 +20892,17 @@
"uuid": "dist/bin/uuid"
}
},
+ "node_modules/xml-js": {
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
+ "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
+ "dependencies": {
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "xml-js": "bin/cli.js"
+ }
+ },
"node_modules/xml2js": {
"version": "0.4.23",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
@@ -20319,9 +21077,9 @@
}
},
"@babel/compat-data": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
- "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw=="
+ "version": "7.20.10",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz",
+ "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg=="
},
"@babel/core": {
"version": "7.19.6",
@@ -20346,11 +21104,11 @@
}
},
"@babel/generator": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz",
- "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz",
+ "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==",
"requires": {
- "@babel/types": "^7.19.4",
+ "@babel/types": "^7.20.7",
"@jridgewell/gen-mapping": "^0.3.2",
"jsesc": "^2.5.1"
},
@@ -20385,27 +21143,43 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.19.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
- "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz",
+ "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==",
"requires": {
- "@babel/compat-data": "^7.19.3",
+ "@babel/compat-data": "^7.20.5",
"@babel/helper-validator-option": "^7.18.6",
"browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
"semver": "^6.3.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ }
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz",
- "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.7.tgz",
+ "integrity": "sha512-LtoWbDXOaidEf50hmdDqn9g8VEzsorMexoWMQdQODbvmqYmaF23pBP5VNPAGIFHsFQCIeKokDiz3CH5Y2jlY6w==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.20.7",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-replace-supers": "^7.20.7",
"@babel/helper-split-export-declaration": "^7.18.6"
}
},
@@ -20462,11 +21236,11 @@
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
- "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz",
+ "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==",
"requires": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.20.7"
}
},
"@babel/helper-module-imports": {
@@ -20478,18 +21252,18 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz",
- "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz",
+ "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==",
"requires": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.19.4",
+ "@babel/helper-simple-access": "^7.20.2",
"@babel/helper-split-export-declaration": "^7.18.6",
"@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.6",
- "@babel/types": "^7.19.4"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.10",
+ "@babel/types": "^7.20.7"
}
},
"@babel/helper-optimise-call-expression": {
@@ -20501,9 +21275,9 @@
}
},
"@babel/helper-plugin-utils": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz",
- "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw=="
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ=="
},
"@babel/helper-remap-async-to-generator": {
"version": "7.18.9",
@@ -20517,31 +21291,32 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
- "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz",
+ "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==",
"requires": {
"@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.20.7",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/traverse": "^7.19.1",
- "@babel/types": "^7.19.0"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.7",
+ "@babel/types": "^7.20.7"
}
},
"@babel/helper-simple-access": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz",
- "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==",
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
"requires": {
- "@babel/types": "^7.19.4"
+ "@babel/types": "^7.20.2"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
- "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+ "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
"requires": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.20.0"
}
},
"@babel/helper-split-export-declaration": {
@@ -20599,9 +21374,9 @@
}
},
"@babel/parser": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz",
- "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA=="
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz",
+ "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg=="
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.18.6",
@@ -20612,22 +21387,22 @@
}
},
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz",
+ "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.7"
}
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz",
- "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
"requires": {
"@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-remap-async-to-generator": "^7.18.9",
"@babel/plugin-syntax-async-generators": "^7.8.4"
}
@@ -20642,23 +21417,23 @@
}
},
"@babel/plugin-proposal-class-static-block": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
- "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz",
+ "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
}
},
"@babel/plugin-proposal-decorators": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.6.tgz",
- "integrity": "sha512-PKWforYpkVkogpOW0RaPuh7eQ7AoFgBJP+d87tQCRY2LVbvyGtfRM7RtrhCBsNgZb+2EY28SeWB6p2xe1Z5oAw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.7.tgz",
+ "integrity": "sha512-JB45hbUweYpwAGjkiM7uCyXMENH2lG+9r3G2E+ttc2PRXAoEkpfd/KW5jDg4j8RS6tLtTG1jZi9LbHZVSfs1/A==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-replace-supers": "^7.19.1",
+ "@babel/helper-create-class-features-plugin": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
"@babel/helper-split-export-declaration": "^7.18.6",
"@babel/plugin-syntax-decorators": "^7.19.0"
}
@@ -20700,11 +21475,11 @@
}
},
"@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
- "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
+ "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
}
},
@@ -20727,15 +21502,15 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz",
- "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
"requires": {
- "@babel/compat-data": "^7.19.4",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.18.8"
+ "@babel/plugin-transform-parameters": "^7.20.7"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
@@ -20748,12 +21523,12 @@
}
},
"@babel/plugin-proposal-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz",
+ "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
}
},
@@ -20767,13 +21542,13 @@
}
},
"@babel/plugin-proposal-private-property-in-object": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
- "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz",
+ "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
}
},
@@ -20851,11 +21626,11 @@
}
},
"@babel/plugin-syntax-import-assertions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
- "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+ "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.19.0"
}
},
"@babel/plugin-syntax-json-strings": {
@@ -20973,25 +21748,25 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
- "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz",
+ "integrity": "sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz",
- "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz",
+ "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-compilation-targets": "^7.19.0",
+ "@babel/helper-compilation-targets": "^7.20.7",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
"@babel/helper-split-export-declaration": "^7.18.6",
"globals": "^11.1.0"
}
@@ -21005,11 +21780,11 @@
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
- "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz",
+ "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-dotall-regex": {
@@ -21082,12 +21857,12 @@
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz",
- "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz",
+ "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==",
"requires": {
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-modules-commonjs": {
@@ -21101,13 +21876,13 @@
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz",
- "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz",
+ "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==",
"requires": {
"@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-validator-identifier": "^7.19.1"
}
},
@@ -21155,11 +21930,11 @@
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
- "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz",
+ "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-property-literals": {
@@ -21207,12 +21982,12 @@
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
- "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz",
+ "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "regenerator-transform": "^0.15.0"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "regenerator-transform": "^0.15.1"
}
},
"@babel/plugin-transform-reserved-words": {
@@ -21305,17 +22080,17 @@
}
},
"@babel/preset-env": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz",
- "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==",
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz",
+ "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==",
"requires": {
- "@babel/compat-data": "^7.19.4",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/compat-data": "^7.20.1",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-validator-option": "^7.18.6",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-async-generator-functions": "^7.19.1",
+ "@babel/plugin-proposal-async-generator-functions": "^7.20.1",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-class-static-block": "^7.18.6",
"@babel/plugin-proposal-dynamic-import": "^7.18.6",
@@ -21324,7 +22099,7 @@
"@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
- "@babel/plugin-proposal-object-rest-spread": "^7.19.4",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
"@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
"@babel/plugin-proposal-private-methods": "^7.18.6",
@@ -21335,7 +22110,7 @@
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.18.6",
+ "@babel/plugin-syntax-import-assertions": "^7.20.0",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -21348,10 +22123,10 @@
"@babel/plugin-transform-arrow-functions": "^7.18.6",
"@babel/plugin-transform-async-to-generator": "^7.18.6",
"@babel/plugin-transform-block-scoped-functions": "^7.18.6",
- "@babel/plugin-transform-block-scoping": "^7.19.4",
- "@babel/plugin-transform-classes": "^7.19.0",
+ "@babel/plugin-transform-block-scoping": "^7.20.2",
+ "@babel/plugin-transform-classes": "^7.20.2",
"@babel/plugin-transform-computed-properties": "^7.18.9",
- "@babel/plugin-transform-destructuring": "^7.19.4",
+ "@babel/plugin-transform-destructuring": "^7.20.2",
"@babel/plugin-transform-dotall-regex": "^7.18.6",
"@babel/plugin-transform-duplicate-keys": "^7.18.9",
"@babel/plugin-transform-exponentiation-operator": "^7.18.6",
@@ -21359,14 +22134,14 @@
"@babel/plugin-transform-function-name": "^7.18.9",
"@babel/plugin-transform-literals": "^7.18.9",
"@babel/plugin-transform-member-expression-literals": "^7.18.6",
- "@babel/plugin-transform-modules-amd": "^7.18.6",
- "@babel/plugin-transform-modules-commonjs": "^7.18.6",
- "@babel/plugin-transform-modules-systemjs": "^7.19.0",
+ "@babel/plugin-transform-modules-amd": "^7.19.6",
+ "@babel/plugin-transform-modules-commonjs": "^7.19.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.19.6",
"@babel/plugin-transform-modules-umd": "^7.18.6",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1",
"@babel/plugin-transform-new-target": "^7.18.6",
"@babel/plugin-transform-object-super": "^7.18.6",
- "@babel/plugin-transform-parameters": "^7.18.8",
+ "@babel/plugin-transform-parameters": "^7.20.1",
"@babel/plugin-transform-property-literals": "^7.18.6",
"@babel/plugin-transform-regenerator": "^7.18.6",
"@babel/plugin-transform-reserved-words": "^7.18.6",
@@ -21378,7 +22153,7 @@
"@babel/plugin-transform-unicode-escapes": "^7.18.10",
"@babel/plugin-transform-unicode-regex": "^7.18.6",
"@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.19.4",
+ "@babel/types": "^7.20.2",
"babel-plugin-polyfill-corejs2": "^0.3.3",
"babel-plugin-polyfill-corejs3": "^0.6.0",
"babel-plugin-polyfill-regenerator": "^0.4.1",
@@ -21439,36 +22214,36 @@
}
},
"@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
+ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
"requires": {
"@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7"
}
},
"@babel/traverse": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz",
- "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==",
+ "version": "7.20.10",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz",
+ "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==",
"requires": {
"@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.6",
+ "@babel/generator": "^7.20.7",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-hoist-variables": "^7.18.6",
"@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.19.6",
- "@babel/types": "^7.19.4",
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
- "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
+ "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
"requires": {
"@babel/helper-string-parser": "^7.19.4",
"@babel/helper-validator-identifier": "^7.19.1",
@@ -21510,22 +22285,22 @@
}
},
"@expo/cli": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.3.2.tgz",
- "integrity": "sha512-P6yogdPCRKaoLjuH7D8jgq6kTzM4gWuQ+vssBPWhbnoymV5AClQOxvACPDHD+biKhvGsaXEQLMoi93lPQzcDlQ==",
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.4.10.tgz",
+ "integrity": "sha512-c8NJOVa5b8g9CYj8ahdaN21cVE2wPwUaFrtTE0kLeRR5ASy8reWLFEOcstEtt6eufdcN/uGgBWQ0FLovgLZuzw==",
"requires": {
"@babel/runtime": "^7.14.0",
- "@expo/code-signing-certificates": "^0.0.2",
- "@expo/config": "~7.0.1",
- "@expo/config-plugins": "~5.0.1",
- "@expo/dev-server": "~0.1.120",
+ "@expo/code-signing-certificates": "0.0.5",
+ "@expo/config": "~7.0.2",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/dev-server": "0.1.123",
"@expo/devcert": "^1.0.0",
"@expo/json-file": "^8.2.35",
- "@expo/metro-config": "~0.4.0",
+ "@expo/metro-config": "~0.5.0",
"@expo/osascript": "^2.0.31",
"@expo/package-manager": "~0.0.53",
"@expo/plist": "^0.0.18",
- "@expo/prebuild-config": "~5.0.3",
+ "@expo/prebuild-config": "5.0.7",
"@expo/rudder-sdk-node": "1.1.1",
"@expo/spawn-async": "1.5.0",
"@expo/xcpretty": "^4.2.1",
@@ -21546,6 +22321,7 @@
"getenv": "^1.0.0",
"graphql": "15.8.0",
"graphql-tag": "^2.10.1",
+ "https-proxy-agent": "^5.0.1",
"internal-ip": "4.3.0",
"is-root": "^2.1.0",
"js-yaml": "^3.13.1",
@@ -21576,115 +22352,96 @@
"wrap-ansi": "^7.0.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"requires": {
- "color-convert": "^2.0.1"
+ "@babel/highlight": "^7.10.4"
}
},
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
"requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
+ }
}
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
"requires": {
- "color-name": "~1.1.4"
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
},
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
"requires": {
- "has-flag": "^4.0.0"
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
}
- }
- }
- },
- "@expo/code-signing-certificates": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.2.tgz",
- "integrity": "sha512-vnPHFjwOqxQ1VLztktY+fYCfwvLzjqpzKn09rchcQE7Sdf0wtW5fFtIZBEFOOY5wasp8tXSnp627zrAwazPHzg==",
- "requires": {
- "node-forge": "^1.2.1",
- "nullthrows": "^1.1.1"
- }
- },
- "@expo/config": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.1.tgz",
- "integrity": "sha512-4lu0wr45XXJ2MXiLAm2+fmOyy/jjqF3NuDm92fO6nuulRzEEvTP4w3vsibJ690rT81ohtvhpruKhkRs0wSjKWA==",
- "requires": {
- "@babel/code-frame": "~7.10.4",
- "@expo/config-plugins": "~5.0.1",
- "@expo/config-types": "^46.0.1",
- "@expo/json-file": "8.2.36",
- "getenv": "^1.0.0",
- "glob": "7.1.6",
- "require-from-string": "^2.0.2",
- "resolve-from": "^5.0.0",
- "semver": "7.3.2",
- "slugify": "^1.3.4",
- "sucrase": "^3.20.0"
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ },
+ "@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
"requires": {
- "@babel/highlight": "^7.10.4"
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
}
},
- "semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
- }
- }
- },
- "@expo/config-plugins": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.1.tgz",
- "integrity": "sha512-1OfnsOrfeSkB0VZfT01UjQ5Uq6p+yYbq8yNkj0e99K/6NLHpyvIxj+5tZIV0nQXgkOcqBIABL2uA7lwB8CkaBQ==",
- "requires": {
- "@expo/config-types": "^46.0.0",
- "@expo/json-file": "8.2.36",
- "@expo/plist": "0.0.18",
- "@expo/sdk-runtime-versions": "^1.0.0",
- "@react-native/normalize-color": "^2.0.0",
- "chalk": "^4.1.2",
- "debug": "^4.3.1",
- "find-up": "~5.0.0",
- "getenv": "^1.0.0",
- "glob": "7.1.6",
- "resolve-from": "^5.0.0",
- "semver": "^7.3.5",
- "slash": "^3.0.0",
- "xcode": "^3.0.1",
- "xml2js": "0.4.23"
- },
- "dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -21715,17 +22472,27 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
+ "crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
+ },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
- "semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
- "lru-cache": "^6.0.0"
+ "minimist": "^1.2.0"
}
},
"supports-color": {
@@ -21735,26 +22502,110 @@
"requires": {
"has-flag": "^4.0.0"
}
+ },
+ "temp-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
+ "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="
+ },
+ "tempy": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
+ "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
+ "requires": {
+ "del": "^6.0.0",
+ "is-stream": "^2.0.0",
+ "temp-dir": "^2.0.0",
+ "type-fest": "^0.16.0",
+ "unique-string": "^2.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
+ "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg=="
+ },
+ "unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "requires": {
+ "crypto-random-string": "^2.0.0"
+ }
}
}
},
- "@expo/config-types": {
- "version": "46.0.2",
- "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-46.0.2.tgz",
- "integrity": "sha512-PXkmOgNwRyBfgVT1HmFZhfh3Qm7WKKyV6mk3/5HJ/LzPh1t+Zs2JrWX8U2YncTLV1QzV7nV8tnkyvszzqnZEzQ=="
+ "@expo/code-signing-certificates": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz",
+ "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==",
+ "requires": {
+ "node-forge": "^1.2.1",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "@expo/configure-splash-screen": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz",
+ "integrity": "sha512-4DyPoNXJqx9bN4nEwF3HQreo//ECu7gDe1Xor3dnnzFm9P/VDxAKdbEhA0n+R6fgkNfT2onVHWijqvdpTS3Xew==",
+ "requires": {
+ "color-string": "^1.5.3",
+ "commander": "^5.1.0",
+ "fs-extra": "^9.0.0",
+ "glob": "^7.1.6",
+ "lodash": "^4.17.15",
+ "pngjs": "^5.0.0",
+ "xcode": "^3.0.0",
+ "xml-js": "^1.6.11"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+ }
+ }
},
"@expo/dev-server": {
- "version": "0.1.120",
- "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.120.tgz",
- "integrity": "sha512-x5/jCv0EOpz6FyehXpI5bgDQTVsGZYvgISkAw7n60RhtG+aid6N2CCR9SDMCH70XaUpFnfTW9qvderpCEj7Puw==",
+ "version": "0.1.123",
+ "resolved": "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.123.tgz",
+ "integrity": "sha512-N6UVzzeemfX0AONUSWInvkAAbqon8hRXpyYE/nMPaC6TvAmgGY5ILZAGoXwlpxwY2VKNT0Lx4s/UJ53ytIaHbA==",
"requires": {
"@expo/bunyan": "4.0.0",
- "@expo/metro-config": "~0.4.0",
+ "@expo/metro-config": "~0.5.1",
"@expo/osascript": "2.0.33",
+ "@expo/spawn-async": "^1.5.0",
"body-parser": "1.19.0",
"chalk": "^4.0.0",
"connect": "^3.7.0",
"fs-extra": "9.0.0",
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1",
"node-fetch": "^2.6.0",
"open": "^8.3.0",
"resolve-from": "^5.0.0",
@@ -21838,6 +22689,11 @@
"has-flag": "^4.0.0"
}
},
+ "temp-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
+ "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="
+ },
"universalify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
@@ -21846,9 +22702,9 @@
}
},
"@expo/devcert": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.0.0.tgz",
- "integrity": "sha512-cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz",
+ "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==",
"requires": {
"application-config-path": "^0.1.0",
"command-exists": "^1.2.4",
@@ -21862,7 +22718,7 @@
"rimraf": "^2.6.2",
"sudo-prompt": "^8.2.0",
"tmp": "^0.0.33",
- "tslib": "^1.10.0"
+ "tslib": "^2.4.0"
},
"dependencies": {
"debug": {
@@ -21876,9 +22732,9 @@
}
},
"@expo/image-utils": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.20.tgz",
- "integrity": "sha512-NgF/80XENyCS+amwC0P6uk1fauEtUq7gijD19jvl2xknJaADq8M2dMCRHwWMVOXosr2v46f3Z++G/NjmyOVS7A==",
+ "version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.23.tgz",
+ "integrity": "sha512-nhUVvW0TrRE4jtWzHQl8TR4ox7kcmrc2I0itaeJGjxF5A54uk7avgA0wRt7jP1rdvqQo1Ke1lXyLYREdhN9tPw==",
"requires": {
"@expo/spawn-async": "1.5.0",
"chalk": "^4.0.0",
@@ -21923,11 +22779,6 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "crypto-random-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
- "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg=="
- },
"fs-extra": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
@@ -21973,34 +22824,6 @@
"has-flag": "^4.0.0"
}
},
- "temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ=="
- },
- "tempy": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
- "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
- "requires": {
- "temp-dir": "^1.0.0",
- "type-fest": "^0.3.1",
- "unique-string": "^1.0.0"
- }
- },
- "type-fest": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
- "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ=="
- },
- "unique-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
- "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
- "requires": {
- "crypto-random-string": "^1.0.0"
- }
- },
"universalify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
@@ -22008,14 +22831,19 @@
}
}
},
- "@expo/json-file": {
- "version": "8.2.36",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
- "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "@expo/metro-config": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.5.2.tgz",
+ "integrity": "sha512-W1qsZPA5BXuRBkNLydKBYQ1+ubObhOK0gk2Fpc+XnhW+UUIHC9sDR5pZRYGNSnDDc3rG8y7c32UzSW9nlK+mog==",
"requires": {
- "@babel/code-frame": "~7.10.4",
- "json5": "^1.0.1",
- "write-file-atomic": "^2.3.0"
+ "@expo/config": "~7.0.2",
+ "@expo/json-file": "8.2.36",
+ "chalk": "^4.1.0",
+ "debug": "^4.3.2",
+ "find-yarn-workspace-root": "~2.0.0",
+ "getenv": "^1.0.0",
+ "resolve-from": "^5.0.0",
+ "sucrase": "^3.20.0"
},
"dependencies": {
"@babel/code-frame": {
@@ -22026,31 +22854,183 @@
"@babel/highlight": "^7.10.4"
}
},
+ "@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
+ "requires": {
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
+ "requires": {
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
"minimist": "^1.2.0"
}
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
}
}
},
- "@expo/metro-config": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.4.0.tgz",
- "integrity": "sha512-QhOiotuzklalLbbsTMXJ5v4q4jffQ5xXhy1zsosgc2DL/ZzUr/Yhm3xUcOGnPQ2x7UyeY9Tl3njPHBOJJe7CSA==",
+ "@expo/osascript": {
+ "version": "2.0.33",
+ "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.33.tgz",
+ "integrity": "sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ==",
+ "requires": {
+ "@expo/spawn-async": "^1.5.0",
+ "exec-async": "^2.2.0"
+ }
+ },
+ "@expo/package-manager": {
+ "version": "0.0.57",
+ "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.57.tgz",
+ "integrity": "sha512-Y4RpSL9EqaPF+Vd2GrK6r7Xx7Dv0Xdq3AGAD9C0KwV21WqP/scj/dpjxFY+ABwmdhNsFzYXb8fmDyh4tiKenPQ==",
"requires": {
- "@expo/config": "7.0.1",
"@expo/json-file": "8.2.36",
- "chalk": "^4.1.0",
- "debug": "^4.3.2",
+ "@expo/spawn-async": "^1.5.0",
+ "ansi-regex": "^5.0.0",
+ "chalk": "^4.0.0",
+ "find-up": "^5.0.0",
"find-yarn-workspace-root": "~2.0.0",
- "getenv": "^1.0.0",
- "resolve-from": "^5.0.0",
- "sucrase": "^3.20.0"
+ "npm-package-arg": "^7.0.0",
+ "rimraf": "^3.0.2",
+ "split": "^1.0.1",
+ "sudo-prompt": "9.1.1"
},
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -22086,6 +23066,27 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "sudo-prompt": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz",
+ "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA=="
+ },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -22096,32 +23097,142 @@
}
}
},
- "@expo/osascript": {
- "version": "2.0.33",
- "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.33.tgz",
- "integrity": "sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ==",
- "requires": {
- "@expo/spawn-async": "^1.5.0",
- "exec-async": "^2.2.0"
- }
- },
- "@expo/package-manager": {
- "version": "0.0.56",
- "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.56.tgz",
- "integrity": "sha512-PGk34uz4XDyhoNIlPh2D+BDsiXYuW2jXavTiax8d32uvHlRO6FN0cAsqlWD6fx3H2hRn8cU/leTuc4M7pYovCQ==",
- "requires": {
+ "@expo/prebuild-config": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-5.0.7.tgz",
+ "integrity": "sha512-D+TBpJUHe4+oTGFPb4o0rrw/h1xxc6wF+abJnbDHUkhnaeiHkE2O3ByS7FdiZ2FT36t0OKqeSKG/xFwWT3m1Ew==",
+ "requires": {
+ "@expo/config": "~7.0.2",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/image-utils": "0.3.22",
"@expo/json-file": "8.2.36",
- "@expo/spawn-async": "^1.5.0",
- "ansi-regex": "^5.0.0",
- "chalk": "^4.0.0",
- "find-up": "^5.0.0",
- "find-yarn-workspace-root": "~2.0.0",
- "npm-package-arg": "^7.0.0",
- "rimraf": "^3.0.2",
- "split": "^1.0.1",
- "sudo-prompt": "9.1.1"
+ "debug": "^4.3.1",
+ "fs-extra": "^9.0.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "xml2js": "0.4.23"
},
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
+ "requires": {
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "@expo/image-utils": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.22.tgz",
+ "integrity": "sha512-uzq+RERAtkWypOFOLssFnXXqEqKjNj9eXN7e97d/EXUAojNcLDoXc0sL+F5B1I4qtlsnhX01kcpoIBBZD8wZNQ==",
+ "requires": {
+ "@expo/spawn-async": "1.5.0",
+ "chalk": "^4.0.0",
+ "fs-extra": "9.0.0",
+ "getenv": "^1.0.0",
+ "jimp-compact": "0.16.1",
+ "mime": "^2.4.4",
+ "node-fetch": "^2.6.0",
+ "parse-png": "^2.1.0",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "tempy": "0.3.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
+ "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
+ }
+ },
+ "universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug=="
+ }
+ }
+ },
+ "@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
+ "requires": {
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -22152,61 +23263,6 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "sudo-prompt": {
- "version": "9.1.1",
- "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz",
- "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "@expo/plist": {
- "version": "0.0.18",
- "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
- "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
- "requires": {
- "@xmldom/xmldom": "~0.7.0",
- "base64-js": "^1.2.3",
- "xmlbuilder": "^14.0.0"
- }
- },
- "@expo/prebuild-config": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-5.0.3.tgz",
- "integrity": "sha512-G4j1H3WFjRaiQ+FgFNULrnIm7RsQyjc4xp6lLTP2ydBv79wO3x8wAdeZvaZh7eOkfu9BESpQzACT1uuJTag5jg==",
- "requires": {
- "@expo/config": "7.0.1",
- "@expo/config-plugins": "~5.0.1",
- "@expo/config-types": "^46.0.0",
- "@expo/image-utils": "0.3.20",
- "@expo/json-file": "8.2.36",
- "debug": "^4.3.1",
- "fs-extra": "^9.0.0",
- "resolve-from": "^5.0.0",
- "semver": "7.3.2",
- "xml2js": "0.4.23"
- },
- "dependencies": {
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -22218,6 +23274,19 @@
"universalify": "^2.0.0"
}
},
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -22232,6 +23301,14 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
"integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
},
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
@@ -22512,29 +23589,30 @@
}
},
"@jest/create-cache-key-function": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz",
- "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==",
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.3.1.tgz",
+ "integrity": "sha512-4i+E+E40gK13K78ffD/8cy4lSSqeWwyXeTZoq16tndiCP12hC8uQsPJdIu5C6Kf22fD8UbBk71so7s/6VwpUOQ==",
"requires": {
- "@jest/types": "^27.5.1"
+ "@jest/types": "^29.3.1"
},
"dependencies": {
"@jest/types": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
- "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "version": "29.3.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz",
+ "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==",
"requires": {
+ "@jest/schemas": "^29.0.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
"@types/node": "*",
- "@types/yargs": "^16.0.0",
+ "@types/yargs": "^17.0.8",
"chalk": "^4.0.0"
}
},
"@types/yargs": {
- "version": "16.0.4",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
- "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
+ "version": "17.0.18",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.18.tgz",
+ "integrity": "sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw==",
"requires": {
"@types/yargs-parser": "*"
}
@@ -22584,6 +23662,14 @@
}
}
},
+ "@jest/schemas": {
+ "version": "29.0.0",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz",
+ "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==",
+ "requires": {
+ "@sinclair/typebox": "^0.24.1"
+ }
+ },
"@jest/types": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
@@ -22740,29 +23826,34 @@
}
}
},
+ "@react-native-async-storage/async-storage": {
+ "version": "1.17.11",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.17.11.tgz",
+ "integrity": "sha512-bzs45n5HNcDq6mxXnSsOHysZWn1SbbebNxldBXCQs8dSvF8Aor9KCdpm+TpnnGweK3R6diqsT8lFhX77VX0NFw==",
+ "requires": {
+ "merge-options": "^3.0.4"
+ }
+ },
"@react-native-community/cli": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-8.0.6.tgz",
- "integrity": "sha512-E36hU/if3quQCfJHGWVkpsCnwtByRCwORuAX0r6yr1ebKktpKeEO49zY9PAu/Z1gfyxCtgluXY0HfRxjKRFXTg==",
- "requires": {
- "@react-native-community/cli-clean": "^8.0.4",
- "@react-native-community/cli-config": "^8.0.6",
- "@react-native-community/cli-debugger-ui": "^8.0.0",
- "@react-native-community/cli-doctor": "^8.0.6",
- "@react-native-community/cli-hermes": "^8.0.5",
- "@react-native-community/cli-plugin-metro": "^8.0.4",
- "@react-native-community/cli-server-api": "^8.0.4",
- "@react-native-community/cli-tools": "^8.0.4",
- "@react-native-community/cli-types": "^8.0.0",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.2.1.tgz",
+ "integrity": "sha512-feMYS5WXXKF4TSWnCXozHxtWq36smyhGaENXlkiRESfYZ1mnCUlPfOanNCAvNvBqdyh9d4o0HxhYKX1g9l6DCQ==",
+ "requires": {
+ "@react-native-community/cli-clean": "^9.2.1",
+ "@react-native-community/cli-config": "^9.2.1",
+ "@react-native-community/cli-debugger-ui": "^9.0.0",
+ "@react-native-community/cli-doctor": "^9.2.1",
+ "@react-native-community/cli-hermes": "^9.2.1",
+ "@react-native-community/cli-plugin-metro": "^9.2.1",
+ "@react-native-community/cli-server-api": "^9.2.1",
+ "@react-native-community/cli-tools": "^9.2.1",
+ "@react-native-community/cli-types": "^9.1.0",
"chalk": "^4.1.2",
- "commander": "^2.19.0",
+ "commander": "^9.4.0",
"execa": "^1.0.0",
"find-up": "^4.1.0",
"fs-extra": "^8.1.0",
"graceful-fs": "^4.1.3",
- "leven": "^3.1.0",
- "lodash": "^4.17.15",
- "minimist": "^1.2.0",
"prompts": "^2.4.0",
"semver": "^6.3.0"
},
@@ -22798,9 +23889,9 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
+ "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw=="
},
"find-up": {
"version": "4.1.0",
@@ -22856,11 +23947,11 @@
}
},
"@react-native-community/cli-clean": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-8.0.4.tgz",
- "integrity": "sha512-IwS1M1NHg6+qL8PThZYMSIMYbZ6Zbx+lIck9PLBskbosFo24M3lCOflOl++Bggjakp6mR+sRXxLMexid/GeOsQ==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-9.2.1.tgz",
+ "integrity": "sha512-dyNWFrqRe31UEvNO+OFWmQ4hmqA07bR9Ief/6NnGwx67IO9q83D5PEAf/o96ML6jhSbDwCmpPKhPwwBbsyM3mQ==",
"requires": {
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"prompts": "^2.4.0"
@@ -22912,11 +24003,11 @@
}
},
"@react-native-community/cli-config": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-8.0.6.tgz",
- "integrity": "sha512-mjVpVvdh8AviiO8xtqeX+BkjqE//NMDnISwsLWSJUfNCwTAPmdR8PGbhgP5O4hWHyJ3WkepTopl0ya7Tfi3ifw==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-9.2.1.tgz",
+ "integrity": "sha512-gHJlBBXUgDN9vrr3aWkRqnYrPXZLztBDQoY97Mm5Yo6MidsEpYo2JIP6FH4N/N2p1TdjxJL4EFtdd/mBpiR2MQ==",
"requires": {
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-tools": "^9.2.1",
"cosmiconfig": "^5.1.0",
"deepmerge": "^3.2.0",
"glob": "^7.1.3",
@@ -22924,21 +24015,21 @@
}
},
"@react-native-community/cli-debugger-ui": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-8.0.0.tgz",
- "integrity": "sha512-u2jq06GZwZ9sRERzd9FIgpW6yv4YOW4zz7Ym/B8eSzviLmy3yI/8mxJtvlGW+J8lBsfMcQoqJpqI6Rl1nZy9yQ==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-9.0.0.tgz",
+ "integrity": "sha512-7hH05ZwU9Tp0yS6xJW0bqcZPVt0YCK7gwj7gnRu1jDNN2kughf6Lg0Ys29rAvtZ7VO1PK5c1O+zs7yFnylQDUA==",
"requires": {
"serve-static": "^1.13.1"
}
},
"@react-native-community/cli-doctor": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-8.0.6.tgz",
- "integrity": "sha512-ZQqyT9mJMVeFEVIwj8rbDYGCA2xXjJfsQjWk2iTRZ1CFHfhPSUuUiG8r6mJmTinAP9t+wYcbbIYzNgdSUKnDMw==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz",
+ "integrity": "sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==",
"requires": {
- "@react-native-community/cli-config": "^8.0.6",
- "@react-native-community/cli-platform-ios": "^8.0.6",
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-config": "^9.2.1",
+ "@react-native-community/cli-platform-ios": "^9.3.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"command-exists": "^1.2.8",
"envinfo": "^7.7.2",
@@ -22954,6 +24045,18 @@
"wcwidth": "^1.0.1"
},
"dependencies": {
+ "@react-native-community/cli-platform-ios": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz",
+ "integrity": "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==",
+ "requires": {
+ "@react-native-community/cli-tools": "^9.2.1",
+ "chalk": "^4.1.2",
+ "execa": "^1.0.0",
+ "glob": "^7.1.3",
+ "ora": "^5.4.1"
+ }
+ },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -23070,17 +24173,31 @@
}
},
"@react-native-community/cli-hermes": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-8.0.5.tgz",
- "integrity": "sha512-Zm0wM6SfgYAEX1kfJ1QBvTayabvh79GzmjHyuSnEROVNPbl4PeCG4WFbwy489tGwOP9Qx9fMT5tRIFCD8bp6/g==",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz",
+ "integrity": "sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==",
"requires": {
- "@react-native-community/cli-platform-android": "^8.0.5",
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-platform-android": "^9.3.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"hermes-profile-transformer": "^0.0.6",
"ip": "^1.1.5"
},
"dependencies": {
+ "@react-native-community/cli-platform-android": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz",
+ "integrity": "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==",
+ "requires": {
+ "@react-native-community/cli-tools": "^9.2.1",
+ "chalk": "^4.1.2",
+ "execa": "^1.0.0",
+ "fs-extra": "^8.1.0",
+ "glob": "^7.1.3",
+ "logkitty": "^0.7.1",
+ "slash": "^3.0.0"
+ }
+ },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -23127,17 +24244,15 @@
}
},
"@react-native-community/cli-platform-android": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-8.0.5.tgz",
- "integrity": "sha512-z1YNE4T1lG5o9acoQR1GBvf7mq6Tzayqo/za5sHVSOJAC9SZOuVN/gg/nkBa9a8n5U7qOMFXfwhTMNqA474gXA==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz",
+ "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==",
"requires": {
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"fs-extra": "^8.1.0",
"glob": "^7.1.3",
- "jetifier": "^1.6.2",
- "lodash": "^4.17.15",
"logkitty": "^0.7.1",
"slash": "^3.0.0"
},
@@ -23188,18 +24303,15 @@
}
},
"@react-native-community/cli-platform-ios": {
- "version": "8.0.6",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-8.0.6.tgz",
- "integrity": "sha512-CMR6mu/LVx6JVfQRDL9uULsMirJT633bODn+IrYmrwSz250pnhON16We8eLPzxOZHyDjm7JPuSgHG3a/BPiRuQ==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz",
+ "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==",
"requires": {
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"execa": "^1.0.0",
"glob": "^7.1.3",
- "js-yaml": "^3.13.1",
- "lodash": "^4.17.15",
- "ora": "^5.4.1",
- "plist": "^3.0.2"
+ "ora": "^5.4.1"
},
"dependencies": {
"ansi-styles": {
@@ -23311,19 +24423,19 @@
}
},
"@react-native-community/cli-plugin-metro": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-8.0.4.tgz",
- "integrity": "sha512-UWzY1eMcEr/6262R2+d0Is5M3L/7Y/xXSDIFMoc5Rv5Wucl3hJM/TxHXmByvHpuJf6fJAfqOskyt4bZCvbI+wQ==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz",
+ "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==",
"requires": {
- "@react-native-community/cli-server-api": "^8.0.4",
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-server-api": "^9.2.1",
+ "@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
- "metro": "^0.70.1",
- "metro-config": "^0.70.1",
- "metro-core": "^0.70.1",
- "metro-react-native-babel-transformer": "^0.70.1",
- "metro-resolver": "^0.70.1",
- "metro-runtime": "^0.70.1",
+ "metro": "0.72.3",
+ "metro-config": "0.72.3",
+ "metro-core": "0.72.3",
+ "metro-react-native-babel-transformer": "0.72.3",
+ "metro-resolver": "0.72.3",
+ "metro-runtime": "0.72.3",
"readline": "^1.3.0"
},
"dependencies": {
@@ -23373,12 +24485,12 @@
}
},
"@react-native-community/cli-server-api": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-8.0.4.tgz",
- "integrity": "sha512-Orr14njx1E70CVrUA8bFdl+mrnbuXUjf1Rhhm0RxUadFpvkHuOi5dh8Bryj2MKtf8eZrpEwZ7tuQPhJEULW16A==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-9.2.1.tgz",
+ "integrity": "sha512-EI+9MUxEbWBQhWw2PkhejXfkcRqPl+58+whlXJvKHiiUd7oVbewFs0uLW0yZffUutt4FGx6Uh88JWEgwOzAdkw==",
"requires": {
- "@react-native-community/cli-debugger-ui": "^8.0.0",
- "@react-native-community/cli-tools": "^8.0.4",
+ "@react-native-community/cli-debugger-ui": "^9.0.0",
+ "@react-native-community/cli-tools": "^9.2.1",
"compression": "^1.7.1",
"connect": "^3.6.5",
"errorhandler": "^1.5.0",
@@ -23397,14 +24509,13 @@
}
},
"@react-native-community/cli-tools": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-8.0.4.tgz",
- "integrity": "sha512-ePN9lGxh6LRFiotyddEkSmuqpQhnq2iw9oiXYr4EFWpIEy0yCigTuSTiDF68+c8M9B+7bTwkRpz/rMPC4ViO5Q==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-9.2.1.tgz",
+ "integrity": "sha512-bHmL/wrKmBphz25eMtoJQgwwmeCylbPxqFJnFSbkqJPXQz3ManQ6q/gVVMqFyz7D3v+riaus/VXz3sEDa97uiQ==",
"requires": {
"appdirsjs": "^1.2.4",
"chalk": "^4.1.2",
"find-up": "^5.0.0",
- "lodash": "^4.17.15",
"mime": "^2.4.1",
"node-fetch": "^2.6.0",
"open": "^6.2.0",
@@ -23535,21 +24646,27 @@
}
},
"@react-native-community/cli-types": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-8.0.0.tgz",
- "integrity": "sha512-1lZS1PEvMlFaN3Se1ksyoFWzMjk+YfKi490GgsqKJln9gvFm8tqVPdnXttI5Uf2DQf3BMse8Bk8dNH4oV6Ewow==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-9.1.0.tgz",
+ "integrity": "sha512-KDybF9XHvafLEILsbiKwz5Iobd+gxRaPyn4zSaAerBxedug4er5VUWa8Szy+2GeYKZzMh/gsb1o9lCToUwdT/g==",
"requires": {
"joi": "^17.2.1"
}
},
"@react-native-community/datetimepicker": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-6.2.0.tgz",
- "integrity": "sha512-w1ZS+wYO3qSASliRp+B7mPphOhtVm++rhSbj1WsgXdgLgDXSkDxpMnAXXQu9M0XdcgBwVJ6wDExeIwuzU5Jtfg==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-6.5.2.tgz",
+ "integrity": "sha512-9K3zhIH1zmpIGSG3GJTWLIoAx+sR4kJ1wqpGKMwWJ5IYXBsFxMdvGw023t0pz2CQStlnNbbNhnZY/HMYFBCsCg==",
"requires": {
"invariant": "^2.2.4"
}
},
+ "@react-native-picker/picker": {
+ "version": "2.4.8",
+ "resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz",
+ "integrity": "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg==",
+ "requires": {}
+ },
"@react-native/assets": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz",
@@ -23717,15 +24834,20 @@
}
},
"@sideway/formula": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz",
- "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg=="
},
"@sideway/pinpoint": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
"integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
},
+ "@sinclair/typebox": {
+ "version": "0.24.51",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
+ "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA=="
+ },
"@types/glob": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
@@ -23735,14 +24857,6 @@
"@types/node": "*"
}
},
- "@types/graceful-fs": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
- "requires": {
- "@types/node": "*"
- }
- },
"@types/hammerjs": {
"version": "2.0.41",
"resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz",
@@ -24043,9 +25157,9 @@
}
},
"@xmldom/xmldom": {
- "version": "0.7.6",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz",
- "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ=="
+ "version": "0.7.9",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.9.tgz",
+ "integrity": "sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA=="
},
"@xtuc/ieee754": {
"version": "1.2.0",
@@ -24089,6 +25203,14 @@
"resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
"integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA=="
},
+ "agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "requires": {
+ "debug": "4"
+ }
+ },
"aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
@@ -24189,9 +25311,9 @@
"integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="
},
"application-config-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz",
- "integrity": "sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q=="
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz",
+ "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw=="
},
"aproba": {
"version": "1.2.0",
@@ -24316,13 +25438,6 @@
"integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
"requires": {
"tslib": "^2.0.1"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- }
}
},
"astral-regex": {
@@ -24360,6 +25475,28 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
+ "axios": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz",
+ "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==",
+ "requires": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ },
+ "dependencies": {
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ }
+ }
+ },
"babel-core": {
"version": "7.0.0-bridge.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
@@ -24379,17 +25516,17 @@
},
"dependencies": {
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -24448,9 +25585,9 @@
}
},
"babel-plugin-react-native-web": {
- "version": "0.18.9",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.9.tgz",
- "integrity": "sha512-A9rrSfV98CFRS+ACgZorxaHH8gDrVyK2Nea8OHepY4Sv/Mf+vk8uvQq+tRUEBpHnUvd/qRDKIjFLbygecAt9VA=="
+ "version": "0.18.10",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.10.tgz",
+ "integrity": "sha512-2UiwS6G7XKJvpo0X5OFkzGjHGFuNx9J+DgEG8TEmm+X5S0z6EB59W11RDEZghdKzsQzVbs1jB+2VHBuVgjMTiw=="
},
"babel-plugin-syntax-trailing-function-commas": {
"version": "7.0.0-beta.0",
@@ -24458,16 +25595,17 @@
"integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ=="
},
"babel-preset-expo": {
- "version": "9.2.0",
- "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.2.0.tgz",
- "integrity": "sha512-aM2htiNx0H49H+MWCp9+cKVSdcdNSn0tbE5Dln/GO1xna4ZlnA30clbfClcYJFUcZtW90IsYeZwQ/hj8zyWhNA==",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-9.2.2.tgz",
+ "integrity": "sha512-69cSPObZWFz0AaUT6IhCu2VzPVTICUtXzhX5ecoDttFe+9wb9yMV8m7rBNZptJQ3wtiKB5iEL7/wvtKygPz/mQ==",
"requires": {
"@babel/plugin-proposal-decorators": "^7.12.9",
+ "@babel/plugin-proposal-object-rest-spread": "^7.12.13",
"@babel/plugin-transform-react-jsx": "^7.12.17",
"@babel/preset-env": "^7.12.9",
"babel-plugin-module-resolver": "^4.1.0",
"babel-plugin-react-native-web": "~0.18.2",
- "metro-react-native-babel-preset": "~0.70.3"
+ "metro-react-native-babel-preset": "0.72.3"
}
},
"babel-preset-fbjs": {
@@ -24672,9 +25810,9 @@
}
},
"bplist-parser": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
- "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
+ "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
"requires": {
"big-integer": "1.6.x"
}
@@ -24955,13 +26093,6 @@
"requires": {
"pascal-case": "^3.1.2",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- }
}
},
"camelcase": {
@@ -25739,9 +26870,9 @@
}
},
"crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg=="
},
"css-color-names": {
"version": "0.0.4",
@@ -25792,17 +26923,17 @@
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -25985,9 +27116,9 @@
"integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
},
"dayjs": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz",
- "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ=="
+ "version": "1.11.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"debug": {
"version": "4.3.4",
@@ -26003,9 +27134,9 @@
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
},
"decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og=="
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
},
"deep-equal": {
"version": "1.1.1",
@@ -26280,13 +27411,6 @@
"requires": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- }
}
},
"dot-prop": {
@@ -26714,24 +27838,26 @@
}
},
"expo": {
- "version": "46.0.17",
- "resolved": "https://registry.npmjs.org/expo/-/expo-46.0.17.tgz",
- "integrity": "sha512-rB+KMvjU3lFMkec5LcVFFn0Q2iJUEIoyB9TckKMirA15H5mW4yZMao0ilR7239fJ5ytVoDC8SIf7ZAvTmiMuMw==",
+ "version": "47.0.9",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-47.0.9.tgz",
+ "integrity": "sha512-NZtwk2Q+8DYlEpY/vBWDOVeN20AdlsVlZlhLOHAqvXpUSlNhG5XYBJD3wW+GQ1BQetq/8Hxe5NaZu0N5YkYsvA==",
"requires": {
"@babel/runtime": "^7.14.0",
- "@expo/cli": "0.3.2",
+ "@expo/cli": "0.4.10",
+ "@expo/config": "7.0.3",
+ "@expo/config-plugins": "5.0.4",
"@expo/vector-icons": "^13.0.0",
- "babel-preset-expo": "~9.2.0",
+ "babel-preset-expo": "~9.2.2",
"cross-spawn": "^6.0.5",
- "expo-application": "~4.2.2",
- "expo-asset": "~8.6.1",
- "expo-constants": "~13.2.4",
- "expo-error-recovery": "~3.2.0",
- "expo-file-system": "~14.1.0",
- "expo-font": "~10.2.1",
- "expo-keep-awake": "~10.2.0",
- "expo-modules-autolinking": "0.10.3",
- "expo-modules-core": "0.11.9",
+ "expo-application": "~5.0.1",
+ "expo-asset": "~8.7.0",
+ "expo-constants": "~14.0.2",
+ "expo-error-recovery": "~4.0.1",
+ "expo-file-system": "~15.1.1",
+ "expo-font": "~11.0.1",
+ "expo-keep-awake": "~11.0.1",
+ "expo-modules-autolinking": "1.0.0",
+ "expo-modules-core": "1.0.4",
"fbemitter": "^3.0.0",
"getenv": "^1.0.0",
"invariant": "^2.2.4",
@@ -26739,22 +27865,163 @@
"node-fetch": "^2.6.7",
"pretty-format": "^26.5.2",
"uuid": "^3.4.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
+ "requires": {
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
+ "requires": {
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
}
},
"expo-application": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.2.2.tgz",
- "integrity": "sha512-bFEaFRUdV6aK2iBd+HzkHNPYsyj88EAhaQW5leznmO0qQMJxpAQ3eoUXMey1hfDBh1qgkkHgSyCZ9BIgMAGJ1g==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-5.0.1.tgz",
+ "integrity": "sha512-bThxK5zH/Lc2tkCvEXGjfM7ayvOVmPWYcWzXsMIU1RtG73TyXo4cq+73FvfDNIWn6gKS0WyMcmoPB3WXEV/jsw==",
"requires": {}
},
"expo-asset": {
- "version": "8.6.1",
- "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.6.1.tgz",
- "integrity": "sha512-urbUp1YtwH2J0Qc3inGQJdqTjWKML77SeMNgff+iR9MUE8gDkFqSCDjrBi7i5Oj5DDtq43mmtDg8G8ei6Vchcg==",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.7.0.tgz",
+ "integrity": "sha512-lkoNsHK6vf+outISB6/37SonXcAL6Buw0ycjiwQVFfpOBKpkQa+zw5wm1m3KwjH2txmR3xdIzcpWsJkgovYCvQ==",
"requires": {
"blueimp-md5": "^2.10.0",
- "expo-constants": "~13.2.2",
- "expo-file-system": "~14.1.0",
+ "expo-constants": "~14.0.0",
+ "expo-file-system": "~15.1.0",
"invariant": "^2.2.4",
"md5-file": "^3.2.3",
"path-browserify": "^1.0.0",
@@ -26762,48 +28029,258 @@
}
},
"expo-constants": {
- "version": "13.2.4",
- "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.2.4.tgz",
- "integrity": "sha512-Zobau8EuTk2GgafwkfGnWM6CmSLB7X8qnQXVuXe0nd3v92hfQUmRWGhJwH88uxXj3LrfqctM6PaJ8taG1vxfBw==",
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-14.0.2.tgz",
+ "integrity": "sha512-wzV3nrzTXTI8yG0tfas3fnqCfKV6YE+1GphEREyVDAShEB6mBInX1b6HgtpHFy2wOtnml+lPVmTCeGtjjLnZhA==",
"requires": {
- "@expo/config": "~7.0.0",
+ "@expo/config": "~7.0.2",
"uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@expo/config": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-7.0.3.tgz",
+ "integrity": "sha512-joVtB5o+NF40Tmsdp65UzryRtbnCuMbXkVO4wJnNJO4aaK0EYLdHCYSewORVqNcDfGN0LphQr8VTG2npbd9CJA==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~5.0.3",
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.3.2",
+ "slugify": "^1.3.4",
+ "sucrase": "^3.20.0"
+ }
+ },
+ "@expo/config-plugins": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-5.0.4.tgz",
+ "integrity": "sha512-vzUcVpqOMs3h+hyRdhGwk+eGIOhXa5xYdd92yO17RMNHav3v/+ekMbs7XA2c3lepMO8Yd4/5hqmRw9ZTL6jGzg==",
+ "requires": {
+ "@expo/config-types": "^47.0.0",
+ "@expo/json-file": "8.2.36",
+ "@expo/plist": "0.0.18",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5",
+ "slash": "^3.0.0",
+ "xcode": "^3.0.1",
+ "xml2js": "0.4.23"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "@expo/config-types": {
+ "version": "47.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-47.0.0.tgz",
+ "integrity": "sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g=="
+ },
+ "@expo/json-file": {
+ "version": "8.2.36",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.36.tgz",
+ "integrity": "sha512-tOZfTiIFA5KmMpdW9KF7bc6CFiGjb0xnbieJhTGlHrLL+ps2G0OkqmuZ3pFEXBOMnJYUVpnSy++52LFxvpa5ZQ==",
+ "requires": {
+ "@babel/code-frame": "~7.10.4",
+ "json5": "^1.0.1",
+ "write-file-atomic": "^2.3.0"
+ }
+ },
+ "@expo/plist": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.18.tgz",
+ "integrity": "sha512-+48gRqUiz65R21CZ/IXa7RNBXgAI/uPSdvJqoN9x1hfL44DNbUoWHgHiEXTx7XelcATpDwNTz6sHLfy0iNqf+w==",
+ "requires": {
+ "@xmldom/xmldom": "~0.7.0",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "expo-dev-client": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-2.0.1.tgz",
+ "integrity": "sha512-+OXXZKKo/CplqklpaZasHAX7qaRrzC83biqXTFa1z5NiFW41uqtAqTFx6gmPi4kx3YgwtD+ep6R3SRrKjdCukg==",
+ "requires": {
+ "expo-dev-launcher": "2.0.2",
+ "expo-dev-menu": "2.0.2",
+ "expo-dev-menu-interface": "1.0.0",
+ "expo-manifests": "~0.4.0",
+ "expo-updates-interface": "~0.8.0"
+ }
+ },
+ "expo-dev-launcher": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-2.0.2.tgz",
+ "integrity": "sha512-MQT7VSOHJQrEs3YAv5BQLYs3Uk7P1dNqBw6kKrj3jKBq0z92k2LLg1aCk7nP8OGJVDvrb2jTXBka8VXVqF0ECg==",
+ "requires": {
+ "expo-dev-menu": "2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
+ }
+ },
+ "expo-dev-menu": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-2.0.2.tgz",
+ "integrity": "sha512-SxR5riXgm+VVKsDKC/bOLuOJ0CKutW07G+OqJ9eYfxwGfxa8omLJHwagbCsd8FwUPGkzvzgfRJRGLo5J6REMow==",
+ "requires": {
+ "expo-dev-menu-interface": "1.0.0",
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
}
},
+ "expo-dev-menu-interface": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/expo-dev-menu-interface/-/expo-dev-menu-interface-1.0.0.tgz",
+ "integrity": "sha512-4lsVofTwV9oBM+zo7XhtmvbfiXD4I7I3Rqns6U0i6IOnH7OGBDpKvGZ5YikWPFGn6NOu8loqqd8S7inFIaxC0A==",
+ "requires": {}
+ },
"expo-error-recovery": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.2.0.tgz",
- "integrity": "sha512-XZ630ks5HNxa9oc2Ya1hEn1ez031Cy4VnyxerPC2o9fKNKSrD/64cRqGF9NkGM3X2uf8+PCB9adxVflAIXBf6w==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-4.0.1.tgz",
+ "integrity": "sha512-wceptnRX+N3qCSVTNbIchUFu3GmY30onRH5L66OF8HMLpAIQfrZMLxJfz7SAMJTcr3jxsJ11vSa2l2RaPKgHsQ==",
"optional": true,
"requires": {}
},
"expo-file-system": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-14.1.0.tgz",
- "integrity": "sha512-lJcPGQ8yKXVknVkD5TmcJnR/TpQbEL0JP8hknLejfq3FIqPqI/LBFn31YiP37grxW8lITz1al8pq5T6CSUjAzQ==",
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-15.1.1.tgz",
+ "integrity": "sha512-MYYDKxjLo9VOkvGHqym5EOAUS+ero9O66X5zI+EXJzqNznKvnfScdXeeAaQzShmWtmLkdVDCoYFGOaTvTA1wTQ==",
"requires": {
- "@expo/config-plugins": "~5.0.0",
"uuid": "^3.4.0"
}
},
"expo-font": {
- "version": "10.2.1",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.2.1.tgz",
- "integrity": "sha512-sxy5GrdtY+Ka8Wo5wnrcFFeO6MbYC6Dris5wMLqshvVK6BneJNMUsFvwRfvVgg0TzsmMAc3Rlca2xyZ8ettinw==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.0.1.tgz",
+ "integrity": "sha512-LGAIluWZfru0J0n87dzb6pwAB6TVMTEiLcsd/ktozzbn4DlN7SeQy40+ruU6bvAKCOGrnRneYbKSIOGkrd7oNg==",
"requires": {
"fontfaceobserver": "^2.1.0"
}
},
+ "expo-json-utils": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/expo-json-utils/-/expo-json-utils-0.4.0.tgz",
+ "integrity": "sha512-lK6gjea72XTYafpKNNJaMrBK5dYAX8LFLXrp/M1MKJU4Zy7EHd2rKrLwop3GZts8VdwLHeVcMko79SAbhe3i5Q=="
+ },
"expo-keep-awake": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.2.0.tgz",
- "integrity": "sha512-kIRtO4Hmrvxh4E45IPWG/NiUZsuRe1AQwBT09pq+kx8nm6tUS4B9TeL6+1NFy+qVBLbGKDqoQD5Ez7XYTFtBeQ==",
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-11.0.1.tgz",
+ "integrity": "sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A==",
"requires": {}
},
+ "expo-manifests": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/expo-manifests/-/expo-manifests-0.4.0.tgz",
+ "integrity": "sha512-IdZjIYDxx4nH0Gb3X4T4/2YknmR/jSLxymAS0m7SfJ9V7Vlu/y0p3lNwUys9/JzihxX9PDIuOi/Y4/uqL6TlXg==",
+ "requires": {
+ "expo-json-utils": "~0.4.0"
+ }
+ },
"expo-modules-autolinking": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.10.3.tgz",
- "integrity": "sha512-av9ln2zwUt303g98raX7sDmESgL3SXs1sbbtIjh1rL7R0676XIUacIKgbydR0/4tMbOShWx14Z9fozpk9xIAJA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.0.0.tgz",
+ "integrity": "sha512-MoRRkOVMoGUH/Lr8XS6UmBIZT/qrwbRt2IzUBALcM6MWZKtDn9Uct9XgMRxue82FJhRCfy9p1xZJVKHBRo4zEA==",
"requires": {
"chalk": "^4.1.0",
"commander": "^7.2.0",
@@ -26883,9 +28360,9 @@
}
},
"expo-modules-core": {
- "version": "0.11.9",
- "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.11.9.tgz",
- "integrity": "sha512-6AlOE4KHN3/WWbY8hH7W6ceuIFj0qbk1N+UhmMhiCEUas3NvXA6wcH3xjO+8JZ+BRcIB9M4QEeX72j6vDDuExg==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.0.4.tgz",
+ "integrity": "sha512-Cf2G8f2h3TGASKNDYXlOwe5CBMmRt32wZzBAmau6qComw0e13Y9sDYORSfgk+NJWvLnHJrInN4qGytxHfal/aA==",
"requires": {
"compare-versions": "^3.4.0",
"invariant": "^2.2.4"
@@ -26902,24 +28379,6 @@
"update-check": "1.5.3"
},
"dependencies": {
- "@expo/image-utils": {
- "version": "0.3.23",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.23.tgz",
- "integrity": "sha512-nhUVvW0TrRE4jtWzHQl8TR4ox7kcmrc2I0itaeJGjxF5A54uk7avgA0wRt7jP1rdvqQo1Ke1lXyLYREdhN9tPw==",
- "requires": {
- "@expo/spawn-async": "1.5.0",
- "chalk": "^4.0.0",
- "fs-extra": "9.0.0",
- "getenv": "^1.0.0",
- "jimp-compact": "0.16.1",
- "mime": "^2.4.4",
- "node-fetch": "^2.6.0",
- "parse-png": "^2.1.0",
- "resolve-from": "^5.0.0",
- "semver": "7.3.2",
- "tempy": "0.3.0"
- }
- },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -26955,48 +28414,11 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
},
- "crypto-random-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
- "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg=="
- },
- "fs-extra": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
- "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
- "requires": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^1.0.0"
- }
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
- "jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^2.0.0"
- },
- "dependencies": {
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
- }
- }
- },
- "semver": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
- "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
- },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -27004,46 +28426,28 @@
"requires": {
"has-flag": "^4.0.0"
}
- },
- "temp-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ=="
- },
- "tempy": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
- "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
- "requires": {
- "temp-dir": "^1.0.0",
- "type-fest": "^0.3.1",
- "unique-string": "^1.0.0"
- }
- },
- "type-fest": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
- "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ=="
- },
- "unique-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
- "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
- "requires": {
- "crypto-random-string": "^1.0.0"
- }
- },
- "universalify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
- "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug=="
}
}
},
+ "expo-splash-screen": {
+ "version": "0.17.5",
+ "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.17.5.tgz",
+ "integrity": "sha512-ejSO78hwHXz8T9u8kh8t4r6CR4h70iBvA65gX8GK+dYxZl6/IANPbIb2VnUpND9vqfW+JnkDw+ZFst+gDnkpcQ==",
+ "requires": {
+ "@expo/configure-splash-screen": "^0.6.0",
+ "@expo/prebuild-config": "5.0.7"
+ }
+ },
"expo-status-bar": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.4.0.tgz",
- "integrity": "sha512-vh98g8qMIjig/2XTBsoAWS6Vo2dIIwDWjB3/GiuZ9Lazpxc9GO/APfJ4dar7MibzIDUKIrjotrcL6rLdPH13Ew=="
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.4.2.tgz",
+ "integrity": "sha512-ZWjO6D4ARGYfAd3SWDD3STNudHDhyBZDZjhhseqoEmsf7bS9ykny8KKOhlzJW24qIQNPhkgdvHhaw9fQwMJy3Q=="
+ },
+ "expo-updates-interface": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/expo-updates-interface/-/expo-updates-interface-0.8.1.tgz",
+ "integrity": "sha512-1TPFCTQFHMZbltFGnxig3PbN/b6nO4T0RyL8XqdmYvQY0ElOCprZXQQ8vNDqeLYHgausG1lD4OyJwFzh2SNBSA==",
+ "requires": {}
},
"express": {
"version": "4.18.2",
@@ -27837,13 +29241,6 @@
"integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==",
"requires": {
"tslib": "^2.1.0"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
- }
}
},
"gzip-size": {
@@ -27987,22 +29384,17 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
- "hermes-engine": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.11.0.tgz",
- "integrity": "sha512-7aMUlZja2IyLYAcZ69NBnwJAR5ZOYlSllj0oMpx08a8HzxHOys0eKCzfphrf6D0vX1JGO1QQvVsQKe6TkYherw=="
- },
"hermes-estree": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.6.0.tgz",
- "integrity": "sha512-2YTGzJCkhdmT6VuNprWjXnvTvw/3iPNw804oc7yknvQpNKo+vJGZmtvLLCghOZf0OwzKaNAzeIMp71zQbNl09w=="
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.8.0.tgz",
+ "integrity": "sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q=="
},
"hermes-parser": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.6.0.tgz",
- "integrity": "sha512-Vf58jBZca2+QBLR9h7B7mdg8oFz2g5ILz1iVouZ5DOrOrAfBmPfJjdjDT8jrO0f+iJ4/hSRrQHqHIjSnTaLUDQ==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.8.0.tgz",
+ "integrity": "sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA==",
"requires": {
- "hermes-estree": "0.6.0"
+ "hermes-estree": "0.8.0"
}
},
"hermes-profile-transformer": {
@@ -28139,17 +29531,17 @@
},
"dependencies": {
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -28321,6 +29713,15 @@
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
"integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg=="
},
+ "https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
"hyphenate-style-name": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz",
@@ -28706,6 +30107,11 @@
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
},
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+ },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -28836,91 +30242,6 @@
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
"integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig=="
},
- "jest-haste-map": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
- "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
- "requires": {
- "@jest/types": "^27.5.1",
- "@types/graceful-fs": "^4.1.2",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "fsevents": "^2.3.2",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^27.5.1",
- "jest-serializer": "^27.5.1",
- "jest-util": "^27.5.1",
- "jest-worker": "^27.5.1",
- "micromatch": "^4.0.4",
- "walker": "^1.0.7"
- },
- "dependencies": {
- "@jest/types": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
- "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
- "requires": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^16.0.0",
- "chalk": "^4.0.0"
- }
- },
- "@types/yargs": {
- "version": "16.0.4",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
- "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
"jest-regex-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
@@ -29096,20 +30417,15 @@
}
}
},
- "jetifier": {
- "version": "1.6.8",
- "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.8.tgz",
- "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw=="
- },
"jimp-compact": {
"version": "0.16.1",
"resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz",
"integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
},
"joi": {
- "version": "17.6.4",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.4.tgz",
- "integrity": "sha512-tPzkTJHZQjSFCc842QpdVpOZ9LI2txApboNUbW70qgnRB14Lzl+oWQOPdF2N4yqyiY14wBGe8lc7f/2hZxbGmw==",
+ "version": "17.7.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz",
+ "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==",
"requires": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
@@ -29377,9 +30693,9 @@
"integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA=="
},
"json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
},
"jsonfile": {
"version": "4.0.0",
@@ -29437,9 +30753,9 @@
"integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="
},
"loader-utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz",
- "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -29503,9 +30819,9 @@
}
},
"loglevel": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz",
- "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA=="
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz",
+ "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg=="
},
"loose-envify": {
"version": "1.4.0",
@@ -29521,13 +30837,6 @@
"integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
"requires": {
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- }
}
},
"lru-cache": {
@@ -29692,6 +31001,14 @@
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
+ "merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "requires": {
+ "is-plain-obj": "^2.1.0"
+ }
+ },
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -29708,9 +31025,9 @@
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
},
"metro": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro/-/metro-0.70.3.tgz",
- "integrity": "sha512-uEWS7xg8oTetQDABYNtsyeUjdLhH3KAvLFpaFFoJqUpOk2A3iygszdqmjobFl6W4zrvKDJS+XxdMR1roYvUhTw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz",
+ "integrity": "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==",
"requires": {
"@babel/code-frame": "^7.0.0",
"@babel/core": "^7.14.0",
@@ -29730,27 +31047,27 @@
"error-stack-parser": "^2.0.6",
"fs-extra": "^1.0.0",
"graceful-fs": "^4.2.4",
- "hermes-parser": "0.6.0",
+ "hermes-parser": "0.8.0",
"image-size": "^0.6.0",
"invariant": "^2.2.4",
- "jest-haste-map": "^27.3.1",
"jest-worker": "^27.2.0",
"lodash.throttle": "^4.1.1",
- "metro-babel-transformer": "0.70.3",
- "metro-cache": "0.70.3",
- "metro-cache-key": "0.70.3",
- "metro-config": "0.70.3",
- "metro-core": "0.70.3",
- "metro-hermes-compiler": "0.70.3",
- "metro-inspector-proxy": "0.70.3",
- "metro-minify-uglify": "0.70.3",
- "metro-react-native-babel-preset": "0.70.3",
- "metro-resolver": "0.70.3",
- "metro-runtime": "0.70.3",
- "metro-source-map": "0.70.3",
- "metro-symbolicate": "0.70.3",
- "metro-transform-plugins": "0.70.3",
- "metro-transform-worker": "0.70.3",
+ "metro-babel-transformer": "0.72.3",
+ "metro-cache": "0.72.3",
+ "metro-cache-key": "0.72.3",
+ "metro-config": "0.72.3",
+ "metro-core": "0.72.3",
+ "metro-file-map": "0.72.3",
+ "metro-hermes-compiler": "0.72.3",
+ "metro-inspector-proxy": "0.72.3",
+ "metro-minify-uglify": "0.72.3",
+ "metro-react-native-babel-preset": "0.72.3",
+ "metro-resolver": "0.72.3",
+ "metro-runtime": "0.72.3",
+ "metro-source-map": "0.72.3",
+ "metro-symbolicate": "0.72.3",
+ "metro-transform-plugins": "0.72.3",
+ "metro-transform-worker": "0.72.3",
"mime-types": "^2.1.27",
"node-fetch": "^2.2.0",
"nullthrows": "^1.1.1",
@@ -29870,62 +31187,96 @@
}
},
"metro-babel-transformer": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.70.3.tgz",
- "integrity": "sha512-bWhZRMn+mIOR/s3BDpFevWScz9sV8FGktVfMlF1eJBLoX24itHDbXvTktKBYi38PWIKcHedh6THSFpJogfuwNA==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz",
+ "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==",
"requires": {
"@babel/core": "^7.14.0",
- "hermes-parser": "0.6.0",
- "metro-source-map": "0.70.3",
+ "hermes-parser": "0.8.0",
+ "metro-source-map": "0.72.3",
"nullthrows": "^1.1.1"
}
},
"metro-cache": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.70.3.tgz",
- "integrity": "sha512-iCix/+z812fUqa6KlOxaTkY6LQQDoXIe/VljXkGIvpygSCmYyhjQpfQVZEVVPezFmUBYXNdabdQ6cYx6JX3yMg==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz",
+ "integrity": "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==",
"requires": {
- "metro-core": "0.70.3",
+ "metro-core": "0.72.3",
"rimraf": "^2.5.4"
}
},
"metro-cache-key": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.70.3.tgz",
- "integrity": "sha512-0zpw+IcpM3hmGd5sKMdxNv3sbOIUYnMUvx1/yaM6vNRReSPmOLX0bP8fYf3CGgk8NEreZ1OHbVsuw7bdKt40Mw=="
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz",
+ "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg=="
},
"metro-config": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.70.3.tgz",
- "integrity": "sha512-SSCDjSTygoCgzoj61DdrBeJzZDRwQxUEfcgc6t6coxWSExXNR4mOngz0q4SAam49Bmjq9J2Jft6qUKnUTPrRgA==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz",
+ "integrity": "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==",
"requires": {
"cosmiconfig": "^5.0.5",
"jest-validate": "^26.5.2",
- "metro": "0.70.3",
- "metro-cache": "0.70.3",
- "metro-core": "0.70.3",
- "metro-runtime": "0.70.3"
+ "metro": "0.72.3",
+ "metro-cache": "0.72.3",
+ "metro-core": "0.72.3",
+ "metro-runtime": "0.72.3"
}
},
"metro-core": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.70.3.tgz",
- "integrity": "sha512-NzfHB/w5R7yLaOeU1tzPTbBzCRsYSvpKJkLMP0yudszKZzIAZqNdjoEJ9GZ688Wi0ynZxcU0BxukXh4my80ZBw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz",
+ "integrity": "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==",
"requires": {
- "jest-haste-map": "^27.3.1",
"lodash.throttle": "^4.1.1",
- "metro-resolver": "0.70.3"
+ "metro-resolver": "0.72.3"
+ }
+ },
+ "metro-file-map": {
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz",
+ "integrity": "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==",
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "anymatch": "^3.0.3",
+ "debug": "^2.2.0",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.1.2",
+ "graceful-fs": "^4.2.4",
+ "invariant": "^2.2.4",
+ "jest-regex-util": "^27.0.6",
+ "jest-serializer": "^27.0.6",
+ "jest-util": "^27.2.0",
+ "jest-worker": "^27.2.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
}
},
"metro-hermes-compiler": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.70.3.tgz",
- "integrity": "sha512-W6WttLi4E72JL/NyteQ84uxYOFMibe0PUr9aBKuJxxfCq6QRnJKOVcNY0NLW0He2tneXGk+8ZsNz8c0flEvYqg=="
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz",
+ "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg=="
},
"metro-inspector-proxy": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.70.3.tgz",
- "integrity": "sha512-qQoNdPGrmyoJSWYkxSDpTaAI8xyqVdNDVVj9KRm1PG8niSuYmrCCFGLLFsMvkVYwsCWUGHoGBx0UoAzVp14ejw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz",
+ "integrity": "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==",
"requires": {
"connect": "^3.6.5",
"debug": "^2.2.0",
@@ -29955,17 +31306,17 @@
}
},
"metro-minify-uglify": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.70.3.tgz",
- "integrity": "sha512-oHyjV9WDqOlDE1FPtvs6tIjjeY/oP1PNUPYL1wqyYtqvjN+zzAOrcbsAAL1sv+WARaeiMsWkF2bwtNo+Hghoog==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz",
+ "integrity": "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==",
"requires": {
"uglify-es": "^3.1.9"
}
},
"metro-react-native-babel-preset": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.70.3.tgz",
- "integrity": "sha512-4Nxc1zEiHEu+GTdEMEsHnRgfaBkg8f/Td3+FcQ8NTSvs+xL3LBrQy6N07idWSQZHIdGFf+tTHvRfSIWLD8u8Tg==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.3.tgz",
+ "integrity": "sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==",
"requires": {
"@babel/core": "^7.14.0",
"@babel/plugin-proposal-async-generator-functions": "^7.0.0",
@@ -30009,46 +31360,47 @@
}
},
"metro-react-native-babel-transformer": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.70.3.tgz",
- "integrity": "sha512-WKBU6S/G50j9cfmFM4k4oRYprd8u3qjleD4so1E2zbTNILg+gYla7ZFGCAvi2G0ZcqS2XuGCR375c2hF6VVvwg==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.3.tgz",
+ "integrity": "sha512-Ogst/M6ujYrl/+9mpEWqE3zF7l2mTuftDTy3L8wZYwX1pWUQWQpfU1aJBeWiLxt1XlIq+uriRjKzKoRoIK57EA==",
"requires": {
"@babel/core": "^7.14.0",
"babel-preset-fbjs": "^3.4.0",
- "hermes-parser": "0.6.0",
- "metro-babel-transformer": "0.70.3",
- "metro-react-native-babel-preset": "0.70.3",
- "metro-source-map": "0.70.3",
+ "hermes-parser": "0.8.0",
+ "metro-babel-transformer": "0.72.3",
+ "metro-react-native-babel-preset": "0.72.3",
+ "metro-source-map": "0.72.3",
"nullthrows": "^1.1.1"
}
},
"metro-resolver": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.70.3.tgz",
- "integrity": "sha512-5Pc5S/Gs4RlLbziuIWtvtFd9GRoILlaRC8RZDVq5JZWcWHywKy/PjNmOBNhpyvtRlzpJfy/ssIfLhu8zINt1Mw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz",
+ "integrity": "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==",
"requires": {
"absolute-path": "^0.0.0"
}
},
"metro-runtime": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.70.3.tgz",
- "integrity": "sha512-22xU7UdXZacniTIDZgN2EYtmfau2pPyh97Dcs+cWrLcJYgfMKjWBtesnDcUAQy3PHekDYvBdJZkoQUeskYTM+w==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.3.tgz",
+ "integrity": "sha512-3MhvDKfxMg2u7dmTdpFOfdR71NgNNo4tzAyJumDVQKwnHYHN44f2QFZQqpPBEmqhWlojNeOxsqFsjYgeyMx6VA==",
"requires": {
- "@babel/runtime": "^7.0.0"
+ "@babel/runtime": "^7.0.0",
+ "react-refresh": "^0.4.0"
}
},
"metro-source-map": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.70.3.tgz",
- "integrity": "sha512-zsYtZGrwRbbGEFHtmMqqeCH9K9aTGNVPsurMOWCUeQA3VGyVGXPGtLMC+CdAM9jLpUyg6jw2xh0esxi+tYH7Uw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.3.tgz",
+ "integrity": "sha512-eNtpjbjxSheXu/jYCIDrbNEKzMGOvYW6/ePYpRM7gDdEagUOqKOCsi3St8NJIQJzZCsxD2JZ2pYOiomUSkT1yQ==",
"requires": {
"@babel/traverse": "^7.14.0",
"@babel/types": "^7.0.0",
"invariant": "^2.2.4",
- "metro-symbolicate": "0.70.3",
+ "metro-symbolicate": "0.72.3",
"nullthrows": "^1.1.1",
- "ob1": "0.70.3",
+ "ob1": "0.72.3",
"source-map": "^0.5.6",
"vlq": "^1.0.0"
},
@@ -30061,12 +31413,12 @@
}
},
"metro-symbolicate": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.70.3.tgz",
- "integrity": "sha512-JTYkF1dpeDUssQ84juE1ycnhHki2ylJBBdJE1JHtfu5oC+z1ElDbBdPHq90Uvt8HbRov/ZAnxvv7Zy6asS+WCA==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz",
+ "integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==",
"requires": {
"invariant": "^2.2.4",
- "metro-source-map": "0.70.3",
+ "metro-source-map": "0.72.3",
"nullthrows": "^1.1.1",
"source-map": "^0.5.6",
"through2": "^2.0.1",
@@ -30081,9 +31433,9 @@
}
},
"metro-transform-plugins": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.70.3.tgz",
- "integrity": "sha512-dQRIJoTkWZN2IVS2KzgS1hs7ZdHDX3fS3esfifPkqFAEwHiLctCf0EsPgIknp0AjMLvmGWfSLJigdRB/dc0ASw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz",
+ "integrity": "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==",
"requires": {
"@babel/core": "^7.14.0",
"@babel/generator": "^7.14.0",
@@ -30093,22 +31445,22 @@
}
},
"metro-transform-worker": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.70.3.tgz",
- "integrity": "sha512-MtVVsnHhhBOp9GRLCdAb2mD1dTCsIzT4+m34KMRdBDCEbDIb90YafT5prpU8qbj5uKd0o2FOQdrJ5iy5zQilHw==",
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz",
+ "integrity": "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==",
"requires": {
"@babel/core": "^7.14.0",
"@babel/generator": "^7.14.0",
"@babel/parser": "^7.14.0",
"@babel/types": "^7.0.0",
"babel-preset-fbjs": "^3.4.0",
- "metro": "0.70.3",
- "metro-babel-transformer": "0.70.3",
- "metro-cache": "0.70.3",
- "metro-cache-key": "0.70.3",
- "metro-hermes-compiler": "0.70.3",
- "metro-source-map": "0.70.3",
- "metro-transform-plugins": "0.70.3",
+ "metro": "0.72.3",
+ "metro-babel-transformer": "0.72.3",
+ "metro-cache": "0.72.3",
+ "metro-cache-key": "0.72.3",
+ "metro-hermes-compiler": "0.72.3",
+ "metro-source-map": "0.72.3",
+ "metro-transform-plugins": "0.72.3",
"nullthrows": "^1.1.1"
}
},
@@ -30176,17 +31528,17 @@
},
"dependencies": {
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -30442,13 +31794,6 @@
"requires": {
"lower-case": "^2.0.2",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- }
}
},
"nocache": {
@@ -30607,9 +31952,9 @@
"integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw=="
},
"ob1": {
- "version": "0.70.3",
- "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.70.3.tgz",
- "integrity": "sha512-Vy9GGhuXgDRY01QA6kdhToPd8AkLdLpX9GjH5kpqluVqTu70mgOm7tpGoJDZGaNbr9nJlJgnipqHJQRPORixIQ=="
+ "version": "0.72.3",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.3.tgz",
+ "integrity": "sha512-OnVto25Sj7Ghp0vVm2THsngdze3tVq0LOg9LUHsAVXMecpqOP0Y8zaATW8M9gEgs2lNEAcCqV0P/hlmOPhVRvg=="
},
"object-assign": {
"version": "4.1.1",
@@ -30923,13 +32268,6 @@
"requires": {
"dot-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- }
}
},
"parse-asn1": {
@@ -30959,6 +32297,13 @@
"integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==",
"requires": {
"pngjs": "^3.3.0"
+ },
+ "dependencies": {
+ "pngjs": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
+ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
+ }
}
},
"parse-srcset": {
@@ -30978,13 +32323,6 @@
"requires": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
- "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
- }
}
},
"pascalcase": {
@@ -31194,9 +32532,9 @@
}
},
"pngjs": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
},
"pnp-webpack-plugin": {
"version": "1.7.0",
@@ -31846,6 +33184,11 @@
"ipaddr.js": "1.9.1"
}
},
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@@ -32005,9 +33348,9 @@
}
},
"react": {
- "version": "18.0.0",
- "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz",
- "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==",
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz",
+ "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==",
"requires": {
"loose-envify": "^1.1.0"
}
@@ -32220,12 +33563,12 @@
}
},
"react-dom": {
- "version": "18.0.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz",
- "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==",
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz",
+ "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==",
"requires": {
"loose-envify": "^1.1.0",
- "scheduler": "^0.21.0"
+ "scheduler": "^0.22.0"
}
},
"react-error-overlay": {
@@ -32245,14 +33588,14 @@
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
},
"react-native": {
- "version": "0.69.6",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.69.6.tgz",
- "integrity": "sha512-wwXpqM+12kdEYdBZCJUb5SBu95CzgejrwFeYJ78RzHZV/Sj6DBRekbsHGrDDsY4R25QXALQxy4DQYQCObVvWjA==",
- "requires": {
- "@jest/create-cache-key-function": "^27.0.1",
- "@react-native-community/cli": "^8.0.4",
- "@react-native-community/cli-platform-android": "^8.0.4",
- "@react-native-community/cli-platform-ios": "^8.0.4",
+ "version": "0.70.5",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.5.tgz",
+ "integrity": "sha512-5NZM80LC3L+TIgQX/09yiyy48S73wMgpIgN5cCv3XTMR394+KpDI3rBZGH4aIgWWuwijz31YYVF5504+9n2Zfw==",
+ "requires": {
+ "@jest/create-cache-key-function": "^29.0.3",
+ "@react-native-community/cli": "9.2.1",
+ "@react-native-community/cli-platform-android": "9.2.1",
+ "@react-native-community/cli-platform-ios": "9.2.1",
"@react-native/assets": "1.0.0",
"@react-native/normalize-color": "2.0.0",
"@react-native/polyfills": "2.0.0",
@@ -32260,24 +33603,23 @@
"anser": "^1.4.9",
"base64-js": "^1.1.2",
"event-target-shim": "^5.0.1",
- "hermes-engine": "~0.11.0",
"invariant": "^2.2.4",
"jsc-android": "^250230.2.1",
"memoize-one": "^5.0.0",
- "metro-react-native-babel-transformer": "0.70.3",
- "metro-runtime": "0.70.3",
- "metro-source-map": "0.70.3",
+ "metro-react-native-babel-transformer": "0.72.3",
+ "metro-runtime": "0.72.3",
+ "metro-source-map": "0.72.3",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^26.5.2",
- "promise": "^8.2.0",
+ "promise": "^8.0.3",
"react-devtools-core": "4.24.0",
- "react-native-codegen": "^0.69.2",
- "react-native-gradle-plugin": "^0.0.7",
+ "react-native-codegen": "^0.70.6",
+ "react-native-gradle-plugin": "^0.70.3",
"react-refresh": "^0.4.0",
- "react-shallow-renderer": "16.15.0",
+ "react-shallow-renderer": "^16.15.0",
"regenerator-runtime": "^0.13.2",
- "scheduler": "^0.21.0",
+ "scheduler": "^0.22.0",
"stacktrace-parser": "^0.1.3",
"use-sync-external-store": "^1.0.0",
"whatwg-fetch": "^3.0.0",
@@ -32295,9 +33637,9 @@
}
},
"react-native-codegen": {
- "version": "0.69.2",
- "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.69.2.tgz",
- "integrity": "sha512-yPcgMHD4mqLbckqnWjFBaxomDnBREfRjDi2G/WxNyPBQLD+PXUEmZTkDx6QoOXN+Bl2SkpnNOSsLE2+/RUHoPw==",
+ "version": "0.70.6",
+ "resolved": "https://registry.npmjs.org/react-native-codegen/-/react-native-codegen-0.70.6.tgz",
+ "integrity": "sha512-kdwIhH2hi+cFnG5Nb8Ji2JwmcCxnaOOo9440ov7XDzSvGfmUStnCzl+MCW8jLjqHcE4icT7N9y+xx4f50vfBTw==",
"requires": {
"@babel/parser": "^7.14.0",
"flow-parser": "^0.121.0",
@@ -32314,9 +33656,9 @@
}
},
"react-native-gesture-handler": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.5.0.tgz",
- "integrity": "sha512-djZdcprFf08PZC332D+AeG5wcGeAPhzfCJtB3otUgOgTlvjVXmg/SLFdPJSpzLBqkRAmrC77tM79QgKbuLxkfw==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.8.0.tgz",
+ "integrity": "sha512-poOSfz/w0IyD6Qwq7aaIRRfEaVTl1ecQFoyiIbpOpfNTjm2B1niY2FLrdVQIOtIOe+K9nH55Qal04nr4jGkHdQ==",
"requires": {
"@egjs/hammerjs": "^2.0.17",
"hoist-non-react-statics": "^3.3.0",
@@ -32326,9 +33668,9 @@
}
},
"react-native-gradle-plugin": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.0.7.tgz",
- "integrity": "sha512-+4JpbIx42zGTONhBTIXSyfyHICHC29VTvhkkoUOJAh/XHPEixpuBduYgf6Y4y9wsN1ARlQhBBoptTvXvAFQf5g=="
+ "version": "0.70.3",
+ "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz",
+ "integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A=="
},
"react-native-iphone-x-helper": {
"version": "1.3.1",
@@ -32336,6 +33678,52 @@
"integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==",
"requires": {}
},
+ "react-native-material-buttons": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/react-native-material-buttons/-/react-native-material-buttons-0.5.0.tgz",
+ "integrity": "sha512-WRQyCG1hd4ZvTr+YdMoyKwoyt/onaFAh8DmyC8BxZ0JT1gy/hs9qTYAilbYb8C1l+okTusalyJeqoPh5GzA1pQ==",
+ "requires": {
+ "prop-types": "^15.5.9",
+ "react-native-material-ripple": "^0.7.0"
+ },
+ "dependencies": {
+ "react-native-material-ripple": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/react-native-material-ripple/-/react-native-material-ripple-0.7.5.tgz",
+ "integrity": "sha512-pHUrmxuPQMBcOssFfr+kERfAwkLhHqiP2ZTJeUsC77W9h+k2IU17T/cOb184S1jkbZP3CFJcOLd9V7RW112YGQ==",
+ "requires": {
+ "prop-types": "^15.5.10"
+ }
+ }
+ }
+ },
+ "react-native-material-dropdown": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/react-native-material-dropdown/-/react-native-material-dropdown-0.11.1.tgz",
+ "integrity": "sha512-GoY3bHUzLnHM2OWM2jWeFssJCU8Uwml7z6OpVeC/RqUPhRwvPCd0UeEZKI6QU5/U8SoS6VJWdWA1Vp1WB1ze7Q==",
+ "requires": {
+ "prop-types": "^15.5.9",
+ "react-native-material-buttons": "^0.5.0",
+ "react-native-material-ripple": "^0.8.0",
+ "react-native-material-textfield": "^0.12.0"
+ }
+ },
+ "react-native-material-ripple": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/react-native-material-ripple/-/react-native-material-ripple-0.8.0.tgz",
+ "integrity": "sha512-ZgamZTJlrAPMg5Im8+ruK3zsSDHdPKgYA52qK7g0x/LJvzE/99M01kjmUVERqQAHxlVzOfIfVpxn9SjzNn6TEA==",
+ "requires": {
+ "prop-types": "^15.5.10"
+ }
+ },
+ "react-native-material-textfield": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/react-native-material-textfield/-/react-native-material-textfield-0.12.0.tgz",
+ "integrity": "sha512-eB2xjsOtdrQ4KuikXeGf0CSYS4Vg9K7ii5YsWX57VvzPSVp08P8bdqTrLY6QucBR397YWlewN/n17H34kd7teA==",
+ "requires": {
+ "prop-types": "^15.5.9"
+ }
+ },
"react-native-paper": {
"version": "5.0.0-rc.9",
"resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-5.0.0-rc.9.tgz",
@@ -32347,11 +33735,10 @@
}
},
"react-native-reanimated": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.9.1.tgz",
- "integrity": "sha512-309SIhDBwY4F1n6e5Mr5D1uPZm2ESIcmZsGXHUu8hpKX4oIOlZj2MilTk+kHhi05LjChoJkcpfkstotCJmPRPg==",
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.12.0.tgz",
+ "integrity": "sha512-nrlPyw+Hx9u4iJhZk9PoTvDo/QmVAd+bo7OK9Tv3hveNEF9++5oig/g3Uv9V93shy9avTYGsUprUvAEt/xdzeQ==",
"requires": {
- "@babel/plugin-proposal-export-namespace-from": "^7.17.12",
"@babel/plugin-transform-object-assign": "^7.16.7",
"@babel/preset-typescript": "^7.16.7",
"@types/invariant": "^2.2.35",
@@ -32362,20 +33749,25 @@
}
},
"react-native-safe-area-context": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.3.1.tgz",
- "integrity": "sha512-cEr7fknJCToTrSyDCVNg0GRdRMhyLeQa2NZwVCuzEQcWedOw/59ExomjmzCE4rxrKXs6OJbyfNtFRNyewDaHuA==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz",
+ "integrity": "sha512-N9XTjiuD73ZpVlejHrUWIFZc+6Z14co1K/p1IFMkImU7+avD69F3y+lhkqA2hN/+vljdZrBSiOwXPkuo43nFQA==",
"requires": {}
},
"react-native-screens": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.15.0.tgz",
- "integrity": "sha512-ezC5TibsUYyqPuuHpZoM3iEl6bRzCVBMJeGaFkn7xznuOt1VwkZVub0BvafIEYR/+AQC/RjxzMSQPs1qal0+wA==",
+ "version": "3.18.2",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.18.2.tgz",
+ "integrity": "sha512-ANUEuvMUlsYJ1QKukEhzhfrvOUO9BVH9Nzg+6eWxpn3cfD/O83yPBOF8Mx6x5H/2+sMy+VS5x/chWOOo/U7QJw==",
"requires": {
"react-freeze": "^1.0.0",
"warn-once": "^0.1.0"
}
},
+ "react-native-select-dropdown": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/react-native-select-dropdown/-/react-native-select-dropdown-3.2.1.tgz",
+ "integrity": "sha512-4kLmjm3z9JUzIw98oKdQYvk8XsxhNg5NfKN112m1oIufu+6w2HcPw438rVpXzrWntvs9ZLf8Za6ZQO6GqZHdzA=="
+ },
"react-native-vector-icons": {
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz",
@@ -32500,11 +33892,6 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "tslib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
- "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
@@ -32545,9 +33932,9 @@
"integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
},
"regenerator-transform": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
- "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz",
+ "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==",
"requires": {
"@babel/runtime": "^7.8.4"
}
@@ -32733,9 +34120,9 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"reselect": {
- "version": "4.1.6",
- "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz",
- "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ=="
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz",
+ "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A=="
},
"resolve": {
"version": "1.22.1",
@@ -32879,9 +34266,9 @@
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"scheduler": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
- "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz",
+ "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==",
"requires": {
"loose-envify": "^1.1.0"
}
@@ -33014,6 +34401,13 @@
"integrity": "sha512-3vmBkMZLQO+BR4RPHcyRGdE09XCF6cvxzk2N2qn8Er3F91cy8Qt7VvEbZBOpaL53qsBbe2cFOefU6tRY6WDelA==",
"requires": {
"type-fest": "^0.12.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz",
+ "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg=="
+ }
}
},
"serialize-javascript": {
@@ -33184,16 +34578,6 @@
"bplist-creator": "0.1.0",
"bplist-parser": "0.3.1",
"plist": "^3.0.5"
- },
- "dependencies": {
- "bplist-parser": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
- "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
- "requires": {
- "big-integer": "1.6.x"
- }
- }
}
},
"simple-swizzle": {
@@ -33818,9 +35202,9 @@
"integrity": "sha512-EBNuMVSxpssuFcJq/c4zmZ4tpCyX9E27hz5xPJhw4URjRHcYXPHh8rDHY/tJsw5gtP0+tIL3IBYeQVIYjdZFhg=="
},
"sucrase": {
- "version": "3.28.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.28.0.tgz",
- "integrity": "sha512-TK9600YInjuiIhVM3729rH4ZKPOsGeyXUwY+Ugu9eilNbdTFyHr6XcAGYbRVZPDgWj6tgI7bx95aaJjHnbffag==",
+ "version": "3.29.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.29.0.tgz",
+ "integrity": "sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==",
"requires": {
"commander": "^4.0.0",
"glob": "7.1.6",
@@ -33992,32 +35376,18 @@
}
},
"temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ=="
},
"tempy": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz",
- "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz",
+ "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==",
"requires": {
- "del": "^6.0.0",
- "is-stream": "^2.0.0",
- "temp-dir": "^2.0.0",
- "type-fest": "^0.16.0",
- "unique-string": "^2.0.0"
- },
- "dependencies": {
- "is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
- },
- "type-fest": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
- "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg=="
- }
+ "temp-dir": "^1.0.0",
+ "type-fest": "^0.3.1",
+ "unique-string": "^1.0.0"
}
},
"terminal-link": {
@@ -34332,9 +35702,9 @@
"integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw=="
},
"tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"tty-browserify": {
"version": "0.0.0",
@@ -34342,9 +35712,9 @@
"integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw=="
},
"type-fest": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz",
- "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg=="
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ=="
},
"type-is": {
"version": "1.6.18",
@@ -34466,11 +35836,11 @@
}
},
"unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
"requires": {
- "crypto-random-string": "^2.0.0"
+ "crypto-random-string": "^1.0.0"
}
},
"universalify": {
@@ -35095,17 +36465,17 @@
"integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw=="
},
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
@@ -35866,6 +37236,14 @@
}
}
},
+ "xml-js": {
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
+ "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
+ "requires": {
+ "sax": "^1.2.4"
+ }
+ },
"xml2js": {
"version": "0.4.23",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
diff --git a/src/frontend/react_native_frontend/package.json b/src/frontend/react_native_frontend/package.json
index 9983a1a..52b16c3 100644
--- a/src/frontend/react_native_frontend/package.json
+++ b/src/frontend/react_native_frontend/package.json
@@ -1,32 +1,39 @@
{
- "name": "project1",
+ "name": "transfergo",
"version": "1.0.0",
- "main": "node_modules/expo/AppEntry.js",
+ "proxy": "http://127.0.0.1:8000",
"scripts": {
- "start": "expo start",
- "android": "expo start --android",
- "ios": "expo start --ios",
+ "start": "expo start --dev-client",
+ "android": "expo run:android",
+ "ios": "expo run:ios",
"web": "expo start --web"
},
"dependencies": {
- "@expo/webpack-config": "^0.17.0",
- "@react-native-community/datetimepicker": "6.2.0",
+ "@expo/webpack-config": "^0.17.2",
+ "@react-native-async-storage/async-storage": "~1.17.3",
+ "@react-native-community/datetimepicker": "6.5.2",
+ "@react-native-picker/picker": "2.4.8",
"@react-navigation/bottom-tabs": "^6.4.0",
"@react-navigation/drawer": "^6.5.6",
"@react-navigation/native": "^6.0.14",
"@react-navigation/native-stack": "^6.9.2",
- "expo": "~46.0.16",
- "expo-status-bar": "~1.4.0",
+ "axios": "^1.2.1",
+ "expo": "^47.0.0",
+ "expo-dev-client": "~2.0.1",
+ "expo-splash-screen": "~0.17.5",
+ "expo-status-bar": "~1.4.2",
"material-icons-react": "^1.0.4",
- "react": "18.0.0",
- "react-dom": "18.0.0",
- "react-native": "0.69.6",
+ "react": "18.1.0",
+ "react-dom": "18.1.0",
+ "react-native": "0.70.5",
"react-native-date-picker": "^4.2.6",
- "react-native-gesture-handler": "~2.5.0",
+ "react-native-gesture-handler": "~2.8.0",
+ "react-native-material-dropdown": "^0.11.1",
"react-native-paper": "^5.0.0-rc.9",
- "react-native-reanimated": "~2.9.1",
- "react-native-safe-area-context": "^4.3.1",
- "react-native-screens": "~3.15.0",
+ "react-native-reanimated": "~2.12.0",
+ "react-native-safe-area-context": "4.4.1",
+ "react-native-screens": "~3.18.0",
+ "react-native-select-dropdown": "^3.2.1",
"react-native-vector-icons": "^9.2.0",
"react-native-web": "~0.18.7"
},
diff --git a/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swm b/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swm
new file mode 100644
index 0000000..8155f5d
Binary files /dev/null and b/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swm differ
diff --git a/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swn b/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swn
new file mode 100644
index 0000000..51d99eb
Binary files /dev/null and b/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swn differ
diff --git a/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swo b/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swo
new file mode 100644
index 0000000..1de9615
Binary files /dev/null and b/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swo differ
diff --git a/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swp b/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swp
new file mode 100644
index 0000000..9f04f3f
Binary files /dev/null and b/src/frontend/react_native_frontend/screens/.StartScreen.jsx.swp differ
diff --git a/src/frontend/react_native_frontend/screens/AccountManager.jsx b/src/frontend/react_native_frontend/screens/AccountManager.jsx
new file mode 100644
index 0000000..9b08925
--- /dev/null
+++ b/src/frontend/react_native_frontend/screens/AccountManager.jsx
@@ -0,0 +1,33 @@
+import React from "react";
+import { createNativeStackNavigator } from "@react-navigation/native-stack";
+import AccountScreen from "../screens/AccountScreen";
+import Password from "./Password";
+import TransactionList from "./TransactionList";
+
+const Stack = createNativeStackNavigator();
+const Accountmanager = () => {
+ return (
+
+
+
+
+
+ );
+};
+
+export default Accountmanager;
+
+
+
diff --git a/src/frontend/react_native_frontend/screens/AccountScreen.jsx b/src/frontend/react_native_frontend/screens/AccountScreen.jsx
index ae45b23..403f152 100644
--- a/src/frontend/react_native_frontend/screens/AccountScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/AccountScreen.jsx
@@ -1,26 +1,30 @@
-import React from "react";
+import React, { useContext } from "react";
import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
+import MaterialIcons from "react-native-vector-icons/MaterialIcons";
import Header from "../components/Header";
+import { AuthContext } from "../context/AuthContext";
-
-const AccountScreen = () => {
+const AccountScreen = ({navigation}) => {
+ const {userAccount} = useContext(AuthContext);
return (
-
+
Current balance
- 0000
+ {userAccount.balance} FCFA
-
- Last transaction
- 15-06-22
-
-
+ {navigation.navigate('TransactionList')}}>
+ View account transactions
+
+
+ {navigation.navigate('Password')}}>
Change password
+
Forgot password
+
)
@@ -29,7 +33,6 @@ const AccountScreen = () => {
export default AccountScreen;
const styles = StyleSheet.create({
-
align: {
alignItems: "center",
flexDirection: 'row',
@@ -43,6 +46,9 @@ const styles = StyleSheet.create({
marginRight: 10,
},
btn: {
+ alignItems: "center",
+ flexDirection: 'row',
+ justifyContent: 'space-between',
backgroundColor: '#2137B2',
color: "#fff",
padding: 20,
diff --git a/src/frontend/react_native_frontend/screens/DoTransfer.jsx b/src/frontend/react_native_frontend/screens/DoTransfer.jsx
new file mode 100644
index 0000000..0941bc3
--- /dev/null
+++ b/src/frontend/react_native_frontend/screens/DoTransfer.jsx
@@ -0,0 +1,112 @@
+import React, { useState, useContext } from "react";
+import { View, Text, TextInput, StyleSheet, TouchableOpacity } from "react-native";
+import { Picker } from "@react-native-picker/picker";
+import SelectDropdown from 'react-native-select-dropdown'
+import Header from "../components/Header";
+import { AuthContext } from "../context/AuthContext";
+
+const DoTransfer = ({navigation}) => {
+ const [amount, setAmount] = useState(null);
+ const [type, setType] = useState(null);
+ const [number, setNumber] = useState(null);
+ const {transfer} = useContext(AuthContext);
+ const data = ["cash_in", "transfert", "withdraw"];
+ const send = (amount, type, number) => {
+ if(amount == null || type == null || number == null){
+ alert("Fill the required fields");
+ }else{
+ transfer(amount, type, number)
+ setAmount(null);
+ setType(null);
+ setNumber(null)
+ }
+ }
+
+ return(
+
+
+
+ Enter amount
+ setAmount(text)}
+ />
+
+
+ Enter Recipient number
+ setNumber(text)}
+ />
+
+
+
+ Enter transaction type
+
+ {
+ setType(selectedItem)
+ }}
+ buttonTextAfterSelection={(selectedItem, index) => {
+ // text represented after item is selected
+ // if data array is an array of objects then return selectedItem.property to render after item is selected
+ return selectedItem
+ }}
+ rowTextForSelection={(item, index) => {
+ // text represented for each item in dropdown
+ // if data array is an array of objects then return item.property to represent item in dropdown
+ return item
+ }}
+ />
+
+
+
+
+ {send(amount, type, number)}}>
+ Transfer
+
+
+
+
+
+
+
+ );
+}
+
+export default DoTransfer;
+
+const styles = StyleSheet.create({
+ inputField: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ borderColor: "#ccc",
+ borderWidth: 1,
+ borderRadius: 10,
+ padding: 20,
+ margin: 10,
+ marginBottom: 5,
+ backgroundColor: '#ccc'
+ },
+ btn: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderColor: "#ccc",
+ borderWidth: 1,
+ borderRadius: 10,
+ padding: 20,
+ margin: 10,
+ marginBottom: 5,
+ backgroundColor: '#2137B2'
+ },
+ })
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/screens/EmtyList.jsx b/src/frontend/react_native_frontend/screens/EmtyList.jsx
new file mode 100644
index 0000000..9b115ab
--- /dev/null
+++ b/src/frontend/react_native_frontend/screens/EmtyList.jsx
@@ -0,0 +1,12 @@
+import React from "react";
+import { View, Text } from "react-native";
+
+const EmptyList = () => {
+ return(
+
+ No transaction
+
+ )
+}
+
+export default EmptyList;
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/screens/HelpScreen.jsx b/src/frontend/react_native_frontend/screens/HelpScreen.jsx
index 1887d10..941a723 100644
--- a/src/frontend/react_native_frontend/screens/HelpScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/HelpScreen.jsx
@@ -1,14 +1,34 @@
import React from "react";
-import { View, Text } from "react-native";
+import { View, Text, StyleSheet } from "react-native";
import Header from "../components/Header";
-
const HelpScreen = ({navigation}) => {
return (
- navigation.openDrawer()}/>
+
+
+ Contact us via teyouronan@gmail.com for help
+
)
}
-export default HelpScreen;
\ No newline at end of file
+export default HelpScreen;
+const styles = StyleSheet.create({
+ btn: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ backgroundColor: '#2137B2',
+ color: "#fff",
+ padding: 20,
+ borderRadius: 10,
+ marginBottom: 5,
+ marginTop: 10,
+ marginLeft: 10,
+ marginRight: 10,
+ },
+ txt: {
+ color: "white",
+ }
+});
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/screens/HomeScreen.jsx b/src/frontend/react_native_frontend/screens/HomeScreen.jsx
index 61a973f..f36a535 100644
--- a/src/frontend/react_native_frontend/screens/HomeScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/HomeScreen.jsx
@@ -1,10 +1,7 @@
-import { StatusBar } from "expo-status-bar";
import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import MaterialIcons from "react-native-vector-icons/MaterialIcons";
-
-// screens
import ProfilScreen from "./ProfilScreen";
import TransferScreen from "./TransferScreen";
import SettingScreen from "./SettingScreen";
@@ -13,7 +10,6 @@ import HelpScreen from "./HelpScreen";
const Stack = createNativeStackNavigator();
const Tab = createBottomTabNavigator();
-
export default function App() {
return (
<>
diff --git a/src/frontend/react_native_frontend/screens/LoginScreen.jsx b/src/frontend/react_native_frontend/screens/LoginScreen.jsx
index 375fa1f..41c7a39 100644
--- a/src/frontend/react_native_frontend/screens/LoginScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/LoginScreen.jsx
@@ -1,77 +1,92 @@
-import { setStatusBarStyle, StatusBar } from "expo-status-bar";
-import React, { useState } from "react";
-import { Platform, NativeModules } from 'react-native';
+import React, { useContext, useState } from "react";
+import { Platform, KeyboardAvoidingView, NativeModules } from 'react-native';
import { StyleSheet, Text, View, TextInput, TouchableOpacity, Button, SafeAreaView} from 'react-native';
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
import CustomButton from "../components/CustomButton";
import InputField from "../components/InputField";
+import { AuthContext } from "../context/AuthContext";
const LoginScreen = ({navigation}) => {
+ const [username, setUsername] = useState(null);
+ const [password, setPassword] = useState(null);
+ const {login} = useContext(AuthContext);
return (
-
-
-
- TF
-
-
-
-
- Login
-
+
+
+
+
+ TF
+
+
-
- }
- keyboardType="email-address"
- />
+
+ Login
+
-
- }
- inputType="password"
- fieldButtonLabel={"Forgot?"}
- fieldButtonfunction={() => {}}
- />
+
+ }
+ keyboardType="username"
+ value={username}
+ onChangeText={text => setUsername(text)}
+ />
- navigation.navigate('Profile')}/>
+
+ }
+ inputType="password"
+ fieldButtonLabel={"Forgot?"}
+ fieldButtonfunction={() => {}}
+ value={password}
+ onChangeText={text => setPassword(text)}
+ />
-
- New to the app?
- navigation.navigate('Register')}>
- Register
-
-
+ {
+ if(username == null || password == null) {
+ alert("Either user name or password are incorrect, please verify and retry")
+ }else {
+ login(username, password)
+ }
+ }}/>
+
+ New to the app?
+ navigation.navigate('Register')}>
+ Register
+
+
-
+
+
)
}
export default LoginScreen
-
const styles = StyleSheet.create({
-
icon: {
width: 200,
height: 200,
diff --git a/src/frontend/react_native_frontend/screens/MessageScreen.jsx b/src/frontend/react_native_frontend/screens/MessageScreen.jsx
index 5733326..51331ca 100644
--- a/src/frontend/react_native_frontend/screens/MessageScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/MessageScreen.jsx
@@ -1,25 +1,37 @@
import React from "react";
-import { View, Text, StyleSheet, ScrollView } from "react-native";
+import { View, Text, StyleSheet } from "react-native";
import Header from "../components/Header";
-import MaterialIcons from "react-native-vector-icons/MaterialIcons";
-
const MessageScreen = ({navigation}) => {
return (
- navigation.openDrawer()}/>
-
-
-
+
+
+
+ Discussion with our customer center available soon Available
+
+
-
)
-}
+};
export default MessageScreen;
const styles = StyleSheet.create(
{
-
+ tex: {
+ backgroundColor: '#2137B2',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ margin: 20,
+ borderRadius: 10,
+ paddingTop: 20,
+ paddingBottom: 20,
+ },
}
)
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/screens/Password.jsx b/src/frontend/react_native_frontend/screens/Password.jsx
new file mode 100644
index 0000000..eae8054
--- /dev/null
+++ b/src/frontend/react_native_frontend/screens/Password.jsx
@@ -0,0 +1,80 @@
+import React, { useState, useContext } from "react";
+import { View, Text, TextInput, StyleSheet, TouchableOpacity } from "react-native";
+import Header from "../components/Header";
+import { AuthContext } from "../context/AuthContext";
+
+const Password = ({navigation}) => {
+ const [old_password, setPassword] = useState(null);
+ const [new_password, setNew_password] = useState(null);
+ const [confirm_password, setConfirm_password] = useState(null);
+ const {changePassword} = useContext(AuthContext);
+ const change = (old_password, new_password, confirm_password) => {
+ if(new_password == confirm_password) {
+ changePassword(old_password, new_password, confirm_password)
+ }else {
+ alert("Verify the new password fields are equal");
+ }
+ }
+ return(
+
+
+
+ Current password
+ setPassword(text)}
+ />
+
+
+ New password
+ setNew_password(text)}
+ />
+
+
+ Confirm new password
+ setConfirm_password(text)}
+ />
+
+
+ {change(old_password, new_password, confirm_password)}}>
+ Confirm
+
+
+
+
+ );
+}
+
+export default Password;
+
+const styles = StyleSheet.create({
+ inputField: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ borderColor: "#ccc",
+ borderWidth: 1,
+ borderRadius: 10,
+ padding: 20,
+ margin: 10,
+ marginBottom: 5,
+ backgroundColor: '#ccc'
+ },
+ btn: {
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderColor: "#ccc",
+ borderWidth: 1,
+ borderRadius: 10,
+ padding: 20,
+ margin: 10,
+ marginBottom: 5,
+ backgroundColor: '#2137B2'
+ },
+ })
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/screens/ProfilScreen.jsx b/src/frontend/react_native_frontend/screens/ProfilScreen.jsx
index d8f4aef..c309e66 100644
--- a/src/frontend/react_native_frontend/screens/ProfilScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/ProfilScreen.jsx
@@ -1,19 +1,58 @@
-import React from "react";
+import React, { useState, useContext } from "react";
import { View, Text, StyleSheet, ScrollView } from "react-native";
import Header from "../components/Header";
-import MaterialIcons from "react-native-vector-icons/MaterialIcons";
-
+import { AuthContext } from "../context/AuthContext";
const ProfilScreen = ({navigation}) => {
+ const {userInfo} = useContext(AuthContext);
+ const {userAccount} = useContext(AuthContext);
+ const {userTransactionList} = useContext(AuthContext);
+ let bd = userInfo.profile.birthday;
+ bd = bd.split("-").reverse().join("-");
+ const last = (userTransactionList) => {
+ var lastDate = "None";
+
+ if(!userTransactionList.length) {
+ return lastDate;
+ }else {
+ lastDate = userTransactionList[0].date;
+ lastDate = (lastDate.substring(0,10));
+ lastDate = lastDate.split("-").reverse().join("-");
+ return lastDate;
+ }
+ }
+
return (
- navigation.openDrawer()}/>
-
-
- Welcome, Terb
-
+
+
+
+ Welcome, {userInfo.profile.user.username}
+
+
+
+
+
+ Balance
+ {userAccount.balance} FCFA
+
+
+ Last transaction
+ {last(userTransactionList)}
+
+
+ Phone
+ {userInfo.profile.phone}
+
+
+ My birthday
+ {bd}
+
+
+ Mail
+ {userInfo.profile.user.email}
+
-
@@ -30,7 +69,23 @@ const styles = StyleSheet.create(
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
- paddingRight: 10,
- }
+ borderBottomLeftRadius: 10,
+ borderBottomRightRadius: 10,
+ paddingTop: 20,
+ paddingBottom: 20,
+
+ },
+ align: {
+ alignItems: "center",
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ padding: 20,
+ backgroundColor: '#ccc',
+ borderRadius: 10,
+ marginBottom: 5,
+ marginTop: 10,
+ marginLeft: 10,
+ marginRight: 10,
+ },
}
)
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/screens/RegisterScreen.jsx b/src/frontend/react_native_frontend/screens/RegisterScreen.jsx
index 21426f8..054fef3 100644
--- a/src/frontend/react_native_frontend/screens/RegisterScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/RegisterScreen.jsx
@@ -1,12 +1,55 @@
-import { setStatusBarStyle, StatusBar } from "expo-status-bar";
-import React, { useState } from "react";
-import { StyleSheet, Text, View, ScrollView, TouchableOpacity, SafeAreaView, Platform} from 'react-native';
+import React, { useState, useContext } from "react";
+import { StyleSheet, Text, View, ScrollView, TouchableOpacity, SafeAreaView, KeyboardAvoidingView, Platform} from 'react-native';
+import DateTimePicker from '@react-native-community/datetimepicker';
import MaterialIcons from 'react-native-vector-icons/MaterialIcons';
import InputField from "../components/InputField";
import CustomButton from "../components/CustomButton";
+import { AuthContext } from "../context/AuthContext";
const RegisterScreen = ({navigation}) => {
+ const {register} = useContext(AuthContext);
+ const [username, setUsername] = useState(null);
+ const [first_name, setFirst_name] = useState(null);
+ const [last_name, setLast_name] = useState(null);
+ const [email, setEmail] = useState(null);
+ const [adress, setAdress] = useState(null);
+ const [phone, setPhone] = useState(null);
+ const [password1, setPassword1] = useState(null);
+ const [password2, setPassword2] = useState(null);
+ const [birthday, setBirthday] = useState(new Date(1598051730000));
+ const [mode, setMode] = useState('date');
+ const [show, setShow] = useState(false);
+ const onChange = (event, selectedBirthday) => {
+ const currentBirthday = selectedBirthday;
+ setShow(false);
+ setBirthday(currentBirthday);
+ };
+
+ const showMode = (currentMode) => {
+ if (Platform.OS === 'android') {
+ setShow(false);
+ // for iOS, add a button that closes the picker
+ }
+ setMode(currentMode);
+ };
+
+ const showDatepicker = () => {
+ showMode('date');
+ };
+
+ const verifyPassword = (password1, password2, username, first_name, last_name, email, phone, birthday, adress) => {
+ if(password1 != null && password2 != null) {
+ if(password1 === password2) {
+ register(username, first_name, last_name, email, password1, phone, birthday.toLocaleDateString(), adress);
+ navigation.goBack();
+ }else {
+ alert("Password do not match");
+ }
+ }else {
+ alert("Some fields may be empty")
+ }
+ }
return (
{
paddingTop: Platform.OS === 'android' ? StatusBarManager.HEIGHT :0, }}
>
+
+
+
TF
@@ -33,60 +79,132 @@ const RegisterScreen = ({navigation}) => {
style={{marginRight: 5}}
/>
}
+ value={username}
+ onChangeText={text => setUsername(text)}
+ />
+
+ }
+ value={first_name}
+ onChangeText={text => setFirst_name(text)}
/>
}
- keyboardType="email-address"
+ value={last_name}
+ onChangeText={text => setLast_name(text)}
/>
}
- inputType="password"
+ keyboardType="email-address"
+ value={email}
+ onChangeText={text => setEmail(text)}
/>
+
}
- inputType="password"
+ value={phone}
+ onChangeText={text => setPhone(text)}
/>
+
- setOpen(true)}>
- Date of birth
+
+
+ Date of birth: {birthday.toLocaleDateString()}
+
+
+
+ }
+ value={adress}
+ onChangeText={text => setAdress(text)}
+ />
- {}} />
+
+ }
+ inputType="password"
+ value={password1}
+ onChangeText = {text => setPassword1(text)}
+ />
+
+ }
+ inputType="password"
+ value={password2}
+ onChangeText = {text => setPassword2(text)}
+ />
+
+ {verifyPassword(password1, password2, username, first_name, last_name, email, phone, birthday, adress)}} />
Already registered?
@@ -94,8 +212,7 @@ const RegisterScreen = ({navigation}) => {
Login
-
-
+
)
@@ -103,9 +220,7 @@ const RegisterScreen = ({navigation}) => {
export default RegisterScreen
-
const styles = StyleSheet.create({
-
icon: {
width: 200,
height: 200,
diff --git a/src/frontend/react_native_frontend/screens/SettingScreen.jsx b/src/frontend/react_native_frontend/screens/SettingScreen.jsx
index 2624f9a..e2e16f7 100644
--- a/src/frontend/react_native_frontend/screens/SettingScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/SettingScreen.jsx
@@ -1,14 +1,45 @@
import React from "react";
-import { View, Text } from "react-native";
+import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
+import MaterialIcons from "react-native-vector-icons/MaterialIcons";
import Header from "../components/Header";
-
const SettingScreen = ({navigation}) => {
return (
- navigation.openDrawer()} />
+
+
+ Language
+
+
+
+ Navigation tutorial
+
+
+
+ App info
+
+
)
}
-export default SettingScreen;
\ No newline at end of file
+export default SettingScreen;
+
+const styles = StyleSheet.create({
+ btn: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ backgroundColor: '#2137B2',
+ color: "#fff",
+ padding: 20,
+ borderRadius: 10,
+ marginBottom: 5,
+ marginTop: 10,
+ marginLeft: 10,
+ marginRight: 10,
+ },
+ txt: {
+ color: "white",
+ }
+})
\ No newline at end of file
diff --git a/src/frontend/react_native_frontend/screens/StartScreen.jsx b/src/frontend/react_native_frontend/screens/StartScreen.jsx
index 9a07dbf..daa0c6d 100644
--- a/src/frontend/react_native_frontend/screens/StartScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/StartScreen.jsx
@@ -1,22 +1,20 @@
-import { setStatusBarStyle, StatusBar } from "expo-status-bar";
import React from "react";
+import { StatusBar } from "expo-status-bar";
import MaterialIcons from "react-native-vector-icons/MaterialIcons";
import {
SafeAreaView,
StyleSheet,
Text,
View,
- TouchableOpacity
+ TouchableOpacity,
+ Platform
} from 'react-native';
-import { Button } from "react-native";
-
const StartScreen = ({navigation}) => {
return (
{
-
navigation.navigate('Login')}
style={styles.btn}
@@ -46,7 +43,6 @@ const StartScreen = ({navigation}) => {
export default StartScreen
-
const styles = StyleSheet.create({
go: {
fontSize: 30,
diff --git a/src/frontend/react_native_frontend/screens/TransactionList.jsx b/src/frontend/react_native_frontend/screens/TransactionList.jsx
new file mode 100644
index 0000000..f9a12c1
--- /dev/null
+++ b/src/frontend/react_native_frontend/screens/TransactionList.jsx
@@ -0,0 +1,18 @@
+import React, { useContext } from "react";
+import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
+import Header from "../components/Header";
+import { AuthContext } from "../context/AuthContext";
+import List from "../components/List";
+import EmptyList from "./EmtyList";
+
+const TransactionList = ({navigation}) => {
+ const {userTransactionList} = useContext(AuthContext);
+ return (
+
+
+ {userTransactionList.length == 0 ? :
}
+
+ )
+}
+
+export default TransactionList;
diff --git a/src/frontend/react_native_frontend/screens/Transactions.jsx b/src/frontend/react_native_frontend/screens/Transactions.jsx
new file mode 100644
index 0000000..555d034
--- /dev/null
+++ b/src/frontend/react_native_frontend/screens/Transactions.jsx
@@ -0,0 +1,28 @@
+import React from "react";
+import { createNativeStackNavigator } from "@react-navigation/native-stack";
+import TransferScreen from "../screens/TransferScreen";
+import DoTransfer from "../screens/DoTransfer";
+
+const Stack = createNativeStackNavigator();
+
+const Transactions = () => {
+ return (
+
+
+
+
+ );
+};
+
+export default Transactions;
+
+
+
diff --git a/src/frontend/react_native_frontend/screens/TransferScreen.jsx b/src/frontend/react_native_frontend/screens/TransferScreen.jsx
index 1fbb394..df95f85 100644
--- a/src/frontend/react_native_frontend/screens/TransferScreen.jsx
+++ b/src/frontend/react_native_frontend/screens/TransferScreen.jsx
@@ -1,32 +1,39 @@
import React from "react";
import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
+import MaterialIcons from "react-native-vector-icons/MaterialIcons";
import Header from "../components/Header";
-
-const TransferScreen = () => {
+const TransferScreen = ({navigation}) => {
return (
-
+
Recharge account
+
-
+ {navigation.navigate('DoTransfer')}}>
Money transfer
+
Recharge airtime
+
Buy internet bundles
+
)
-}
+};
export default TransferScreen;
const styles = StyleSheet.create({
btn: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
backgroundColor: '#2137B2',
color: "#fff",
padding: 20,
@@ -39,4 +46,4 @@ const styles = StyleSheet.create({
txt: {
color: "white",
}
-})
\ No newline at end of file
+});
\ No newline at end of file