normal Model Upload (teja)
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +2 -0
- datalab/run.sh +75 -0
- datalab/web/app.js +78 -0
- datalab/web/appSettings.js +144 -0
- datalab/web/config/basePath.json +1 -0
- datalab/web/config/settings.json +8 -0
- datalab/web/json_rpc.js +137 -0
- datalab/web/jupyter.js +213 -0
- datalab/web/logging.js +129 -0
- datalab/web/lsp/capabilities_node.js +3 -0
- datalab/web/lsp/extensions_node.js +14 -0
- datalab/web/lsp/protocol_node.js +191 -0
- datalab/web/lsp/settings_node.js +44 -0
- datalab/web/lsp/text_document_node.js +0 -0
- datalab/web/lsp/window_node.js +24 -0
- datalab/web/lsp/workspace_node.js +41 -0
- datalab/web/node_modules/.bin/bunyan +3 -0
- datalab/web/node_modules/.bin/mkdirp +3 -0
- datalab/web/node_modules/.bin/ncp +3 -0
- datalab/web/node_modules/.bin/rimraf +3 -0
- datalab/web/node_modules/.bin/semver +3 -0
- datalab/web/node_modules/.package-lock.json +634 -0
- datalab/web/node_modules/accepts/HISTORY.md +224 -0
- datalab/web/node_modules/accepts/LICENSE +23 -0
- datalab/web/node_modules/accepts/README.md +143 -0
- datalab/web/node_modules/accepts/index.js +238 -0
- datalab/web/node_modules/accepts/package.json +46 -0
- datalab/web/node_modules/after/.npmignore +2 -0
- datalab/web/node_modules/after/.travis.yml +12 -0
- datalab/web/node_modules/after/LICENCE +19 -0
- datalab/web/node_modules/after/README.md +115 -0
- datalab/web/node_modules/after/index.js +28 -0
- datalab/web/node_modules/after/package.json +28 -0
- datalab/web/node_modules/after/test/after-test.js +120 -0
- datalab/web/node_modules/arraybuffer.slice/.npmignore +17 -0
- datalab/web/node_modules/arraybuffer.slice/LICENCE +18 -0
- datalab/web/node_modules/arraybuffer.slice/Makefile +8 -0
- datalab/web/node_modules/arraybuffer.slice/README.md +17 -0
- datalab/web/node_modules/arraybuffer.slice/index.js +29 -0
- datalab/web/node_modules/arraybuffer.slice/package.json +16 -0
- datalab/web/node_modules/arraybuffer.slice/test/slice-buffer.js +227 -0
- datalab/web/node_modules/async-limiter/.travis.yml +7 -0
- datalab/web/node_modules/async-limiter/LICENSE +8 -0
- datalab/web/node_modules/async-limiter/coverage/coverage.json +1 -0
- datalab/web/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html +73 -0
- datalab/web/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html +246 -0
- datalab/web/node_modules/async-limiter/coverage/lcov-report/base.css +182 -0
- datalab/web/node_modules/async-limiter/coverage/lcov-report/index.html +73 -0
- datalab/web/node_modules/async-limiter/coverage/lcov-report/prettify.css +1 -0
- datalab/web/node_modules/async-limiter/coverage/lcov-report/prettify.js +1 -0
.gitattributes
CHANGED
@@ -37,3 +37,5 @@ sample_data/mnist_test.csv filter=lfs diff=lfs merge=lfs -text
|
|
37 |
sample_data/mnist_train_small.csv filter=lfs diff=lfs merge=lfs -text
|
38 |
updated_data.csv filter=lfs diff=lfs merge=lfs -text
|
39 |
updated_data_train.csv filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
37 |
sample_data/mnist_train_small.csv filter=lfs diff=lfs merge=lfs -text
|
38 |
updated_data.csv filter=lfs diff=lfs merge=lfs -text
|
39 |
updated_data_train.csv filter=lfs diff=lfs merge=lfs -text
|
40 |
+
datalab/web/node_modules/dtrace-provider/build/node_gyp_bins/python3 filter=lfs diff=lfs merge=lfs -text
|
41 |
+
datalab/web/node_modules/node-pty/build/node_gyp_bins/python3 filter=lfs diff=lfs merge=lfs -text
|
datalab/run.sh
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash -e
|
2 |
+
|
3 |
+
# Copyright 2017 Google Inc. All rights reserved.
|
4 |
+
#
|
5 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6 |
+
# you may not use this file except in compliance with the License.
|
7 |
+
# You may obtain a copy of the License at
|
8 |
+
#
|
9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
#
|
11 |
+
# Unless required by applicable law or agreed to in writing, software
|
12 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14 |
+
# See the License for the specific language governing permissions and
|
15 |
+
# limitations under the License.
|
16 |
+
|
17 |
+
# At least one GPU is considered available iff COLAB_GPU=1.
|
18 |
+
export COLAB_GPU="$([[ -c /dev/nvidiactl ]] && echo 1)"
|
19 |
+
|
20 |
+
/usr/local/colab/bin/oom_monitor.sh &
|
21 |
+
|
22 |
+
# Start the Colab proxy to the Jupyter kernel manager.
|
23 |
+
# TODO(b/267667580): Evaluate use of tcmalloc here and possibly other places.
|
24 |
+
( while true; do
|
25 |
+
GCE_METADATA_HOST="${VM_GCE_METADATA_HOST}" \
|
26 |
+
LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libtcmalloc.so.4' \
|
27 |
+
/usr/colab/bin/kernel_manager_proxy \
|
28 |
+
--listen_port="${KMP_LISTEN_PORT}" \
|
29 |
+
--target_port="${KMP_TARGET_PORT}" \
|
30 |
+
${KMP_EXTRA_ARGS} || true
|
31 |
+
sleep 1
|
32 |
+
done & )
|
33 |
+
|
34 |
+
# Start fresh to isolate user-initiated actions from VM build & startup events.
|
35 |
+
for f in /var/log/apt/history.log /var/log/pip.log; do
|
36 |
+
mv "$f" "${f}.bak-run.sh" 2>/dev/null || true # Ignore missing files.
|
37 |
+
done
|
38 |
+
|
39 |
+
# Warm disk buffers for modules we need for kernel startup. (cf: b/116536906)
|
40 |
+
if [[ "${COLAB_WARMUP_DEFAULTS}" == "1" ]]; then
|
41 |
+
python3 -c "import google.colab._kernel"
|
42 |
+
python3 -c "import matplotlib"
|
43 |
+
# importing tensorflow on a TPU VM causes the process to acquire the TPU for
|
44 |
+
# the duration of the import. This makes the TPU effectively unacquirable for
|
45 |
+
# the duration of the warmup, which can break things like probers.
|
46 |
+
if [[ "${COLAB_TPU_1VM}" == "1" ]]; then
|
47 |
+
python3 -c "import tensorflow"
|
48 |
+
else
|
49 |
+
python3 -c "import tensorflow" &
|
50 |
+
fi
|
51 |
+
fi
|
52 |
+
|
53 |
+
# Start the server to handle /files and /api/contents requests.
|
54 |
+
/usr/local/bin/colab-fileshim.py ${COLAB_FILESHIM_EXTRA_ARGS} &
|
55 |
+
|
56 |
+
# Link NVidia tools from a read-only volume mount.
|
57 |
+
for f in $(ls /opt/bin/.nvidia 2>/dev/null); do
|
58 |
+
ln -st /opt/bin "/opt/bin/.nvidia/${f}"
|
59 |
+
ln -st /usr/bin "/opt/bin/.nvidia/${f}"
|
60 |
+
done
|
61 |
+
|
62 |
+
cd /
|
63 |
+
|
64 |
+
# Start the node server.
|
65 |
+
if [[ "${COLAB_HUMAN_READABLE_NODE_LOGS}" == "1" ]]; then
|
66 |
+
PIPE=/tmp/.node.out
|
67 |
+
if ! [[ -p "${PIPE}" ]]; then
|
68 |
+
mkfifo "${PIPE}"
|
69 |
+
fi
|
70 |
+
/datalab/web/node_modules/bunyan/bin/bunyan \
|
71 |
+
-l "${COLAB_NODE_LOG_LEVEL:-info}" < "${PIPE}" &
|
72 |
+
exec >& "${PIPE}"
|
73 |
+
fi
|
74 |
+
exec /tools/node/bin/node /datalab/web/app.js
|
75 |
+
|
datalab/web/app.js
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
/*
|
3 |
+
* Copyright 2015 Google Inc. All rights reserved.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
+
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
+
* the License at
|
8 |
+
*
|
9 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
+
* License for the specific language governing permissions and limitations under
|
15 |
+
* the License.
|
16 |
+
*/
|
17 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
18 |
+
var fs = require("fs");
|
19 |
+
var path = require("path");
|
20 |
+
var appSettings_1 = require("./appSettings");
|
21 |
+
var logging = require("./logging");
|
22 |
+
var server = require("./server");
|
23 |
+
/**
|
24 |
+
* Loads the configuration settings for the application to use.
|
25 |
+
* On first run, this generates any dynamic settings and merges them into the
|
26 |
+
* settings result.
|
27 |
+
* @return the settings object for the application to use.
|
28 |
+
*/
|
29 |
+
function loadAppSettings() {
|
30 |
+
var settingsPath = path.join(__dirname, 'config', 'settings.json');
|
31 |
+
if (!fs.existsSync(settingsPath)) {
|
32 |
+
var msg = "App settings file \"".concat(settingsPath, "\" not found.");
|
33 |
+
console.error(msg);
|
34 |
+
throw new Error(msg);
|
35 |
+
}
|
36 |
+
try {
|
37 |
+
var settings = JSON.parse(fs.readFileSync(settingsPath, 'utf8') || '{}');
|
38 |
+
(0, appSettings_1.applyEnvironmentVariables)(settings);
|
39 |
+
return settings;
|
40 |
+
}
|
41 |
+
catch (e) {
|
42 |
+
console.error(e);
|
43 |
+
throw new Error("Error parsing settings overrides: ".concat(e));
|
44 |
+
}
|
45 |
+
}
|
46 |
+
/**
|
47 |
+
* Load the configuration settings, and then start the server, which
|
48 |
+
* runs indefinitely, listening to and processing incoming HTTP requests.
|
49 |
+
*/
|
50 |
+
var appSettings = loadAppSettings();
|
51 |
+
if (appSettings != null) {
|
52 |
+
logging.initializeLoggers(appSettings);
|
53 |
+
logging.getLogger().info('app: starting with settings: %s', JSON.stringify(appSettings));
|
54 |
+
server.run(appSettings);
|
55 |
+
}
|
56 |
+
/**
|
57 |
+
* Handle shutdown of this process, to also stop the server, which will in turn
|
58 |
+
* stop the associated Jupyter server process.
|
59 |
+
*/
|
60 |
+
function exit() {
|
61 |
+
logging.getLogger().info('app: exit');
|
62 |
+
server.stop();
|
63 |
+
logging.getLogger().info('app: exit: stopped');
|
64 |
+
process.exit(0);
|
65 |
+
}
|
66 |
+
/**
|
67 |
+
* Handle uncaught exceptions to log them.
|
68 |
+
*/
|
69 |
+
function errorHandler(e) {
|
70 |
+
console.error(e.stack);
|
71 |
+
logging.getLogger().error(e, 'Unhandled exception');
|
72 |
+
process.exit(1);
|
73 |
+
}
|
74 |
+
process.on('uncaughtException', errorHandler);
|
75 |
+
process.on('exit', exit);
|
76 |
+
process.on('SIGINT', exit);
|
77 |
+
process.on('SIGTERM', exit);
|
78 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGhpcmRfcGFydHkvY29sYWIvc291cmNlcy9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOztBQUVILHVCQUF5QjtBQUN6QiwyQkFBNkI7QUFFN0IsNkNBQXFFO0FBQ3JFLG1DQUFxQztBQUNyQyxpQ0FBbUM7QUFFbkM7Ozs7O0dBS0c7QUFDSCxTQUFTLGVBQWU7SUFDdEIsSUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRXJFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDakMsSUFBTSxHQUFHLEdBQUcsOEJBQXNCLFlBQVksa0JBQWMsQ0FBQztRQUM3RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILElBQU0sUUFBUSxHQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxDQUM3QyxDQUFDO1FBQ2hCLElBQUEsdUNBQXlCLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQXFDLENBQUMsQ0FBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxJQUFNLFdBQVcsR0FBRyxlQUFlLEVBQUUsQ0FBQztBQUN0QyxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN4QixPQUFPLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDcEIsaUNBQWlDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUdEOzs7R0FHRztBQUNILFNBQVMsSUFBSTtJQUNYLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxZQUFZLENBQUMsQ0FBUTtJQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV2QixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVELE9BQU8sQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFDOUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdFxuICogdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2ZcbiAqIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUXG4gKiBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGVcbiAqIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyXG4gKiB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQge2FwcGx5RW52aXJvbm1lbnRWYXJpYWJsZXMsIEFwcFNldHRpbmdzfSBmcm9tICcuL2FwcFNldHRpbmdzJztcbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCAqIGFzIHNlcnZlciBmcm9tICcuL3NlcnZlcic7XG5cbi8qKlxuICogTG9hZHMgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBhcHBsaWNhdGlvbiB0byB1c2UuXG4gKiBPbiBmaXJzdCBydW4sIHRoaXMgZ2VuZXJhdGVzIGFueSBkeW5hbWljIHNldHRpbmdzIGFuZCBtZXJnZXMgdGhlbSBpbnRvIHRoZVxuICogc2V0dGluZ3MgcmVzdWx0LlxuICogQHJldHVybiB0aGUgc2V0dGluZ3Mgb2JqZWN0IGZvciB0aGUgYXBwbGljYXRpb24gdG8gdXNlLlxuICovXG5mdW5jdGlvbiBsb2FkQXBwU2V0dGluZ3MoKTogQXBwU2V0dGluZ3Mge1xuICBjb25zdCBzZXR0aW5nc1BhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnY29uZmlnJywgJ3NldHRpbmdzLmpzb24nKTtcblxuICBpZiAoIWZzLmV4aXN0c1N5bmMoc2V0dGluZ3NQYXRoKSkge1xuICAgIGNvbnN0IG1zZyA9IGBBcHAgc2V0dGluZ3MgZmlsZSBcIiR7c2V0dGluZ3NQYXRofVwiIG5vdCBmb3VuZC5gO1xuICAgIGNvbnNvbGUuZXJyb3IobXNnKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPVxuICAgICAgICBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhzZXR0aW5nc1BhdGgsICd1dGY4JykgfHwgJ3t9JykgYXNcbiAgICAgICAgQXBwU2V0dGluZ3M7XG4gICAgYXBwbHlFbnZpcm9ubWVudFZhcmlhYmxlcyhzZXR0aW5ncyk7XG4gICAgcmV0dXJuIHNldHRpbmdzO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcihlKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIHBhcnNpbmcgc2V0dGluZ3Mgb3ZlcnJpZGVzOiAke2V9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2FkIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzLCBhbmQgdGhlbiBzdGFydCB0aGUgc2VydmVyLCB3aGljaFxuICogcnVucyBpbmRlZmluaXRlbHksIGxpc3RlbmluZyB0byBhbmQgcHJvY2Vzc2luZyBpbmNvbWluZyBIVFRQIHJlcXVlc3RzLlxuICovXG5jb25zdCBhcHBTZXR0aW5ncyA9IGxvYWRBcHBTZXR0aW5ncygpO1xuaWYgKGFwcFNldHRpbmdzICE9IG51bGwpIHtcbiAgbG9nZ2luZy5pbml0aWFsaXplTG9nZ2VycyhhcHBTZXR0aW5ncyk7XG4gIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuaW5mbyhcbiAgICAgICdhcHA6IHN0YXJ0aW5nIHdpdGggc2V0dGluZ3M6ICVzJywgSlNPTi5zdHJpbmdpZnkoYXBwU2V0dGluZ3MpKTtcbiAgc2VydmVyLnJ1bihhcHBTZXR0aW5ncyk7XG59XG5cblxuLyoqXG4gKiBIYW5kbGUgc2h1dGRvd24gb2YgdGhpcyBwcm9jZXNzLCB0byBhbHNvIHN0b3AgdGhlIHNlcnZlciwgd2hpY2ggd2lsbCBpbiB0dXJuXG4gKiBzdG9wIHRoZSBhc3NvY2lhdGVkIEp1cHl0ZXIgc2VydmVyIHByb2Nlc3MuXG4gKi9cbmZ1bmN0aW9uIGV4aXQoKSB7XG4gIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuaW5mbygnYXBwOiBleGl0Jyk7XG4gIHNlcnZlci5zdG9wKCk7XG4gIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuaW5mbygnYXBwOiBleGl0OiBzdG9wcGVkJyk7XG4gIHByb2Nlc3MuZXhpdCgwKTtcbn1cblxuLyoqXG4gKiBIYW5kbGUgdW5jYXVnaHQgZXhjZXB0aW9ucyB0byBsb2cgdGhlbS5cbiAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGU6IEVycm9yKTogdm9pZCB7XG4gIGNvbnNvbGUuZXJyb3IoZS5zdGFjayk7XG5cbiAgbG9nZ2luZy5nZXRMb2dnZXIoKS5lcnJvcihlLCAnVW5oYW5kbGVkIGV4Y2VwdGlvbicpO1xuICBwcm9jZXNzLmV4aXQoMSk7XG59XG5cbnByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgZXJyb3JIYW5kbGVyKTtcbnByb2Nlc3Mub24oJ2V4aXQnLCBleGl0KTtcbnByb2Nlc3Mub24oJ1NJR0lOVCcsIGV4aXQpO1xucHJvY2Vzcy5vbignU0lHVEVSTScsIGV4aXQpO1xuIl19
|
datalab/web/appSettings.js
ADDED
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
/*
|
3 |
+
* Copyright 2018 Google Inc. All rights reserved.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
+
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
+
* the License at
|
8 |
+
*
|
9 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
+
* License for the specific language governing permissions and limitations under
|
15 |
+
* the License.
|
16 |
+
*/
|
17 |
+
var __values = (this && this.__values) || function(o) {
|
18 |
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
19 |
+
if (m) return m.call(o);
|
20 |
+
if (o && typeof o.length === "number") return {
|
21 |
+
next: function () {
|
22 |
+
if (o && i >= o.length) o = void 0;
|
23 |
+
return { value: o && o[i++], done: !o };
|
24 |
+
}
|
25 |
+
};
|
26 |
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
27 |
+
};
|
28 |
+
var __read = (this && this.__read) || function (o, n) {
|
29 |
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
30 |
+
if (!m) return o;
|
31 |
+
var i = m.call(o), r, ar = [], e;
|
32 |
+
try {
|
33 |
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
34 |
+
}
|
35 |
+
catch (error) { e = { error: error }; }
|
36 |
+
finally {
|
37 |
+
try {
|
38 |
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
39 |
+
}
|
40 |
+
finally { if (e) throw e.error; }
|
41 |
+
}
|
42 |
+
return ar;
|
43 |
+
};
|
44 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
45 |
+
exports.applyEnvironmentVariables = applyEnvironmentVariables;
|
46 |
+
var environmentVariables = {
|
47 |
+
'COLAB_ROOT_REDIRECT': function (settings, value) {
|
48 |
+
settings.colabRedirect = value;
|
49 |
+
},
|
50 |
+
'COLAB_SERVER_PORT': function (settings, value) {
|
51 |
+
settings.serverPort = Number(value);
|
52 |
+
},
|
53 |
+
'COLAB_LANGUAGE_SERVER_PROXY': function (settings, value) {
|
54 |
+
settings.languageServerProxy = value;
|
55 |
+
},
|
56 |
+
'COLAB_SERVER_HOST': function (settings, value) {
|
57 |
+
settings.serverHost = value;
|
58 |
+
},
|
59 |
+
'COLAB_NEXT_JUPYTER_PORT': function (settings, value) {
|
60 |
+
settings.nextJupyterPort = Number(value);
|
61 |
+
},
|
62 |
+
'COLAB_DEBUG_ADAPTER_MUX_PATH': function (settings, value) {
|
63 |
+
settings.debugAdapterMultiplexerPath = value;
|
64 |
+
},
|
65 |
+
'COLAB_DATALAB_ROOT': function (settings, value) {
|
66 |
+
settings.datalabRoot = value;
|
67 |
+
},
|
68 |
+
'COLAB_KERNEL_MANAGER_PROXY_PORT': function (settings, value) {
|
69 |
+
settings.kernelManagerProxyPort = Number(value);
|
70 |
+
},
|
71 |
+
'COLAB_KERNEL_MANAGER_PROXY_HOST': function (settings, value) {
|
72 |
+
settings.kernelManagerProxyHost = value;
|
73 |
+
},
|
74 |
+
'COLAB_LANGUAGE_SERVER_PROXY_LSP_DIRS': function (settings, value) {
|
75 |
+
settings.languageServerProxyArgs = settings.languageServerProxyArgs || [];
|
76 |
+
settings.languageServerProxyArgs.push("--lsp_search_dirs=".concat(value));
|
77 |
+
},
|
78 |
+
'COLAB_LANGUAGE_SERVER_PROXY_ROOT_URL': function (settings, value) {
|
79 |
+
settings.languageServerProxyArgs = settings.languageServerProxyArgs || [];
|
80 |
+
settings.languageServerProxyArgs.push("--language_services_request_root_url=".concat(value));
|
81 |
+
},
|
82 |
+
'COLAB_LANGUAGE_SERVER_PROXY_REQUEST_TIMEOUT': function (settings, value) {
|
83 |
+
settings.languageServerProxyArgs = settings.languageServerProxyArgs || [];
|
84 |
+
settings.languageServerProxyArgs.push("--language_services_request_timeout=".concat(value));
|
85 |
+
},
|
86 |
+
'COLAB_JUPYTER_ALLOW_ORIGIN_PAT': function (settings, value) {
|
87 |
+
settings.jupyterArgs = settings.jupyterArgs || [];
|
88 |
+
settings.jupyterArgs.push("--NotebookApp.allow_origin_pat=\"".concat(value, "\""));
|
89 |
+
settings.jupyterArgs.push("--NotebookApp.allow_origin=");
|
90 |
+
settings.jupyterArgs.push("--NotebookApp.allow_credentials=True");
|
91 |
+
},
|
92 |
+
'COLAB_JUPYTER_DEBUG': function (settings) {
|
93 |
+
settings.jupyterArgs = settings.jupyterArgs || [];
|
94 |
+
settings.jupyterArgs.push("--debug");
|
95 |
+
},
|
96 |
+
'COLAB_JUPYTER_TRANSPORT': function (settings, value) {
|
97 |
+
settings.jupyterArgs = settings.jupyterArgs || [];
|
98 |
+
settings.jupyterArgs.push("--transport=\"".concat(value, "\""));
|
99 |
+
},
|
100 |
+
'COLAB_JUPYTER_IP': function (settings, value) {
|
101 |
+
settings.jupyterArgs = settings.jupyterArgs || [];
|
102 |
+
settings.jupyterArgs.push("--ip=".concat(value));
|
103 |
+
},
|
104 |
+
'COLAB_GATEWAY_CLIENT_URL': function (settings, value) {
|
105 |
+
settings.jupyterArgs = settings.jupyterArgs || [];
|
106 |
+
settings.jupyterArgs.push("--GatewayClient.url=".concat(value));
|
107 |
+
},
|
108 |
+
'COLAB_JUPYTER_ALLOW_REMOTE_ACCESS': function (settings, value) {
|
109 |
+
settings.jupyterArgs = settings.jupyterArgs || [];
|
110 |
+
settings.jupyterArgs.push("--NotebookApp.allow_remote_access=".concat(value));
|
111 |
+
},
|
112 |
+
'COLAB_JUPYTER_TOKEN': function (settings, value) {
|
113 |
+
settings.jupyterArgs = settings.jupyterArgs || [];
|
114 |
+
settings.jupyterArgs.push("--NotebookApp.token=".concat(value));
|
115 |
+
},
|
116 |
+
'COLAB_JUPYTER_DISABLE_CHECK_XSRF': function (settings, value) {
|
117 |
+
settings.jupyterArgs = settings.jupyterArgs || [];
|
118 |
+
settings.jupyterArgs.push("--NotebookApp.disable_check_xsrf=".concat(value));
|
119 |
+
},
|
120 |
+
'COLAB_FILE_HANDLER_ADDR': function (settings, value) {
|
121 |
+
settings.fileHandlerAddr = value;
|
122 |
+
},
|
123 |
+
};
|
124 |
+
/** Applies any environment variable overrides. */
|
125 |
+
function applyEnvironmentVariables(settings) {
|
126 |
+
var e_1, _a;
|
127 |
+
try {
|
128 |
+
for (var _b = __values(Object.entries(environmentVariables)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
129 |
+
var _d = __read(_c.value, 2), key = _d[0], apply = _d[1];
|
130 |
+
var override = process.env[key];
|
131 |
+
if (override !== undefined) {
|
132 |
+
apply(settings, override);
|
133 |
+
}
|
134 |
+
}
|
135 |
+
}
|
136 |
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
137 |
+
finally {
|
138 |
+
try {
|
139 |
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
140 |
+
}
|
141 |
+
finally { if (e_1) throw e_1.error; }
|
142 |
+
}
|
143 |
+
}
|
144 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwU2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90aGlyZF9wYXJ0eS9jb2xhYi9zb3VyY2VzL2FwcFNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzS0gsOERBT0M7QUE5RkQsSUFBTSxvQkFBb0IsR0FBRztJQUMzQixxQkFBcUIsRUFBRSxVQUFDLFFBQXFCLEVBQUUsS0FBYTtRQUMxRCxRQUFRLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBQ0QsbUJBQW1CLEVBQUUsVUFBQyxRQUFxQixFQUFFLEtBQWE7UUFDeEQsUUFBUSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELDZCQUE2QixFQUFFLFVBQUMsUUFBcUIsRUFBRSxLQUFhO1FBQ2xFLFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUNELG1CQUFtQixFQUFFLFVBQUMsUUFBcUIsRUFBRSxLQUFhO1FBQ3hELFFBQVEsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDRCx5QkFBeUIsRUFBRSxVQUFDLFFBQXFCLEVBQUUsS0FBYTtRQUM5RCxRQUFRLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsOEJBQThCLEVBQUUsVUFBQyxRQUFxQixFQUFFLEtBQWE7UUFDbkUsUUFBUSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQztJQUMvQyxDQUFDO0lBQ0Qsb0JBQW9CLEVBQUUsVUFBQyxRQUFxQixFQUFFLEtBQWE7UUFDekQsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUNELGlDQUFpQyxFQUFFLFVBQUMsUUFBcUIsRUFBRSxLQUFhO1FBQ3RFLFFBQVEsQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELGlDQUFpQyxFQUFFLFVBQUMsUUFBcUIsRUFBRSxLQUFhO1FBQ3RFLFFBQVEsQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7SUFDMUMsQ0FBQztJQUNELHNDQUFzQyxFQUFFLFVBQ3BDLFFBQXFCLEVBQUUsS0FBYTtRQUN0QyxRQUFRLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQztRQUMxRSxRQUFRLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLDRCQUFxQixLQUFLLENBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxzQ0FBc0MsRUFBRSxVQUNwQyxRQUFxQixFQUFFLEtBQWE7UUFDdEMsUUFBUSxDQUFDLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsSUFBSSxFQUFFLENBQUM7UUFDMUUsUUFBUSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FDakMsK0NBQXdDLEtBQUssQ0FBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELDZDQUE2QyxFQUFFLFVBQzNDLFFBQXFCLEVBQUUsS0FBYTtRQUN0QyxRQUFRLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQztRQUMxRSxRQUFRLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUNqQyw4Q0FBdUMsS0FBSyxDQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsZ0NBQWdDLEVBQUUsVUFBQyxRQUFxQixFQUFFLEtBQWE7UUFDckUsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywyQ0FBbUMsS0FBSyxPQUFHLENBQUMsQ0FBQztRQUN2RSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3pELFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELHFCQUFxQixFQUFFLFVBQUMsUUFBcUI7UUFDM0MsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QseUJBQXlCLEVBQUUsVUFBQyxRQUFxQixFQUFFLEtBQWE7UUFDOUQsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyx3QkFBZ0IsS0FBSyxPQUFHLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxRQUFxQixFQUFFLEtBQWE7UUFDdkQsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFRLEtBQUssQ0FBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELDBCQUEwQixFQUFFLFVBQUMsUUFBcUIsRUFBRSxLQUFhO1FBQy9ELFFBQVEsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDbEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsOEJBQXVCLEtBQUssQ0FBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELG1DQUFtQyxFQUMvQixVQUFDLFFBQXFCLEVBQUUsS0FBYTtRQUNuQyxRQUFRLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDRDQUFxQyxLQUFLLENBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDTCxxQkFBcUIsRUFBRSxVQUFDLFFBQXFCLEVBQUUsS0FBYTtRQUMxRCxRQUFRLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDhCQUF1QixLQUFLLENBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxrQ0FBa0MsRUFDOUIsVUFBQyxRQUFxQixFQUFFLEtBQWE7UUFDbkMsUUFBUSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQywyQ0FBb0MsS0FBSyxDQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0wseUJBQXlCLEVBQUUsVUFBQyxRQUFxQixFQUFFLEtBQWE7UUFDOUQsUUFBUSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztDQUNGLENBQUM7QUFFRixrREFBa0Q7QUFDbEQsU0FBZ0IseUJBQXlCLENBQUMsUUFBcUI7OztRQUM3RCxLQUEyQixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUEsZ0JBQUEsNEJBQUUsQ0FBQztZQUF2RCxJQUFBLEtBQUEsbUJBQVksRUFBWCxHQUFHLFFBQUEsRUFBRSxLQUFLLFFBQUE7WUFDcEIsSUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQzs7Ozs7Ozs7O0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxOCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7IHlvdSBtYXkgbm90XG4gKiB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZlxuICogdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVRcbiAqIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZVxuICogTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXJcbiAqIHRoZSBMaWNlbnNlLlxuICovXG5cblxuLyoqIENvbmZpZ3VyYXRpb24gdmFsdWVzIHNoYXJlZCBhY3Jvc3MgdGhlIHdob2xlIGFwcC4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBcHBTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBUaGUgcG9ydCB0aGF0IHRoZSBzZXJ2ZXIgc2hvdWxkIGxpc3RlbiB0by5cbiAgICovXG4gIHNlcnZlclBvcnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogSWYgc2V0LCBsaXN0ZW4gb24gdGhpcyBob3N0bmFtZS5cbiAgICovXG4gIHNlcnZlckhvc3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHN0YXRpYyBhcmd1bWVudHMgdG8gYmUgdXNlZCB3aGVuIGxhdW5jaGluZyBganVweXRlciBub3RlYm9va2AuXG4gICAqL1xuICBqdXB5dGVyQXJncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgdXNlIHRoaXMgYXMgYSBwcmVmaXggdG8gYWxsIGZpbGUgcGF0aHMgb3BlbmVkIG9uIHRoZVxuICAgKiBzZXJ2ZXIgc2lkZS4gVXNlZnVsIGZvciB0ZXN0aW5nIG91dHNpZGUgYSBEb2NrZXIgY29udGFpbmVyLlxuICAgKi9cbiAgZGF0YWxhYlJvb3Q6IHN0cmluZztcblxuICAvKipcbiAgICogSW5pdGlhbCBwb3J0IHRvIHVzZSB3aGVuIHNlYXJjaGluZyBmb3IgYSBmcmVlIEp1cHl0ZXIgcG9ydC5cbiAgICovXG4gIG5leHRKdXB5dGVyUG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBMb2NhbCBkaXJlY3Rvcnkgd2hlcmUga2VybmVscyBhcmUgc3RhcnRlZC5cbiAgICovXG4gIGNvbnRlbnREaXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvcnQgdG8gdXNlIHRvIHByb3h5IGtlcm5lbCBtYW5hZ2VyIHdlYnNvY2tldCByZXF1ZXN0cy4gQSB2YWx1ZSBvZiAwXG4gICAqIGRpc2FibGVzIHByb3h5aW5nLlxuICAgKi9cbiAga2VybmVsTWFuYWdlclByb3h5UG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdG5hbWUgKG9yIElQKSB0byB1c2UgdG8gcHJveHkga2VybmVsIG1hbmFnZXIgd2Vic29ja2V0IHJlcXVlc3RzLlxuICAgKiBBbiBlbXB0eSB2YWx1ZSB1c2VzIGxvY2FsaG9zdC5cbiAgICovXG4gIGtlcm5lbE1hbmFnZXJQcm94eUhvc3Q6IHN0cmluZztcblxuICAvKipcbiAgICogSWYgc2V0LCB0aGUgcGF0aCB0byB0aGUgREFQIG11bHRpcGxleGVyLlxuICAgKi9cbiAgZGVidWdBZGFwdGVyTXVsdGlwbGV4ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHNldCwgcmVkaXJlY3QgLyByZXF1ZXN0cyB0byBDb2xhYiwgd2l0aCB7anVweXRlcl9ob3N0fSByZXBsYWNlZCB3aXRoIHRoZVxuICAgKiBzZXJ2ZXIgaG9zdC5cbiAgICovXG4gIGNvbGFiUmVkaXJlY3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHNldCwgdGhlIHBhdGggYSBsYW5ndWFnZSBzZXJ2ZXIgcHJveHkgd2hpY2ggY2FuIGV4dGVuZCB0aGUgY2FwYWJpbGl0aWVzXG4gICAqIG9mIHRoZSBkZWZhdWx0IGxhbmd1YWdlIHNlcnZlci5cbiAgICovXG4gIGxhbmd1YWdlU2VydmVyUHJveHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHNldCwgdGhlIGFyZ3MgdG8gcGFzcyB0byB0aGUgbGFuZ3VhZ2Ugc2VydmVyIHByb3h5LlxuICAgKiBUaGlzIGlzIG9ubHkgY29uc3VtZWQgaWYgYSBub24tZW1wdHkgcGF0aCBpcyBzZXQgZm9yIHRoZVxuICAgKiBsYW5ndWFnZVNlcnZlclByb3h5IHNldHRpbmcuXG4gICAqL1xuICBsYW5ndWFnZVNlcnZlclByb3h5QXJncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdDpwb3J0IGFkZHJlc3MgdG8gdXNlIGZvciBzZXJ2aW5nIGZpbGUgcmVxdWVzdHMuIEFuIGVtcHR5IHZhbHVlIHVzZXNcbiAgICogSnVweXRlcidzIGZpbGUgc2VydmVyLlxuICAgKi9cbiAgZmlsZUhhbmRsZXJBZGRyOiBzdHJpbmc7XG59XG5cbmNvbnN0IGVudmlyb25tZW50VmFyaWFibGVzID0ge1xuICAnQ09MQUJfUk9PVF9SRURJUkVDVCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5jb2xhYlJlZGlyZWN0ID0gdmFsdWU7XG4gIH0sXG4gICdDT0xBQl9TRVJWRVJfUE9SVCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5zZXJ2ZXJQb3J0ID0gTnVtYmVyKHZhbHVlKTtcbiAgfSxcbiAgJ0NPTEFCX0xBTkdVQUdFX1NFUlZFUl9QUk9YWSc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5ID0gdmFsdWU7XG4gIH0sXG4gICdDT0xBQl9TRVJWRVJfSE9TVCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5zZXJ2ZXJIb3N0ID0gdmFsdWU7XG4gIH0sXG4gICdDT0xBQl9ORVhUX0pVUFlURVJfUE9SVCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5uZXh0SnVweXRlclBvcnQgPSBOdW1iZXIodmFsdWUpO1xuICB9LFxuICAnQ09MQUJfREVCVUdfQURBUFRFUl9NVVhfUEFUSCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5kZWJ1Z0FkYXB0ZXJNdWx0aXBsZXhlclBhdGggPSB2YWx1ZTtcbiAgfSxcbiAgJ0NPTEFCX0RBVEFMQUJfUk9PVCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5kYXRhbGFiUm9vdCA9IHZhbHVlO1xuICB9LFxuICAnQ09MQUJfS0VSTkVMX01BTkFHRVJfUFJPWFlfUE9SVCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5rZXJuZWxNYW5hZ2VyUHJveHlQb3J0ID0gTnVtYmVyKHZhbHVlKTtcbiAgfSxcbiAgJ0NPTEFCX0tFUk5FTF9NQU5BR0VSX1BST1hZX0hPU1QnOiAoc2V0dGluZ3M6IEFwcFNldHRpbmdzLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0dGluZ3Mua2VybmVsTWFuYWdlclByb3h5SG9zdCA9IHZhbHVlO1xuICB9LFxuICAnQ09MQUJfTEFOR1VBR0VfU0VSVkVSX1BST1hZX0xTUF9ESVJTJzogKFxuICAgICAgc2V0dGluZ3M6IEFwcFNldHRpbmdzLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0dGluZ3MubGFuZ3VhZ2VTZXJ2ZXJQcm94eUFyZ3MgPSBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncyB8fCBbXTtcbiAgICBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncy5wdXNoKGAtLWxzcF9zZWFyY2hfZGlycz0ke3ZhbHVlfWApO1xuICB9LFxuICAnQ09MQUJfTEFOR1VBR0VfU0VSVkVSX1BST1hZX1JPT1RfVVJMJzogKFxuICAgICAgc2V0dGluZ3M6IEFwcFNldHRpbmdzLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0dGluZ3MubGFuZ3VhZ2VTZXJ2ZXJQcm94eUFyZ3MgPSBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncyB8fCBbXTtcbiAgICBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncy5wdXNoKFxuICAgICAgICBgLS1sYW5ndWFnZV9zZXJ2aWNlc19yZXF1ZXN0X3Jvb3RfdXJsPSR7dmFsdWV9YCk7XG4gIH0sXG4gICdDT0xBQl9MQU5HVUFHRV9TRVJWRVJfUFJPWFlfUkVRVUVTVF9USU1FT1VUJzogKFxuICAgICAgc2V0dGluZ3M6IEFwcFNldHRpbmdzLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0dGluZ3MubGFuZ3VhZ2VTZXJ2ZXJQcm94eUFyZ3MgPSBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncyB8fCBbXTtcbiAgICBzZXR0aW5ncy5sYW5ndWFnZVNlcnZlclByb3h5QXJncy5wdXNoKFxuICAgICAgICBgLS1sYW5ndWFnZV9zZXJ2aWNlc19yZXF1ZXN0X3RpbWVvdXQ9JHt2YWx1ZX1gKTtcbiAgfSxcbiAgJ0NPTEFCX0pVUFlURVJfQUxMT1dfT1JJR0lOX1BBVCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5qdXB5dGVyQXJncyA9IHNldHRpbmdzLmp1cHl0ZXJBcmdzIHx8IFtdO1xuICAgIHNldHRpbmdzLmp1cHl0ZXJBcmdzLnB1c2goYC0tTm90ZWJvb2tBcHAuYWxsb3dfb3JpZ2luX3BhdD1cIiR7dmFsdWV9XCJgKTtcbiAgICBzZXR0aW5ncy5qdXB5dGVyQXJncy5wdXNoKGAtLU5vdGVib29rQXBwLmFsbG93X29yaWdpbj1gKTtcbiAgICBzZXR0aW5ncy5qdXB5dGVyQXJncy5wdXNoKGAtLU5vdGVib29rQXBwLmFsbG93X2NyZWRlbnRpYWxzPVRydWVgKTtcbiAgfSxcbiAgJ0NPTEFCX0pVUFlURVJfREVCVUcnOiAoc2V0dGluZ3M6IEFwcFNldHRpbmdzKSA9PiB7XG4gICAgc2V0dGluZ3MuanVweXRlckFyZ3MgPSBzZXR0aW5ncy5qdXB5dGVyQXJncyB8fCBbXTtcbiAgICBzZXR0aW5ncy5qdXB5dGVyQXJncy5wdXNoKGAtLWRlYnVnYCk7XG4gIH0sXG4gICdDT0xBQl9KVVBZVEVSX1RSQU5TUE9SVCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5qdXB5dGVyQXJncyA9IHNldHRpbmdzLmp1cHl0ZXJBcmdzIHx8IFtdO1xuICAgIHNldHRpbmdzLmp1cHl0ZXJBcmdzLnB1c2goYC0tdHJhbnNwb3J0PVwiJHt2YWx1ZX1cImApO1xuICB9LFxuICAnQ09MQUJfSlVQWVRFUl9JUCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5qdXB5dGVyQXJncyA9IHNldHRpbmdzLmp1cHl0ZXJBcmdzIHx8IFtdO1xuICAgIHNldHRpbmdzLmp1cHl0ZXJBcmdzLnB1c2goYC0taXA9JHt2YWx1ZX1gKTtcbiAgfSxcbiAgJ0NPTEFCX0dBVEVXQVlfQ0xJRU5UX1VSTCc6IChzZXR0aW5nczogQXBwU2V0dGluZ3MsIHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBzZXR0aW5ncy5qdXB5dGVyQXJncyA9IHNldHRpbmdzLmp1cHl0ZXJBcmdzIHx8IFtdO1xuICAgIHNldHRpbmdzLmp1cHl0ZXJBcmdzLnB1c2goYC0tR2F0ZXdheUNsaWVudC51cmw9JHt2YWx1ZX1gKTtcbiAgfSxcbiAgJ0NPTEFCX0pVUFlURVJfQUxMT1dfUkVNT1RFX0FDQ0VTUyc6XG4gICAgICAoc2V0dGluZ3M6IEFwcFNldHRpbmdzLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldHRpbmdzLmp1cHl0ZXJBcmdzID0gc2V0dGluZ3MuanVweXRlckFyZ3MgfHwgW107XG4gICAgICAgIHNldHRpbmdzLmp1cHl0ZXJBcmdzLnB1c2goYC0tTm90ZWJvb2tBcHAuYWxsb3dfcmVtb3RlX2FjY2Vzcz0ke3ZhbHVlfWApO1xuICAgICAgfSxcbiAgJ0NPTEFCX0pVUFlURVJfVE9LRU4nOiAoc2V0dGluZ3M6IEFwcFNldHRpbmdzLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0dGluZ3MuanVweXRlckFyZ3MgPSBzZXR0aW5ncy5qdXB5dGVyQXJncyB8fCBbXTtcbiAgICBzZXR0aW5ncy5qdXB5dGVyQXJncy5wdXNoKGAtLU5vdGVib29rQXBwLnRva2VuPSR7dmFsdWV9YCk7XG4gIH0sXG4gICdDT0xBQl9KVVBZVEVSX0RJU0FCTEVfQ0hFQ0tfWFNSRic6XG4gICAgICAoc2V0dGluZ3M6IEFwcFNldHRpbmdzLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHNldHRpbmdzLmp1cHl0ZXJBcmdzID0gc2V0dGluZ3MuanVweXRlckFyZ3MgfHwgW107XG4gICAgICAgIHNldHRpbmdzLmp1cHl0ZXJBcmdzLnB1c2goYC0tTm90ZWJvb2tBcHAuZGlzYWJsZV9jaGVja194c3JmPSR7dmFsdWV9YCk7XG4gICAgICB9LFxuICAnQ09MQUJfRklMRV9IQU5ETEVSX0FERFInOiAoc2V0dGluZ3M6IEFwcFNldHRpbmdzLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0dGluZ3MuZmlsZUhhbmRsZXJBZGRyID0gdmFsdWU7XG4gIH0sXG59O1xuXG4vKiogQXBwbGllcyBhbnkgZW52aXJvbm1lbnQgdmFyaWFibGUgb3ZlcnJpZGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5RW52aXJvbm1lbnRWYXJpYWJsZXMoc2V0dGluZ3M6IEFwcFNldHRpbmdzKSB7XG4gIGZvciAoY29uc3QgW2tleSwgYXBwbHldIG9mIE9iamVjdC5lbnRyaWVzKGVudmlyb25tZW50VmFyaWFibGVzKSkge1xuICAgIGNvbnN0IG92ZXJyaWRlID0gcHJvY2Vzcy5lbnZba2V5XTtcbiAgICBpZiAob3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXBwbHkoc2V0dGluZ3MsIG92ZXJyaWRlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
datalab/web/config/basePath.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
""
|
datalab/web/config/settings.json
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"contentDir": "/content",
|
3 |
+
"datalabRoot": "",
|
4 |
+
"jupyterArgs": ["--debug"],
|
5 |
+
"nextJupyterPort": 9000,
|
6 |
+
"serverHost": "",
|
7 |
+
"serverPort": 8080
|
8 |
+
}
|
datalab/web/json_rpc.js
ADDED
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
var __values = (this && this.__values) || function(o) {
|
3 |
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
4 |
+
if (m) return m.call(o);
|
5 |
+
if (o && typeof o.length === "number") return {
|
6 |
+
next: function () {
|
7 |
+
if (o && i >= o.length) o = void 0;
|
8 |
+
return { value: o && o[i++], done: !o };
|
9 |
+
}
|
10 |
+
};
|
11 |
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
12 |
+
};
|
13 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14 |
+
exports.JsonRpcReader = void 0;
|
15 |
+
exports.encodeJsonRpc = encodeJsonRpc;
|
16 |
+
var CR = 13;
|
17 |
+
var LF = 10;
|
18 |
+
/**
|
19 |
+
* JSON RPC reader following the Debug Adapter Protocol message
|
20 |
+
* format which itself follows Chrome's V8 debugger protocol, originally
|
21 |
+
* documented at
|
22 |
+
* https://github.com/buggerjs/bugger-v8-client/blob/master/PROTOCOL.md#v8-debugger-protocol
|
23 |
+
*/
|
24 |
+
var JsonRpcReader = /** @class */ (function () {
|
25 |
+
function JsonRpcReader(callback) {
|
26 |
+
this.callback = callback;
|
27 |
+
this.position = 0;
|
28 |
+
this.allocationSize = 4096;
|
29 |
+
this.decoder = new TextDecoder();
|
30 |
+
this.buffer = new Uint8Array(this.allocationSize);
|
31 |
+
}
|
32 |
+
JsonRpcReader.prototype.append = function (data) {
|
33 |
+
// Grow the buffer if necessary to hold the data.
|
34 |
+
if (data.byteLength > (this.buffer.byteLength - this.position)) {
|
35 |
+
var requiredSize = this.position + data.byteLength;
|
36 |
+
var newSize = Math.ceil(requiredSize / this.allocationSize) * this.allocationSize;
|
37 |
+
var newBuffer = new Uint8Array(newSize);
|
38 |
+
newBuffer.set(this.buffer, 0);
|
39 |
+
this.buffer = newBuffer;
|
40 |
+
}
|
41 |
+
// Push new data onto end of the buffer.
|
42 |
+
this.buffer.set(data, this.position);
|
43 |
+
this.position += data.byteLength;
|
44 |
+
var parsedMessages = [];
|
45 |
+
while (true) {
|
46 |
+
// Parse all messages out of the buffer.
|
47 |
+
var message = this.tryReadMessage();
|
48 |
+
if (!message) {
|
49 |
+
break;
|
50 |
+
}
|
51 |
+
parsedMessages.push(message);
|
52 |
+
this.callback(message);
|
53 |
+
}
|
54 |
+
return parsedMessages;
|
55 |
+
};
|
56 |
+
JsonRpcReader.prototype.tryReadMessage = function () {
|
57 |
+
var e_1, _a;
|
58 |
+
// Loop through looking for \r\n\r\n in the buffer.
|
59 |
+
for (var i = 0; i < this.position - 4; ++i) {
|
60 |
+
// First \r\n indicates the end of the headers.
|
61 |
+
if (this.buffer[i] === CR && this.buffer[i + 1] === LF &&
|
62 |
+
this.buffer[i + 2] === CR && this.buffer[i + 3] === LF) {
|
63 |
+
// Parse each of the header lines out of the header block.
|
64 |
+
var headerLength = i + 4;
|
65 |
+
var headerBytes = this.buffer.subarray(0, headerLength);
|
66 |
+
var headerString = this.decoder.decode(headerBytes);
|
67 |
+
var headerLines = headerString.split('\r\n');
|
68 |
+
var headers = {};
|
69 |
+
try {
|
70 |
+
for (var headerLines_1 = (e_1 = void 0, __values(headerLines)), headerLines_1_1 = headerLines_1.next(); !headerLines_1_1.done; headerLines_1_1 = headerLines_1.next()) {
|
71 |
+
var line = headerLines_1_1.value;
|
72 |
+
if (!line.trim()) {
|
73 |
+
continue;
|
74 |
+
}
|
75 |
+
var pair = line.split(':');
|
76 |
+
if (pair.length !== 2) {
|
77 |
+
throw new Error("Illegal header value: ".concat(line));
|
78 |
+
}
|
79 |
+
headers[pair[0]] = pair[1].trim();
|
80 |
+
}
|
81 |
+
}
|
82 |
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
83 |
+
finally {
|
84 |
+
try {
|
85 |
+
if (headerLines_1_1 && !headerLines_1_1.done && (_a = headerLines_1.return)) _a.call(headerLines_1);
|
86 |
+
}
|
87 |
+
finally { if (e_1) throw e_1.error; }
|
88 |
+
}
|
89 |
+
var contentLengthString = headers['Content-Length'];
|
90 |
+
if (!contentLengthString) {
|
91 |
+
throw new Error('Missing Content-Length header.');
|
92 |
+
}
|
93 |
+
var contentLength = Number(contentLengthString);
|
94 |
+
if (isNaN(contentLength)) {
|
95 |
+
throw new Error("Header Content-Length not a number: ".concat(contentLengthString, "."));
|
96 |
+
}
|
97 |
+
var requiredLength = headerLength + contentLength;
|
98 |
+
if (requiredLength <= this.position) {
|
99 |
+
// This is just a view onto the current buffer.
|
100 |
+
var contentBytes = this.buffer.subarray(headerLength, headerLength + contentLength);
|
101 |
+
var content = this.decoder.decode(contentBytes);
|
102 |
+
this.buffer.copyWithin(0, headerLength + contentLength, this.position);
|
103 |
+
this.position = this.position - (headerLength + contentLength);
|
104 |
+
return { headers: headers, content: content };
|
105 |
+
}
|
106 |
+
}
|
107 |
+
}
|
108 |
+
return null;
|
109 |
+
};
|
110 |
+
return JsonRpcReader;
|
111 |
+
}());
|
112 |
+
exports.JsonRpcReader = JsonRpcReader;
|
113 |
+
/** Encodes the string content to a JSON RPC message. */
|
114 |
+
function encodeJsonRpc(content) {
|
115 |
+
var e_2, _a;
|
116 |
+
var headers = {
|
117 |
+
'Content-Length': String(new TextEncoder().encode(content).byteLength),
|
118 |
+
};
|
119 |
+
var requestString = '';
|
120 |
+
try {
|
121 |
+
for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
122 |
+
var key = _c.value;
|
123 |
+
requestString += "".concat(key, ": ").concat(headers[key], "\r\n");
|
124 |
+
}
|
125 |
+
}
|
126 |
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
127 |
+
finally {
|
128 |
+
try {
|
129 |
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
130 |
+
}
|
131 |
+
finally { if (e_2) throw e_2.error; }
|
132 |
+
}
|
133 |
+
requestString += '\r\n';
|
134 |
+
requestString += content;
|
135 |
+
return requestString;
|
136 |
+
}
|
137 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl9ycGMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90aGlyZF9wYXJ0eS9jb2xhYi9zb3VyY2VzL2pzb25fcnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBcUdBLHNDQVdDO0FBaEhELElBQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNkLElBQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztBQVFkOzs7OztHQUtHO0FBQ0g7SUFNRSx1QkFBcUIsUUFBMkM7UUFBM0MsYUFBUSxHQUFSLFFBQVEsQ0FBbUM7UUFKeEQsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNaLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFlBQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCw4QkFBTSxHQUFOLFVBQU8sSUFBZ0I7UUFDckIsaURBQWlEO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQy9ELElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNyRCxJQUFNLE9BQU8sR0FDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN4RSxJQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDMUIsQ0FBQztRQUNELHdDQUF3QztRQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUVqQyxJQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNaLHdDQUF3QztZQUN4QyxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNiLE1BQU07WUFDUixDQUFDO1lBQ0QsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsc0NBQWMsR0FBZDs7UUFDRSxtREFBbUQ7UUFDbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDM0MsK0NBQStDO1lBQy9DLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRTtnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUMzRCwwREFBMEQ7Z0JBQzFELElBQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDMUQsSUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3RELElBQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQy9DLElBQU0sT0FBTyxHQUE0QixFQUFFLENBQUM7O29CQUM1QyxLQUFtQixJQUFBLCtCQUFBLFNBQUEsV0FBVyxDQUFBLENBQUEsd0NBQUEsaUVBQUUsQ0FBQzt3QkFBNUIsSUFBTSxJQUFJLHdCQUFBO3dCQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQzs0QkFDakIsU0FBUzt3QkFDWCxDQUFDO3dCQUNELElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQzdCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQzs0QkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBeUIsSUFBSSxDQUFFLENBQUMsQ0FBQzt3QkFDbkQsQ0FBQzt3QkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNwQyxDQUFDOzs7Ozs7Ozs7Z0JBQ0QsSUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7b0JBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztnQkFDRCxJQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDekIsTUFBTSxJQUFJLEtBQUssQ0FDWCw4Q0FBdUMsbUJBQW1CLE1BQUcsQ0FBQyxDQUFDO2dCQUNyRSxDQUFDO2dCQUNELElBQU0sY0FBYyxHQUFHLFlBQVksR0FBRyxhQUFhLENBQUM7Z0JBQ3BELElBQUksY0FBYyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDcEMsK0NBQStDO29CQUMvQyxJQUFNLFlBQVksR0FDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDO29CQUNyRSxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ2xCLENBQUMsRUFBRSxZQUFZLEdBQUcsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDO29CQUMvRCxPQUFPLEVBQUMsT0FBTyxTQUFBLEVBQUUsT0FBTyxTQUFBLEVBQUMsQ0FBQztnQkFDNUIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0gsb0JBQUM7QUFBRCxDQUFDLEFBbkZELElBbUZDO0FBbkZZLHNDQUFhO0FBcUYxQix3REFBd0Q7QUFDeEQsU0FBZ0IsYUFBYSxDQUFDLE9BQWU7O0lBQzNDLElBQU0sT0FBTyxHQUE0QjtRQUN2QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDO0tBQ3ZFLENBQUM7SUFDRixJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7O1FBQ3ZCLEtBQWtCLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUUsQ0FBQztZQUFwQyxJQUFNLEdBQUcsV0FBQTtZQUNaLGFBQWEsSUFBSSxVQUFHLEdBQUcsZUFBSyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQU0sQ0FBQztRQUNqRCxDQUFDOzs7Ozs7Ozs7SUFDRCxhQUFhLElBQUksTUFBTSxDQUFDO0lBQ3hCLGFBQWEsSUFBSSxPQUFPLENBQUM7SUFDekIsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENSID0gMTM7XG5jb25zdCBMRiA9IDEwO1xuXG4vKiogTWVzc2FnZXMgcmVjZWl2ZWQgdmlhIHRoZSByZWFkZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEpzb25ScGNNZXNzYWdlIHtcbiAgcmVhZG9ubHkgaGVhZGVyczoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBKU09OIFJQQyByZWFkZXIgZm9sbG93aW5nIHRoZSBEZWJ1ZyBBZGFwdGVyIFByb3RvY29sIG1lc3NhZ2VcbiAqIGZvcm1hdCB3aGljaCBpdHNlbGYgZm9sbG93cyBDaHJvbWUncyBWOCBkZWJ1Z2dlciBwcm90b2NvbCwgb3JpZ2luYWxseVxuICogZG9jdW1lbnRlZCBhdFxuICogaHR0cHM6Ly9naXRodWIuY29tL2J1Z2dlcmpzL2J1Z2dlci12OC1jbGllbnQvYmxvYi9tYXN0ZXIvUFJPVE9DT0wubWQjdjgtZGVidWdnZXItcHJvdG9jb2xcbiAqL1xuZXhwb3J0IGNsYXNzIEpzb25ScGNSZWFkZXIge1xuICBwcml2YXRlIGJ1ZmZlcjogVWludDhBcnJheTtcbiAgcHJpdmF0ZSBwb3NpdGlvbjogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGxvY2F0aW9uU2l6ZSA9IDQwOTY7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNhbGxiYWNrOiAobWVzc2FnZTogSnNvblJwY01lc3NhZ2UpID0+IHZvaWQpIHtcbiAgICB0aGlzLmJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KHRoaXMuYWxsb2NhdGlvblNpemUpO1xuICB9XG5cbiAgYXBwZW5kKGRhdGE6IFVpbnQ4QXJyYXkpOiBKc29uUnBjTWVzc2FnZVtdIHtcbiAgICAvLyBHcm93IHRoZSBidWZmZXIgaWYgbmVjZXNzYXJ5IHRvIGhvbGQgdGhlIGRhdGEuXG4gICAgaWYgKGRhdGEuYnl0ZUxlbmd0aCA+ICh0aGlzLmJ1ZmZlci5ieXRlTGVuZ3RoIC0gdGhpcy5wb3NpdGlvbikpIHtcbiAgICAgIGNvbnN0IHJlcXVpcmVkU2l6ZSA9IHRoaXMucG9zaXRpb24gKyBkYXRhLmJ5dGVMZW5ndGg7XG4gICAgICBjb25zdCBuZXdTaXplID1cbiAgICAgICAgICBNYXRoLmNlaWwocmVxdWlyZWRTaXplIC8gdGhpcy5hbGxvY2F0aW9uU2l6ZSkgKiB0aGlzLmFsbG9jYXRpb25TaXplO1xuICAgICAgY29uc3QgbmV3QnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkobmV3U2l6ZSk7XG4gICAgICBuZXdCdWZmZXIuc2V0KHRoaXMuYnVmZmVyLCAwKTtcbiAgICAgIHRoaXMuYnVmZmVyID0gbmV3QnVmZmVyO1xuICAgIH1cbiAgICAvLyBQdXNoIG5ldyBkYXRhIG9udG8gZW5kIG9mIHRoZSBidWZmZXIuXG4gICAgdGhpcy5idWZmZXIuc2V0KGRhdGEsIHRoaXMucG9zaXRpb24pO1xuICAgIHRoaXMucG9zaXRpb24gKz0gZGF0YS5ieXRlTGVuZ3RoO1xuXG4gICAgY29uc3QgcGFyc2VkTWVzc2FnZXMgPSBbXTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgLy8gUGFyc2UgYWxsIG1lc3NhZ2VzIG91dCBvZiB0aGUgYnVmZmVyLlxuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMudHJ5UmVhZE1lc3NhZ2UoKTtcbiAgICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHBhcnNlZE1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XG4gICAgICB0aGlzLmNhbGxiYWNrKG1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkTWVzc2FnZXM7XG4gIH1cblxuICB0cnlSZWFkTWVzc2FnZSgpOiBKc29uUnBjTWVzc2FnZXxudWxsIHtcbiAgICAvLyBMb29wIHRocm91Z2ggbG9va2luZyBmb3IgXFxyXFxuXFxyXFxuIGluIHRoZSBidWZmZXIuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBvc2l0aW9uIC0gNDsgKytpKSB7XG4gICAgICAvLyBGaXJzdCBcXHJcXG4gaW5kaWNhdGVzIHRoZSBlbmQgb2YgdGhlIGhlYWRlcnMuXG4gICAgICBpZiAodGhpcy5idWZmZXJbaV0gPT09IENSICYmIHRoaXMuYnVmZmVyW2kgKyAxXSA9PT0gTEYgJiZcbiAgICAgICAgICB0aGlzLmJ1ZmZlcltpICsgMl0gPT09IENSICYmIHRoaXMuYnVmZmVyW2kgKyAzXSA9PT0gTEYpIHtcbiAgICAgICAgLy8gUGFyc2UgZWFjaCBvZiB0aGUgaGVhZGVyIGxpbmVzIG91dCBvZiB0aGUgaGVhZGVyIGJsb2NrLlxuICAgICAgICBjb25zdCBoZWFkZXJMZW5ndGggPSBpICsgNDtcbiAgICAgICAgY29uc3QgaGVhZGVyQnl0ZXMgPSB0aGlzLmJ1ZmZlci5zdWJhcnJheSgwLCBoZWFkZXJMZW5ndGgpO1xuICAgICAgICBjb25zdCBoZWFkZXJTdHJpbmcgPSB0aGlzLmRlY29kZXIuZGVjb2RlKGhlYWRlckJ5dGVzKTtcbiAgICAgICAgY29uc3QgaGVhZGVyTGluZXMgPSBoZWFkZXJTdHJpbmcuc3BsaXQoJ1xcclxcbicpO1xuICAgICAgICBjb25zdCBoZWFkZXJzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgaGVhZGVyTGluZXMpIHtcbiAgICAgICAgICBpZiAoIWxpbmUudHJpbSgpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcGFpciA9IGxpbmUuc3BsaXQoJzonKTtcbiAgICAgICAgICBpZiAocGFpci5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSWxsZWdhbCBoZWFkZXIgdmFsdWU6ICR7bGluZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaGVhZGVyc1twYWlyWzBdXSA9IHBhaXJbMV0udHJpbSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRlbnRMZW5ndGhTdHJpbmcgPSBoZWFkZXJzWydDb250ZW50LUxlbmd0aCddO1xuICAgICAgICBpZiAoIWNvbnRlbnRMZW5ndGhTdHJpbmcpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQ29udGVudC1MZW5ndGggaGVhZGVyLicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRlbnRMZW5ndGggPSBOdW1iZXIoY29udGVudExlbmd0aFN0cmluZyk7XG4gICAgICAgIGlmIChpc05hTihjb250ZW50TGVuZ3RoKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYEhlYWRlciBDb250ZW50LUxlbmd0aCBub3QgYSBudW1iZXI6ICR7Y29udGVudExlbmd0aFN0cmluZ30uYCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVxdWlyZWRMZW5ndGggPSBoZWFkZXJMZW5ndGggKyBjb250ZW50TGVuZ3RoO1xuICAgICAgICBpZiAocmVxdWlyZWRMZW5ndGggPD0gdGhpcy5wb3NpdGlvbikge1xuICAgICAgICAgIC8vIFRoaXMgaXMganVzdCBhIHZpZXcgb250byB0aGUgY3VycmVudCBidWZmZXIuXG4gICAgICAgICAgY29uc3QgY29udGVudEJ5dGVzID1cbiAgICAgICAgICAgICAgdGhpcy5idWZmZXIuc3ViYXJyYXkoaGVhZGVyTGVuZ3RoLCBoZWFkZXJMZW5ndGggKyBjb250ZW50TGVuZ3RoKTtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5kZWNvZGVyLmRlY29kZShjb250ZW50Qnl0ZXMpO1xuICAgICAgICAgIHRoaXMuYnVmZmVyLmNvcHlXaXRoaW4oXG4gICAgICAgICAgICAgIDAsIGhlYWRlckxlbmd0aCArIGNvbnRlbnRMZW5ndGgsIHRoaXMucG9zaXRpb24pO1xuICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uIC0gKGhlYWRlckxlbmd0aCArIGNvbnRlbnRMZW5ndGgpO1xuICAgICAgICAgIHJldHVybiB7aGVhZGVycywgY29udGVudH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLyoqIEVuY29kZXMgdGhlIHN0cmluZyBjb250ZW50IHRvIGEgSlNPTiBSUEMgbWVzc2FnZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVKc29uUnBjKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGhlYWRlcnM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgICdDb250ZW50LUxlbmd0aCc6IFN0cmluZyhuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoY29udGVudCkuYnl0ZUxlbmd0aCksXG4gIH07XG4gIGxldCByZXF1ZXN0U3RyaW5nID0gJyc7XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgcmVxdWVzdFN0cmluZyArPSBgJHtrZXl9OiAke2hlYWRlcnNba2V5XX1cXHJcXG5gO1xuICB9XG4gIHJlcXVlc3RTdHJpbmcgKz0gJ1xcclxcbic7XG4gIHJlcXVlc3RTdHJpbmcgKz0gY29udGVudDtcbiAgcmV0dXJuIHJlcXVlc3RTdHJpbmc7XG59XG4iXX0=
|
datalab/web/jupyter.js
ADDED
@@ -0,0 +1,213 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
/*
|
3 |
+
* Copyright 2015 Google Inc. All rights reserved.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
+
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
+
* the License at
|
8 |
+
*
|
9 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
+
* License for the specific language governing permissions and limitations under
|
15 |
+
* the License.
|
16 |
+
*/
|
17 |
+
var __values = (this && this.__values) || function(o) {
|
18 |
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
19 |
+
if (m) return m.call(o);
|
20 |
+
if (o && typeof o.length === "number") return {
|
21 |
+
next: function () {
|
22 |
+
if (o && i >= o.length) o = void 0;
|
23 |
+
return { value: o && o[i++], done: !o };
|
24 |
+
}
|
25 |
+
};
|
26 |
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
27 |
+
};
|
28 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
29 |
+
exports.init = init;
|
30 |
+
exports.close = close;
|
31 |
+
exports.handleSocket = handleSocket;
|
32 |
+
exports.handleRequest = handleRequest;
|
33 |
+
var childProcess = require("child_process");
|
34 |
+
var httpProxy = require("http-proxy");
|
35 |
+
var path = require("path");
|
36 |
+
var logging = require("./logging");
|
37 |
+
/**
|
38 |
+
* Singleton tracking the jupyter server instance we manage.
|
39 |
+
*/
|
40 |
+
var jupyterServer = null;
|
41 |
+
/**
|
42 |
+
* The maximum number of times we'll restart jupyter; we set a limit to avoid
|
43 |
+
* users being stuck with a slow-crash-looping server.
|
44 |
+
*/
|
45 |
+
var remainingJupyterServerRestarts = 20;
|
46 |
+
/**
|
47 |
+
* The application settings instance.
|
48 |
+
*/
|
49 |
+
var appSettings;
|
50 |
+
/*
|
51 |
+
* This list of levels should match the ones used by Python:
|
52 |
+
* https://docs.python.org/3/library/logging.html#logging-levels
|
53 |
+
*/
|
54 |
+
var LogLevels;
|
55 |
+
(function (LogLevels) {
|
56 |
+
LogLevels["CRITICAL"] = "CRITICAL";
|
57 |
+
LogLevels["ERROR"] = "ERROR";
|
58 |
+
LogLevels["WARNING"] = "WARNING";
|
59 |
+
LogLevels["INFO"] = "INFO";
|
60 |
+
LogLevels["DEBUG"] = "DEBUG";
|
61 |
+
LogLevels["NOTSET"] = "NOTSET";
|
62 |
+
})(LogLevels || (LogLevels = {}));
|
63 |
+
function pipeOutput(stream) {
|
64 |
+
stream.setEncoding('utf8');
|
65 |
+
// The format we parse here corresponds to the log format we set in our
|
66 |
+
// jupyter configuration.
|
67 |
+
var logger = logging.getJupyterLogger();
|
68 |
+
stream.on('data', function (data) {
|
69 |
+
var e_1, _a;
|
70 |
+
try {
|
71 |
+
for (var _b = __values(data.split('\n')), _c = _b.next(); !_c.done; _c = _b.next()) {
|
72 |
+
var line = _c.value;
|
73 |
+
if (line.trim().length === 0) {
|
74 |
+
continue;
|
75 |
+
}
|
76 |
+
var parts = line.split('|', 3);
|
77 |
+
if (parts.length !== 3) {
|
78 |
+
// Non-logging messages (eg tracebacks) get logged as warnings.
|
79 |
+
logger.warn(line);
|
80 |
+
continue;
|
81 |
+
}
|
82 |
+
var level = parts[1];
|
83 |
+
var message = parts[2];
|
84 |
+
// We need to map Python's log levels to those used by bunyan.
|
85 |
+
if (level === LogLevels.CRITICAL || level === LogLevels.ERROR) {
|
86 |
+
logger.error(message);
|
87 |
+
}
|
88 |
+
else if (level === LogLevels.WARNING) {
|
89 |
+
logger.warn(message);
|
90 |
+
}
|
91 |
+
else if (level === LogLevels.INFO) {
|
92 |
+
logger.info(message);
|
93 |
+
}
|
94 |
+
else {
|
95 |
+
// We map DEBUG, NOTSET, and any unknown log levels to debug.
|
96 |
+
logger.debug(message);
|
97 |
+
}
|
98 |
+
}
|
99 |
+
}
|
100 |
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
101 |
+
finally {
|
102 |
+
try {
|
103 |
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
104 |
+
}
|
105 |
+
finally { if (e_1) throw e_1.error; }
|
106 |
+
}
|
107 |
+
});
|
108 |
+
}
|
109 |
+
function createJupyterServer() {
|
110 |
+
var e_2, _a;
|
111 |
+
if (!remainingJupyterServerRestarts) {
|
112 |
+
logging.getLogger().error('No jupyter restart attempts remaining.');
|
113 |
+
return;
|
114 |
+
}
|
115 |
+
remainingJupyterServerRestarts -= 1;
|
116 |
+
var port = appSettings.nextJupyterPort;
|
117 |
+
logging.getLogger().info('Launching Jupyter server at %d', port);
|
118 |
+
var jupyterArgs = appSettings.jupyterArgs || [];
|
119 |
+
function exitHandler(code, signal) {
|
120 |
+
if (jupyterServer) {
|
121 |
+
logging.getLogger().error('Jupyter process %d exited due to signal: %s', jupyterServer.childProcess.pid, signal);
|
122 |
+
}
|
123 |
+
else {
|
124 |
+
logging.getLogger().error('Jupyter process exit before server creation finished due to signal: %s', signal);
|
125 |
+
}
|
126 |
+
// We want to restart jupyter whenever it terminates.
|
127 |
+
createJupyterServer();
|
128 |
+
}
|
129 |
+
var contentDir = path.join(appSettings.datalabRoot, appSettings.contentDir);
|
130 |
+
var processArgs = ['notebook'].concat(jupyterArgs || []).concat([
|
131 |
+
"--port=".concat(port),
|
132 |
+
"--FileContentsManager.root_dir=".concat(appSettings.datalabRoot, "/"),
|
133 |
+
// TODO: b/136659627 - Delete this line.
|
134 |
+
"--MappingKernelManager.root_dir=".concat(contentDir),
|
135 |
+
]);
|
136 |
+
var jupyterServerAddr = 'localhost';
|
137 |
+
try {
|
138 |
+
for (var jupyterArgs_1 = __values(jupyterArgs), jupyterArgs_1_1 = jupyterArgs_1.next(); !jupyterArgs_1_1.done; jupyterArgs_1_1 = jupyterArgs_1.next()) {
|
139 |
+
var flag = jupyterArgs_1_1.value;
|
140 |
+
// Extracts a string like '1.2.3.4' from the string '--ip=1.2.3.4'
|
141 |
+
var match = flag.match(/--ip=([^ ]+)/);
|
142 |
+
if (match) {
|
143 |
+
jupyterServerAddr = match[1];
|
144 |
+
break;
|
145 |
+
}
|
146 |
+
}
|
147 |
+
}
|
148 |
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
149 |
+
finally {
|
150 |
+
try {
|
151 |
+
if (jupyterArgs_1_1 && !jupyterArgs_1_1.done && (_a = jupyterArgs_1.return)) _a.call(jupyterArgs_1);
|
152 |
+
}
|
153 |
+
finally { if (e_2) throw e_2.error; }
|
154 |
+
}
|
155 |
+
logging.getLogger().info('Using jupyter server address %s', jupyterServerAddr);
|
156 |
+
var processOptions = {
|
157 |
+
detached: false,
|
158 |
+
env: process.env,
|
159 |
+
};
|
160 |
+
var serverProcess = childProcess.spawn('jupyter', processArgs, processOptions);
|
161 |
+
serverProcess.on('exit', exitHandler);
|
162 |
+
logging.getLogger().info('Jupyter process started with pid %d and args %j', serverProcess.pid, processArgs);
|
163 |
+
// Capture the output, so it can be piped for logging.
|
164 |
+
pipeOutput(serverProcess.stdout);
|
165 |
+
pipeOutput(serverProcess.stderr);
|
166 |
+
// Create the proxy.
|
167 |
+
var proxyTargetHost = appSettings.kernelManagerProxyHost || jupyterServerAddr;
|
168 |
+
var proxyTargetPort = appSettings.kernelManagerProxyPort || port;
|
169 |
+
var proxy = httpProxy.createProxyServer({ target: "http://".concat(proxyTargetHost, ":").concat(proxyTargetPort) });
|
170 |
+
proxy.on('error', errorHandler);
|
171 |
+
jupyterServer = { port: port, proxy: proxy, childProcess: serverProcess };
|
172 |
+
}
|
173 |
+
/**
|
174 |
+
* Initializes the Jupyter server manager.
|
175 |
+
*/
|
176 |
+
function init(settings) {
|
177 |
+
appSettings = settings;
|
178 |
+
createJupyterServer();
|
179 |
+
}
|
180 |
+
/**
|
181 |
+
* Closes the Jupyter server manager.
|
182 |
+
*/
|
183 |
+
function close() {
|
184 |
+
if (!jupyterServer) {
|
185 |
+
return;
|
186 |
+
}
|
187 |
+
var pid = jupyterServer.childProcess.pid;
|
188 |
+
logging.getLogger().info("jupyter close: PID: ".concat(pid));
|
189 |
+
jupyterServer.childProcess.kill('SIGHUP');
|
190 |
+
}
|
191 |
+
/** Proxy this socket request to jupyter. */
|
192 |
+
function handleSocket(request, socket, head) {
|
193 |
+
if (!jupyterServer) {
|
194 |
+
logging.getLogger().error('Jupyter server is not running.');
|
195 |
+
return;
|
196 |
+
}
|
197 |
+
jupyterServer.proxy.ws(request, socket, head);
|
198 |
+
}
|
199 |
+
/** Proxy this HTTP request to jupyter. */
|
200 |
+
function handleRequest(request, response) {
|
201 |
+
if (!jupyterServer) {
|
202 |
+
response.statusCode = 500;
|
203 |
+
response.end();
|
204 |
+
return;
|
205 |
+
}
|
206 |
+
jupyterServer.proxy.web(request, response, null);
|
207 |
+
}
|
208 |
+
function errorHandler(error, request, response) {
|
209 |
+
logging.getLogger().error(error, 'Jupyter server returned error.');
|
210 |
+
response.writeHead(500, 'Internal Server Error');
|
211 |
+
response.end();
|
212 |
+
}
|
213 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianVweXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RoaXJkX3BhcnR5L2NvbGFiL3NvdXJjZXMvanVweXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7Ozs7Ozs7Ozs7Ozs7QUEySkgsb0JBR0M7QUFLRCxzQkFRQztBQUdELG9DQU9DO0FBR0Qsc0NBU0M7QUEvTEQsNENBQThDO0FBRTlDLHNDQUF3QztBQUV4QywyQkFBNkI7QUFHN0IsbUNBQXFDO0FBUXJDOztHQUVHO0FBQ0gsSUFBSSxhQUFhLEdBQXVCLElBQUksQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxJQUFJLDhCQUE4QixHQUFXLEVBQUUsQ0FBQztBQUVoRDs7R0FFRztBQUNILElBQUksV0FBd0IsQ0FBQztBQUU3Qjs7O0dBR0c7QUFDSCxJQUFLLFNBT0o7QUFQRCxXQUFLLFNBQVM7SUFDWixrQ0FBcUIsQ0FBQTtJQUNyQiw0QkFBZSxDQUFBO0lBQ2YsZ0NBQW1CLENBQUE7SUFDbkIsMEJBQWEsQ0FBQTtJQUNiLDRCQUFlLENBQUE7SUFDZiw4QkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBUEksU0FBUyxLQUFULFNBQVMsUUFPYjtBQUVELFNBQVMsVUFBVSxDQUFDLE1BQTZCO0lBQy9DLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0IsdUVBQXVFO0lBQ3ZFLHlCQUF5QjtJQUN6QixJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFDLElBQVk7OztZQUM3QixLQUFtQixJQUFBLEtBQUEsU0FBQSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBLGdCQUFBLDRCQUFFLENBQUM7Z0JBQWpDLElBQU0sSUFBSSxXQUFBO2dCQUNiLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsU0FBUztnQkFDWCxDQUFDO2dCQUNELElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3ZCLCtEQUErRDtvQkFDL0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEIsU0FBUztnQkFDWCxDQUFDO2dCQUNELElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsSUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6Qiw4REFBOEQ7Z0JBQzlELElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQyxRQUFRLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDOUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEIsQ0FBQztxQkFBTSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZCLENBQUM7cUJBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QixDQUFDO3FCQUFNLENBQUM7b0JBQ04sNkRBQTZEO29CQUM3RCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQzs7Ozs7Ozs7O0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxtQkFBbUI7O0lBQzFCLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUNwRSxPQUFPO0lBQ1QsQ0FBQztJQUNELDhCQUE4QixJQUFJLENBQUMsQ0FBQztJQUNwQyxJQUFNLElBQUksR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDO0lBQ3pDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakUsSUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFFbEQsU0FBUyxXQUFXLENBQUMsSUFBWSxFQUFFLE1BQWM7UUFDL0MsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUNyQiw2Q0FBNkMsRUFDN0MsYUFBYSxDQUFDLFlBQVksQ0FBQyxHQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0MsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUNyQix3RUFBd0UsRUFDeEUsTUFBTSxDQUFDLENBQUM7UUFDZCxDQUFDO1FBQ0QscURBQXFEO1FBQ3JELG1CQUFtQixFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUUsSUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNoRSxpQkFBVSxJQUFJLENBQUU7UUFDaEIseUNBQWtDLFdBQVcsQ0FBQyxXQUFXLE1BQUc7UUFDNUQsd0NBQXdDO1FBQ3hDLDBDQUFtQyxVQUFVLENBQUU7S0FDaEQsQ0FBQyxDQUFDO0lBRUgsSUFBSSxpQkFBaUIsR0FBRyxXQUFXLENBQUM7O1FBQ3BDLEtBQW1CLElBQUEsZ0JBQUEsU0FBQSxXQUFXLENBQUEsd0NBQUEsaUVBQUUsQ0FBQztZQUE1QixJQUFNLElBQUksd0JBQUE7WUFDYixrRUFBa0U7WUFDbEUsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN6QyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0IsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDOzs7Ozs7Ozs7SUFDRCxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUNwQixpQ0FBaUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRTFELElBQU0sY0FBYyxHQUFHO1FBQ3JCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO0tBQ2pCLENBQUM7SUFFRixJQUFNLGFBQWEsR0FDZixZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDL0QsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDcEIsaURBQWlELEVBQUUsYUFBYSxDQUFDLEdBQUksRUFDckUsV0FBVyxDQUFDLENBQUM7SUFFakIsc0RBQXNEO0lBQ3RELFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVqQyxvQkFBb0I7SUFDcEIsSUFBTSxlQUFlLEdBQ2pCLFdBQVcsQ0FBQyxzQkFBc0IsSUFBSSxpQkFBaUIsQ0FBQztJQUM1RCxJQUFNLGVBQWUsR0FBRyxXQUFXLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDO0lBRW5FLElBQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FDckMsRUFBQyxNQUFNLEVBQUUsaUJBQVUsZUFBZSxjQUFJLGVBQWUsQ0FBRSxFQUFDLENBQUMsQ0FBQztJQUM5RCxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUVoQyxhQUFhLEdBQUcsRUFBQyxJQUFJLE1BQUEsRUFBRSxLQUFLLE9BQUEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsSUFBSSxDQUFDLFFBQXFCO0lBQ3hDLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDdkIsbUJBQW1CLEVBQUUsQ0FBQztBQUN4QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixLQUFLO0lBQ25CLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixPQUFPO0lBQ1QsQ0FBQztJQUVELElBQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO0lBQzNDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsOEJBQXVCLEdBQUcsQ0FBRSxDQUFDLENBQUM7SUFDdkQsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELDRDQUE0QztBQUM1QyxTQUFnQixZQUFZLENBQ3hCLE9BQTZCLEVBQUUsTUFBa0IsRUFBRSxJQUFZO0lBQ2pFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDNUQsT0FBTztJQUNULENBQUM7SUFDRCxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCwwQ0FBMEM7QUFDMUMsU0FBZ0IsYUFBYSxDQUN6QixPQUE2QixFQUFFLFFBQTZCO0lBQzlELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQixRQUFRLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUMxQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZixPQUFPO0lBQ1QsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUNqQixLQUFZLEVBQUUsT0FBNkIsRUFDM0MsUUFBNkI7SUFDL0IsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQztJQUVuRSxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ2pELFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3RcbiAqIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mXG4gKiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVFxuICogV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlXG4gKiBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlclxuICogdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgY2hpbGRQcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCAqIGFzIGh0dHBQcm94eSBmcm9tICdodHRwLXByb3h5JztcbmltcG9ydCAqIGFzIG5ldCBmcm9tICduZXQnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtBcHBTZXR0aW5nc30gZnJvbSAnLi9hcHBTZXR0aW5ncyc7XG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gJy4vbG9nZ2luZyc7XG5cbmludGVyZmFjZSBKdXB5dGVyU2VydmVyIHtcbiAgcG9ydDogbnVtYmVyO1xuICBjaGlsZFByb2Nlc3M6IGNoaWxkUHJvY2Vzcy5DaGlsZFByb2Nlc3M7XG4gIHByb3h5OiBodHRwUHJveHkuUHJveHlTZXJ2ZXI7XG59XG5cbi8qKlxuICogU2luZ2xldG9uIHRyYWNraW5nIHRoZSBqdXB5dGVyIHNlcnZlciBpbnN0YW5jZSB3ZSBtYW5hZ2UuXG4gKi9cbmxldCBqdXB5dGVyU2VydmVyOiBKdXB5dGVyU2VydmVyfG51bGwgPSBudWxsO1xuXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyB3ZSdsbCByZXN0YXJ0IGp1cHl0ZXI7IHdlIHNldCBhIGxpbWl0IHRvIGF2b2lkXG4gKiB1c2VycyBiZWluZyBzdHVjayB3aXRoIGEgc2xvdy1jcmFzaC1sb29waW5nIHNlcnZlci5cbiAqL1xubGV0IHJlbWFpbmluZ0p1cHl0ZXJTZXJ2ZXJSZXN0YXJ0czogbnVtYmVyID0gMjA7XG5cbi8qKlxuICogVGhlIGFwcGxpY2F0aW9uIHNldHRpbmdzIGluc3RhbmNlLlxuICovXG5sZXQgYXBwU2V0dGluZ3M6IEFwcFNldHRpbmdzO1xuXG4vKlxuICogVGhpcyBsaXN0IG9mIGxldmVscyBzaG91bGQgbWF0Y2ggdGhlIG9uZXMgdXNlZCBieSBQeXRob246XG4gKiAgIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9sb2dnaW5nLmh0bWwjbG9nZ2luZy1sZXZlbHNcbiAqL1xuZW51bSBMb2dMZXZlbHMge1xuICBDUklUSUNBTCA9ICdDUklUSUNBTCcsXG4gIEVSUk9SID0gJ0VSUk9SJyxcbiAgV0FSTklORyA9ICdXQVJOSU5HJyxcbiAgSU5GTyA9ICdJTkZPJyxcbiAgREVCVUcgPSAnREVCVUcnLFxuICBOT1RTRVQgPSAnTk9UU0VUJyxcbn1cblxuZnVuY3Rpb24gcGlwZU91dHB1dChzdHJlYW06IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSkge1xuICBzdHJlYW0uc2V0RW5jb2RpbmcoJ3V0ZjgnKTtcblxuICAvLyBUaGUgZm9ybWF0IHdlIHBhcnNlIGhlcmUgY29ycmVzcG9uZHMgdG8gdGhlIGxvZyBmb3JtYXQgd2Ugc2V0IGluIG91clxuICAvLyBqdXB5dGVyIGNvbmZpZ3VyYXRpb24uXG4gIGNvbnN0IGxvZ2dlciA9IGxvZ2dpbmcuZ2V0SnVweXRlckxvZ2dlcigpO1xuICBzdHJlYW0ub24oJ2RhdGEnLCAoZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGRhdGEuc3BsaXQoJ1xcbicpKSB7XG4gICAgICBpZiAobGluZS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcGFydHMgPSBsaW5lLnNwbGl0KCd8JywgMyk7XG4gICAgICBpZiAocGFydHMubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgIC8vIE5vbi1sb2dnaW5nIG1lc3NhZ2VzIChlZyB0cmFjZWJhY2tzKSBnZXQgbG9nZ2VkIGFzIHdhcm5pbmdzLlxuICAgICAgICBsb2dnZXIud2FybihsaW5lKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBsZXZlbCA9IHBhcnRzWzFdO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHBhcnRzWzJdO1xuICAgICAgLy8gV2UgbmVlZCB0byBtYXAgUHl0aG9uJ3MgbG9nIGxldmVscyB0byB0aG9zZSB1c2VkIGJ5IGJ1bnlhbi5cbiAgICAgIGlmIChsZXZlbCA9PT0gTG9nTGV2ZWxzLkNSSVRJQ0FMIHx8IGxldmVsID09PSBMb2dMZXZlbHMuRVJST1IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKG1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIGlmIChsZXZlbCA9PT0gTG9nTGV2ZWxzLldBUk5JTkcpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4obWVzc2FnZSk7XG4gICAgICB9IGVsc2UgaWYgKGxldmVsID09PSBMb2dMZXZlbHMuSU5GTykge1xuICAgICAgICBsb2dnZXIuaW5mbyhtZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIG1hcCBERUJVRywgTk9UU0VULCBhbmQgYW55IHVua25vd24gbG9nIGxldmVscyB0byBkZWJ1Zy5cbiAgICAgICAgbG9nZ2VyLmRlYnVnKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUp1cHl0ZXJTZXJ2ZXIoKSB7XG4gIGlmICghcmVtYWluaW5nSnVweXRlclNlcnZlclJlc3RhcnRzKSB7XG4gICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5lcnJvcignTm8ganVweXRlciByZXN0YXJ0IGF0dGVtcHRzIHJlbWFpbmluZy4nKTtcbiAgICByZXR1cm47XG4gIH1cbiAgcmVtYWluaW5nSnVweXRlclNlcnZlclJlc3RhcnRzIC09IDE7XG4gIGNvbnN0IHBvcnQgPSBhcHBTZXR0aW5ncy5uZXh0SnVweXRlclBvcnQ7XG4gIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuaW5mbygnTGF1bmNoaW5nIEp1cHl0ZXIgc2VydmVyIGF0ICVkJywgcG9ydCk7XG4gIGNvbnN0IGp1cHl0ZXJBcmdzID0gYXBwU2V0dGluZ3MuanVweXRlckFyZ3MgfHwgW107XG5cbiAgZnVuY3Rpb24gZXhpdEhhbmRsZXIoY29kZTogbnVtYmVyLCBzaWduYWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChqdXB5dGVyU2VydmVyKSB7XG4gICAgICBsb2dnaW5nLmdldExvZ2dlcigpLmVycm9yKFxuICAgICAgICAgICdKdXB5dGVyIHByb2Nlc3MgJWQgZXhpdGVkIGR1ZSB0byBzaWduYWw6ICVzJyxcbiAgICAgICAgICBqdXB5dGVyU2VydmVyLmNoaWxkUHJvY2Vzcy5waWQhLCBzaWduYWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnaW5nLmdldExvZ2dlcigpLmVycm9yKFxuICAgICAgICAgICdKdXB5dGVyIHByb2Nlc3MgZXhpdCBiZWZvcmUgc2VydmVyIGNyZWF0aW9uIGZpbmlzaGVkIGR1ZSB0byBzaWduYWw6ICVzJyxcbiAgICAgICAgICBzaWduYWwpO1xuICAgIH1cbiAgICAvLyBXZSB3YW50IHRvIHJlc3RhcnQganVweXRlciB3aGVuZXZlciBpdCB0ZXJtaW5hdGVzLlxuICAgIGNyZWF0ZUp1cHl0ZXJTZXJ2ZXIoKTtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnREaXIgPSBwYXRoLmpvaW4oYXBwU2V0dGluZ3MuZGF0YWxhYlJvb3QsIGFwcFNldHRpbmdzLmNvbnRlbnREaXIpO1xuICBjb25zdCBwcm9jZXNzQXJncyA9IFsnbm90ZWJvb2snXS5jb25jYXQoanVweXRlckFyZ3MgfHwgW10pLmNvbmNhdChbXG4gICAgYC0tcG9ydD0ke3BvcnR9YCxcbiAgICBgLS1GaWxlQ29udGVudHNNYW5hZ2VyLnJvb3RfZGlyPSR7YXBwU2V0dGluZ3MuZGF0YWxhYlJvb3R9L2AsXG4gICAgLy8gVE9ETzogYi8xMzY2NTk2MjcgLSBEZWxldGUgdGhpcyBsaW5lLlxuICAgIGAtLU1hcHBpbmdLZXJuZWxNYW5hZ2VyLnJvb3RfZGlyPSR7Y29udGVudERpcn1gLFxuICBdKTtcblxuICBsZXQganVweXRlclNlcnZlckFkZHIgPSAnbG9jYWxob3N0JztcbiAgZm9yIChjb25zdCBmbGFnIG9mIGp1cHl0ZXJBcmdzKSB7XG4gICAgLy8gRXh0cmFjdHMgYSBzdHJpbmcgbGlrZSAnMS4yLjMuNCcgZnJvbSB0aGUgc3RyaW5nICctLWlwPTEuMi4zLjQnXG4gICAgY29uc3QgbWF0Y2ggPSBmbGFnLm1hdGNoKC8tLWlwPShbXiBdKykvKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIGp1cHl0ZXJTZXJ2ZXJBZGRyID0gbWF0Y2hbMV07XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgbG9nZ2luZy5nZXRMb2dnZXIoKS5pbmZvKFxuICAgICAgJ1VzaW5nIGp1cHl0ZXIgc2VydmVyIGFkZHJlc3MgJXMnLCBqdXB5dGVyU2VydmVyQWRkcik7XG5cbiAgY29uc3QgcHJvY2Vzc09wdGlvbnMgPSB7XG4gICAgZGV0YWNoZWQ6IGZhbHNlLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gIH07XG5cbiAgY29uc3Qgc2VydmVyUHJvY2VzcyA9XG4gICAgICBjaGlsZFByb2Nlc3Muc3Bhd24oJ2p1cHl0ZXInLCBwcm9jZXNzQXJncywgcHJvY2Vzc09wdGlvbnMpO1xuICBzZXJ2ZXJQcm9jZXNzLm9uKCdleGl0JywgZXhpdEhhbmRsZXIpO1xuICBsb2dnaW5nLmdldExvZ2dlcigpLmluZm8oXG4gICAgICAnSnVweXRlciBwcm9jZXNzIHN0YXJ0ZWQgd2l0aCBwaWQgJWQgYW5kIGFyZ3MgJWonLCBzZXJ2ZXJQcm9jZXNzLnBpZCEsXG4gICAgICBwcm9jZXNzQXJncyk7XG5cbiAgLy8gQ2FwdHVyZSB0aGUgb3V0cHV0LCBzbyBpdCBjYW4gYmUgcGlwZWQgZm9yIGxvZ2dpbmcuXG4gIHBpcGVPdXRwdXQoc2VydmVyUHJvY2Vzcy5zdGRvdXQpO1xuICBwaXBlT3V0cHV0KHNlcnZlclByb2Nlc3Muc3RkZXJyKTtcblxuICAvLyBDcmVhdGUgdGhlIHByb3h5LlxuICBjb25zdCBwcm94eVRhcmdldEhvc3QgPVxuICAgICAgYXBwU2V0dGluZ3Mua2VybmVsTWFuYWdlclByb3h5SG9zdCB8fCBqdXB5dGVyU2VydmVyQWRkcjtcbiAgY29uc3QgcHJveHlUYXJnZXRQb3J0ID0gYXBwU2V0dGluZ3Mua2VybmVsTWFuYWdlclByb3h5UG9ydCB8fCBwb3J0O1xuXG4gIGNvbnN0IHByb3h5ID0gaHR0cFByb3h5LmNyZWF0ZVByb3h5U2VydmVyKFxuICAgICAge3RhcmdldDogYGh0dHA6Ly8ke3Byb3h5VGFyZ2V0SG9zdH06JHtwcm94eVRhcmdldFBvcnR9YH0pO1xuICBwcm94eS5vbignZXJyb3InLCBlcnJvckhhbmRsZXIpO1xuXG4gIGp1cHl0ZXJTZXJ2ZXIgPSB7cG9ydCwgcHJveHksIGNoaWxkUHJvY2Vzczogc2VydmVyUHJvY2Vzc307XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIEp1cHl0ZXIgc2VydmVyIG1hbmFnZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0KHNldHRpbmdzOiBBcHBTZXR0aW5ncyk6IHZvaWQge1xuICBhcHBTZXR0aW5ncyA9IHNldHRpbmdzO1xuICBjcmVhdGVKdXB5dGVyU2VydmVyKCk7XG59XG5cbi8qKlxuICogQ2xvc2VzIHRoZSBKdXB5dGVyIHNlcnZlciBtYW5hZ2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvc2UoKTogdm9pZCB7XG4gIGlmICghanVweXRlclNlcnZlcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBpZCA9IGp1cHl0ZXJTZXJ2ZXIuY2hpbGRQcm9jZXNzLnBpZDtcbiAgbG9nZ2luZy5nZXRMb2dnZXIoKS5pbmZvKGBqdXB5dGVyIGNsb3NlOiBQSUQ6ICR7cGlkfWApO1xuICBqdXB5dGVyU2VydmVyLmNoaWxkUHJvY2Vzcy5raWxsKCdTSUdIVVAnKTtcbn1cblxuLyoqIFByb3h5IHRoaXMgc29ja2V0IHJlcXVlc3QgdG8ganVweXRlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTb2NrZXQoXG4gICAgcmVxdWVzdDogaHR0cC5JbmNvbWluZ01lc3NhZ2UsIHNvY2tldDogbmV0LlNvY2tldCwgaGVhZDogQnVmZmVyKSB7XG4gIGlmICghanVweXRlclNlcnZlcikge1xuICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCkuZXJyb3IoJ0p1cHl0ZXIgc2VydmVyIGlzIG5vdCBydW5uaW5nLicpO1xuICAgIHJldHVybjtcbiAgfVxuICBqdXB5dGVyU2VydmVyLnByb3h5LndzKHJlcXVlc3QsIHNvY2tldCwgaGVhZCk7XG59XG5cbi8qKiBQcm94eSB0aGlzIEhUVFAgcmVxdWVzdCB0byBqdXB5dGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3QoXG4gICAgcmVxdWVzdDogaHR0cC5JbmNvbWluZ01lc3NhZ2UsIHJlc3BvbnNlOiBodHRwLlNlcnZlclJlc3BvbnNlKSB7XG4gIGlmICghanVweXRlclNlcnZlcikge1xuICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgcmVzcG9uc2UuZW5kKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAganVweXRlclNlcnZlci5wcm94eS53ZWIocmVxdWVzdCwgcmVzcG9uc2UsIG51bGwpO1xufVxuXG5mdW5jdGlvbiBlcnJvckhhbmRsZXIoXG4gICAgZXJyb3I6IEVycm9yLCByZXF1ZXN0OiBodHRwLkluY29taW5nTWVzc2FnZSxcbiAgICByZXNwb25zZTogaHR0cC5TZXJ2ZXJSZXNwb25zZSkge1xuICBsb2dnaW5nLmdldExvZ2dlcigpLmVycm9yKGVycm9yLCAnSnVweXRlciBzZXJ2ZXIgcmV0dXJuZWQgZXJyb3IuJyk7XG5cbiAgcmVzcG9uc2Uud3JpdGVIZWFkKDUwMCwgJ0ludGVybmFsIFNlcnZlciBFcnJvcicpO1xuICByZXNwb25zZS5lbmQoKTtcbn1cbiJdfQ==
|
datalab/web/logging.js
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
/*
|
3 |
+
* Copyright 2015 Google Inc. All rights reserved.
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
6 |
+
* use this file except in compliance with the License. You may obtain a copy of
|
7 |
+
* the License at
|
8 |
+
*
|
9 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10 |
+
*
|
11 |
+
* Unless required by applicable law or agreed to in writing, software
|
12 |
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
13 |
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
14 |
+
* License for the specific language governing permissions and limitations under
|
15 |
+
* the License.
|
16 |
+
*/
|
17 |
+
var __values = (this && this.__values) || function(o) {
|
18 |
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
19 |
+
if (m) return m.call(o);
|
20 |
+
if (o && typeof o.length === "number") return {
|
21 |
+
next: function () {
|
22 |
+
if (o && i >= o.length) o = void 0;
|
23 |
+
return { value: o && o[i++], done: !o };
|
24 |
+
}
|
25 |
+
};
|
26 |
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
27 |
+
};
|
28 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
29 |
+
exports.getLogger = getLogger;
|
30 |
+
exports.getJupyterLogger = getJupyterLogger;
|
31 |
+
exports.logRequest = logRequest;
|
32 |
+
exports.initializeLoggers = initializeLoggers;
|
33 |
+
var bunyan = require("bunyan");
|
34 |
+
var path = require("path");
|
35 |
+
// We import the bunyan-rotating-file-stream package, which exports a
|
36 |
+
// constructor as a single object; we use lint disables here to make the usage
|
37 |
+
// below look reasonable.
|
38 |
+
//
|
39 |
+
// tslint:disable-next-line:no-require-imports variable-name enforce-name-casing
|
40 |
+
var RotatingFileStream = require('bunyan-rotating-file-stream');
|
41 |
+
var logger = null;
|
42 |
+
var requestLogger = null;
|
43 |
+
var jupyterLogger = null;
|
44 |
+
/**
|
45 |
+
* Gets the logger for generating debug logs.
|
46 |
+
* @returns the logger configured for debugging logging.
|
47 |
+
*/
|
48 |
+
function getLogger() {
|
49 |
+
return logger;
|
50 |
+
}
|
51 |
+
/**
|
52 |
+
* Gets the logger for generating Jupyter logs.
|
53 |
+
* @returns the logger configured for Jupyter logging.
|
54 |
+
*/
|
55 |
+
function getJupyterLogger() {
|
56 |
+
return jupyterLogger;
|
57 |
+
}
|
58 |
+
/**
|
59 |
+
* Logs a request and the corresponding response.
|
60 |
+
* @param request the request to be logged.
|
61 |
+
* @param response the response to be logged.
|
62 |
+
*/
|
63 |
+
function logRequest(request, response) {
|
64 |
+
requestLogger.debug({ url: request.url, method: request.method }, 'Received a new request');
|
65 |
+
response.on('finish', function () {
|
66 |
+
requestLogger.debug({
|
67 |
+
url: request.url,
|
68 |
+
method: request.method,
|
69 |
+
status: response.statusCode
|
70 |
+
});
|
71 |
+
});
|
72 |
+
}
|
73 |
+
/**
|
74 |
+
* Initializes loggers used within the application.
|
75 |
+
*/
|
76 |
+
function initializeLoggers(settings) {
|
77 |
+
var e_1, _a;
|
78 |
+
// We configure our loggers as follows:
|
79 |
+
// * our base logger tags all log records with `"name":"app"`, and sends logs
|
80 |
+
// to stderr (including logs of all children)
|
81 |
+
// * one child logger adds `"type":"request"`, and records method/URL for all
|
82 |
+
// HTTP requests to the app, and method/URL/response code for all responses
|
83 |
+
// * one child logger adds `"type":"jupyter"`, and records all messages from
|
84 |
+
// the jupyter notebook server. These logs are also sent to a file on disk
|
85 |
+
// (to assist user debugging).
|
86 |
+
//
|
87 |
+
// For more about bunyan, see:
|
88 |
+
// https://github.com/trentm/node-bunyan/tree/f21007d46c0e64072617380b70d3f542368318a8
|
89 |
+
var jupyterLogPath = path.join(settings.datalabRoot, '/var/colab/app.log');
|
90 |
+
logger = bunyan.createLogger({
|
91 |
+
name: 'app',
|
92 |
+
streams: [
|
93 |
+
{ level: 'debug', type: 'stream', stream: process.stderr },
|
94 |
+
]
|
95 |
+
});
|
96 |
+
requestLogger = logger.child({ type: 'request' });
|
97 |
+
jupyterLogger = logger.child({
|
98 |
+
type: 'jupyter',
|
99 |
+
streams: [{
|
100 |
+
level: 'info',
|
101 |
+
type: 'stream',
|
102 |
+
stream: new RotatingFileStream({
|
103 |
+
path: jupyterLogPath,
|
104 |
+
rotateExisting: false,
|
105 |
+
threshold: '2m',
|
106 |
+
totalSize: '20m'
|
107 |
+
}),
|
108 |
+
}]
|
109 |
+
});
|
110 |
+
// Omit superfluous fields, unless using the bunyan CLI to make logs human
|
111 |
+
// readable, because the CLI requires them.
|
112 |
+
if (process.env['COLAB_HUMAN_READABLE_NODE_LOGS'] !== '1') {
|
113 |
+
try {
|
114 |
+
for (var _b = __values([logger, jupyterLogger, requestLogger]), _c = _b.next(); !_c.done; _c = _b.next()) {
|
115 |
+
var logs = _c.value;
|
116 |
+
delete logs.fields['hostname'];
|
117 |
+
delete logs.fields['name'];
|
118 |
+
}
|
119 |
+
}
|
120 |
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
121 |
+
finally {
|
122 |
+
try {
|
123 |
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
124 |
+
}
|
125 |
+
finally { if (e_1) throw e_1.error; }
|
126 |
+
}
|
127 |
+
}
|
128 |
+
}
|
129 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RoaXJkX3BhcnR5L2NvbGFiL3NvdXJjZXMvbG9nZ2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7Ozs7Ozs7Ozs7Ozs7QUF1QkgsOEJBRUM7QUFNRCw0Q0FFQztBQU9ELGdDQVdDO0FBS0QsOENBeUNDO0FBL0ZELCtCQUFpQztBQUVqQywyQkFBNkI7QUFJN0IscUVBQXFFO0FBQ3JFLDhFQUE4RTtBQUM5RSx5QkFBeUI7QUFDekIsRUFBRTtBQUNGLGdGQUFnRjtBQUNoRixJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBRWxFLElBQUksTUFBTSxHQUF3QixJQUFJLENBQUM7QUFDdkMsSUFBSSxhQUFhLEdBQXdCLElBQUksQ0FBQztBQUM5QyxJQUFJLGFBQWEsR0FBd0IsSUFBSSxDQUFDO0FBRTlDOzs7R0FHRztBQUNILFNBQWdCLFNBQVM7SUFDdkIsT0FBTyxNQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGdCQUFnQjtJQUM5QixPQUFPLGFBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFVBQVUsQ0FDdEIsT0FBNkIsRUFBRSxRQUE2QjtJQUM5RCxhQUFjLENBQUMsS0FBSyxDQUNoQixFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFDLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUMxRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUNwQixhQUFjLENBQUMsS0FBSyxDQUFDO1lBQ25CLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsUUFBcUI7O0lBQ3JELHVDQUF1QztJQUN2Qyw4RUFBOEU7SUFDOUUsZ0RBQWdEO0lBQ2hELDhFQUE4RTtJQUM5RSw4RUFBOEU7SUFDOUUsNkVBQTZFO0lBQzdFLDZFQUE2RTtJQUM3RSxpQ0FBaUM7SUFDakMsRUFBRTtJQUNGLDhCQUE4QjtJQUM5Qix3RkFBd0Y7SUFDeEYsSUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDN0UsTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDM0IsSUFBSSxFQUFFLEtBQUs7UUFDWCxPQUFPLEVBQUU7WUFDUCxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBQztTQUN6RDtLQUNGLENBQUMsQ0FBQztJQUNILGFBQWEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7SUFDaEQsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsQ0FBQztnQkFDUixLQUFLLEVBQUUsTUFBTTtnQkFDYixJQUFJLEVBQUUsUUFBUTtnQkFDZCxNQUFNLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQztvQkFDN0IsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLGNBQWMsRUFBRSxLQUFLO29CQUNyQixTQUFTLEVBQUUsSUFBSTtvQkFDZixTQUFTLEVBQUUsS0FBSztpQkFDakIsQ0FBQzthQUNILENBQUM7S0FDSCxDQUFDLENBQUM7SUFDSCwwRUFBMEU7SUFDMUUsMkNBQTJDO0lBQzNDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDOztZQUMxRCxLQUFtQixJQUFBLEtBQUEsU0FBQSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUEsZ0JBQUEsNEJBQUUsQ0FBQztnQkFBdkQsSUFBTSxJQUFJLFdBQUE7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMvQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0IsQ0FBQzs7Ozs7Ozs7O0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdFxuICogdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2ZcbiAqIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUXG4gKiBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGVcbiAqIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyXG4gKiB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBidW55YW4gZnJvbSAnYnVueWFuJztcbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQge0FwcFNldHRpbmdzfSBmcm9tICcuL2FwcFNldHRpbmdzJztcblxuLy8gV2UgaW1wb3J0IHRoZSBidW55YW4tcm90YXRpbmctZmlsZS1zdHJlYW0gcGFja2FnZSwgd2hpY2ggZXhwb3J0cyBhXG4vLyBjb25zdHJ1Y3RvciBhcyBhIHNpbmdsZSBvYmplY3Q7IHdlIHVzZSBsaW50IGRpc2FibGVzIGhlcmUgdG8gbWFrZSB0aGUgdXNhZ2Vcbi8vIGJlbG93IGxvb2sgcmVhc29uYWJsZS5cbi8vXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tcmVxdWlyZS1pbXBvcnRzIHZhcmlhYmxlLW5hbWUgZW5mb3JjZS1uYW1lLWNhc2luZ1xuY29uc3QgUm90YXRpbmdGaWxlU3RyZWFtID0gcmVxdWlyZSgnYnVueWFuLXJvdGF0aW5nLWZpbGUtc3RyZWFtJyk7XG5cbmxldCBsb2dnZXI6IGJ1bnlhbi5JTG9nZ2VyfG51bGwgPSBudWxsO1xubGV0IHJlcXVlc3RMb2dnZXI6IGJ1bnlhbi5JTG9nZ2VyfG51bGwgPSBudWxsO1xubGV0IGp1cHl0ZXJMb2dnZXI6IGJ1bnlhbi5JTG9nZ2VyfG51bGwgPSBudWxsO1xuXG4vKipcbiAqIEdldHMgdGhlIGxvZ2dlciBmb3IgZ2VuZXJhdGluZyBkZWJ1ZyBsb2dzLlxuICogQHJldHVybnMgdGhlIGxvZ2dlciBjb25maWd1cmVkIGZvciBkZWJ1Z2dpbmcgbG9nZ2luZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlcigpOiBidW55YW4uSUxvZ2dlciB7XG4gIHJldHVybiBsb2dnZXIhO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGxvZ2dlciBmb3IgZ2VuZXJhdGluZyBKdXB5dGVyIGxvZ3MuXG4gKiBAcmV0dXJucyB0aGUgbG9nZ2VyIGNvbmZpZ3VyZWQgZm9yIEp1cHl0ZXIgbG9nZ2luZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEp1cHl0ZXJMb2dnZXIoKTogYnVueWFuLklMb2dnZXIge1xuICByZXR1cm4ganVweXRlckxvZ2dlciE7XG59XG5cbi8qKlxuICogTG9ncyBhIHJlcXVlc3QgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlLlxuICogQHBhcmFtIHJlcXVlc3QgdGhlIHJlcXVlc3QgdG8gYmUgbG9nZ2VkLlxuICogQHBhcmFtIHJlc3BvbnNlIHRoZSByZXNwb25zZSB0byBiZSBsb2dnZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dSZXF1ZXN0KFxuICAgIHJlcXVlc3Q6IGh0dHAuSW5jb21pbmdNZXNzYWdlLCByZXNwb25zZTogaHR0cC5TZXJ2ZXJSZXNwb25zZSk6IHZvaWQge1xuICByZXF1ZXN0TG9nZ2VyIS5kZWJ1ZyhcbiAgICAgIHt1cmw6IHJlcXVlc3QudXJsLCBtZXRob2Q6IHJlcXVlc3QubWV0aG9kfSwgJ1JlY2VpdmVkIGEgbmV3IHJlcXVlc3QnKTtcbiAgcmVzcG9uc2Uub24oJ2ZpbmlzaCcsICgpID0+IHtcbiAgICByZXF1ZXN0TG9nZ2VyIS5kZWJ1Zyh7XG4gICAgICB1cmw6IHJlcXVlc3QudXJsLFxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzQ29kZVxuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplcyBsb2dnZXJzIHVzZWQgd2l0aGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVMb2dnZXJzKHNldHRpbmdzOiBBcHBTZXR0aW5ncyk6IHZvaWQge1xuICAvLyBXZSBjb25maWd1cmUgb3VyIGxvZ2dlcnMgYXMgZm9sbG93czpcbiAgLy8gICogb3VyIGJhc2UgbG9nZ2VyIHRhZ3MgYWxsIGxvZyByZWNvcmRzIHdpdGggYFwibmFtZVwiOlwiYXBwXCJgLCBhbmQgc2VuZHMgbG9nc1xuICAvLyAgICB0byBzdGRlcnIgKGluY2x1ZGluZyBsb2dzIG9mIGFsbCBjaGlsZHJlbilcbiAgLy8gICogb25lIGNoaWxkIGxvZ2dlciBhZGRzIGBcInR5cGVcIjpcInJlcXVlc3RcImAsIGFuZCByZWNvcmRzIG1ldGhvZC9VUkwgZm9yIGFsbFxuICAvLyAgICBIVFRQIHJlcXVlc3RzIHRvIHRoZSBhcHAsIGFuZCBtZXRob2QvVVJML3Jlc3BvbnNlIGNvZGUgZm9yIGFsbCByZXNwb25zZXNcbiAgLy8gICogb25lIGNoaWxkIGxvZ2dlciBhZGRzIGBcInR5cGVcIjpcImp1cHl0ZXJcImAsIGFuZCByZWNvcmRzIGFsbCBtZXNzYWdlcyBmcm9tXG4gIC8vICAgIHRoZSBqdXB5dGVyIG5vdGVib29rIHNlcnZlci4gVGhlc2UgbG9ncyBhcmUgYWxzbyBzZW50IHRvIGEgZmlsZSBvbiBkaXNrXG4gIC8vICAgICh0byBhc3Npc3QgdXNlciBkZWJ1Z2dpbmcpLlxuICAvL1xuICAvLyBGb3IgbW9yZSBhYm91dCBidW55YW4sIHNlZTpcbiAgLy8gICBodHRwczovL2dpdGh1Yi5jb20vdHJlbnRtL25vZGUtYnVueWFuL3RyZWUvZjIxMDA3ZDQ2YzBlNjQwNzI2MTczODBiNzBkM2Y1NDIzNjgzMThhOFxuICBjb25zdCBqdXB5dGVyTG9nUGF0aCA9IHBhdGguam9pbihzZXR0aW5ncy5kYXRhbGFiUm9vdCwgJy92YXIvY29sYWIvYXBwLmxvZycpO1xuICBsb2dnZXIgPSBidW55YW4uY3JlYXRlTG9nZ2VyKHtcbiAgICBuYW1lOiAnYXBwJyxcbiAgICBzdHJlYW1zOiBbXG4gICAgICB7bGV2ZWw6ICdkZWJ1ZycsIHR5cGU6ICdzdHJlYW0nLCBzdHJlYW06IHByb2Nlc3Muc3RkZXJyfSxcbiAgICBdXG4gIH0pO1xuICByZXF1ZXN0TG9nZ2VyID0gbG9nZ2VyLmNoaWxkKHt0eXBlOiAncmVxdWVzdCd9KTtcbiAganVweXRlckxvZ2dlciA9IGxvZ2dlci5jaGlsZCh7XG4gICAgdHlwZTogJ2p1cHl0ZXInLFxuICAgIHN0cmVhbXM6IFt7XG4gICAgICBsZXZlbDogJ2luZm8nLFxuICAgICAgdHlwZTogJ3N0cmVhbScsXG4gICAgICBzdHJlYW06IG5ldyBSb3RhdGluZ0ZpbGVTdHJlYW0oe1xuICAgICAgICBwYXRoOiBqdXB5dGVyTG9nUGF0aCxcbiAgICAgICAgcm90YXRlRXhpc3Rpbmc6IGZhbHNlLFxuICAgICAgICB0aHJlc2hvbGQ6ICcybScsXG4gICAgICAgIHRvdGFsU2l6ZTogJzIwbSdcbiAgICAgIH0pLFxuICAgIH1dXG4gIH0pO1xuICAvLyBPbWl0IHN1cGVyZmx1b3VzIGZpZWxkcywgdW5sZXNzIHVzaW5nIHRoZSBidW55YW4gQ0xJIHRvIG1ha2UgbG9ncyBodW1hblxuICAvLyByZWFkYWJsZSwgYmVjYXVzZSB0aGUgQ0xJIHJlcXVpcmVzIHRoZW0uXG4gIGlmIChwcm9jZXNzLmVudlsnQ09MQUJfSFVNQU5fUkVBREFCTEVfTk9ERV9MT0dTJ10gIT09ICcxJykge1xuICAgIGZvciAoY29uc3QgbG9ncyBvZiBbbG9nZ2VyLCBqdXB5dGVyTG9nZ2VyLCByZXF1ZXN0TG9nZ2VyXSkge1xuICAgICAgZGVsZXRlIGxvZ3MuZmllbGRzWydob3N0bmFtZSddO1xuICAgICAgZGVsZXRlIGxvZ3MuZmllbGRzWyduYW1lJ107XG4gICAgfVxuICB9XG59XG4iXX0=
|
datalab/web/lsp/capabilities_node.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzX25vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9nZW5maWxlcy90aGlyZF9wYXJ0eS9jb2xhYi9zb3VyY2VzL2xzcC9jYXBhYmlsaXRpZXNfbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcHJvdG9jb2wgZnJvbSAnLi9wcm90b2NvbF9ub2RlJztcbmltcG9ydCAqIGFzIHRleHREb2N1bWVudCBmcm9tICcuL3RleHRfZG9jdW1lbnRfbm9kZSc7XG5pbXBvcnQgKiBhcyB3b3Jrc3BhY2UgZnJvbSAnLi93b3Jrc3BhY2Vfbm9kZSc7XG5cbmRlY2xhcmUgaW50ZXJmYWNlIENsaWVudENhcGFiaWxpdGllcyB7XG4gIC8qKlxuICAgKiBXb3Jrc3BhY2Ugc3BlY2lmaWMgY2xpZW50IGNhcGFiaWxpdGllcy5cbiAgICovXG4gIHdvcmtzcGFjZT86IHtcbiAgICAvKipcbiAgICAgKiBUaGUgY2xpZW50IHN1cHBvcnRzIGFwcGx5aW5nIGJhdGNoIGVkaXRzXG4gICAgICogdG8gdGhlIHdvcmtzcGFjZSBieSBzdXBwb3J0aW5nIHRoZSByZXF1ZXN0XG4gICAgICogJ3dvcmtzcGFjZS9hcHBseUVkaXQnXG4gICAgICovXG4gICAgYXBwbHlFZGl0PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIENhcGFiaWxpdGllcyBzcGVjaWZpYyB0byBgV29ya3NwYWNlRWRpdGBzXG4gICAgICovXG4gICAgd29ya3NwYWNlRWRpdD86IHByb3RvY29sLldvcmtzcGFjZUVkaXRDbGllbnRDYXBhYmlsaXRpZXM7XG5cbiAgICAvKipcbiAgICAgKiBDYXBhYmlsaXRpZXMgc3BlY2lmaWMgdG8gdGhlIGB3b3Jrc3BhY2UvZGlkQ2hhbmdlQ29uZmlndXJhdGlvbmBcbiAgICAgKiBub3RpZmljYXRpb24uXG4gICAgICovXG4gICAgZGlkQ2hhbmdlQ29uZmlndXJhdGlvbj86IHdvcmtzcGFjZS5EaWRDaGFuZ2VDb25maWd1cmF0aW9uQ2xpZW50Q2FwYWJpbGl0aWVzO1xuXG4gICAgLyoqXG4gICAgICogQ2FwYWJpbGl0aWVzIHNwZWNpZmljIHRvIHRoZSBgd29ya3NwYWNlL2RpZENoYW5nZVdhdGNoZWRGaWxlc2BcbiAgICAgKiBub3RpZmljYXRpb24uXG4gICAgICovXG4gICAgZGlkQ2hhbmdlV2F0Y2hlZEZpbGVzPzogd29ya3NwYWNlLkRpZENoYW5nZVdhdGNoZWRGaWxlc0NsaWVudENhcGFiaWxpdGllcztcblxuICAgIC8qKlxuICAgICAqIENhcGFiaWxpdGllcyBzcGVjaWZpYyB0byB0aGUgYHdvcmtzcGFjZS9zeW1ib2xgIHJlcXVlc3QuXG4gICAgICovXG4gICAgc3ltYm9sPzogd29ya3NwYWNlLldvcmtzcGFjZVN5bWJvbENsaWVudENhcGFiaWxpdGllcztcblxuICAgIC8qKlxuICAgICAqIENhcGFiaWxpdGllcyBzcGVjaWZpYyB0byB0aGUgYHdvcmtzcGFjZS9leGVjdXRlQ29tbWFuZGAgcmVxdWVzdC5cbiAgICAgKi9cbiAgICBleGVjdXRlQ29tbWFuZD86IHByb3RvY29sLkV4ZWN1dGVDb21tYW5kQ2xpZW50Q2FwYWJpbGl0aWVzO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNsaWVudCBoYXMgc3VwcG9ydCBmb3Igd29ya3NwYWNlIGZvbGRlcnMuXG4gICAgICpcbiAgICAgKiBTaW5jZSAzLjYuMFxuICAgICAqL1xuICAgIHdvcmtzcGFjZUZvbGRlcnM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNsaWVudCBzdXBwb3J0cyBgd29ya3NwYWNlL2NvbmZpZ3VyYXRpb25gIHJlcXVlc3RzLlxuICAgICAqXG4gICAgICogU2luY2UgMy42LjBcbiAgICAgKi9cbiAgICBjb25maWd1cmF0aW9uPzogYm9vbGVhbjtcbiAgfTtcblxuICAvKipcbiAgICogVGV4dCBkb2N1bWVudCBzcGVjaWZpYyBjbGllbnQgY2FwYWJpbGl0aWVzLlxuICAgKi9cbiAgdGV4dERvY3VtZW50PzogdGV4dERvY3VtZW50LlRleHREb2N1bWVudENsaWVudENhcGFiaWxpdGllcztcblxuICAvKipcbiAgICogV2luZG93IHNwZWNpZmljIGNsaWVudCBjYXBhYmlsaXRpZXMuXG4gICAqL1xuICB3aW5kb3c/OiB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciBjbGllbnQgc3VwcG9ydHMgaGFuZGxpbmcgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9ucy5cbiAgICAgKiBJZiBzZXQsIHNlcnZlcnMgYXJlIGFsbG93ZWQgdG8gcmVwb3J0IGluIGB3b3JrRG9uZVByb2dyZXNzYCBwcm9wZXJ0eVxuICAgICAqIGluIHRoZSByZXF1ZXN0IHNwZWNpZmljIHNlcnZlciBjYXBhYmlsaXRpZXMuXG4gICAgICpcbiAgICAgKiBTaW5jZSAzLjE1LjBcbiAgICAgKi9cbiAgICB3b3JrRG9uZVByb2dyZXNzPzogYm9vbGVhbjtcbiAgfTtcblxuICAvKipcbiAgICogRXhwZXJpbWVudGFsIGNsaWVudCBjYXBhYmlsaXRpZXMuXG4gICAqL1xuICBleHBlcmltZW50YWw/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNpbml0aWFsaXplXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJbml0aWFsaXplIGV4dGVuZHNcbiAgICBwcm90b2NvbC5SZXF1ZXN0TWVzc2FnZTxJbml0aWFsaXplUGFyYW1zPiB7XG4gIG1ldGhvZDogcHJvdG9jb2wuTWV0aG9kLkluaXRpYWxpemU7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2luaXRpYWxpemVcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEluaXRpYWxpemVQYXJhbXMgZXh0ZW5kc1xuICAgIHByb3RvY29sLldvcmtEb25lUHJvZ3Jlc3NQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHByb2Nlc3MgSUQgb2YgdGhlIHBhcmVudCBwcm9jZXNzIHRoYXQgc3RhcnRlZCB0aGUgc2VydmVyLlxuICAgKiBJcyBudWxsIGlmIHRoZSBwcm9jZXNzIGhhcyBub3QgYmVlbiBzdGFydGVkIGJ5IGFub3RoZXIgcHJvY2Vzcy5cbiAgICogSWYgdGhlIHBhcmVudCBwcm9jZXNzIGlzIG5vdCBhbGl2ZSwgdGhlbiB0aGUgc2VydmVyIHNob3VsZCBleGl0XG4gICAqIChzZWUgZXhpdCBub3RpZmljYXRpb24pIGl0cyBwcm9jZXNzLlxuICAgKi9cbiAgcHJvY2Vzc0lkOiBudW1iZXJ8bnVsbDtcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGNsaWVudFxuICAgKlxuICAgKiBAc2luY2UgMy4xNS4wXG4gICAqL1xuICBjbGllbnRJbmZvPzoge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBjbGllbnQgYXMgZGVmaW5lZCBieSB0aGUgY2xpZW50LlxuICAgICAqL1xuICAgIG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBjbGllbnQncyB2ZXJzaW9uIGFzIGRlZmluZWQgYnkgdGhlIGNsaWVudC5cbiAgICAgKi9cbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdFBhdGggb2YgdGhlIHdvcmtzcGFjZS4gSXMgbnVsbFxuICAgKiBpZiBubyBmb2xkZXIgaXMgb3Blbi5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIHJvb3RVcmkuXG4gICAqL1xuICByb290UGF0aD86IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdFVyaSBvZiB0aGUgd29ya3NwYWNlLiBJcyBudWxsIGlmIG5vXG4gICAqIGZvbGRlciBpcyBvcGVuLiBJZiBib3RoIGByb290UGF0aGAgYW5kIGByb290VXJpYCBhcmUgc2V0XG4gICAqIGByb290VXJpYCB3aW5zLlxuICAgKi9cbiAgcm9vdFVyaTogcHJvdG9jb2wuRG9jdW1lbnRVcml8bnVsbDtcblxuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBpbml0aWFsaXphdGlvbiBvcHRpb25zLlxuICAgKi9cbiAgaW5pdGlhbGl6YXRpb25PcHRpb25zPzogdW5rbm93bjtcblxuICAvKipcbiAgICogVGhlIGNhcGFiaWxpdGllcyBwcm92aWRlZCBieSB0aGUgY2xpZW50IChlZGl0b3Igb3IgdG9vbClcbiAgICovXG4gIGNhcGFiaWxpdGllczogQ2xpZW50Q2FwYWJpbGl0aWVzO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCB0cmFjZSBzZXR0aW5nLiBJZiBvbWl0dGVkIHRyYWNlIGlzIGRpc2FibGVkICgnb2ZmJykuXG4gICAqL1xuICB0cmFjZT86ICdvZmYnfCdtZXNzYWdlcyd8J3ZlcmJvc2UnO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya3NwYWNlIGZvbGRlcnMgY29uZmlndXJlZCBpbiB0aGUgY2xpZW50IHdoZW4gdGhlIHNlcnZlciBzdGFydHMuXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgb25seSBhdmFpbGFibGUgaWYgdGhlIGNsaWVudCBzdXBwb3J0cyB3b3Jrc3BhY2UgZm9sZGVycy5cbiAgICogSXQgY2FuIGJlIGBudWxsYCBpZiB0aGUgY2xpZW50IHN1cHBvcnRzIHdvcmtzcGFjZSBmb2xkZXJzIGJ1dCBub25lIGFyZVxuICAgKiBjb25maWd1cmVkLlxuICAgKlxuICAgKiBAc2luY2UgMy42LjBcbiAgICovXG4gIHdvcmtzcGFjZUZvbGRlcnM/OiB3b3Jrc3BhY2UuV29ya3NwYWNlRm9sZGVyW118bnVsbDtcbn1cbiJdfQ==
|
datalab/web/lsp/extensions_node.js
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3 |
+
exports.ExecutionStatus = void 0;
|
4 |
+
/** The status of a cell's execution. */
|
5 |
+
var ExecutionStatus;
|
6 |
+
(function (ExecutionStatus) {
|
7 |
+
/** The default value for an execution status. */
|
8 |
+
ExecutionStatus[ExecutionStatus["UNKNOWN"] = 0] = "UNKNOWN";
|
9 |
+
/** Execution is up to date. */
|
10 |
+
ExecutionStatus[ExecutionStatus["FRESH"] = 1] = "FRESH";
|
11 |
+
/** Execution is out of date. */
|
12 |
+
ExecutionStatus[ExecutionStatus["STALE"] = 2] = "STALE";
|
13 |
+
})(ExecutionStatus || (exports.ExecutionStatus = ExecutionStatus = {}));
|
14 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9uc19ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZ2VuZmlsZXMvdGhpcmRfcGFydHkvY29sYWIvc291cmNlcy9sc3AvZXh0ZW5zaW9uc19ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW1DQSx3Q0FBd0M7QUFDeEMsSUFBWSxlQU9YO0FBUEQsV0FBWSxlQUFlO0lBQ3pCLGlEQUFpRDtJQUNqRCwyREFBVyxDQUFBO0lBQ1gsK0JBQStCO0lBQy9CLHVEQUFLLENBQUE7SUFDTCxnQ0FBZ0M7SUFDaEMsdURBQUssQ0FBQTtBQUNQLENBQUMsRUFQVyxlQUFlLCtCQUFmLGVBQWUsUUFPMUIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCAqIGFzIGNhcGFiaWxpdGllcyBmcm9tICcuL2NhcGFiaWxpdGllc19ub2RlJztcbmltcG9ydCAqIGFzIHByb3RvY29sIGZyb20gJy4vcHJvdG9jb2xfbm9kZSc7XG5pbXBvcnQgKiBhcyB0ZXh0RG9jdW1lbnQgZnJvbSAnLi90ZXh0X2RvY3VtZW50X25vZGUnO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZTplbmZvcmNlLW5hbWUtY2FzaW5nXG5cbi8qKlxuICogUGFyYW1ldGVyIGZvciBgaW5pdGlhbGl6ZWAgbWVzc2FnZXMuXG4gKiBBZGRzIGEgZmxhZyBjb250cm9sbGluZyB3aGV0aGVyIHdlIHJ1biBBdXRvRml4LlxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW5pdGlhbGl6ZVBhcmFtcyBleHRlbmRzXG4gICAgY2FwYWJpbGl0aWVzLkluaXRpYWxpemVQYXJhbXMge1xuICBhdXRvRml4OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlciBmb3IgYHRleHREb2N1bWVudC9kaWRPcGVuYCBtZXNzYWdlcy5cbiAqIEFkZHMgYSBwcmVhbWJsZSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWRPcGVuVGV4dERvY3VtZW50UGFyYW1zIGV4dGVuZHNcbiAgICB0ZXh0RG9jdW1lbnQuRGlkT3BlblRleHREb2N1bWVudFBhcmFtcyB7XG4gIHJlYWRvbmx5IHByZWFtYmxlOiBzdHJpbmc7XG59XG5cbi8qKiBQYXJhbWV0ZXJzIGZvciBgdGV4dERvY3VtZW50L3JlcGFpcmAgbWVzc2FnZXMuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUmVwYWlyUGFyYW1zIHtcbiAgY29kZTogc3RyaW5nO1xufVxuXG4vKiogUmVzdWx0IGZvciBgdGV4dERvY3VtZW50L3JlcGFpcmAgbWVzc2FnZXMuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUmVwYWlyUmVzdWx0IHtcbiAgcmVwYWlyZWRDb2RlOiBzdHJpbmc7XG59XG5cbi8qKiBUaGUgc3RhdHVzIG9mIGEgY2VsbCdzIGV4ZWN1dGlvbi4gKi9cbmV4cG9ydCBlbnVtIEV4ZWN1dGlvblN0YXR1cyB7XG4gIC8qKiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgYW4gZXhlY3V0aW9uIHN0YXR1cy4gKi9cbiAgVU5LTk9XTiA9IDAsXG4gIC8qKiBFeGVjdXRpb24gaXMgdXAgdG8gZGF0ZS4gKi9cbiAgRlJFU0gsXG4gIC8qKiBFeGVjdXRpb24gaXMgb3V0IG9mIGRhdGUuICovXG4gIFNUQUxFLFxufVxuXG4vKipcbiAqIE1hcCBmcm9tIGNlbGwgaW5kZXggdG8gdGhlIGV4ZWN1dGlvbiBzdGF0dXMgb2YgdGhhdCBjZWxsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGlvblN0YXR1c2VzIHtcbiAgW2luZGV4OiBudW1iZXJdOiBFeGVjdXRpb25TdGF0dXM7XG59XG5cbi8qKlxuICogRXhwYW5zaW9uRmVhdHVyZXMgZGVmaW5lcyB0aGUgb3B0aW9ucyB0aGF0IGNhbiBiZSBjb25maWd1cmVkIGhvd1xuICogcHJlcmVxdWlzaXRlcyBvciBkZXBlbmRlbnRzIGFyZSBleHBhbmRlZC5cbiAqXG4gKiBTZWUgZWFjaCBmaWVsZCBmb3IgaXRzIHJlc3BlY3RpdmUgZGVmYXVsdC4gTGVmdCB1bnNwZWNpZmllZCwgdGhleSBhcmUgdXNlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBhbnNpb25GZWF0dXJlcyB7XG4gIC8qKlxuICAgKiBFeGVjdXRpb25TdGF0dXNQcm9wYWdhdGlvbiB0b2dnbGVzIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGV4ZWN1dGlvbiBzdGF0dXNlc1xuICAgKiBhcmUgcHJvcGFnYXRlZCBhbG9uZyB0aGUgZWRnZXMgb2YgY29ubmVjdGVkIGNlbGxzLlxuICAgKlxuICAgKiBVbnNwZWNpZmllZCBzZXJ2ZXItc2lkZSBkZWZhdWx0IGlzIHRydWUuXG4gICAqL1xuICBleGVjdXRpb25TdGF0dXNQcm9wYWdhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpbmtJbXBvcnRzVG9JbnN0YWxscyB0b2dnbGVzIHdoZXRoZXIgaW1wb3J0cyBhcmUgbGlua2VkIHRvIGluc3RhbGxzLlxuICAgKlxuICAgKiBVbnNwZWNpZmllZCBzZXJ2ZXItc2lkZSBkZWZhdWx0IGlzIHRydWUuXG4gICAqL1xuICBsaW5rSW1wb3J0c1RvSW5zdGFsbHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMaW5rSURBc3NpZ25tZW50cyB0b2dnbGVzIHdoZXRoZXIgSURzIG9uIHRoZSBMSFMgb2YgYW4gYXNzaWdubWVudCBhcmVcbiAgICogbGlua2VkIHRvIHRob3NlIG9uIHRoZSBSSFMuXG4gICAqXG4gICAqIFVuc3BlY2lmaWVkIHNlcnZlci1zaWRlIGRlZmF1bHQgaXMgdHJ1ZS5cbiAgICovXG4gIGxpbmtJZEFzc2lnbm1lbnRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQmFja3RyYWNraW5nU3RyYXRlZ3kgZGVmaW5lcyB0aGUgc3RyYXRlZ3kgdG8gdXNlIHdoZW4gd29ya2luZy1iYWNrXG4gICAqIHJlZmVyZW5jZXMuXG4gICAqXG4gICAqIFVuc3BlY2lmaWVkIHNlcnZlci1zaWRlIGRlZmF1bHQgaXMgJ25vbi1saXRlcmFscycuXG4gICAqXG4gICAqIE9wdGlvbnMgYXJlOlxuICAgKlxuICAgKiAgIC0gJ25vbmUnXG4gICAqICAgLSAnYWxsJ1xuICAgKiAgIC0gJ25vbi1saXRlcmFscydcbiAgICovXG4gIGJhY2t0cmFja2luZ1N0cmF0ZWd5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtcyBmb3IgdGhlIGRlcGVuZGVudCBjZWxscyByZXF1ZXN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENlbGxEZXBlbmRlbnRzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjb2xsZWN0aW9uIG9mIGNlbGwgaW5kaWNlcyB3aG9zZSBkZXBlbmRlbnRzIGFyZSByZXF1ZXN0ZWQuXG4gICAqL1xuICBjZWxsczogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgZGVmaW5lcyB0aGUgZmVhdHVyZSBjb250cm9scyB0aGF0IGFyZSB1c2VkIHdoZW4gZXhwYW5kaW5nIHRoZVxuICAgKiBwcmVyZXF1aXNpdGVzLlxuICAgKi9cbiAgZXhwYW5zaW9uRmVhdHVyZXM/OiBFeHBhbnNpb25GZWF0dXJlcztcbn1cblxuLyoqXG4gKiBQYXJhbXMgZm9yIHRoZSBjZWxsIHByZXJlcXVpc2l0ZXMgcmVxdWVzdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZWxsUHJlcmVxdWlzaXRlc1BhcmFtcyB7XG4gIC8qKiBUaGUgZG9jdW1lbnQgVVJJLiAqL1xuICB1cmk6IHByb3RvY29sLkRvY3VtZW50VXJpO1xuXG4gIC8qKlxuICAgKiBUaGUgY29sbGVjdGlvbiBvZiBjZWxsIGluZGljZXMgd2hvc2UgcHJlcmVxdWlzaXRlcyBhcmUgcmVxdWVzdGVkLlxuICAgKi9cbiAgY2VsbHM6IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBNYXAgZnJvbSBjZWxsIGluZGV4IHRvIHRoZSBleGVjdXRpb24gc3RhdHVzIG9mIHRoYXQgY2VsbC5cbiAgICovXG4gIGV4ZWN1dGlvblN0YXR1c2VzPzogRXhlY3V0aW9uU3RhdHVzZXM7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgZGVmaW5lcyB0aGUgZmVhdHVyZSBjb250cm9scyB0aGF0IGFyZSB1c2VkIHdoZW4gZXhwYW5kaW5nIHRoZVxuICAgKiBwcmVyZXF1aXNpdGVzLlxuICAgKi9cbiAgZXhwYW5zaW9uRmVhdHVyZXM/OiBFeHBhbnNpb25GZWF0dXJlcztcbn1cblxuLyoqIEEgcG9pbnRlciB0byBhIGNlbGwgaW4gdGhlIG5vdGVib29rIHdpdGggc3RhdGVmdWwgaW5mb3JtYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIENlbGwge1xuICAvKiogVGhlIGluZGV4IG9mIHRoZSBjZWxsIGluIHRoZSBub3RlYm9vay4gKi9cbiAgaW5kZXg6IG51bWJlcjtcbiAgLyoqIFRoZSBzdGF0dXMgb2YgdGhlIGNlbGwncyBleGVjdXRpb24uICovXG4gIGV4ZWN1dGlvblN0YXR1czogRXhlY3V0aW9uU3RhdHVzO1xufVxuXG4vKipcbiAqIEEgY29ubmVjdGlvbiBiZXR3ZWVuIHR3byBzeW1ib2xzIHdoZXJlIG9uZSByZWZlcmVuY2VzIGFub3RoZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ltYm9sUmVmIHtcbiAgLyoqXG4gICAqIFRoZSBzeW1ib2wgdGhhdCBlc3RhYmxpc2hlcyB0aGUgcmVmZXJlbmNlLlxuICAgKi9cbiAgc291cmNlOiBwcm90b2NvbC5SYW5nZTtcblxuICAvKipcbiAgICogVGhlIHN5bWJvbCB0aGF0IGlzIHJlZmVyZW5jZWQgYnkgdGhlIHNvdXJjZSBzeW1ib2wuXG4gICAqL1xuICB0YXJnZXQ6IHByb3RvY29sLlJhbmdlO1xufVxuXG4vKipcbiAqIEEgY29ubmVjdGlvbiBiZXR3ZWVuIHR3byBjZWxscyB3aGVyZSBvbmUgcmVmZXJlbmNlcyBhbm90aGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENlbGxSZWYge1xuICAvKipcbiAgICogVGhlIGNlbGwgdGhhdCBlc3RhYmxpc2hlcyB0aGUgcmVmZXJlbmNlLlxuICAgKi9cbiAgc291cmNlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjZWxsIHRoYXQgaXMgcmVmZXJlbmNlZCBieSB0aGUgc291cmNlIGNlbGwuXG4gICAqL1xuICB0YXJnZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGNvbGxlY3Rpb24gb2Ygc3ltYm9sIHJlZmVyZW5jZXMgdGhhdCBlc3RhYmxpc2ggdGhlIHJlZmVyZW5jZS5cbiAgICovXG4gIG9uOiBTeW1ib2xSZWZbXTtcbn1cblxuLyoqXG4gKiBBIGdyYXBoIG9mIGNlbGxzIGFuZCB0aGVpciByZWZlcmVuY2VzIHRoYXQgZXN0YWJsaXNoIGRlcGVuZGVuY2llcyBiZXR3ZWVuXG4gKiB0aGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENlbGxHcmFwaCB7XG4gIC8qKlxuICAgKiBUaGUgaW5kaWNlcyBvZiBjZWxscyBpbiBhIFB5dGhvbiBub3RlYm9vay5cbiAgICovXG4gIGNlbGxzPzogQ2VsbFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVmZXJlbmNlIGdyYXBoIHdoaWNoIGVzdGFibGlzaGVzIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBjZWxscy5cbiAgICovXG4gIHJlZnM/OiBDZWxsUmVmW107XG59XG5cbi8qKlxuICogRGVwZW5kZW50Q2VsbHNSZXNwb25zZSByZXByZXNlbnRzIGEgcmVzcG9uc2UgZnJvbSBlaXRoZXIgcHJlcmVxdWlzaXRlIG9yXG4gKiBkZXBlbmRlbnQgY2VsbHMuIEl0IGNvbnRhaW5zIGEgZ3JhcGggdGhhdCByZXByZXNlbnRzIGNlbGxzIGFuZCB0aGVpclxuICogcmVmZXJlbmNlcyB0aGF0IGVzdGFibGlzaGVzIHRoZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGVuZGVudENlbGxzUmVzcG9uc2UgZXh0ZW5kcyBDZWxsR3JhcGgge1xuICAvKipcbiAgICogTWFnaWNzIHRoYXQgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgcHJlcmVxIGNlbGxzLCBhbmQgbWF5IGxlYWQgdG8gaW5jb3JyZWN0XG4gICAqIHJlc3VsdHMuXG4gICAqL1xuICB1bnN1cHBvcnRlZE1hZ2ljcz86IHN0cmluZ1tdO1xufVxuIl19
|
datalab/web/lsp/protocol_node.js
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
// tslint:disable:enforce-name-casing
|
3 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4 |
+
exports.SymbolTag = exports.SymbolKind = exports.DiagnosticSeverity = exports.DiagnosticTag = exports.FailureHandlingKind = exports.ResourceOperationKind = exports.ErrorCode = exports.Method = void 0;
|
5 |
+
/**
|
6 |
+
* JSON-RPC Methods.
|
7 |
+
*/
|
8 |
+
var Method;
|
9 |
+
(function (Method) {
|
10 |
+
Method["CancelRequest"] = "$/cancelRequest";
|
11 |
+
Method["ClientRegisterCapability"] = "client/registerCapability";
|
12 |
+
Method["ColabPipLogChanged"] = "colab/pipLogChanged";
|
13 |
+
Method["CompletionItemResolve"] = "completionItem/resolve";
|
14 |
+
Method["Initialize"] = "initialize";
|
15 |
+
Method["Initialized"] = "initialized";
|
16 |
+
Method["TextDocumentAutoExecuteCheck"] = "textDocument/autoExecuteCheck";
|
17 |
+
Method["TextDocumentCodeAction"] = "textDocument/codeAction";
|
18 |
+
Method["TextDocumentCompletion"] = "textDocument/completion";
|
19 |
+
Method["TextDocumentDefinition"] = "textDocument/definition";
|
20 |
+
Method["TextDocumentDidChange"] = "textDocument/didChange";
|
21 |
+
Method["TextDocumentDidClose"] = "textDocument/didClose";
|
22 |
+
Method["TextDocumentDidOpen"] = "textDocument/didOpen";
|
23 |
+
Method["TextDocumentEchoDocument"] = "textDocument/echoDocument";
|
24 |
+
Method["TextDocumentHover"] = "textDocument/hover";
|
25 |
+
Method["TextDocumentCellDependents"] = "textDocument/cellDependents";
|
26 |
+
Method["TextDocumentCellPrerequisites"] = "textDocument/cellPrerequisites";
|
27 |
+
Method["TextDocumentInlayHint"] = "textDocument/inlayHint";
|
28 |
+
Method["TextDocumentPublishDiagnostics"] = "textDocument/publishDiagnostics";
|
29 |
+
Method["TextDocumentPrepareRename"] = "textDocument/prepareRename";
|
30 |
+
Method["TextDocumentRename"] = "textDocument/rename";
|
31 |
+
Method["TextDocumentRepair"] = "textDocument/repair";
|
32 |
+
Method["TextDocumentSignatureHelp"] = "textDocument/signatureHelp";
|
33 |
+
Method["WindowLogMessage"] = "window/logMessage";
|
34 |
+
Method["WorkspaceConfiguration"] = "workspace/configuration";
|
35 |
+
Method["WorkspaceDidChangeConfiguration"] = "workspace/didChangeConfiguration";
|
36 |
+
Method["WorkspaceDidChangeWatchedFiles"] = "workspace/didChangeWatchedFiles";
|
37 |
+
})(Method || (exports.Method = Method = {}));
|
38 |
+
/**
|
39 |
+
* https://microsoft.github.io/language-server-protocol/specifications/specification-current/#responseMessage
|
40 |
+
*/
|
41 |
+
var ErrorCode;
|
42 |
+
(function (ErrorCode) {
|
43 |
+
// Defined by JSON RPC
|
44 |
+
ErrorCode[ErrorCode["ParseError"] = -32700] = "ParseError";
|
45 |
+
ErrorCode[ErrorCode["InvalidRequest"] = -32600] = "InvalidRequest";
|
46 |
+
ErrorCode[ErrorCode["MethodNotFound"] = -32601] = "MethodNotFound";
|
47 |
+
ErrorCode[ErrorCode["InvalidParams"] = -32602] = "InvalidParams";
|
48 |
+
ErrorCode[ErrorCode["InternalError"] = -32603] = "InternalError";
|
49 |
+
ErrorCode[ErrorCode["ServerErrorStart"] = -32099] = "ServerErrorStart";
|
50 |
+
ErrorCode[ErrorCode["ServerErrorEnd"] = -32000] = "ServerErrorEnd";
|
51 |
+
ErrorCode[ErrorCode["ServerNotInitialized"] = -32002] = "ServerNotInitialized";
|
52 |
+
ErrorCode[ErrorCode["UnknownErrorCode"] = -32001] = "UnknownErrorCode";
|
53 |
+
// Defined by the protocol.
|
54 |
+
ErrorCode[ErrorCode["RequestCancelled"] = -32800] = "RequestCancelled";
|
55 |
+
ErrorCode[ErrorCode["ContentModified"] = -32801] = "ContentModified";
|
56 |
+
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
57 |
+
/**
|
58 |
+
* The kind of resource operations supported by the client.
|
59 |
+
*/
|
60 |
+
var ResourceOperationKind;
|
61 |
+
(function (ResourceOperationKind) {
|
62 |
+
/**
|
63 |
+
* Supports creating new files and folders.
|
64 |
+
*/
|
65 |
+
ResourceOperationKind["CREATE"] = "create";
|
66 |
+
/**
|
67 |
+
* Supports renaming existing files and folders.
|
68 |
+
*/
|
69 |
+
ResourceOperationKind["RENAME"] = "rename";
|
70 |
+
/**
|
71 |
+
* Supports deleting existing files and folders.
|
72 |
+
*/
|
73 |
+
ResourceOperationKind["DELETE"] = "delete";
|
74 |
+
})(ResourceOperationKind || (exports.ResourceOperationKind = ResourceOperationKind = {}));
|
75 |
+
/**
|
76 |
+
* https://microsoft.github.io/language-server-protocol/specifications/specification-current/#workspaceEditClientCapabilities
|
77 |
+
*/
|
78 |
+
var FailureHandlingKind;
|
79 |
+
(function (FailureHandlingKind) {
|
80 |
+
/**
|
81 |
+
* Applying the workspace change is simply aborted if one of the changes
|
82 |
+
* provided fails.
|
83 |
+
* All operations executed before the failing operation stay executed.
|
84 |
+
*/
|
85 |
+
FailureHandlingKind["Abort"] = "abort";
|
86 |
+
/**
|
87 |
+
* All operations are executed transactional. That means they either all
|
88 |
+
* succeed or no changes at all are applied to the workspace.
|
89 |
+
*/
|
90 |
+
FailureHandlingKind["Transactional"] = "transactional";
|
91 |
+
/**
|
92 |
+
* If the workspace edit contains only textual file changes, they are
|
93 |
+
* executed transactionally.
|
94 |
+
* If resource changes (create, rename or delete file) are part of the
|
95 |
+
* change, the failure handling strategy is abort.
|
96 |
+
*/
|
97 |
+
FailureHandlingKind["TextOnlyTransactional"] = "textOnlyTransactional";
|
98 |
+
/**
|
99 |
+
* The client tries to undo the operations already executed. But there is no
|
100 |
+
* guarantee that this is succeeding.
|
101 |
+
*/
|
102 |
+
FailureHandlingKind["Undo"] = "undo";
|
103 |
+
})(FailureHandlingKind || (exports.FailureHandlingKind = FailureHandlingKind = {}));
|
104 |
+
/**
|
105 |
+
* The diagnostic tags.
|
106 |
+
*
|
107 |
+
* @since 3.15.0
|
108 |
+
*/
|
109 |
+
var DiagnosticTag;
|
110 |
+
(function (DiagnosticTag) {
|
111 |
+
/**
|
112 |
+
* Unused or unnecessary code.
|
113 |
+
*
|
114 |
+
* Clients are allowed to render diagnostics with this tag faded out
|
115 |
+
* instead of having an error squiggle.
|
116 |
+
*/
|
117 |
+
DiagnosticTag[DiagnosticTag["Unnecessary"] = 1] = "Unnecessary";
|
118 |
+
/**
|
119 |
+
* Deprecated or obsolete code.
|
120 |
+
*
|
121 |
+
* Clients are allowed to rendered diagnostics with this tag strike through.
|
122 |
+
*/
|
123 |
+
DiagnosticTag[DiagnosticTag["Deprecated"] = 2] = "Deprecated";
|
124 |
+
})(DiagnosticTag || (exports.DiagnosticTag = DiagnosticTag = {}));
|
125 |
+
/**
|
126 |
+
* https://microsoft.github.io/language-server-protocol/specifications/specification-current/#diagnostic
|
127 |
+
*/
|
128 |
+
var DiagnosticSeverity;
|
129 |
+
(function (DiagnosticSeverity) {
|
130 |
+
/**
|
131 |
+
* Reports an error.
|
132 |
+
*/
|
133 |
+
DiagnosticSeverity[DiagnosticSeverity["Error"] = 1] = "Error";
|
134 |
+
/**
|
135 |
+
* Reports a warning.
|
136 |
+
*/
|
137 |
+
DiagnosticSeverity[DiagnosticSeverity["Warning"] = 2] = "Warning";
|
138 |
+
/**
|
139 |
+
* Reports an information.
|
140 |
+
*/
|
141 |
+
DiagnosticSeverity[DiagnosticSeverity["Information"] = 3] = "Information";
|
142 |
+
/**
|
143 |
+
* Reports a hint.
|
144 |
+
*/
|
145 |
+
DiagnosticSeverity[DiagnosticSeverity["Hint"] = 4] = "Hint";
|
146 |
+
})(DiagnosticSeverity || (exports.DiagnosticSeverity = DiagnosticSeverity = {}));
|
147 |
+
/**
|
148 |
+
* A symbol kind.
|
149 |
+
*/
|
150 |
+
var SymbolKind;
|
151 |
+
(function (SymbolKind) {
|
152 |
+
SymbolKind[SymbolKind["File"] = 1] = "File";
|
153 |
+
SymbolKind[SymbolKind["Module"] = 2] = "Module";
|
154 |
+
SymbolKind[SymbolKind["Namespace"] = 3] = "Namespace";
|
155 |
+
SymbolKind[SymbolKind["Package"] = 4] = "Package";
|
156 |
+
SymbolKind[SymbolKind["Class"] = 5] = "Class";
|
157 |
+
SymbolKind[SymbolKind["Method"] = 6] = "Method";
|
158 |
+
SymbolKind[SymbolKind["Property"] = 7] = "Property";
|
159 |
+
SymbolKind[SymbolKind["Field"] = 8] = "Field";
|
160 |
+
SymbolKind[SymbolKind["Constructor"] = 9] = "Constructor";
|
161 |
+
SymbolKind[SymbolKind["Enum"] = 10] = "Enum";
|
162 |
+
SymbolKind[SymbolKind["Interface"] = 11] = "Interface";
|
163 |
+
SymbolKind[SymbolKind["Function"] = 12] = "Function";
|
164 |
+
SymbolKind[SymbolKind["Variable"] = 13] = "Variable";
|
165 |
+
SymbolKind[SymbolKind["Constant"] = 14] = "Constant";
|
166 |
+
SymbolKind[SymbolKind["String"] = 15] = "String";
|
167 |
+
SymbolKind[SymbolKind["Number"] = 16] = "Number";
|
168 |
+
SymbolKind[SymbolKind["Boolean"] = 17] = "Boolean";
|
169 |
+
SymbolKind[SymbolKind["Array"] = 18] = "Array";
|
170 |
+
SymbolKind[SymbolKind["Object"] = 19] = "Object";
|
171 |
+
SymbolKind[SymbolKind["Key"] = 20] = "Key";
|
172 |
+
SymbolKind[SymbolKind["Null"] = 21] = "Null";
|
173 |
+
SymbolKind[SymbolKind["EnumMember"] = 22] = "EnumMember";
|
174 |
+
SymbolKind[SymbolKind["Struct"] = 23] = "Struct";
|
175 |
+
SymbolKind[SymbolKind["Event"] = 24] = "Event";
|
176 |
+
SymbolKind[SymbolKind["Operator"] = 25] = "Operator";
|
177 |
+
SymbolKind[SymbolKind["TypeParameter"] = 26] = "TypeParameter";
|
178 |
+
})(SymbolKind || (exports.SymbolKind = SymbolKind = {}));
|
179 |
+
/**
|
180 |
+
* Symbol tags are extra annotations that tweak the rendering of a symbol.
|
181 |
+
*
|
182 |
+
* @since 3.16
|
183 |
+
*/
|
184 |
+
var SymbolTag;
|
185 |
+
(function (SymbolTag) {
|
186 |
+
/**
|
187 |
+
* Render a symbol as obsolete, usually using a strike-out.
|
188 |
+
*/
|
189 |
+
SymbolTag[SymbolTag["Deprecated"] = 1] = "Deprecated";
|
190 |
+
})(SymbolTag || (exports.SymbolTag = SymbolTag = {}));
|
191 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2xfbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2dlbmZpbGVzL3RoaXJkX3BhcnR5L2NvbGFiL3NvdXJjZXMvbHNwL3Byb3RvY29sX25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFDQUFxQzs7O0FBRXJDOztHQUVHO0FBQ0gsSUFBWSxNQTRCWDtBQTVCRCxXQUFZLE1BQU07SUFDaEIsMkNBQWlDLENBQUE7SUFDakMsZ0VBQXNELENBQUE7SUFDdEQsb0RBQTBDLENBQUE7SUFDMUMsMERBQWdELENBQUE7SUFDaEQsbUNBQXlCLENBQUE7SUFDekIscUNBQTJCLENBQUE7SUFDM0Isd0VBQThELENBQUE7SUFDOUQsNERBQWtELENBQUE7SUFDbEQsNERBQWtELENBQUE7SUFDbEQsNERBQWtELENBQUE7SUFDbEQsMERBQWdELENBQUE7SUFDaEQsd0RBQThDLENBQUE7SUFDOUMsc0RBQTRDLENBQUE7SUFDNUMsZ0VBQXNELENBQUE7SUFDdEQsa0RBQXdDLENBQUE7SUFDeEMsb0VBQTBELENBQUE7SUFDMUQsMEVBQWdFLENBQUE7SUFDaEUsMERBQWdELENBQUE7SUFDaEQsNEVBQWtFLENBQUE7SUFDbEUsa0VBQXdELENBQUE7SUFDeEQsb0RBQTBDLENBQUE7SUFDMUMsb0RBQTBDLENBQUE7SUFDMUMsa0VBQXdELENBQUE7SUFDeEQsZ0RBQXNDLENBQUE7SUFDdEMsNERBQWtELENBQUE7SUFDbEQsOEVBQW9FLENBQUE7SUFDcEUsNEVBQWtFLENBQUE7QUFDcEUsQ0FBQyxFQTVCVyxNQUFNLHNCQUFOLE1BQU0sUUE0QmpCO0FBcUVEOztHQUVHO0FBQ0gsSUFBWSxTQWVYO0FBZkQsV0FBWSxTQUFTO0lBQ25CLHNCQUFzQjtJQUN0QiwwREFBbUIsQ0FBQTtJQUNuQixrRUFBdUIsQ0FBQTtJQUN2QixrRUFBdUIsQ0FBQTtJQUN2QixnRUFBc0IsQ0FBQTtJQUN0QixnRUFBc0IsQ0FBQTtJQUN0QixzRUFBeUIsQ0FBQTtJQUN6QixrRUFBdUIsQ0FBQTtJQUN2Qiw4RUFBNkIsQ0FBQTtJQUM3QixzRUFBeUIsQ0FBQTtJQUV6QiwyQkFBMkI7SUFDM0Isc0VBQXlCLENBQUE7SUFDekIsb0VBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQWZXLFNBQVMseUJBQVQsU0FBUyxRQWVwQjtBQStLRDs7R0FFRztBQUNILElBQVkscUJBYVg7QUFiRCxXQUFZLHFCQUFxQjtJQUMvQjs7T0FFRztJQUNILDBDQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsMENBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCwwQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBYlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFhaEM7QUFFRDs7R0FFRztBQUNILElBQVksbUJBMkJYO0FBM0JELFdBQVksbUJBQW1CO0lBQzdCOzs7O09BSUc7SUFDSCxzQ0FBZSxDQUFBO0lBRWY7OztPQUdHO0lBQ0gsc0RBQStCLENBQUE7SUFFL0I7Ozs7O09BS0c7SUFDSCxzRUFBK0MsQ0FBQTtJQUUvQzs7O09BR0c7SUFDSCxvQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQTNCVyxtQkFBbUIsbUNBQW5CLG1CQUFtQixRQTJCOUI7QUF3RUQ7Ozs7R0FJRztBQUNILElBQVksYUFjWDtBQWRELFdBQVksYUFBYTtJQUN2Qjs7Ozs7T0FLRztJQUNILCtEQUFlLENBQUE7SUFDZjs7OztPQUlHO0lBQ0gsNkRBQWMsQ0FBQTtBQUNoQixDQUFDLEVBZFcsYUFBYSw2QkFBYixhQUFhLFFBY3hCO0FBK0NEOztHQUVHO0FBQ0gsSUFBWSxrQkFpQlg7QUFqQkQsV0FBWSxrQkFBa0I7SUFDNUI7O09BRUc7SUFDSCw2REFBUyxDQUFBO0lBQ1Q7O09BRUc7SUFDSCxpRUFBVyxDQUFBO0lBQ1g7O09BRUc7SUFDSCx5RUFBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCwyREFBUSxDQUFBO0FBQ1YsQ0FBQyxFQWpCVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQWlCN0I7QUFtQkQ7O0dBRUc7QUFDSCxJQUFZLFVBMkJYO0FBM0JELFdBQVksVUFBVTtJQUNwQiwyQ0FBUSxDQUFBO0lBQ1IsK0NBQVUsQ0FBQTtJQUNWLHFEQUFhLENBQUE7SUFDYixpREFBVyxDQUFBO0lBQ1gsNkNBQVMsQ0FBQTtJQUNULCtDQUFVLENBQUE7SUFDVixtREFBWSxDQUFBO0lBQ1osNkNBQVMsQ0FBQTtJQUNULHlEQUFlLENBQUE7SUFDZiw0Q0FBUyxDQUFBO0lBQ1Qsc0RBQWMsQ0FBQTtJQUNkLG9EQUFhLENBQUE7SUFDYixvREFBYSxDQUFBO0lBQ2Isb0RBQWEsQ0FBQTtJQUNiLGdEQUFXLENBQUE7SUFDWCxnREFBVyxDQUFBO0lBQ1gsa0RBQVksQ0FBQTtJQUNaLDhDQUFVLENBQUE7SUFDVixnREFBVyxDQUFBO0lBQ1gsMENBQVEsQ0FBQTtJQUNSLDRDQUFTLENBQUE7SUFDVCx3REFBZSxDQUFBO0lBQ2YsZ0RBQVcsQ0FBQTtJQUNYLDhDQUFVLENBQUE7SUFDVixvREFBYSxDQUFBO0lBQ2IsOERBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQTNCVyxVQUFVLDBCQUFWLFVBQVUsUUEyQnJCO0FBRUQ7Ozs7R0FJRztBQUNILElBQVksU0FNWDtBQU5ELFdBQVksU0FBUztJQUVuQjs7T0FFRztJQUNILHFEQUFjLENBQUE7QUFDaEIsQ0FBQyxFQU5XLFNBQVMseUJBQVQsU0FBUyxRQU1wQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOmVuZm9yY2UtbmFtZS1jYXNpbmdcblxuLyoqXG4gKiBKU09OLVJQQyBNZXRob2RzLlxuICovXG5leHBvcnQgZW51bSBNZXRob2Qge1xuICBDYW5jZWxSZXF1ZXN0ID0gJyQvY2FuY2VsUmVxdWVzdCcsXG4gIENsaWVudFJlZ2lzdGVyQ2FwYWJpbGl0eSA9ICdjbGllbnQvcmVnaXN0ZXJDYXBhYmlsaXR5JyxcbiAgQ29sYWJQaXBMb2dDaGFuZ2VkID0gJ2NvbGFiL3BpcExvZ0NoYW5nZWQnLFxuICBDb21wbGV0aW9uSXRlbVJlc29sdmUgPSAnY29tcGxldGlvbkl0ZW0vcmVzb2x2ZScsXG4gIEluaXRpYWxpemUgPSAnaW5pdGlhbGl6ZScsXG4gIEluaXRpYWxpemVkID0gJ2luaXRpYWxpemVkJyxcbiAgVGV4dERvY3VtZW50QXV0b0V4ZWN1dGVDaGVjayA9ICd0ZXh0RG9jdW1lbnQvYXV0b0V4ZWN1dGVDaGVjaycsXG4gIFRleHREb2N1bWVudENvZGVBY3Rpb24gPSAndGV4dERvY3VtZW50L2NvZGVBY3Rpb24nLFxuICBUZXh0RG9jdW1lbnRDb21wbGV0aW9uID0gJ3RleHREb2N1bWVudC9jb21wbGV0aW9uJyxcbiAgVGV4dERvY3VtZW50RGVmaW5pdGlvbiA9ICd0ZXh0RG9jdW1lbnQvZGVmaW5pdGlvbicsXG4gIFRleHREb2N1bWVudERpZENoYW5nZSA9ICd0ZXh0RG9jdW1lbnQvZGlkQ2hhbmdlJyxcbiAgVGV4dERvY3VtZW50RGlkQ2xvc2UgPSAndGV4dERvY3VtZW50L2RpZENsb3NlJyxcbiAgVGV4dERvY3VtZW50RGlkT3BlbiA9ICd0ZXh0RG9jdW1lbnQvZGlkT3BlbicsXG4gIFRleHREb2N1bWVudEVjaG9Eb2N1bWVudCA9ICd0ZXh0RG9jdW1lbnQvZWNob0RvY3VtZW50JyxcbiAgVGV4dERvY3VtZW50SG92ZXIgPSAndGV4dERvY3VtZW50L2hvdmVyJyxcbiAgVGV4dERvY3VtZW50Q2VsbERlcGVuZGVudHMgPSAndGV4dERvY3VtZW50L2NlbGxEZXBlbmRlbnRzJyxcbiAgVGV4dERvY3VtZW50Q2VsbFByZXJlcXVpc2l0ZXMgPSAndGV4dERvY3VtZW50L2NlbGxQcmVyZXF1aXNpdGVzJyxcbiAgVGV4dERvY3VtZW50SW5sYXlIaW50ID0gJ3RleHREb2N1bWVudC9pbmxheUhpbnQnLFxuICBUZXh0RG9jdW1lbnRQdWJsaXNoRGlhZ25vc3RpY3MgPSAndGV4dERvY3VtZW50L3B1Ymxpc2hEaWFnbm9zdGljcycsXG4gIFRleHREb2N1bWVudFByZXBhcmVSZW5hbWUgPSAndGV4dERvY3VtZW50L3ByZXBhcmVSZW5hbWUnLFxuICBUZXh0RG9jdW1lbnRSZW5hbWUgPSAndGV4dERvY3VtZW50L3JlbmFtZScsXG4gIFRleHREb2N1bWVudFJlcGFpciA9ICd0ZXh0RG9jdW1lbnQvcmVwYWlyJyxcbiAgVGV4dERvY3VtZW50U2lnbmF0dXJlSGVscCA9ICd0ZXh0RG9jdW1lbnQvc2lnbmF0dXJlSGVscCcsXG4gIFdpbmRvd0xvZ01lc3NhZ2UgPSAnd2luZG93L2xvZ01lc3NhZ2UnLFxuICBXb3Jrc3BhY2VDb25maWd1cmF0aW9uID0gJ3dvcmtzcGFjZS9jb25maWd1cmF0aW9uJyxcbiAgV29ya3NwYWNlRGlkQ2hhbmdlQ29uZmlndXJhdGlvbiA9ICd3b3Jrc3BhY2UvZGlkQ2hhbmdlQ29uZmlndXJhdGlvbicsXG4gIFdvcmtzcGFjZURpZENoYW5nZVdhdGNoZWRGaWxlcyA9ICd3b3Jrc3BhY2UvZGlkQ2hhbmdlV2F0Y2hlZEZpbGVzJyxcbn1cblxuLyoqIEJhc2UgSlNPTi1SUEMgMi4wIHR5cGUuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTWVzc2FnZSB7XG4gIGpzb25ycGM6ICcyLjAnO1xufVxuXG4vKipcbiAqIEpTT04tUlBDIDIuMCByZXF1ZXN0LlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3JlcXVlc3RNZXNzYWdlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBSZXF1ZXN0TWVzc2FnZTxUPiBleHRlbmRzIE1lc3NhZ2Uge1xuICAvKipcbiAgICogVGhlIHJlcXVlc3QgaWQuXG4gICAqL1xuICBpZDogbnVtYmVyfHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gYmUgaW52b2tlZC5cbiAgICovXG4gIG1ldGhvZDogTWV0aG9kO1xuICAvKipcbiAgICogVGhlIG1ldGhvZCdzIHBhcmFtcy5cbiAgICovXG4gIHBhcmFtczogVDtcbn1cblxuLyoqXG4gKiBKU09OLVJQQyAyLjAgcmVzcG9uc2UuXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jcmVzcG9uc2VNZXNzYWdlXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBSZXNwb25zZU1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlIHtcbiAgLyoqXG4gICAqIFRoZSByZXF1ZXN0IGlkLlxuICAgKi9cbiAgaWQ6IG51bWJlcnxzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogVGhlIHJlc3VsdCBvZiBhIHJlcXVlc3QuIFRoaXMgbWVtYmVyIGlzIFJFUVVJUkVEIG9uIHN1Y2Nlc3MuXG4gICAqIFRoaXMgbWVtYmVyIE1VU1QgTk9UIGV4aXN0IGlmIHRoZXJlIHdhcyBhbiBlcnJvciBpbnZva2luZyB0aGUgbWV0aG9kLlxuICAgKi9cbiAgcmVzdWx0Pzogc3RyaW5nfG51bWJlcnxib29sZWFufG9iamVjdHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgZXJyb3Igb2JqZWN0IGluIGNhc2UgYSByZXF1ZXN0IGZhaWxzLlxuICAgKi9cbiAgZXJyb3I/OiBSZXNwb25zZUVycm9yO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNyZXNwb25zZU1lc3NhZ2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJlc3BvbnNlRXJyb3Ige1xuICAvKipcbiAgICogQSBudW1iZXIgaW5kaWNhdGluZyB0aGUgZXJyb3IgdHlwZSB0aGF0IG9jY3VycmVkLlxuICAgKi9cbiAgY29kZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyBwcm92aWRpbmcgYSBzaG9ydCBkZXNjcmlwdGlvbiBvZiB0aGUgZXJyb3IuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgcHJpbWl0aXZlIG9yIHN0cnVjdHVyZWQgdmFsdWUgdGhhdCBjb250YWlucyBhZGRpdGlvbmFsXG4gICAqIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvci4gQ2FuIGJlIG9taXR0ZWQuXG4gICAqL1xuICBkYXRhPzogc3RyaW5nfG51bWJlcnxib29sZWFufHVua25vd25bXXxvYmplY3R8bnVsbDtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jcmVzcG9uc2VNZXNzYWdlXG4gKi9cbmV4cG9ydCBlbnVtIEVycm9yQ29kZSB7XG4gIC8vIERlZmluZWQgYnkgSlNPTiBSUENcbiAgUGFyc2VFcnJvciA9IC0zMjcwMCxcbiAgSW52YWxpZFJlcXVlc3QgPSAtMzI2MDAsXG4gIE1ldGhvZE5vdEZvdW5kID0gLTMyNjAxLFxuICBJbnZhbGlkUGFyYW1zID0gLTMyNjAyLFxuICBJbnRlcm5hbEVycm9yID0gLTMyNjAzLFxuICBTZXJ2ZXJFcnJvclN0YXJ0ID0gLTMyMDk5LFxuICBTZXJ2ZXJFcnJvckVuZCA9IC0zMjAwMCxcbiAgU2VydmVyTm90SW5pdGlhbGl6ZWQgPSAtMzIwMDIsXG4gIFVua25vd25FcnJvckNvZGUgPSAtMzIwMDEsXG5cbiAgLy8gRGVmaW5lZCBieSB0aGUgcHJvdG9jb2wuXG4gIFJlcXVlc3RDYW5jZWxsZWQgPSAtMzI4MDAsXG4gIENvbnRlbnRNb2RpZmllZCA9IC0zMjgwMSxcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jbm90aWZpY2F0aW9uTWVzc2FnZVxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTWVzc2FnZTxUPiBleHRlbmRzIE1lc3NhZ2Uge1xuICAvKipcbiAgICogVGhlIG1ldGhvZCB0byBiZSBpbnZva2VkLlxuICAgKi9cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24ncyBwYXJhbXMuXG4gICAqL1xuICBwYXJhbXM6IFQ7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2NhbmNlbFJlcXVlc3RcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENhbmNlbFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVxdWVzdCBpZCB0byBjYW5jZWwuXG4gICAqL1xuICBpZDogbnVtYmVyfHN0cmluZztcbn1cblxudHlwZSBQcm9ncmVzc1Rva2VuID0gbnVtYmVyfHN0cmluZztcbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3Byb2dyZXNzXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQcm9ncmVzc1BhcmFtczxUPiB7XG4gIC8qKlxuICAgKiBUaGUgcHJvZ3Jlc3MgdG9rZW4gcHJvdmlkZWQgYnkgdGhlIGNsaWVudCBvciBzZXJ2ZXIuXG4gICAqL1xuICB0b2tlbjogUHJvZ3Jlc3NUb2tlbjtcblxuICAvKipcbiAgICogVGhlIHByb2dyZXNzIGRhdGEuXG4gICAqL1xuICB2YWx1ZTogVDtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jdXJpXG4gKi9cbmV4cG9ydCB0eXBlIERvY3VtZW50VXJpID0gc3RyaW5nO1xuXG4vKipcbiAqIFBvc2l0aW9uIGluIGEgdGV4dCBkb2N1bWVudCBleHByZXNzZWQgYXMgemVyby1iYXNlZCBsaW5lIGFuZCB6ZXJvLWJhc2VkXG4gKiBjaGFyYWN0ZXIgb2Zmc2V0LiBBIHBvc2l0aW9uIGlzIGJldHdlZW4gdHdvIGNoYXJhY3RlcnMgbGlrZSBhbiDigJhpbnNlcnTigJlcbiAqIGN1cnNvciBpbiBhIGVkaXRvci4gU3BlY2lhbCB2YWx1ZXMgbGlrZSBmb3IgZXhhbXBsZSAtMSB0byBkZW5vdGUgdGhlIGVuZCBvZlxuICogYSBsaW5lIGFyZSBub3Qgc3VwcG9ydGVkLlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3Bvc2l0aW9uXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQb3NpdGlvbiB7XG4gIC8qKlxuICAgKiBMaW5lIHBvc2l0aW9uIGluIGEgZG9jdW1lbnQgKHplcm8tYmFzZWQpLlxuICAgKi9cbiAgbGluZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGFyYWN0ZXIgb2Zmc2V0IG9uIGEgbGluZSBpbiBhIGRvY3VtZW50ICh6ZXJvLWJhc2VkKS4gQXNzdW1pbmcgdGhhdCB0aGVcbiAgICogbGluZSBpcyByZXByZXNlbnRlZCBhcyBhIHN0cmluZywgdGhlIGBjaGFyYWN0ZXJgIHZhbHVlIHJlcHJlc2VudHMgdGhlIGdhcFxuICAgKiBiZXR3ZWVuIHRoZSBgY2hhcmFjdGVyYCBhbmQgYGNoYXJhY3RlciArIDFgLlxuICAgKlxuICAgKiBJZiB0aGUgY2hhcmFjdGVyIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbGluZSBsZW5ndGggaXQgZGVmYXVsdHMgYmFja1xuICAgKiB0byB0aGUgbGluZSBsZW5ndGguXG4gICAqL1xuICBjaGFyYWN0ZXI6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jcmFuZ2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJhbmdlIHtcbiAgLyoqXG4gICAqIFRoZSByYW5nZSdzIHN0YXJ0IHBvc2l0aW9uLlxuICAgKi9cbiAgc3RhcnQ6IFBvc2l0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UncyBlbmQgcG9zaXRpb24uXG4gICAqL1xuICBlbmQ6IFBvc2l0aW9uO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNsb2NhdGlvblxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTG9jYXRpb24ge1xuICB1cmk6IERvY3VtZW50VXJpO1xuICByYW5nZTogUmFuZ2U7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2xvY2F0aW9uTGlua1xuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTG9jYXRpb25MaW5rIHtcbiAgLyoqXG4gICAqIFNwYW4gb2YgdGhlIG9yaWdpbiBvZiB0aGlzIGxpbmsuXG4gICAqXG4gICAqIFVzZWQgYXMgdGhlIHVuZGVybGluZWQgc3BhbiBmb3IgbW91c2UgaW50ZXJhY3Rpb24uXG4gICAqIERlZmF1bHRzIHRvIHRoZSB3b3JkIHJhbmdlIGF0IHRoZSBtb3VzZSBwb3NpdGlvbi5cbiAgICovXG4gIG9yaWdpblNlbGVjdGlvblJhbmdlPzogUmFuZ2U7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgcmVzb3VyY2UgaWRlbnRpZmllciBvZiB0aGlzIGxpbmsuXG4gICAqL1xuICB0YXJnZXRVcmk6IERvY3VtZW50VXJpO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVsbCB0YXJnZXQgcmFuZ2Ugb2YgdGhpcyBsaW5rLlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIHRhcmdldCBpcyBhIHN5bWJvbCwgdGhlbiB0YXJnZXQgcmFuZ2UgaXMgdGhlIHJhbmdlXG4gICAqIGVuY2xvc2luZyB0aGlzIHN5bWJvbCBub3QgaW5jbHVkaW5nIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBidXRcbiAgICogZXZlcnl0aGluZyBlbHNlIGxpa2UgY29tbWVudHMuXG4gICAqIFRoaXMgaW5mb3JtYXRpb24gaXMgdHlwaWNhbGx5IHVzZWQgdG8gaGlnaGxpZ2h0IHRoZSByYW5nZSBpbiB0aGUgZWRpdG9yLlxuICAgKi9cbiAgdGFyZ2V0UmFuZ2U6IFJhbmdlO1xuXG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UgdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQgYW5kIHJldmVhbGVkIHdoZW4gdGhpcyBsaW5rIGlzIGJlaW5nXG4gICAqIGZvbGxvd2VkLCBmb3IgZXhhbXBsZSwgdGhlIG5hbWUgb2YgYSBmdW5jdGlvbi5cbiAgICogTXVzdCBiZSBjb250YWluZWQgYnkgdGhlIGB0YXJnZXRSYW5nZWAuXG4gICAqIFNlZSBhbHNvIGBEb2N1bWVudFN5bWJvbCNyYW5nZWBcbiAgICovXG4gIHRhcmdldFNlbGVjdGlvblJhbmdlOiBSYW5nZTtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jY29tbWFuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmQge1xuICAvKipcbiAgICogVGl0bGUgb2YgdGhlIGNvbW1hbmQsIGxpa2UgYHNhdmVgLlxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhY3R1YWwgY29tbWFuZCBoYW5kbGVyLlxuICAgKi9cbiAgY29tbWFuZDogc3RyaW5nO1xuICAvKipcbiAgICogQXJndW1lbnRzIHRoYXQgdGhlIGNvbW1hbmQgaGFuZGxlciBzaG91bGQgYmVcbiAgICogaW52b2tlZCB3aXRoLlxuICAgKi9cbiAgYXJndW1lbnRzPzogdW5rbm93bltdO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyN3b3Jrc3BhY2VFZGl0Q2xpZW50Q2FwYWJpbGl0aWVzXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBXb3Jrc3BhY2VFZGl0Q2xpZW50Q2FwYWJpbGl0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBjbGllbnQgc3VwcG9ydHMgdmVyc2lvbmVkIGRvY3VtZW50IGNoYW5nZXMgaW4gYFdvcmtzcGFjZUVkaXRgc1xuICAgKi9cbiAgZG9jdW1lbnRDaGFuZ2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIG9wZXJhdGlvbnMgdGhlIGNsaWVudCBzdXBwb3J0cy4gQ2xpZW50cyBzaG91bGQgYXQgbGVhc3RcbiAgICogc3VwcG9ydCAnY3JlYXRlJywgJ3JlbmFtZScgYW5kICdkZWxldGUnIGZpbGVzIGFuZCBmb2xkZXJzLlxuICAgKlxuICAgKiBAc2luY2UgMy4xMy4wXG4gICAqL1xuICByZXNvdXJjZU9wZXJhdGlvbnM/OiBSZXNvdXJjZU9wZXJhdGlvbktpbmRbXTtcblxuICAvKipcbiAgICogVGhlIGZhaWx1cmUgaGFuZGxpbmcgc3RyYXRlZ3kgb2YgYSBjbGllbnQgaWYgYXBwbHlpbmcgdGhlIHdvcmtzcGFjZSBlZGl0XG4gICAqIGZhaWxzLlxuICAgKlxuICAgKiBAc2luY2UgMy4xMy4wXG4gICAqL1xuICBmYWlsdXJlSGFuZGxpbmc/OiBGYWlsdXJlSGFuZGxpbmdLaW5kO1xufVxuXG4vKipcbiAqIFRoZSBraW5kIG9mIHJlc291cmNlIG9wZXJhdGlvbnMgc3VwcG9ydGVkIGJ5IHRoZSBjbGllbnQuXG4gKi9cbmV4cG9ydCBlbnVtIFJlc291cmNlT3BlcmF0aW9uS2luZCB7XG4gIC8qKlxuICAgKiBTdXBwb3J0cyBjcmVhdGluZyBuZXcgZmlsZXMgYW5kIGZvbGRlcnMuXG4gICAqL1xuICBDUkVBVEUgPSAnY3JlYXRlJyxcbiAgLyoqXG4gICAqIFN1cHBvcnRzIHJlbmFtaW5nIGV4aXN0aW5nIGZpbGVzIGFuZCBmb2xkZXJzLlxuICAgKi9cbiAgUkVOQU1FID0gJ3JlbmFtZScsXG4gIC8qKlxuICAgKiBTdXBwb3J0cyBkZWxldGluZyBleGlzdGluZyBmaWxlcyBhbmQgZm9sZGVycy5cbiAgICovXG4gIERFTEVURSA9ICdkZWxldGUnLFxufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyN3b3Jrc3BhY2VFZGl0Q2xpZW50Q2FwYWJpbGl0aWVzXG4gKi9cbmV4cG9ydCBlbnVtIEZhaWx1cmVIYW5kbGluZ0tpbmQge1xuICAvKipcbiAgICogQXBwbHlpbmcgdGhlIHdvcmtzcGFjZSBjaGFuZ2UgaXMgc2ltcGx5IGFib3J0ZWQgaWYgb25lIG9mIHRoZSBjaGFuZ2VzXG4gICAqIHByb3ZpZGVkIGZhaWxzLlxuICAgKiBBbGwgb3BlcmF0aW9ucyBleGVjdXRlZCBiZWZvcmUgdGhlIGZhaWxpbmcgb3BlcmF0aW9uIHN0YXkgZXhlY3V0ZWQuXG4gICAqL1xuICBBYm9ydCA9ICdhYm9ydCcsXG5cbiAgLyoqXG4gICAqIEFsbCBvcGVyYXRpb25zIGFyZSBleGVjdXRlZCB0cmFuc2FjdGlvbmFsLiBUaGF0IG1lYW5zIHRoZXkgZWl0aGVyIGFsbFxuICAgKiBzdWNjZWVkIG9yIG5vIGNoYW5nZXMgYXQgYWxsIGFyZSBhcHBsaWVkIHRvIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICBUcmFuc2FjdGlvbmFsID0gJ3RyYW5zYWN0aW9uYWwnLFxuXG4gIC8qKlxuICAgKiBJZiB0aGUgd29ya3NwYWNlIGVkaXQgY29udGFpbnMgb25seSB0ZXh0dWFsIGZpbGUgY2hhbmdlcywgdGhleSBhcmVcbiAgICogZXhlY3V0ZWQgdHJhbnNhY3Rpb25hbGx5LlxuICAgKiBJZiByZXNvdXJjZSBjaGFuZ2VzIChjcmVhdGUsIHJlbmFtZSBvciBkZWxldGUgZmlsZSkgYXJlIHBhcnQgb2YgdGhlXG4gICAqIGNoYW5nZSwgdGhlIGZhaWx1cmUgaGFuZGxpbmcgc3RyYXRlZ3kgaXMgYWJvcnQuXG4gICAqL1xuICBUZXh0T25seVRyYW5zYWN0aW9uYWwgPSAndGV4dE9ubHlUcmFuc2FjdGlvbmFsJyxcblxuICAvKipcbiAgICogVGhlIGNsaWVudCB0cmllcyB0byB1bmRvIHRoZSBvcGVyYXRpb25zIGFscmVhZHkgZXhlY3V0ZWQuIEJ1dCB0aGVyZSBpcyBub1xuICAgKiBndWFyYW50ZWUgdGhhdCB0aGlzIGlzIHN1Y2NlZWRpbmcuXG4gICAqL1xuICBVbmRvID0gJ3VuZG8nLFxufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNkb2N1bWVudEZpbHRlclxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRG9jdW1lbnRGaWx0ZXIge1xuICAvKipcbiAgICogQSBsYW5ndWFnZSBpZCwgbGlrZSBgdHlwZXNjcmlwdGAuXG4gICAqL1xuICBsYW5ndWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBVcmkgW3NjaGVtZV0oI1VyaS5zY2hlbWUpLCBsaWtlIGBmaWxlYCBvciBgdW50aXRsZWRgLlxuICAgKi9cbiAgc2NoZW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGdsb2IgcGF0dGVybiwgbGlrZSBgKi57dHMsanN9YC5cbiAgICpcbiAgICogR2xvYiBwYXR0ZXJucyBjYW4gaGF2ZSB0aGUgZm9sbG93aW5nIHN5bnRheDpcbiAgICogLSBgKmAgdG8gbWF0Y2ggb25lIG9yIG1vcmUgY2hhcmFjdGVycyBpbiBhIHBhdGggc2VnbWVudFxuICAgKiAtIGA/YCB0byBtYXRjaCBvbiBvbmUgY2hhcmFjdGVyIGluIGEgcGF0aCBzZWdtZW50XG4gICAqIC0gYCoqYCB0byBtYXRjaCBhbnkgbnVtYmVyIG9mIHBhdGggc2VnbWVudHMsIGluY2x1ZGluZyBub25lXG4gICAqIC0gYHt9YCB0byBncm91cCBjb25kaXRpb25zXG4gICAqICAgKGUuZy4gYCoq4oCLLyoue3RzLGpzfWAgbWF0Y2hlcyBhbGwgVHlwZVNjcmlwdCBhbmQgSmF2YVNjcmlwdCBmaWxlcylcbiAgICogLSBgW11gIHRvIGRlY2xhcmUgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRvIG1hdGNoIGluIGEgcGF0aCBzZWdtZW50XG4gICAqICAgKGUuZy4sIGBleGFtcGxlLlswLTldYCB0byBtYXRjaCBvbiBgZXhhbXBsZS4wYCwgYGV4YW1wbGUuMWAsIOKApilcbiAgICogLSBgWyEuLi5dYCB0byBuZWdhdGUgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRvIG1hdGNoIGluIGEgcGF0aCBzZWdtZW50XG4gICAqICAgKGUuZy4sIGBleGFtcGxlLlshMC05XWAgdG8gbWF0Y2ggb24gYGV4YW1wbGUuYWAsIGBleGFtcGxlLmJgLFxuICAgKiAgICBidXQgbm90IGBleGFtcGxlLjBgKVxuICAgKi9cbiAgcGF0dGVybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jZG9jdW1lbnRGaWx0ZXJcbiAqL1xuZXhwb3J0IHR5cGUgRG9jdW1lbnRTZWxlY3RvciA9IERvY3VtZW50RmlsdGVyW107XG5cbi8qKlxuICogU3RhdGljIHJlZ2lzdHJhdGlvbiBvcHRpb25zIHRvIGJlIHJldHVybmVkIGluIHRoZSBpbml0aWFsaXplIHJlcXVlc3QuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdGF0aWNSZWdpc3RyYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBpZCB1c2VkIHRvIHJlZ2lzdGVyIHRoZSByZXF1ZXN0LiBUaGUgaWQgY2FuIGJlIHVzZWQgdG8gZGVyZWdpc3RlclxuICAgKiB0aGUgcmVxdWVzdCBhZ2Fpbi4gU2VlIGFsc28gUmVnaXN0cmF0aW9uI2lkLlxuICAgKi9cbiAgaWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogR2VuZXJhbCB0ZXh0IGRvY3VtZW50IHJlZ2lzdHJhdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV4dERvY3VtZW50UmVnaXN0cmF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIGRvY3VtZW50IHNlbGVjdG9yIHRvIGlkZW50aWZ5IHRoZSBzY29wZSBvZiB0aGUgcmVnaXN0cmF0aW9uLlxuICAgKiBJZiBzZXQgdG8gbnVsbCwgdGhlIGRvY3VtZW50IHNlbGVjdG9yIHByb3ZpZGVkIG9uIHRoZSBjbGllbnQgc2lkZVxuICAgKiB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICBkb2N1bWVudFNlbGVjdG9yOiBEb2N1bWVudFNlbGVjdG9yfG51bGw7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2luaXRpYXRpbmdXb3JrRG9uZVByb2dyZXNzXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBXb3JrRG9uZVByb2dyZXNzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHRva2VuIHRoYXQgYSBzZXJ2ZXIgY2FuIHVzZSB0byByZXBvcnQgd29yayBkb25lIHByb2dyZXNzLlxuICAgKi9cbiAgd29ya0RvbmVUb2tlbj86IFByb2dyZXNzVG9rZW47XG59XG5cbi8qKlxuICogVGhlIGRpYWdub3N0aWMgdGFncy5cbiAqXG4gKiBAc2luY2UgMy4xNS4wXG4gKi9cbmV4cG9ydCBlbnVtIERpYWdub3N0aWNUYWcge1xuICAvKipcbiAgICogVW51c2VkIG9yIHVubmVjZXNzYXJ5IGNvZGUuXG4gICAqXG4gICAqIENsaWVudHMgYXJlIGFsbG93ZWQgdG8gcmVuZGVyIGRpYWdub3N0aWNzIHdpdGggdGhpcyB0YWcgZmFkZWQgb3V0XG4gICAqIGluc3RlYWQgb2YgaGF2aW5nIGFuIGVycm9yIHNxdWlnZ2xlLlxuICAgKi9cbiAgVW5uZWNlc3NhcnkgPSAxLFxuICAvKipcbiAgICogRGVwcmVjYXRlZCBvciBvYnNvbGV0ZSBjb2RlLlxuICAgKlxuICAgKiBDbGllbnRzIGFyZSBhbGxvd2VkIHRvIHJlbmRlcmVkIGRpYWdub3N0aWNzIHdpdGggdGhpcyB0YWcgc3RyaWtlIHRocm91Z2guXG4gICAqL1xuICBEZXByZWNhdGVkID0gMixcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jZGlhZ25vc3RpY1xuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRGlhZ25vc3RpYyB7XG4gIC8qKlxuICAgKiBUaGUgcmFuZ2UgYXQgd2hpY2ggdGhlIG1lc3NhZ2UgYXBwbGllcy5cbiAgICovXG4gIHJhbmdlOiBSYW5nZTtcblxuICAvKipcbiAgICogVGhlIGRpYWdub3N0aWMncyBzZXZlcml0eS4gQ2FuIGJlIG9taXR0ZWQuIElmIG9taXR0ZWQgaXQgaXMgdXAgdG8gdGhlXG4gICAqIGNsaWVudCB0byBpbnRlcnByZXQgZGlhZ25vc3RpY3MgYXMgZXJyb3IsIHdhcm5pbmcsIGluZm8gb3IgaGludC5cbiAgICovXG4gIHNldmVyaXR5PzogRGlhZ25vc3RpY1NldmVyaXR5O1xuXG4gIC8qKlxuICAgKiBUaGUgZGlhZ25vc3RpYydzIGNvZGUsIHdoaWNoIG1pZ2h0IGFwcGVhciBpbiB0aGUgdXNlciBpbnRlcmZhY2UuXG4gICAqL1xuICBjb2RlPzogbnVtYmVyfHN0cmluZztcblxuICAvKipcbiAgICogQSBodW1hbi1yZWFkYWJsZSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgc291cmNlIG9mIHRoaXNcbiAgICogZGlhZ25vc3RpYywgZS5nLiAndHlwZXNjcmlwdCcgb3IgJ3N1cGVyIGxpbnQnLlxuICAgKi9cbiAgc291cmNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlhZ25vc3RpYydzIG1lc3NhZ2UuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgbWV0YWRhdGEgYWJvdXQgdGhlIGRpYWdub3N0aWMuXG4gICAqXG4gICAqIEBzaW5jZSAzLjE1LjBcbiAgICovXG4gIHRhZ3M/OiBEaWFnbm9zdGljVGFnW107XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHJlbGF0ZWQgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbiwgZS5nLiB3aGVuIHN5bWJvbC1uYW1lcyB3aXRoaW5cbiAgICogYSBzY29wZSBjb2xsaWRlIGFsbCBkZWZpbml0aW9ucyBjYW4gYmUgbWFya2VkIHZpYSB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgcmVsYXRlZEluZm9ybWF0aW9uPzogRGlhZ25vc3RpY1JlbGF0ZWRJbmZvcm1hdGlvbltdO1xufVxuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNkaWFnbm9zdGljXG4gKi9cbmV4cG9ydCBlbnVtIERpYWdub3N0aWNTZXZlcml0eSB7XG4gIC8qKlxuICAgKiBSZXBvcnRzIGFuIGVycm9yLlxuICAgKi9cbiAgRXJyb3IgPSAxLFxuICAvKipcbiAgICogUmVwb3J0cyBhIHdhcm5pbmcuXG4gICAqL1xuICBXYXJuaW5nID0gMixcbiAgLyoqXG4gICAqIFJlcG9ydHMgYW4gaW5mb3JtYXRpb24uXG4gICAqL1xuICBJbmZvcm1hdGlvbiA9IDMsXG4gIC8qKlxuICAgKiBSZXBvcnRzIGEgaGludC5cbiAgICovXG4gIEhpbnQgPSA0LFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSByZWxhdGVkIG1lc3NhZ2UgYW5kIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGZvciBhIGRpYWdub3N0aWMuXG4gKiBUaGlzIHNob3VsZCBiZSB1c2VkIHRvIHBvaW50IHRvIGNvZGUgbG9jYXRpb25zIHRoYXQgY2F1c2Ugb3IgYXJlIHJlbGF0ZWRcbiAqIHRvIGEgZGlhZ25vc3RpY3MsIGZvciBleGFtcGxlLCB3aGVuIGR1cGxpY2F0aW5nIGEgc3ltYm9sIGluIGEgc2NvcGUuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWFnbm9zdGljUmVsYXRlZEluZm9ybWF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiBvZiB0aGlzIHJlbGF0ZWQgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbi5cbiAgICovXG4gIGxvY2F0aW9uOiBMb2NhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1lc3NhZ2Ugb2YgdGhpcyByZWxhdGVkIGRpYWdub3N0aWMgaW5mb3JtYXRpb24uXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzeW1ib2wga2luZC5cbiAqL1xuZXhwb3J0IGVudW0gU3ltYm9sS2luZCB7XG4gIEZpbGUgPSAxLFxuICBNb2R1bGUgPSAyLFxuICBOYW1lc3BhY2UgPSAzLFxuICBQYWNrYWdlID0gNCxcbiAgQ2xhc3MgPSA1LFxuICBNZXRob2QgPSA2LFxuICBQcm9wZXJ0eSA9IDcsXG4gIEZpZWxkID0gOCxcbiAgQ29uc3RydWN0b3IgPSA5LFxuICBFbnVtID0gMTAsXG4gIEludGVyZmFjZSA9IDExLFxuICBGdW5jdGlvbiA9IDEyLFxuICBWYXJpYWJsZSA9IDEzLFxuICBDb25zdGFudCA9IDE0LFxuICBTdHJpbmcgPSAxNSxcbiAgTnVtYmVyID0gMTYsXG4gIEJvb2xlYW4gPSAxNyxcbiAgQXJyYXkgPSAxOCxcbiAgT2JqZWN0ID0gMTksXG4gIEtleSA9IDIwLFxuICBOdWxsID0gMjEsXG4gIEVudW1NZW1iZXIgPSAyMixcbiAgU3RydWN0ID0gMjMsXG4gIEV2ZW50ID0gMjQsXG4gIE9wZXJhdG9yID0gMjUsXG4gIFR5cGVQYXJhbWV0ZXIgPSAyNixcbn1cblxuLyoqXG4gKiBTeW1ib2wgdGFncyBhcmUgZXh0cmEgYW5ub3RhdGlvbnMgdGhhdCB0d2VhayB0aGUgcmVuZGVyaW5nIG9mIGEgc3ltYm9sLlxuICpcbiAqIEBzaW5jZSAzLjE2XG4gKi9cbmV4cG9ydCBlbnVtIFN5bWJvbFRhZyB7XG5cbiAgLyoqXG4gICAqIFJlbmRlciBhIHN5bWJvbCBhcyBvYnNvbGV0ZSwgdXN1YWxseSB1c2luZyBhIHN0cmlrZS1vdXQuXG4gICAqL1xuICBEZXByZWNhdGVkID0gMSxcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jd29ya3NwYWNlX2V4ZWN1dGVDb21tYW5kXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFeGVjdXRlQ29tbWFuZENsaWVudENhcGFiaWxpdGllcyB7XG4gIC8qKlxuICAgKiBFeGVjdXRlIGNvbW1hbmQgc3VwcG9ydHMgZHluYW1pYyByZWdpc3RyYXRpb24uXG4gICAqL1xuICBkeW5hbWljUmVnaXN0cmF0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jcGFydGlhbFJlc3VsdFBhcmFtc1xuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgUGFydGlhbFJlc3VsdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCB0b2tlbiB0aGF0IGEgc2VydmVyIGNhbiB1c2UgdG8gcmVwb3J0IHBhcnRpYWwgcmVzdWx0cyAoZS5nLlxuICAgKiBzdHJlYW1pbmcpIHRvIHRoZSBjbGllbnQuXG4gICAqL1xuICBwYXJ0aWFsUmVzdWx0VG9rZW4/OiBQcm9ncmVzc1Rva2VuO1xufVxuXG4vKipcbiAqIERlZmluZXMgYW4gaW50ZWdlciBudW1iZXIgaW4gdGhlIHJhbmdlIG9mIC0yXjMxIHRvIDJeMzEgLSAxLlxuICovXG5leHBvcnQgdHlwZSBpbnRlZ2VyID0gbnVtYmVyO1xuLyoqXG4gKiBEZWZpbmVzIGFuIHVuc2lnbmVkIGludGVnZXIgbnVtYmVyIGluIHRoZSByYW5nZSBvZiAwIHRvIDJeMzEgLSAxLlxuICovXG5leHBvcnQgdHlwZSB1aW50ZWdlciA9IG51bWJlcjtcbi8qKlxuICogRGVmaW5lcyBhIGRlY2ltYWwgbnVtYmVyLiBTaW5jZSBkZWNpbWFsIG51bWJlcnMgYXJlIHZlcnlcbiAqIHJhcmUgaW4gdGhlIGxhbmd1YWdlIHNlcnZlciBzcGVjaWZpY2F0aW9uIHdlIGRlbm90ZSB0aGVcbiAqIGV4YWN0IHJhbmdlIHdpdGggZXZlcnkgZGVjaW1hbCB1c2luZyB0aGUgbWF0aGVtYXRpY3NcbiAqIGludGVydmFsIG5vdGF0aW9uIChlLmcuIFswLCAxXSBkZW5vdGVzIGFsbCBkZWNpbWFscyBkIHdpdGhcbiAqIDAgPD0gZCA8PSAxLlxuICovXG5leHBvcnQgdHlwZSBkZWNpbWFsID0gbnVtYmVyO1xuXG4vKipcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyNpbml0aWFsaXplZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYWxpemVkIGV4dGVuZHMgTm90aWZpY2F0aW9uTWVzc2FnZTxJbml0aWFsaXplZFBhcmFtcz4ge1xuICBtZXRob2Q6IE1ldGhvZC5Jbml0aWFsaXplZDtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jaW5pdGlhbGl6ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbml0aWFsaXplZFBhcmFtcyB7fVxuXG4vKipcbiAqIEdlbmVyYWwgcGFyYW1ldGVycyB0byByZWdpc3RlciBmb3IgYSBjYXBhYmlsaXR5LlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI2NsaWVudF9yZWdpc3RlckNhcGFiaWxpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RyYXRpb24ge1xuICAvKipcbiAgICogVGhlIGlkIHVzZWQgdG8gcmVnaXN0ZXIgdGhlIHJlcXVlc3QuIFRoZSBpZCBjYW4gYmUgdXNlZCB0byBkZXJlZ2lzdGVyXG4gICAqIHRoZSByZXF1ZXN0IGFnYWluLlxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCAvIGNhcGFiaWxpdHkgdG8gcmVnaXN0ZXIgZm9yLlxuICAgKi9cbiAgbWV0aG9kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgbmVjZXNzYXJ5IGZvciB0aGUgcmVnaXN0cmF0aW9uLlxuICAgKi9cbiAgcmVnaXN0ZXJPcHRpb25zPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jY2xpZW50X3JlZ2lzdGVyQ2FwYWJpbGl0eVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJhdGlvblBhcmFtcyB7XG4gIHJlZ2lzdHJhdGlvbnM6IFJlZ2lzdHJhdGlvbltdO1xufVxuIl19
|
datalab/web/lsp/settings_node.js
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3 |
+
exports.all = void 0;
|
4 |
+
/**
|
5 |
+
* Settings which may be used by the Python language server.
|
6 |
+
* These are from the default preferences from a VSCode client, culled
|
7 |
+
* to the LSP-related values.
|
8 |
+
*
|
9 |
+
* The difficulty here is that LSP only defines a mechanism to provide
|
10 |
+
* generic settings and the server expects the client to send all necessary
|
11 |
+
* settings. VSCode sends all Python settings to every Python language server.
|
12 |
+
* Furthermore the language server may request specific settings later.
|
13 |
+
*
|
14 |
+
* See:
|
15 |
+
* https://github.com/microsoft/pyright/blob/9d4e58d06643dccbfe0f450070334675b6b64724/docs/settings.md
|
16 |
+
*/
|
17 |
+
exports.all = {
|
18 |
+
'python': {
|
19 |
+
'analysis': {
|
20 |
+
'diagnosticPublishDelay': 1000,
|
21 |
+
'errors': [],
|
22 |
+
'warnings': [],
|
23 |
+
'information': [],
|
24 |
+
'disabled': [],
|
25 |
+
'typeshedPaths': [],
|
26 |
+
'cacheFolderPath': '',
|
27 |
+
'memory': { 'keepLibraryAst': false },
|
28 |
+
'logLevel': 'Warning',
|
29 |
+
'symbolsHierarchyDepthLimit': 10,
|
30 |
+
'completeFunctionParens': false,
|
31 |
+
'autoImportCompletions': true,
|
32 |
+
'autoSearchPaths': true,
|
33 |
+
'stubPath': 'typings',
|
34 |
+
'diagnosticMode': 'openFilesOnly',
|
35 |
+
'extraPaths': [],
|
36 |
+
'useLibraryCodeForTypes': true,
|
37 |
+
'typeCheckingMode': 'basic',
|
38 |
+
// See diagnostics explanation at:
|
39 |
+
// https://github.com/microsoft/pyright/blob/main/docs/configuration.md
|
40 |
+
'diagnosticSeverityOverrides': {},
|
41 |
+
},
|
42 |
+
},
|
43 |
+
};
|
44 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Nfbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2dlbmZpbGVzL3RoaXJkX3BhcnR5L2NvbGFiL3NvdXJjZXMvbHNwL3NldHRpbmdzX25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ1UsUUFBQSxHQUFHLEdBQTZCO0lBQzNDLFFBQVEsRUFBRTtRQUNSLFVBQVUsRUFBRTtZQUNWLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsZUFBZSxFQUFFLEVBQUU7WUFDbkIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQixRQUFRLEVBQUUsRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUM7WUFDbkMsVUFBVSxFQUFFLFNBQVM7WUFDckIsNEJBQTRCLEVBQUUsRUFBRTtZQUNoQyx3QkFBd0IsRUFBRSxLQUFLO1lBQy9CLHVCQUF1QixFQUFFLElBQUk7WUFDN0IsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixVQUFVLEVBQUUsU0FBUztZQUNyQixnQkFBZ0IsRUFBRSxlQUFlO1lBQ2pDLFlBQVksRUFBRSxFQUFFO1lBQ2hCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsa0JBQWtCLEVBQUUsT0FBTztZQUMzQixrQ0FBa0M7WUFDbEMsdUVBQXVFO1lBQ3ZFLDZCQUE2QixFQUFFLEVBQUU7U0FDbEM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNldHRpbmdzIHdoaWNoIG1heSBiZSB1c2VkIGJ5IHRoZSBQeXRob24gbGFuZ3VhZ2Ugc2VydmVyLlxuICogVGhlc2UgYXJlIGZyb20gdGhlIGRlZmF1bHQgcHJlZmVyZW5jZXMgZnJvbSBhIFZTQ29kZSBjbGllbnQsIGN1bGxlZFxuICogdG8gdGhlIExTUC1yZWxhdGVkIHZhbHVlcy5cbiAqXG4gKiBUaGUgZGlmZmljdWx0eSBoZXJlIGlzIHRoYXQgTFNQIG9ubHkgZGVmaW5lcyBhIG1lY2hhbmlzbSB0byBwcm92aWRlXG4gKiBnZW5lcmljIHNldHRpbmdzIGFuZCB0aGUgc2VydmVyIGV4cGVjdHMgdGhlIGNsaWVudCB0byBzZW5kIGFsbCBuZWNlc3NhcnlcbiAqIHNldHRpbmdzLiBWU0NvZGUgc2VuZHMgYWxsIFB5dGhvbiBzZXR0aW5ncyB0byBldmVyeSBQeXRob24gbGFuZ3VhZ2Ugc2VydmVyLlxuICogRnVydGhlcm1vcmUgdGhlIGxhbmd1YWdlIHNlcnZlciBtYXkgcmVxdWVzdCBzcGVjaWZpYyBzZXR0aW5ncyBsYXRlci5cbiAqXG4gKiBTZWU6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L3B5cmlnaHQvYmxvYi85ZDRlNThkMDY2NDNkY2NiZmUwZjQ1MDA3MDMzNDY3NWI2YjY0NzI0L2RvY3Mvc2V0dGluZ3MubWRcbiAqL1xuZXhwb3J0IGNvbnN0IGFsbDoge1trZXk6IHN0cmluZ106IHVua25vd259ID0ge1xuICAncHl0aG9uJzoge1xuICAgICdhbmFseXNpcyc6IHtcbiAgICAgICdkaWFnbm9zdGljUHVibGlzaERlbGF5JzogMTAwMCxcbiAgICAgICdlcnJvcnMnOiBbXSxcbiAgICAgICd3YXJuaW5ncyc6IFtdLFxuICAgICAgJ2luZm9ybWF0aW9uJzogW10sXG4gICAgICAnZGlzYWJsZWQnOiBbXSxcbiAgICAgICd0eXBlc2hlZFBhdGhzJzogW10sXG4gICAgICAnY2FjaGVGb2xkZXJQYXRoJzogJycsXG4gICAgICAnbWVtb3J5JzogeydrZWVwTGlicmFyeUFzdCc6IGZhbHNlfSxcbiAgICAgICdsb2dMZXZlbCc6ICdXYXJuaW5nJyxcbiAgICAgICdzeW1ib2xzSGllcmFyY2h5RGVwdGhMaW1pdCc6IDEwLFxuICAgICAgJ2NvbXBsZXRlRnVuY3Rpb25QYXJlbnMnOiBmYWxzZSxcbiAgICAgICdhdXRvSW1wb3J0Q29tcGxldGlvbnMnOiB0cnVlLFxuICAgICAgJ2F1dG9TZWFyY2hQYXRocyc6IHRydWUsXG4gICAgICAnc3R1YlBhdGgnOiAndHlwaW5ncycsXG4gICAgICAnZGlhZ25vc3RpY01vZGUnOiAnb3BlbkZpbGVzT25seScsXG4gICAgICAnZXh0cmFQYXRocyc6IFtdLFxuICAgICAgJ3VzZUxpYnJhcnlDb2RlRm9yVHlwZXMnOiB0cnVlLFxuICAgICAgJ3R5cGVDaGVja2luZ01vZGUnOiAnYmFzaWMnLFxuICAgICAgLy8gU2VlIGRpYWdub3N0aWNzIGV4cGxhbmF0aW9uIGF0OlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9weXJpZ2h0L2Jsb2IvbWFpbi9kb2NzL2NvbmZpZ3VyYXRpb24ubWRcbiAgICAgICdkaWFnbm9zdGljU2V2ZXJpdHlPdmVycmlkZXMnOiB7fSxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==
|
datalab/web/lsp/text_document_node.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
datalab/web/lsp/window_node.js
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3 |
+
exports.MessageType = void 0;
|
4 |
+
/** Log message type. */
|
5 |
+
var MessageType;
|
6 |
+
(function (MessageType) {
|
7 |
+
/**
|
8 |
+
* An error message.
|
9 |
+
*/
|
10 |
+
MessageType[MessageType["Error"] = 1] = "Error";
|
11 |
+
/**
|
12 |
+
* A warning message.
|
13 |
+
*/
|
14 |
+
MessageType[MessageType["Warning"] = 2] = "Warning";
|
15 |
+
/**
|
16 |
+
* An information message.
|
17 |
+
*/
|
18 |
+
MessageType[MessageType["Info"] = 3] = "Info";
|
19 |
+
/**
|
20 |
+
* A log message.
|
21 |
+
*/
|
22 |
+
MessageType[MessageType["Log"] = 4] = "Log";
|
23 |
+
})(MessageType || (exports.MessageType = MessageType = {}));
|
24 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93X25vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9nZW5maWxlcy90aGlyZF9wYXJ0eS9jb2xhYi9zb3VyY2VzL2xzcC93aW5kb3dfbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErQkEsd0JBQXdCO0FBQ3hCLElBQVksV0FpQlg7QUFqQkQsV0FBWSxXQUFXO0lBQ3JCOztPQUVHO0lBQ0gsK0NBQVMsQ0FBQTtJQUNUOztPQUVHO0lBQ0gsbURBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsNkNBQVEsQ0FBQTtJQUNSOztPQUVHO0lBQ0gsMkNBQU8sQ0FBQTtBQUNULENBQUMsRUFqQlcsV0FBVywyQkFBWCxXQUFXLFFBaUJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHByb3RvY29sIGZyb20gJy4vcHJvdG9jb2xfbm9kZSc7XG5cbi8vIHRzbGludDpkaXNhYmxlOmVuZm9yY2UtbmFtZS1jYXNpbmdcblxuLyoqXG4gKiBUaGUgbG9nIG1lc3NhZ2Ugbm90aWZpY2F0aW9uIGlzIHNlbnQgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQgdG8gYXNrIHRoZVxuICogY2xpZW50IHRvIGxvZyBhIHBhcnRpY3VsYXIgbWVzc2FnZS5cbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyN3aW5kb3dfbG9nTWVzc2FnZVxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgTG9nTWVzc2FnZSBleHRlbmRzXG4gICAgcHJvdG9jb2wuTm90aWZpY2F0aW9uTWVzc2FnZTxMb2dNZXNzYWdlUGFyYW1zPiB7XG4gIG1ldGhvZDogcHJvdG9jb2wuTWV0aG9kLldpbmRvd0xvZ01lc3NhZ2U7XG59XG5cbi8qKlxuICogVGhlIGxvZyBtZXNzYWdlIG5vdGlmaWNhdGlvbiBpcyBzZW50IGZyb20gdGhlIHNlcnZlciB0byB0aGUgY2xpZW50IHRvIGFzayB0aGVcbiAqIGNsaWVudCB0byBsb2cgYSBwYXJ0aWN1bGFyIG1lc3NhZ2UuXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jd2luZG93X2xvZ01lc3NhZ2VcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIExvZ01lc3NhZ2VQYXJhbXMge1xuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgdHlwZS4gU2VlIHtAbGluayBNZXNzYWdlVHlwZX1cbiAgICovXG4gIHR5cGU6IE1lc3NhZ2VUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgYWN0dWFsIG1lc3NhZ2VcbiAgICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqIExvZyBtZXNzYWdlIHR5cGUuICovXG5leHBvcnQgZW51bSBNZXNzYWdlVHlwZSB7XG4gIC8qKlxuICAgKiBBbiBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgRXJyb3IgPSAxLFxuICAvKipcbiAgICogQSB3YXJuaW5nIG1lc3NhZ2UuXG4gICAqL1xuICBXYXJuaW5nID0gMixcbiAgLyoqXG4gICAqIEFuIGluZm9ybWF0aW9uIG1lc3NhZ2UuXG4gICAqL1xuICBJbmZvID0gMyxcbiAgLyoqXG4gICAqIEEgbG9nIG1lc3NhZ2UuXG4gICAqL1xuICBMb2cgPSA0LFxufVxuIl19
|
datalab/web/lsp/workspace_node.js
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"use strict";
|
2 |
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3 |
+
exports.FileChangeType = exports.WatchKind = void 0;
|
4 |
+
/**
|
5 |
+
* See:
|
6 |
+
* https://microsoft.github.io/language-server-protocol/specification#workspace_didChangeWatchedFiles
|
7 |
+
*/
|
8 |
+
var WatchKind;
|
9 |
+
(function (WatchKind) {
|
10 |
+
/**
|
11 |
+
* Interested in create events.
|
12 |
+
*/
|
13 |
+
WatchKind[WatchKind["Create"] = 1] = "Create";
|
14 |
+
/**
|
15 |
+
* Interested in change events
|
16 |
+
*/
|
17 |
+
WatchKind[WatchKind["Change"] = 2] = "Change";
|
18 |
+
/**
|
19 |
+
* Interested in delete events
|
20 |
+
*/
|
21 |
+
WatchKind[WatchKind["Delete"] = 4] = "Delete";
|
22 |
+
})(WatchKind || (exports.WatchKind = WatchKind = {}));
|
23 |
+
/**
|
24 |
+
* The file event type.
|
25 |
+
*/
|
26 |
+
var FileChangeType;
|
27 |
+
(function (FileChangeType) {
|
28 |
+
/**
|
29 |
+
* The file got created.
|
30 |
+
*/
|
31 |
+
FileChangeType[FileChangeType["Created"] = 1] = "Created";
|
32 |
+
/**
|
33 |
+
* The file got changed.
|
34 |
+
*/
|
35 |
+
FileChangeType[FileChangeType["Changed"] = 2] = "Changed";
|
36 |
+
/**
|
37 |
+
* The file got deleted.
|
38 |
+
*/
|
39 |
+
FileChangeType[FileChangeType["Deleted"] = 3] = "Deleted";
|
40 |
+
})(FileChangeType || (exports.FileChangeType = FileChangeType = {}));
|
41 |
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlX25vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9nZW5maWxlcy90aGlyZF9wYXJ0eS9jb2xhYi9zb3VyY2VzL2xzcC93b3Jrc3BhY2Vfbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpVEE7OztHQUdHO0FBQ0gsSUFBWSxTQWVYO0FBZkQsV0FBWSxTQUFTO0lBQ25COztPQUVHO0lBQ0gsNkNBQVUsQ0FBQTtJQUVWOztPQUVHO0lBQ0gsNkNBQVUsQ0FBQTtJQUVWOztPQUVHO0lBQ0gsNkNBQVUsQ0FBQTtBQUNaLENBQUMsRUFmVyxTQUFTLHlCQUFULFNBQVMsUUFlcEI7QUEyQkQ7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCx5REFBVyxDQUFBO0lBQ1g7O09BRUc7SUFDSCx5REFBVyxDQUFBO0lBQ1g7O09BRUc7SUFDSCx5REFBVyxDQUFBO0FBQ2IsQ0FBQyxFQWJXLGNBQWMsOEJBQWQsY0FBYyxRQWF6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHByb3RvY29sIGZyb20gJy4vcHJvdG9jb2xfbm9kZSc7XG5pbXBvcnQgKiBhcyB0ZXh0RG9jdW1lbnQgZnJvbSAnLi90ZXh0X2RvY3VtZW50X25vZGUnO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZTplbmZvcmNlLW5hbWUtY2FzaW5nXG5cbi8qKlxuICogVGhlIHdvcmtzcGFjZS9jb25maWd1cmF0aW9uIHJlcXVlc3QgaXMgc2VudCBmcm9tIHRoZSBzZXJ2ZXIgdG8gdGhlIGNsaWVudCB0b1xuICogZmV0Y2ggY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmcm9tIHRoZSBjbGllbnQuIFRoZSByZXF1ZXN0IGNhbiBmZXRjaCBzZXZlcmFsXG4gKiBjb25maWd1cmF0aW9uIHNldHRpbmdzIGluIG9uZSByb3VuZHRyaXAuIFRoZSBvcmRlciBvZiB0aGUgcmV0dXJuZWRcbiAqIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgY29ycmVzcG9uZCB0byB0aGUgb3JkZXIgb2YgdGhlIHBhc3NlZFxuICogQ29uZmlndXJhdGlvbkl0ZW1zIChlLmcuIHRoZSBmaXJzdCBpdGVtIGluIHRoZSByZXNwb25zZSBpcyB0aGUgcmVzdWx0IGZvclxuICogdGhlIGZpcnN0IGNvbmZpZ3VyYXRpb24gaXRlbSBpbiB0aGUgcGFyYW1zKS5cbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbnMvc3BlY2lmaWNhdGlvbi1jdXJyZW50LyN3b3Jrc3BhY2VfY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ29uZmlndXJhdGlvblBhcmFtcyB7XG4gIGl0ZW1zOiBDb25maWd1cmF0aW9uSXRlbVtdO1xufVxuXG4vKipcbiAqIFNwZWNpZmljIHBhcnQgb2YgdGhlIENvbmZpZ3VyYXRpb24gd2hpY2ggaXMgYmVpbmcgcmVxdWVzdGVkLlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3dvcmtzcGFjZV9jb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDb25maWd1cmF0aW9uSXRlbSB7XG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgdG8gZ2V0IHRoZSBjb25maWd1cmF0aW9uIHNlY3Rpb24gZm9yLlxuICAgKi9cbiAgc2NvcGVVcmk/OiBwcm90b2NvbC5Eb2N1bWVudFVyaTtcblxuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gc2VjdGlvbiBhc2tlZCBmb3IuXG4gICAqL1xuICBzZWN0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbm90aWZpY2F0aW9uIHNlbnQgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBzZXJ2ZXIgdG8gc2lnbmFsIHRoZSBjaGFuZ2Ugb2ZcbiAqIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jd29ya3NwYWNlX2RpZENoYW5nZUNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpZENoYW5nZUNvbmZpZ3VyYXRpb24gZXh0ZW5kc1xuICAgIHByb3RvY29sLk5vdGlmaWNhdGlvbk1lc3NhZ2U8RGlkQ2hhbmdlQ29uZmlndXJhdGlvblBhcmFtcz4ge1xuICBtZXRob2Q6IHByb3RvY29sLk1ldGhvZC5Xb3Jrc3BhY2VEaWRDaGFuZ2VDb25maWd1cmF0aW9uO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIERpZENoYW5nZUNvbmZpZ3VyYXRpb24uXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jd29ya3NwYWNlX2RpZENoYW5nZUNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpZENoYW5nZUNvbmZpZ3VyYXRpb25QYXJhbXMge1xuICAvKipcbiAgICogVGhlIGFjdHVhbCBjaGFuZ2VkIHNldHRpbmdzXG4gICAqL1xuICBzZXR0aW5nczogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jd29ya3NwYWNlRWRpdFxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgV29ya3NwYWNlRWRpdCB7XG4gIC8qKlxuICAgKiBIb2xkcyBjaGFuZ2VzIHRvIGV4aXN0aW5nIHJlc291cmNlcy5cbiAgICovXG4gIGNoYW5nZXM/OiB7W3VyaTogc3RyaW5nXTogdGV4dERvY3VtZW50LlRleHRFZGl0W107fTtcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBjYXBhYmlsaXR5IGB3b3Jrc3BhY2Uud29ya3NwYWNlRWRpdC5yZXNvdXJjZU9wZXJhdGlvbnNgXG4gICAqIGRldGVybWluZXMgd2hldGhlciBkb2N1bWVudCBjaGFuZ2VzIGFyZSBlaXRoZXIgYW4gYXJyYXkgb2ZcbiAgICogYFRleHREb2N1bWVudEVkaXRgcyB0byBleHByZXNzIGNoYW5nZXMgdG8gZGlmZmVyZW50IHRleHQgZG9jdW1lbnRzLFxuICAgKiB3aGVyZSBlYWNoIHRleHQgZG9jdW1lbnQgZWRpdCBhZGRyZXNzZXMgYSBzcGVjaWZpYyB2ZXJzaW9uXG4gICAqIG9mIGEgdGV4dCBkb2N1bWVudCwgb3IgaXQgY2FuIGNvbnRhaW5zIHRoZSBhYm92ZSBgVGV4dERvY3VtZW50RWRpdGBzXG4gICAqIG1peGVkIHdpdGggY3JlYXRlLCByZW5hbWUsIGFuZCBkZWxldGUgZmlsZSAvIGZvbGRlciBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBXaGV0aGVyIGEgY2xpZW50IHN1cHBvcnRzIHZlcnNpb25lZCBkb2N1bWVudCBlZGl0cyBpcyBleHByZXNzZWQgdmlhXG4gICAqIGB3b3Jrc3BhY2Uud29ya3NwYWNlRWRpdC5kb2N1bWVudENoYW5nZXNgIGNsaWVudCBjYXBhYmlsaXR5LlxuICAgKlxuICAgKiBJZiBhIGNsaWVudCBkb2Vzbid0IHN1cHBvcnQgYGRvY3VtZW50Q2hhbmdlc2Agb3JcbiAgICogYHdvcmtzcGFjZS53b3Jrc3BhY2VFZGl0LnJlc291cmNlT3BlcmF0aW9uc2AsIHRoZW4gb25seSBwbGFpblxuICAgKiBgVGV4dEVkaXRgcyB1c2luZyB0aGUgYGNoYW5nZXNgIHByb3BlcnR5IGFyZSBzdXBwb3J0ZWQuXG4gICAqL1xuICBkb2N1bWVudENoYW5nZXM/OlxuICAgICAgKHRleHREb2N1bWVudC5UZXh0RG9jdW1lbnRFZGl0W118XG4gICAgICAgQXJyYXk8dGV4dERvY3VtZW50LlRleHREb2N1bWVudEVkaXR8Q3JlYXRlRmlsZXxSZW5hbWVGaWxlfERlbGV0ZUZpbGU+KTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHRvIGNyZWF0ZSBhIGZpbGUuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDcmVhdGVGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBPdmVyd3JpdGUgZXhpc3RpbmcgZmlsZS4gT3ZlcndyaXRlIHdpbnMgb3ZlciBgaWdub3JlSWZFeGlzdHNgXG4gICAqL1xuICBvdmVyd3JpdGU/OiBib29sZWFuO1xuICAvKipcbiAgICogSWdub3JlIGlmIGV4aXN0cy5cbiAgICovXG4gIGlnbm9yZUlmRXhpc3RzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgZmlsZSBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENyZWF0ZUZpbGUge1xuICAvKipcbiAgICogQSBjcmVhdGVcbiAgICovXG4gIGtpbmQ6ICdjcmVhdGUnO1xuICAvKipcbiAgICogVGhlIHJlc291cmNlIHRvIGNyZWF0ZS5cbiAgICovXG4gIHVyaTogcHJvdG9jb2wuRG9jdW1lbnRVcmk7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnNcbiAgICovXG4gIG9wdGlvbnM/OiBDcmVhdGVGaWxlT3B0aW9ucztcbn1cblxuXG4vKipcbiAqIFJlbmFtZSBmaWxlIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJlbmFtZUZpbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIE92ZXJ3cml0ZSB0YXJnZXQgaWYgZXhpc3RpbmcuIE92ZXJ3cml0ZSB3aW5zIG92ZXIgYGlnbm9yZUlmRXhpc3RzYFxuICAgKi9cbiAgb3ZlcndyaXRlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElnbm9yZXMgaWYgdGFyZ2V0IGV4aXN0cy5cbiAgICovXG4gIGlnbm9yZUlmRXhpc3RzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZW5hbWUgZmlsZSBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFJlbmFtZUZpbGUge1xuICAvKipcbiAgICogQSByZW5hbWVcbiAgICovXG4gIGtpbmQ6ICdyZW5hbWUnO1xuICAvKipcbiAgICogVGhlIG9sZCAoZXhpc3RpbmcpIGxvY2F0aW9uLlxuICAgKi9cbiAgb2xkVXJpOiBwcm90b2NvbC5Eb2N1bWVudFVyaTtcbiAgLyoqXG4gICAqIFRoZSBuZXcgbG9jYXRpb24uXG4gICAqL1xuICBuZXdVcmk6IHByb3RvY29sLkRvY3VtZW50VXJpO1xuICAvKipcbiAgICogUmVuYW1lIG9wdGlvbnMuXG4gICAqL1xuICBvcHRpb25zPzogUmVuYW1lRmlsZU9wdGlvbnM7XG59XG5cbi8qKlxuICogRGVsZXRlIGZpbGUgb3B0aW9uc1xuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRGVsZXRlRmlsZU9wdGlvbnMge1xuICAvKipcbiAgICogRGVsZXRlIHRoZSBjb250ZW50IHJlY3Vyc2l2ZWx5IGlmIGEgZm9sZGVyIGlzIGRlbm90ZWQuXG4gICAqL1xuICByZWN1cnNpdmU/OiBib29sZWFuO1xuICAvKipcbiAgICogSWdub3JlIHRoZSBvcGVyYXRpb24gaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIGlnbm9yZUlmTm90RXhpc3RzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZWxldGUgZmlsZSBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERlbGV0ZUZpbGUge1xuICAvKipcbiAgICogQSBkZWxldGVcbiAgICovXG4gIGtpbmQ6ICdkZWxldGUnO1xuICAvKipcbiAgICogVGhlIGZpbGUgdG8gZGVsZXRlLlxuICAgKi9cbiAgdXJpOiBwcm90b2NvbC5Eb2N1bWVudFVyaTtcbiAgLyoqXG4gICAqIERlbGV0ZSBvcHRpb25zLlxuICAgKi9cbiAgb3B0aW9ucz86IERlbGV0ZUZpbGVPcHRpb25zO1xufVxuXG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3dvcmtzcGFjZV9zeW1ib2xcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VTeW1ib2xDbGllbnRDYXBhYmlsaXRpZXMge1xuICAvKipcbiAgICogU3ltYm9sIHJlcXVlc3Qgc3VwcG9ydHMgZHluYW1pYyByZWdpc3RyYXRpb24uXG4gICAqL1xuICBkeW5hbWljUmVnaXN0cmF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWMgY2FwYWJpbGl0aWVzIGZvciB0aGUgYFN5bWJvbEtpbmRgIGluIHRoZVxuICAgKiBgd29ya3NwYWNlL3N5bWJvbGAgcmVxdWVzdC5cbiAgICovXG4gIHN5bWJvbEtpbmQ/OiB7XG4gICAgLyoqXG4gICAgICogVGhlIHN5bWJvbCBraW5kIHZhbHVlcyB0aGUgY2xpZW50IHN1cHBvcnRzLiBXaGVuIHRoaXNcbiAgICAgKiBwcm9wZXJ0eSBleGlzdHMgdGhlIGNsaWVudCBhbHNvIGd1YXJhbnRlZXMgdGhhdCBpdCB3aWxsXG4gICAgICogaGFuZGxlIHZhbHVlcyBvdXRzaWRlIGl0cyBzZXQgZ3JhY2VmdWxseSBhbmQgZmFsbHMgYmFja1xuICAgICAqIHRvIGEgZGVmYXVsdCB2YWx1ZSB3aGVuIHVua25vd24uXG4gICAgICpcbiAgICAgKiBJZiB0aGlzIHByb3BlcnR5IGlzIG5vdCBwcmVzZW50IHRoZSBjbGllbnQgb25seSBzdXBwb3J0c1xuICAgICAqIHRoZSBzeW1ib2wga2luZHMgZnJvbSBgRmlsZWAgdG8gYEFycmF5YCBhcyBkZWZpbmVkIGluXG4gICAgICogdGhlIGluaXRpYWwgdmVyc2lvbiBvZiB0aGUgcHJvdG9jb2wuXG4gICAgICovXG4gICAgdmFsdWVTZXQ/OiBwcm90b2NvbC5TeW1ib2xLaW5kW107XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoZSBjbGllbnQgc3VwcG9ydHMgdGFncyBvbiBgU3ltYm9sSW5mb3JtYXRpb25gLlxuICAgKiBDbGllbnRzIHN1cHBvcnRpbmcgdGFncyBoYXZlIHRvIGhhbmRsZSB1bmtub3duIHRhZ3MgZ3JhY2VmdWxseS5cbiAgICpcbiAgICogQHNpbmNlIDMuMTYuMFxuICAgKi9cbiAgdGFnU3VwcG9ydD86IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGFncyBzdXBwb3J0ZWQgYnkgdGhlIGNsaWVudC5cbiAgICAgKi9cbiAgICB2YWx1ZVNldDogcHJvdG9jb2wuU3ltYm9sVGFnW10sXG4gIH07XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3dvcmtzcGFjZV9kaWRDaGFuZ2VXYXRjaGVkRmlsZXNcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpZENoYW5nZVdhdGNoZWRGaWxlc0NsaWVudENhcGFiaWxpdGllcyB7XG4gIC8qKlxuICAgKiBEaWQgY2hhbmdlIHdhdGNoZWQgZmlsZXMgbm90aWZpY2F0aW9uIHN1cHBvcnRzIGR5bmFtaWMgcmVnaXN0cmF0aW9uLlxuICAgKiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBjdXJyZW50IHByb3RvY29sIGRvZXNuJ3Qgc3VwcG9ydCBzdGF0aWNcbiAgICogY29uZmlndXJhdGlvbiBmb3IgZmlsZSBjaGFuZ2VzIGZyb20gdGhlIHNlcnZlciBzaWRlLlxuICAgKi9cbiAgZHluYW1pY1JlZ2lzdHJhdGlvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL2xhbmd1YWdlLXNlcnZlci1wcm90b2NvbC9zcGVjaWZpY2F0aW9ucy9zcGVjaWZpY2F0aW9uLWN1cnJlbnQvI3dvcmtzcGFjZV9kaWRDaGFuZ2VDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWRDaGFuZ2VDb25maWd1cmF0aW9uQ2xpZW50Q2FwYWJpbGl0aWVzIHtcbiAgLyoqXG4gICAqIERpZCBjaGFuZ2UgY29uZmlndXJhdGlvbiBub3RpZmljYXRpb24gc3VwcG9ydHMgZHluYW1pYyByZWdpc3RyYXRpb24uXG4gICAqL1xuICBkeW5hbWljUmVnaXN0cmF0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb25zL3NwZWNpZmljYXRpb24tY3VycmVudC8jd29ya3NwYWNlX3dvcmtzcGFjZUZvbGRlcnNcbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFdvcmtzcGFjZUZvbGRlciB7XG4gIC8qKlxuICAgKiBUaGUgYXNzb2NpYXRlZCBVUkkgZm9yIHRoaXMgd29ya3NwYWNlIGZvbGRlci5cbiAgICovXG4gIHVyaTogcHJvdG9jb2wuRG9jdW1lbnRVcmk7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UgZm9sZGVyLiBVc2VkIHRvIHJlZmVyIHRvIHRoaXNcbiAgICogd29ya3NwYWNlIGZvbGRlciBpbiB0aGUgdXNlciBpbnRlcmZhY2UuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVzY3JpYmUgb3B0aW9ucyB0byBiZSB1c2VkIHdoZW4gcmVnaXN0ZXJpbmcgZm9yIGZpbGUgc3lzdGVtIGNoYW5nZSBldmVudHMuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWRDaGFuZ2VXYXRjaGVkRmlsZXNSZWdpc3RyYXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB3YXRjaGVycyB0byByZWdpc3Rlci5cbiAgICovXG4gIHdhdGNoZXJzOiBGaWxlU3lzdGVtV2F0Y2hlcltdO1xufVxuXG4vKipcbiAqIFNlZTpcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbiN3b3Jrc3BhY2VfZGlkQ2hhbmdlV2F0Y2hlZEZpbGVzXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBGaWxlU3lzdGVtV2F0Y2hlciB7XG4gIC8qKlxuICAgKiBUaGUgZ2xvYiBwYXR0ZXJuIHRvIHdhdGNoLlxuICAgKlxuICAgKiBHbG9iIHBhdHRlcm5zIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgc3ludGF4OlxuICAgKiAtIGAqYCB0byBtYXRjaCBvbmUgb3IgbW9yZSBjaGFyYWN0ZXJzIGluIGEgcGF0aCBzZWdtZW50XG4gICAqIC0gYD9gIHRvIG1hdGNoIG9uIG9uZSBjaGFyYWN0ZXIgaW4gYSBwYXRoIHNlZ21lbnRcbiAgICogLSBgKipgIHRvIG1hdGNoIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cywgaW5jbHVkaW5nIG5vbmVcbiAgICogLSBge31gIHRvIGdyb3VwIHN1YiBwYXR0ZXJucyBpbnRvIGFuIE9SIGV4cHJlc3Npb24uIChlLmcuIGAqKuKAiy8qLnt0cyxqc31gXG4gICAqICAgbWF0Y2hlcyBhbGwgVHlwZVNjcmlwdCBhbmQgSmF2YVNjcmlwdCBmaWxlcylcbiAgICogLSBgW11gIHRvIGRlY2xhcmUgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRvIG1hdGNoIGluIGEgcGF0aCBzZWdtZW50XG4gICAqICAgKGUuZy4sIGBleGFtcGxlLlswLTldYCB0byBtYXRjaCBvbiBgZXhhbXBsZS4wYCwgYGV4YW1wbGUuMWAsIOKApilcbiAgICogLSBgWyEuLi5dYCB0byBuZWdhdGUgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRvIG1hdGNoIGluIGEgcGF0aCBzZWdtZW50XG4gICAqICAgKGUuZy4sIGBleGFtcGxlLlshMC05XWAgdG8gbWF0Y2ggb24gYGV4YW1wbGUuYWAsIGBleGFtcGxlLmJgLCBidXQgbm90XG4gICAqICAgYGV4YW1wbGUuMGApXG4gICAqL1xuICBnbG9iUGF0dGVybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiBldmVudHMgb2YgaW50ZXJlc3QuIElmIG9taXR0ZWQgaXQgZGVmYXVsdHNcbiAgICogdG8gV2F0Y2hLaW5kLkNyZWF0ZSB8IFdhdGNoS2luZC5DaGFuZ2UgfCBXYXRjaEtpbmQuRGVsZXRlXG4gICAqIHdoaWNoIGlzIDcuXG4gICAqL1xuICBraW5kPzogV2F0Y2hLaW5kO1xufVxuXG4vKipcbiAqIFNlZTpcbiAqIGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9sYW5ndWFnZS1zZXJ2ZXItcHJvdG9jb2wvc3BlY2lmaWNhdGlvbiN3b3Jrc3BhY2VfZGlkQ2hhbmdlV2F0Y2hlZEZpbGVzXG4gKi9cbmV4cG9ydCBlbnVtIFdhdGNoS2luZCB7XG4gIC8qKlxuICAgKiBJbnRlcmVzdGVkIGluIGNyZWF0ZSBldmVudHMuXG4gICAqL1xuICBDcmVhdGUgPSAxLFxuXG4gIC8qKlxuICAgKiBJbnRlcmVzdGVkIGluIGNoYW5nZSBldmVudHNcbiAgICovXG4gIENoYW5nZSA9IDIsXG5cbiAgLyoqXG4gICAqIEludGVyZXN0ZWQgaW4gZGVsZXRlIGV2ZW50c1xuICAgKi9cbiAgRGVsZXRlID0gNCxcbn1cblxuLyoqXG4gKiBTZWU6XG4gKiBodHRwczovL21pY3Jvc29mdC5naXRodWIuaW8vbGFuZ3VhZ2Utc2VydmVyLXByb3RvY29sL3NwZWNpZmljYXRpb24jd29ya3NwYWNlX2RpZENoYW5nZVdhdGNoZWRGaWxlc1xuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRGlkQ2hhbmdlV2F0Y2hlZEZpbGVzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBhY3R1YWwgZmlsZSBldmVudHMuXG4gICAqL1xuICBjaGFuZ2VzOiBGaWxlRXZlbnRbXTtcbn1cblxuLyoqXG4gKiBBbiBldmVudCBkZXNjcmliaW5nIGEgZmlsZSBjaGFuZ2UuXG4gKi9cbmRlY2xhcmUgaW50ZXJmYWNlIEZpbGVFdmVudCB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSdzIFVSSS5cbiAgICovXG4gIHVyaTogcHJvdG9jb2wuRG9jdW1lbnRVcmk7XG4gIC8qKlxuICAgKiBUaGUgY2hhbmdlIHR5cGUuXG4gICAqL1xuICB0eXBlOiBGaWxlQ2hhbmdlVHlwZTtcbn1cblxuLyoqXG4gKiBUaGUgZmlsZSBldmVudCB0eXBlLlxuICovXG5leHBvcnQgZW51bSBGaWxlQ2hhbmdlVHlwZSB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBnb3QgY3JlYXRlZC5cbiAgICovXG4gIENyZWF0ZWQgPSAxLFxuICAvKipcbiAgICogVGhlIGZpbGUgZ290IGNoYW5nZWQuXG4gICAqL1xuICBDaGFuZ2VkID0gMixcbiAgLyoqXG4gICAqIFRoZSBmaWxlIGdvdCBkZWxldGVkLlxuICAgKi9cbiAgRGVsZXRlZCA9IDMsXG59XG4iXX0=
|
datalab/web/node_modules/.bin/bunyan
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:cb97ac3eee1e35dfbaa2025aa5bb391bbe5adcbe7305a32d6f6e6cdbe1879ac9
|
3 |
+
size 56829
|
datalab/web/node_modules/.bin/mkdirp
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:24b028bccb1773f02cf0d0fb3dca5468f1b5d22a06cbc5cbf351e1eb3accefb1
|
3 |
+
size 731
|
datalab/web/node_modules/.bin/ncp
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c7ca0417a675931d7d4f549009af66f25b47ea5a07e6ddcd85efb712afba3178
|
3 |
+
size 1084
|
datalab/web/node_modules/.bin/rimraf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:3a1557fb195dd6ba967235a93927f74e0452b913425c713bcabdeaee9f62d189
|
3 |
+
size 838
|
datalab/web/node_modules/.bin/semver
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e5c53c713df57d8bdfd03f00e758b5b6a3f51e91a44eb888065394c0deb0da51
|
3 |
+
size 4784
|
datalab/web/node_modules/.package-lock.json
ADDED
@@ -0,0 +1,634 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ipy-rev-proxy",
|
3 |
+
"lockfileVersion": 2,
|
4 |
+
"requires": true,
|
5 |
+
"packages": {
|
6 |
+
"node_modules/accepts": {
|
7 |
+
"version": "1.3.5",
|
8 |
+
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
9 |
+
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
10 |
+
"dependencies": {
|
11 |
+
"mime-types": "~2.1.18",
|
12 |
+
"negotiator": "0.6.1"
|
13 |
+
},
|
14 |
+
"engines": {
|
15 |
+
"node": ">= 0.6"
|
16 |
+
}
|
17 |
+
},
|
18 |
+
"node_modules/after": {
|
19 |
+
"version": "0.8.2",
|
20 |
+
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
|
21 |
+
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
|
22 |
+
},
|
23 |
+
"node_modules/arraybuffer.slice": {
|
24 |
+
"version": "0.0.7",
|
25 |
+
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
|
26 |
+
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
|
27 |
+
},
|
28 |
+
"node_modules/async": {
|
29 |
+
"version": "1.5.2",
|
30 |
+
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
31 |
+
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
|
32 |
+
},
|
33 |
+
"node_modules/async-limiter": {
|
34 |
+
"version": "1.0.0",
|
35 |
+
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
|
36 |
+
"integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
|
37 |
+
},
|
38 |
+
"node_modules/backo2": {
|
39 |
+
"version": "1.0.2",
|
40 |
+
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
|
41 |
+
"integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
|
42 |
+
},
|
43 |
+
"node_modules/balanced-match": {
|
44 |
+
"version": "1.0.0",
|
45 |
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
46 |
+
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
47 |
+
"optional": true
|
48 |
+
},
|
49 |
+
"node_modules/base64-arraybuffer": {
|
50 |
+
"version": "0.1.5",
|
51 |
+
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
|
52 |
+
"integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
|
53 |
+
"engines": {
|
54 |
+
"node": ">= 0.6.0"
|
55 |
+
}
|
56 |
+
},
|
57 |
+
"node_modules/base64id": {
|
58 |
+
"version": "1.0.0",
|
59 |
+
"resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
|
60 |
+
"integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
|
61 |
+
"engines": {
|
62 |
+
"node": ">= 0.4.0"
|
63 |
+
}
|
64 |
+
},
|
65 |
+
"node_modules/better-assert": {
|
66 |
+
"version": "1.0.2",
|
67 |
+
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
|
68 |
+
"integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
|
69 |
+
"dependencies": {
|
70 |
+
"callsite": "1.0.0"
|
71 |
+
},
|
72 |
+
"engines": {
|
73 |
+
"node": "*"
|
74 |
+
}
|
75 |
+
},
|
76 |
+
"node_modules/blob": {
|
77 |
+
"version": "0.0.4",
|
78 |
+
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
|
79 |
+
"integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE="
|
80 |
+
},
|
81 |
+
"node_modules/brace-expansion": {
|
82 |
+
"version": "1.1.11",
|
83 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
84 |
+
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
85 |
+
"optional": true,
|
86 |
+
"dependencies": {
|
87 |
+
"balanced-match": "^1.0.0",
|
88 |
+
"concat-map": "0.0.1"
|
89 |
+
}
|
90 |
+
},
|
91 |
+
"node_modules/bunyan": {
|
92 |
+
"version": "1.8.12",
|
93 |
+
"resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz",
|
94 |
+
"integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=",
|
95 |
+
"engines": [
|
96 |
+
"node >=0.10.0"
|
97 |
+
],
|
98 |
+
"bin": {
|
99 |
+
"bunyan": "bin/bunyan"
|
100 |
+
},
|
101 |
+
"optionalDependencies": {
|
102 |
+
"dtrace-provider": "~0.8",
|
103 |
+
"moment": "^2.10.6",
|
104 |
+
"mv": "~2",
|
105 |
+
"safe-json-stringify": "~1"
|
106 |
+
}
|
107 |
+
},
|
108 |
+
"node_modules/bunyan-rotating-file-stream": {
|
109 |
+
"version": "1.6.3",
|
110 |
+
"resolved": "https://registry.npmjs.org/bunyan-rotating-file-stream/-/bunyan-rotating-file-stream-1.6.3.tgz",
|
111 |
+
"integrity": "sha512-pJFBvosqXjYXsOtDr72SDhZr3d+1ADDBO8TiU0ju0DbNBS4+vjI3GatczzB7LCcBWqWevQ91j1HYsl8cgnI+HQ==",
|
112 |
+
"engines": [
|
113 |
+
"node >=0.10.0"
|
114 |
+
],
|
115 |
+
"dependencies": {
|
116 |
+
"async": "^1.5.2",
|
117 |
+
"lodash": "^4.2.1",
|
118 |
+
"semver": "^5.1.0",
|
119 |
+
"strftime": "^0.9.2"
|
120 |
+
}
|
121 |
+
},
|
122 |
+
"node_modules/callsite": {
|
123 |
+
"version": "1.0.0",
|
124 |
+
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
|
125 |
+
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
|
126 |
+
"engines": {
|
127 |
+
"node": "*"
|
128 |
+
}
|
129 |
+
},
|
130 |
+
"node_modules/component-bind": {
|
131 |
+
"version": "1.0.0",
|
132 |
+
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
|
133 |
+
"integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
|
134 |
+
},
|
135 |
+
"node_modules/component-emitter": {
|
136 |
+
"version": "1.2.1",
|
137 |
+
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
138 |
+
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
|
139 |
+
},
|
140 |
+
"node_modules/component-inherit": {
|
141 |
+
"version": "0.0.3",
|
142 |
+
"resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
|
143 |
+
"integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
|
144 |
+
},
|
145 |
+
"node_modules/concat-map": {
|
146 |
+
"version": "0.0.1",
|
147 |
+
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
148 |
+
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
149 |
+
"optional": true
|
150 |
+
},
|
151 |
+
"node_modules/cookie": {
|
152 |
+
"version": "0.3.1",
|
153 |
+
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
|
154 |
+
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
|
155 |
+
"engines": {
|
156 |
+
"node": ">= 0.6"
|
157 |
+
}
|
158 |
+
},
|
159 |
+
"node_modules/debug": {
|
160 |
+
"version": "3.1.0",
|
161 |
+
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
162 |
+
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
163 |
+
"dependencies": {
|
164 |
+
"ms": "2.0.0"
|
165 |
+
}
|
166 |
+
},
|
167 |
+
"node_modules/dtrace-provider": {
|
168 |
+
"version": "0.8.7",
|
169 |
+
"resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz",
|
170 |
+
"integrity": "sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=",
|
171 |
+
"hasInstallScript": true,
|
172 |
+
"optional": true,
|
173 |
+
"dependencies": {
|
174 |
+
"nan": "^2.10.0"
|
175 |
+
},
|
176 |
+
"engines": {
|
177 |
+
"node": ">=0.10"
|
178 |
+
}
|
179 |
+
},
|
180 |
+
"node_modules/engine.io": {
|
181 |
+
"version": "3.2.0",
|
182 |
+
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz",
|
183 |
+
"integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==",
|
184 |
+
"dependencies": {
|
185 |
+
"accepts": "~1.3.4",
|
186 |
+
"base64id": "1.0.0",
|
187 |
+
"cookie": "0.3.1",
|
188 |
+
"debug": "~3.1.0",
|
189 |
+
"engine.io-parser": "~2.1.0",
|
190 |
+
"ws": "~3.3.1"
|
191 |
+
}
|
192 |
+
},
|
193 |
+
"node_modules/engine.io-client": {
|
194 |
+
"version": "3.2.1",
|
195 |
+
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
|
196 |
+
"integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
|
197 |
+
"dependencies": {
|
198 |
+
"component-emitter": "1.2.1",
|
199 |
+
"component-inherit": "0.0.3",
|
200 |
+
"debug": "~3.1.0",
|
201 |
+
"engine.io-parser": "~2.1.1",
|
202 |
+
"has-cors": "1.1.0",
|
203 |
+
"indexof": "0.0.1",
|
204 |
+
"parseqs": "0.0.5",
|
205 |
+
"parseuri": "0.0.5",
|
206 |
+
"ws": "~3.3.1",
|
207 |
+
"xmlhttprequest-ssl": "~1.5.4",
|
208 |
+
"yeast": "0.1.2"
|
209 |
+
}
|
210 |
+
},
|
211 |
+
"node_modules/engine.io-client/node_modules/ws": {
|
212 |
+
"version": "3.3.3",
|
213 |
+
"resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
|
214 |
+
"integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
|
215 |
+
"dependencies": {
|
216 |
+
"async-limiter": "~1.0.0",
|
217 |
+
"safe-buffer": "~5.1.0",
|
218 |
+
"ultron": "~1.1.0"
|
219 |
+
}
|
220 |
+
},
|
221 |
+
"node_modules/engine.io-parser": {
|
222 |
+
"version": "2.1.2",
|
223 |
+
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.2.tgz",
|
224 |
+
"integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==",
|
225 |
+
"dependencies": {
|
226 |
+
"after": "0.8.2",
|
227 |
+
"arraybuffer.slice": "~0.0.7",
|
228 |
+
"base64-arraybuffer": "0.1.5",
|
229 |
+
"blob": "0.0.4",
|
230 |
+
"has-binary2": "~1.0.2"
|
231 |
+
}
|
232 |
+
},
|
233 |
+
"node_modules/engine.io/node_modules/ws": {
|
234 |
+
"version": "3.3.3",
|
235 |
+
"resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
|
236 |
+
"integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
|
237 |
+
"dependencies": {
|
238 |
+
"async-limiter": "~1.0.0",
|
239 |
+
"safe-buffer": "~5.1.0",
|
240 |
+
"ultron": "~1.1.0"
|
241 |
+
}
|
242 |
+
},
|
243 |
+
"node_modules/eventemitter3": {
|
244 |
+
"version": "3.1.0",
|
245 |
+
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
|
246 |
+
"integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA=="
|
247 |
+
},
|
248 |
+
"node_modules/follow-redirects": {
|
249 |
+
"version": "1.5.1",
|
250 |
+
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz",
|
251 |
+
"integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==",
|
252 |
+
"dependencies": {
|
253 |
+
"debug": "^3.1.0"
|
254 |
+
},
|
255 |
+
"engines": {
|
256 |
+
"node": ">=4.0"
|
257 |
+
}
|
258 |
+
},
|
259 |
+
"node_modules/glob": {
|
260 |
+
"version": "6.0.4",
|
261 |
+
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
|
262 |
+
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
|
263 |
+
"deprecated": "Glob versions prior to v9 are no longer supported",
|
264 |
+
"optional": true,
|
265 |
+
"dependencies": {
|
266 |
+
"inflight": "^1.0.4",
|
267 |
+
"inherits": "2",
|
268 |
+
"minimatch": "2 || 3",
|
269 |
+
"once": "^1.3.0",
|
270 |
+
"path-is-absolute": "^1.0.0"
|
271 |
+
},
|
272 |
+
"engines": {
|
273 |
+
"node": "*"
|
274 |
+
}
|
275 |
+
},
|
276 |
+
"node_modules/has-binary2": {
|
277 |
+
"version": "1.0.3",
|
278 |
+
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
|
279 |
+
"integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
|
280 |
+
"dependencies": {
|
281 |
+
"isarray": "2.0.1"
|
282 |
+
}
|
283 |
+
},
|
284 |
+
"node_modules/has-cors": {
|
285 |
+
"version": "1.1.0",
|
286 |
+
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
|
287 |
+
"integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
|
288 |
+
},
|
289 |
+
"node_modules/http-proxy": {
|
290 |
+
"version": "1.17.0",
|
291 |
+
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
|
292 |
+
"integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
|
293 |
+
"dependencies": {
|
294 |
+
"eventemitter3": "^3.0.0",
|
295 |
+
"follow-redirects": "^1.0.0",
|
296 |
+
"requires-port": "^1.0.0"
|
297 |
+
},
|
298 |
+
"engines": {
|
299 |
+
"node": ">=4.0.0"
|
300 |
+
}
|
301 |
+
},
|
302 |
+
"node_modules/indexof": {
|
303 |
+
"version": "0.0.1",
|
304 |
+
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
|
305 |
+
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
|
306 |
+
},
|
307 |
+
"node_modules/inflight": {
|
308 |
+
"version": "1.0.6",
|
309 |
+
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
310 |
+
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
311 |
+
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
|
312 |
+
"optional": true,
|
313 |
+
"dependencies": {
|
314 |
+
"once": "^1.3.0",
|
315 |
+
"wrappy": "1"
|
316 |
+
}
|
317 |
+
},
|
318 |
+
"node_modules/inherits": {
|
319 |
+
"version": "2.0.3",
|
320 |
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
321 |
+
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
322 |
+
"optional": true
|
323 |
+
},
|
324 |
+
"node_modules/isarray": {
|
325 |
+
"version": "2.0.1",
|
326 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
|
327 |
+
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
|
328 |
+
},
|
329 |
+
"node_modules/lodash": {
|
330 |
+
"version": "4.17.11",
|
331 |
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
332 |
+
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
|
333 |
+
},
|
334 |
+
"node_modules/mime-db": {
|
335 |
+
"version": "1.35.0",
|
336 |
+
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
|
337 |
+
"integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==",
|
338 |
+
"engines": {
|
339 |
+
"node": ">= 0.6"
|
340 |
+
}
|
341 |
+
},
|
342 |
+
"node_modules/mime-types": {
|
343 |
+
"version": "2.1.19",
|
344 |
+
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz",
|
345 |
+
"integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
|
346 |
+
"dependencies": {
|
347 |
+
"mime-db": "~1.35.0"
|
348 |
+
},
|
349 |
+
"engines": {
|
350 |
+
"node": ">= 0.6"
|
351 |
+
}
|
352 |
+
},
|
353 |
+
"node_modules/minimatch": {
|
354 |
+
"version": "3.0.4",
|
355 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
356 |
+
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
357 |
+
"optional": true,
|
358 |
+
"dependencies": {
|
359 |
+
"brace-expansion": "^1.1.7"
|
360 |
+
},
|
361 |
+
"engines": {
|
362 |
+
"node": "*"
|
363 |
+
}
|
364 |
+
},
|
365 |
+
"node_modules/minimist": {
|
366 |
+
"version": "0.0.8",
|
367 |
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
368 |
+
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
369 |
+
"optional": true
|
370 |
+
},
|
371 |
+
"node_modules/mkdirp": {
|
372 |
+
"version": "0.5.1",
|
373 |
+
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
374 |
+
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
375 |
+
"deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
|
376 |
+
"optional": true,
|
377 |
+
"dependencies": {
|
378 |
+
"minimist": "0.0.8"
|
379 |
+
},
|
380 |
+
"bin": {
|
381 |
+
"mkdirp": "bin/cmd.js"
|
382 |
+
}
|
383 |
+
},
|
384 |
+
"node_modules/moment": {
|
385 |
+
"version": "2.22.2",
|
386 |
+
"resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
|
387 |
+
"integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=",
|
388 |
+
"optional": true,
|
389 |
+
"engines": {
|
390 |
+
"node": "*"
|
391 |
+
}
|
392 |
+
},
|
393 |
+
"node_modules/ms": {
|
394 |
+
"version": "2.0.0",
|
395 |
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
396 |
+
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
397 |
+
},
|
398 |
+
"node_modules/mv": {
|
399 |
+
"version": "2.1.1",
|
400 |
+
"resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
|
401 |
+
"integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=",
|
402 |
+
"optional": true,
|
403 |
+
"dependencies": {
|
404 |
+
"mkdirp": "~0.5.1",
|
405 |
+
"ncp": "~2.0.0",
|
406 |
+
"rimraf": "~2.4.0"
|
407 |
+
},
|
408 |
+
"engines": {
|
409 |
+
"node": ">=0.8.0"
|
410 |
+
}
|
411 |
+
},
|
412 |
+
"node_modules/nan": {
|
413 |
+
"version": "2.10.0",
|
414 |
+
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
|
415 |
+
"integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
|
416 |
+
"optional": true
|
417 |
+
},
|
418 |
+
"node_modules/ncp": {
|
419 |
+
"version": "2.0.0",
|
420 |
+
"resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
|
421 |
+
"integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
|
422 |
+
"optional": true,
|
423 |
+
"bin": {
|
424 |
+
"ncp": "bin/ncp"
|
425 |
+
}
|
426 |
+
},
|
427 |
+
"node_modules/negotiator": {
|
428 |
+
"version": "0.6.1",
|
429 |
+
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
430 |
+
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
|
431 |
+
"engines": {
|
432 |
+
"node": ">= 0.6"
|
433 |
+
}
|
434 |
+
},
|
435 |
+
"node_modules/node-pty": {
|
436 |
+
"version": "0.9.0",
|
437 |
+
"resolved": "https://registry.npmjs.org/node-pty/-/node-pty-0.9.0.tgz",
|
438 |
+
"integrity": "sha512-MBnCQl83FTYOu7B4xWw10AW77AAh7ThCE1VXEv+JeWj8mSpGo+0bwgsV+b23ljBFwEM9OmsOv3kM27iUPPm84g==",
|
439 |
+
"hasInstallScript": true,
|
440 |
+
"dependencies": {
|
441 |
+
"nan": "^2.14.0"
|
442 |
+
}
|
443 |
+
},
|
444 |
+
"node_modules/node-pty/node_modules/nan": {
|
445 |
+
"version": "2.14.2",
|
446 |
+
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
|
447 |
+
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
|
448 |
+
},
|
449 |
+
"node_modules/object-component": {
|
450 |
+
"version": "0.0.3",
|
451 |
+
"resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
|
452 |
+
"integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
|
453 |
+
},
|
454 |
+
"node_modules/once": {
|
455 |
+
"version": "1.4.0",
|
456 |
+
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
457 |
+
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
458 |
+
"optional": true,
|
459 |
+
"dependencies": {
|
460 |
+
"wrappy": "1"
|
461 |
+
}
|
462 |
+
},
|
463 |
+
"node_modules/options": {
|
464 |
+
"version": "0.0.6",
|
465 |
+
"resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
|
466 |
+
"integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=",
|
467 |
+
"engines": {
|
468 |
+
"node": ">=0.4.0"
|
469 |
+
}
|
470 |
+
},
|
471 |
+
"node_modules/parseqs": {
|
472 |
+
"version": "0.0.5",
|
473 |
+
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
|
474 |
+
"integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
|
475 |
+
"dependencies": {
|
476 |
+
"better-assert": "~1.0.0"
|
477 |
+
}
|
478 |
+
},
|
479 |
+
"node_modules/parseuri": {
|
480 |
+
"version": "0.0.5",
|
481 |
+
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
|
482 |
+
"integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
|
483 |
+
"dependencies": {
|
484 |
+
"better-assert": "~1.0.0"
|
485 |
+
}
|
486 |
+
},
|
487 |
+
"node_modules/path-is-absolute": {
|
488 |
+
"version": "1.0.1",
|
489 |
+
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
490 |
+
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
491 |
+
"optional": true,
|
492 |
+
"engines": {
|
493 |
+
"node": ">=0.10.0"
|
494 |
+
}
|
495 |
+
},
|
496 |
+
"node_modules/requires-port": {
|
497 |
+
"version": "1.0.0",
|
498 |
+
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
|
499 |
+
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
|
500 |
+
},
|
501 |
+
"node_modules/rimraf": {
|
502 |
+
"version": "2.4.5",
|
503 |
+
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
|
504 |
+
"integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
|
505 |
+
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
506 |
+
"optional": true,
|
507 |
+
"dependencies": {
|
508 |
+
"glob": "^6.0.1"
|
509 |
+
},
|
510 |
+
"bin": {
|
511 |
+
"rimraf": "bin.js"
|
512 |
+
}
|
513 |
+
},
|
514 |
+
"node_modules/safe-buffer": {
|
515 |
+
"version": "5.1.2",
|
516 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
517 |
+
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
518 |
+
},
|
519 |
+
"node_modules/safe-json-stringify": {
|
520 |
+
"version": "1.2.0",
|
521 |
+
"resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
|
522 |
+
"integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
|
523 |
+
"optional": true
|
524 |
+
},
|
525 |
+
"node_modules/semver": {
|
526 |
+
"version": "5.6.0",
|
527 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
|
528 |
+
"integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
|
529 |
+
"bin": {
|
530 |
+
"semver": "bin/semver"
|
531 |
+
}
|
532 |
+
},
|
533 |
+
"node_modules/socket.io": {
|
534 |
+
"version": "2.1.1",
|
535 |
+
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
|
536 |
+
"integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
|
537 |
+
"dependencies": {
|
538 |
+
"debug": "~3.1.0",
|
539 |
+
"engine.io": "~3.2.0",
|
540 |
+
"has-binary2": "~1.0.2",
|
541 |
+
"socket.io-adapter": "~1.1.0",
|
542 |
+
"socket.io-client": "2.1.1",
|
543 |
+
"socket.io-parser": "~3.2.0"
|
544 |
+
}
|
545 |
+
},
|
546 |
+
"node_modules/socket.io-adapter": {
|
547 |
+
"version": "1.1.1",
|
548 |
+
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
|
549 |
+
"integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs="
|
550 |
+
},
|
551 |
+
"node_modules/socket.io-client": {
|
552 |
+
"version": "2.1.1",
|
553 |
+
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
|
554 |
+
"integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
|
555 |
+
"dependencies": {
|
556 |
+
"backo2": "1.0.2",
|
557 |
+
"base64-arraybuffer": "0.1.5",
|
558 |
+
"component-bind": "1.0.0",
|
559 |
+
"component-emitter": "1.2.1",
|
560 |
+
"debug": "~3.1.0",
|
561 |
+
"engine.io-client": "~3.2.0",
|
562 |
+
"has-binary2": "~1.0.2",
|
563 |
+
"has-cors": "1.1.0",
|
564 |
+
"indexof": "0.0.1",
|
565 |
+
"object-component": "0.0.3",
|
566 |
+
"parseqs": "0.0.5",
|
567 |
+
"parseuri": "0.0.5",
|
568 |
+
"socket.io-parser": "~3.2.0",
|
569 |
+
"to-array": "0.1.4"
|
570 |
+
}
|
571 |
+
},
|
572 |
+
"node_modules/socket.io-parser": {
|
573 |
+
"version": "3.2.0",
|
574 |
+
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
|
575 |
+
"integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
|
576 |
+
"dependencies": {
|
577 |
+
"component-emitter": "1.2.1",
|
578 |
+
"debug": "~3.1.0",
|
579 |
+
"isarray": "2.0.1"
|
580 |
+
}
|
581 |
+
},
|
582 |
+
"node_modules/strftime": {
|
583 |
+
"version": "0.9.2",
|
584 |
+
"resolved": "https://registry.npmjs.org/strftime/-/strftime-0.9.2.tgz",
|
585 |
+
"integrity": "sha1-vMooYfKUVtNyqvaheBHIvG859YM=",
|
586 |
+
"engines": {
|
587 |
+
"node": ">=0.2.0"
|
588 |
+
}
|
589 |
+
},
|
590 |
+
"node_modules/to-array": {
|
591 |
+
"version": "0.1.4",
|
592 |
+
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
|
593 |
+
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
|
594 |
+
},
|
595 |
+
"node_modules/ultron": {
|
596 |
+
"version": "1.1.1",
|
597 |
+
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
|
598 |
+
"integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
|
599 |
+
},
|
600 |
+
"node_modules/wrappy": {
|
601 |
+
"version": "1.0.2",
|
602 |
+
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
603 |
+
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
604 |
+
"optional": true
|
605 |
+
},
|
606 |
+
"node_modules/ws": {
|
607 |
+
"version": "1.1.4",
|
608 |
+
"resolved": "https://registry.npmjs.org/ws/-/ws-1.1.4.tgz",
|
609 |
+
"integrity": "sha1-V/QNA2gy5fUFVmKjl8Tedu1mv2E=",
|
610 |
+
"dependencies": {
|
611 |
+
"options": ">=0.0.5",
|
612 |
+
"ultron": "1.0.x"
|
613 |
+
}
|
614 |
+
},
|
615 |
+
"node_modules/ws/node_modules/ultron": {
|
616 |
+
"version": "1.0.2",
|
617 |
+
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
|
618 |
+
"integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
|
619 |
+
},
|
620 |
+
"node_modules/xmlhttprequest-ssl": {
|
621 |
+
"version": "1.5.5",
|
622 |
+
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
|
623 |
+
"integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
|
624 |
+
"engines": {
|
625 |
+
"node": ">=0.4.0"
|
626 |
+
}
|
627 |
+
},
|
628 |
+
"node_modules/yeast": {
|
629 |
+
"version": "0.1.2",
|
630 |
+
"resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
|
631 |
+
"integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
|
632 |
+
}
|
633 |
+
}
|
634 |
+
}
|
datalab/web/node_modules/accepts/HISTORY.md
ADDED
@@ -0,0 +1,224 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
1.3.5 / 2018-02-28
|
2 |
+
==================
|
3 |
+
|
4 |
+
* deps: mime-types@~2.1.18
|
5 |
+
- deps: mime-db@~1.33.0
|
6 |
+
|
7 |
+
1.3.4 / 2017-08-22
|
8 |
+
==================
|
9 |
+
|
10 |
+
* deps: mime-types@~2.1.16
|
11 |
+
- deps: mime-db@~1.29.0
|
12 |
+
|
13 |
+
1.3.3 / 2016-05-02
|
14 |
+
==================
|
15 |
+
|
16 |
+
* deps: mime-types@~2.1.11
|
17 |
+
- deps: mime-db@~1.23.0
|
18 |
+
* deps: [email protected]
|
19 |
+
- perf: improve `Accept` parsing speed
|
20 |
+
- perf: improve `Accept-Charset` parsing speed
|
21 |
+
- perf: improve `Accept-Encoding` parsing speed
|
22 |
+
- perf: improve `Accept-Language` parsing speed
|
23 |
+
|
24 |
+
1.3.2 / 2016-03-08
|
25 |
+
==================
|
26 |
+
|
27 |
+
* deps: mime-types@~2.1.10
|
28 |
+
- Fix extension of `application/dash+xml`
|
29 |
+
- Update primary extension for `audio/mp4`
|
30 |
+
- deps: mime-db@~1.22.0
|
31 |
+
|
32 |
+
1.3.1 / 2016-01-19
|
33 |
+
==================
|
34 |
+
|
35 |
+
* deps: mime-types@~2.1.9
|
36 |
+
- deps: mime-db@~1.21.0
|
37 |
+
|
38 |
+
1.3.0 / 2015-09-29
|
39 |
+
==================
|
40 |
+
|
41 |
+
* deps: mime-types@~2.1.7
|
42 |
+
- deps: mime-db@~1.19.0
|
43 |
+
* deps: [email protected]
|
44 |
+
- Fix including type extensions in parameters in `Accept` parsing
|
45 |
+
- Fix parsing `Accept` parameters with quoted equals
|
46 |
+
- Fix parsing `Accept` parameters with quoted semicolons
|
47 |
+
- Lazy-load modules from main entry point
|
48 |
+
- perf: delay type concatenation until needed
|
49 |
+
- perf: enable strict mode
|
50 |
+
- perf: hoist regular expressions
|
51 |
+
- perf: remove closures getting spec properties
|
52 |
+
- perf: remove a closure from media type parsing
|
53 |
+
- perf: remove property delete from media type parsing
|
54 |
+
|
55 |
+
1.2.13 / 2015-09-06
|
56 |
+
===================
|
57 |
+
|
58 |
+
* deps: mime-types@~2.1.6
|
59 |
+
- deps: mime-db@~1.18.0
|
60 |
+
|
61 |
+
1.2.12 / 2015-07-30
|
62 |
+
===================
|
63 |
+
|
64 |
+
* deps: mime-types@~2.1.4
|
65 |
+
- deps: mime-db@~1.16.0
|
66 |
+
|
67 |
+
1.2.11 / 2015-07-16
|
68 |
+
===================
|
69 |
+
|
70 |
+
* deps: mime-types@~2.1.3
|
71 |
+
- deps: mime-db@~1.15.0
|
72 |
+
|
73 |
+
1.2.10 / 2015-07-01
|
74 |
+
===================
|
75 |
+
|
76 |
+
* deps: mime-types@~2.1.2
|
77 |
+
- deps: mime-db@~1.14.0
|
78 |
+
|
79 |
+
1.2.9 / 2015-06-08
|
80 |
+
==================
|
81 |
+
|
82 |
+
* deps: mime-types@~2.1.1
|
83 |
+
- perf: fix deopt during mapping
|
84 |
+
|
85 |
+
1.2.8 / 2015-06-07
|
86 |
+
==================
|
87 |
+
|
88 |
+
* deps: mime-types@~2.1.0
|
89 |
+
- deps: mime-db@~1.13.0
|
90 |
+
* perf: avoid argument reassignment & argument slice
|
91 |
+
* perf: avoid negotiator recursive construction
|
92 |
+
* perf: enable strict mode
|
93 |
+
* perf: remove unnecessary bitwise operator
|
94 |
+
|
95 |
+
1.2.7 / 2015-05-10
|
96 |
+
==================
|
97 |
+
|
98 |
+
* deps: [email protected]
|
99 |
+
- Fix media type parameter matching to be case-insensitive
|
100 |
+
|
101 |
+
1.2.6 / 2015-05-07
|
102 |
+
==================
|
103 |
+
|
104 |
+
* deps: mime-types@~2.0.11
|
105 |
+
- deps: mime-db@~1.9.1
|
106 |
+
* deps: [email protected]
|
107 |
+
- Fix comparing media types with quoted values
|
108 |
+
- Fix splitting media types with quoted commas
|
109 |
+
|
110 |
+
1.2.5 / 2015-03-13
|
111 |
+
==================
|
112 |
+
|
113 |
+
* deps: mime-types@~2.0.10
|
114 |
+
- deps: mime-db@~1.8.0
|
115 |
+
|
116 |
+
1.2.4 / 2015-02-14
|
117 |
+
==================
|
118 |
+
|
119 |
+
* Support Node.js 0.6
|
120 |
+
* deps: mime-types@~2.0.9
|
121 |
+
- deps: mime-db@~1.7.0
|
122 |
+
* deps: [email protected]
|
123 |
+
- Fix preference sorting to be stable for long acceptable lists
|
124 |
+
|
125 |
+
1.2.3 / 2015-01-31
|
126 |
+
==================
|
127 |
+
|
128 |
+
* deps: mime-types@~2.0.8
|
129 |
+
- deps: mime-db@~1.6.0
|
130 |
+
|
131 |
+
1.2.2 / 2014-12-30
|
132 |
+
==================
|
133 |
+
|
134 |
+
* deps: mime-types@~2.0.7
|
135 |
+
- deps: mime-db@~1.5.0
|
136 |
+
|
137 |
+
1.2.1 / 2014-12-30
|
138 |
+
==================
|
139 |
+
|
140 |
+
* deps: mime-types@~2.0.5
|
141 |
+
- deps: mime-db@~1.3.1
|
142 |
+
|
143 |
+
1.2.0 / 2014-12-19
|
144 |
+
==================
|
145 |
+
|
146 |
+
* deps: [email protected]
|
147 |
+
- Fix list return order when large accepted list
|
148 |
+
- Fix missing identity encoding when q=0 exists
|
149 |
+
- Remove dynamic building of Negotiator class
|
150 |
+
|
151 |
+
1.1.4 / 2014-12-10
|
152 |
+
==================
|
153 |
+
|
154 |
+
* deps: mime-types@~2.0.4
|
155 |
+
- deps: mime-db@~1.3.0
|
156 |
+
|
157 |
+
1.1.3 / 2014-11-09
|
158 |
+
==================
|
159 |
+
|
160 |
+
* deps: mime-types@~2.0.3
|
161 |
+
- deps: mime-db@~1.2.0
|
162 |
+
|
163 |
+
1.1.2 / 2014-10-14
|
164 |
+
==================
|
165 |
+
|
166 |
+
* deps: [email protected]
|
167 |
+
- Fix error when media type has invalid parameter
|
168 |
+
|
169 |
+
1.1.1 / 2014-09-28
|
170 |
+
==================
|
171 |
+
|
172 |
+
* deps: mime-types@~2.0.2
|
173 |
+
- deps: mime-db@~1.1.0
|
174 |
+
* deps: [email protected]
|
175 |
+
- Fix all negotiations to be case-insensitive
|
176 |
+
- Stable sort preferences of same quality according to client order
|
177 |
+
|
178 |
+
1.1.0 / 2014-09-02
|
179 |
+
==================
|
180 |
+
|
181 |
+
* update `mime-types`
|
182 |
+
|
183 |
+
1.0.7 / 2014-07-04
|
184 |
+
==================
|
185 |
+
|
186 |
+
* Fix wrong type returned from `type` when match after unknown extension
|
187 |
+
|
188 |
+
1.0.6 / 2014-06-24
|
189 |
+
==================
|
190 |
+
|
191 |
+
* deps: [email protected]
|
192 |
+
|
193 |
+
1.0.5 / 2014-06-20
|
194 |
+
==================
|
195 |
+
|
196 |
+
* fix crash when unknown extension given
|
197 |
+
|
198 |
+
1.0.4 / 2014-06-19
|
199 |
+
==================
|
200 |
+
|
201 |
+
* use `mime-types`
|
202 |
+
|
203 |
+
1.0.3 / 2014-06-11
|
204 |
+
==================
|
205 |
+
|
206 |
+
* deps: [email protected]
|
207 |
+
- Order by specificity when quality is the same
|
208 |
+
|
209 |
+
1.0.2 / 2014-05-29
|
210 |
+
==================
|
211 |
+
|
212 |
+
* Fix interpretation when header not in request
|
213 |
+
* deps: pin [email protected]
|
214 |
+
|
215 |
+
1.0.1 / 2014-01-18
|
216 |
+
==================
|
217 |
+
|
218 |
+
* Identity encoding isn't always acceptable
|
219 |
+
* deps: negotiator@~0.4.0
|
220 |
+
|
221 |
+
1.0.0 / 2013-12-27
|
222 |
+
==================
|
223 |
+
|
224 |
+
* Genesis
|
datalab/web/node_modules/accepts/LICENSE
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(The MIT License)
|
2 |
+
|
3 |
+
Copyright (c) 2014 Jonathan Ong <[email protected]>
|
4 |
+
Copyright (c) 2015 Douglas Christopher Wilson <[email protected]>
|
5 |
+
|
6 |
+
Permission is hereby granted, free of charge, to any person obtaining
|
7 |
+
a copy of this software and associated documentation files (the
|
8 |
+
'Software'), to deal in the Software without restriction, including
|
9 |
+
without limitation the rights to use, copy, modify, merge, publish,
|
10 |
+
distribute, sublicense, and/or sell copies of the Software, and to
|
11 |
+
permit persons to whom the Software is furnished to do so, subject to
|
12 |
+
the following conditions:
|
13 |
+
|
14 |
+
The above copyright notice and this permission notice shall be
|
15 |
+
included in all copies or substantial portions of the Software.
|
16 |
+
|
17 |
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
18 |
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
19 |
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
20 |
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
21 |
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
22 |
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
23 |
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
datalab/web/node_modules/accepts/README.md
ADDED
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# accepts
|
2 |
+
|
3 |
+
[![NPM Version][npm-image]][npm-url]
|
4 |
+
[![NPM Downloads][downloads-image]][downloads-url]
|
5 |
+
[![Node.js Version][node-version-image]][node-version-url]
|
6 |
+
[![Build Status][travis-image]][travis-url]
|
7 |
+
[![Test Coverage][coveralls-image]][coveralls-url]
|
8 |
+
|
9 |
+
Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator).
|
10 |
+
Extracted from [koa](https://www.npmjs.com/package/koa) for general use.
|
11 |
+
|
12 |
+
In addition to negotiator, it allows:
|
13 |
+
|
14 |
+
- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])`
|
15 |
+
as well as `('text/html', 'application/json')`.
|
16 |
+
- Allows type shorthands such as `json`.
|
17 |
+
- Returns `false` when no types match
|
18 |
+
- Treats non-existent headers as `*`
|
19 |
+
|
20 |
+
## Installation
|
21 |
+
|
22 |
+
This is a [Node.js](https://nodejs.org/en/) module available through the
|
23 |
+
[npm registry](https://www.npmjs.com/). Installation is done using the
|
24 |
+
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
|
25 |
+
|
26 |
+
```sh
|
27 |
+
$ npm install accepts
|
28 |
+
```
|
29 |
+
|
30 |
+
## API
|
31 |
+
|
32 |
+
<!-- eslint-disable no-unused-vars -->
|
33 |
+
|
34 |
+
```js
|
35 |
+
var accepts = require('accepts')
|
36 |
+
```
|
37 |
+
|
38 |
+
### accepts(req)
|
39 |
+
|
40 |
+
Create a new `Accepts` object for the given `req`.
|
41 |
+
|
42 |
+
#### .charset(charsets)
|
43 |
+
|
44 |
+
Return the first accepted charset. If nothing in `charsets` is accepted,
|
45 |
+
then `false` is returned.
|
46 |
+
|
47 |
+
#### .charsets()
|
48 |
+
|
49 |
+
Return the charsets that the request accepts, in the order of the client's
|
50 |
+
preference (most preferred first).
|
51 |
+
|
52 |
+
#### .encoding(encodings)
|
53 |
+
|
54 |
+
Return the first accepted encoding. If nothing in `encodings` is accepted,
|
55 |
+
then `false` is returned.
|
56 |
+
|
57 |
+
#### .encodings()
|
58 |
+
|
59 |
+
Return the encodings that the request accepts, in the order of the client's
|
60 |
+
preference (most preferred first).
|
61 |
+
|
62 |
+
#### .language(languages)
|
63 |
+
|
64 |
+
Return the first accepted language. If nothing in `languages` is accepted,
|
65 |
+
then `false` is returned.
|
66 |
+
|
67 |
+
#### .languages()
|
68 |
+
|
69 |
+
Return the languages that the request accepts, in the order of the client's
|
70 |
+
preference (most preferred first).
|
71 |
+
|
72 |
+
#### .type(types)
|
73 |
+
|
74 |
+
Return the first accepted type (and it is returned as the same text as what
|
75 |
+
appears in the `types` array). If nothing in `types` is accepted, then `false`
|
76 |
+
is returned.
|
77 |
+
|
78 |
+
The `types` array can contain full MIME types or file extensions. Any value
|
79 |
+
that is not a full MIME types is passed to `require('mime-types').lookup`.
|
80 |
+
|
81 |
+
#### .types()
|
82 |
+
|
83 |
+
Return the types that the request accepts, in the order of the client's
|
84 |
+
preference (most preferred first).
|
85 |
+
|
86 |
+
## Examples
|
87 |
+
|
88 |
+
### Simple type negotiation
|
89 |
+
|
90 |
+
This simple example shows how to use `accepts` to return a different typed
|
91 |
+
respond body based on what the client wants to accept. The server lists it's
|
92 |
+
preferences in order and will get back the best match between the client and
|
93 |
+
server.
|
94 |
+
|
95 |
+
```js
|
96 |
+
var accepts = require('accepts')
|
97 |
+
var http = require('http')
|
98 |
+
|
99 |
+
function app (req, res) {
|
100 |
+
var accept = accepts(req)
|
101 |
+
|
102 |
+
// the order of this list is significant; should be server preferred order
|
103 |
+
switch (accept.type(['json', 'html'])) {
|
104 |
+
case 'json':
|
105 |
+
res.setHeader('Content-Type', 'application/json')
|
106 |
+
res.write('{"hello":"world!"}')
|
107 |
+
break
|
108 |
+
case 'html':
|
109 |
+
res.setHeader('Content-Type', 'text/html')
|
110 |
+
res.write('<b>hello, world!</b>')
|
111 |
+
break
|
112 |
+
default:
|
113 |
+
// the fallback is text/plain, so no need to specify it above
|
114 |
+
res.setHeader('Content-Type', 'text/plain')
|
115 |
+
res.write('hello, world!')
|
116 |
+
break
|
117 |
+
}
|
118 |
+
|
119 |
+
res.end()
|
120 |
+
}
|
121 |
+
|
122 |
+
http.createServer(app).listen(3000)
|
123 |
+
```
|
124 |
+
|
125 |
+
You can test this out with the cURL program:
|
126 |
+
```sh
|
127 |
+
curl -I -H'Accept: text/html' http://localhost:3000/
|
128 |
+
```
|
129 |
+
|
130 |
+
## License
|
131 |
+
|
132 |
+
[MIT](LICENSE)
|
133 |
+
|
134 |
+
[npm-image]: https://img.shields.io/npm/v/accepts.svg
|
135 |
+
[npm-url]: https://npmjs.org/package/accepts
|
136 |
+
[node-version-image]: https://img.shields.io/node/v/accepts.svg
|
137 |
+
[node-version-url]: https://nodejs.org/en/download/
|
138 |
+
[travis-image]: https://img.shields.io/travis/jshttp/accepts/master.svg
|
139 |
+
[travis-url]: https://travis-ci.org/jshttp/accepts
|
140 |
+
[coveralls-image]: https://img.shields.io/coveralls/jshttp/accepts/master.svg
|
141 |
+
[coveralls-url]: https://coveralls.io/r/jshttp/accepts
|
142 |
+
[downloads-image]: https://img.shields.io/npm/dm/accepts.svg
|
143 |
+
[downloads-url]: https://npmjs.org/package/accepts
|
datalab/web/node_modules/accepts/index.js
ADDED
@@ -0,0 +1,238 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* accepts
|
3 |
+
* Copyright(c) 2014 Jonathan Ong
|
4 |
+
* Copyright(c) 2015 Douglas Christopher Wilson
|
5 |
+
* MIT Licensed
|
6 |
+
*/
|
7 |
+
|
8 |
+
'use strict'
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Module dependencies.
|
12 |
+
* @private
|
13 |
+
*/
|
14 |
+
|
15 |
+
var Negotiator = require('negotiator')
|
16 |
+
var mime = require('mime-types')
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Module exports.
|
20 |
+
* @public
|
21 |
+
*/
|
22 |
+
|
23 |
+
module.exports = Accepts
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Create a new Accepts object for the given req.
|
27 |
+
*
|
28 |
+
* @param {object} req
|
29 |
+
* @public
|
30 |
+
*/
|
31 |
+
|
32 |
+
function Accepts (req) {
|
33 |
+
if (!(this instanceof Accepts)) {
|
34 |
+
return new Accepts(req)
|
35 |
+
}
|
36 |
+
|
37 |
+
this.headers = req.headers
|
38 |
+
this.negotiator = new Negotiator(req)
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Check if the given `type(s)` is acceptable, returning
|
43 |
+
* the best match when true, otherwise `undefined`, in which
|
44 |
+
* case you should respond with 406 "Not Acceptable".
|
45 |
+
*
|
46 |
+
* The `type` value may be a single mime type string
|
47 |
+
* such as "application/json", the extension name
|
48 |
+
* such as "json" or an array `["json", "html", "text/plain"]`. When a list
|
49 |
+
* or array is given the _best_ match, if any is returned.
|
50 |
+
*
|
51 |
+
* Examples:
|
52 |
+
*
|
53 |
+
* // Accept: text/html
|
54 |
+
* this.types('html');
|
55 |
+
* // => "html"
|
56 |
+
*
|
57 |
+
* // Accept: text/*, application/json
|
58 |
+
* this.types('html');
|
59 |
+
* // => "html"
|
60 |
+
* this.types('text/html');
|
61 |
+
* // => "text/html"
|
62 |
+
* this.types('json', 'text');
|
63 |
+
* // => "json"
|
64 |
+
* this.types('application/json');
|
65 |
+
* // => "application/json"
|
66 |
+
*
|
67 |
+
* // Accept: text/*, application/json
|
68 |
+
* this.types('image/png');
|
69 |
+
* this.types('png');
|
70 |
+
* // => undefined
|
71 |
+
*
|
72 |
+
* // Accept: text/*;q=.5, application/json
|
73 |
+
* this.types(['html', 'json']);
|
74 |
+
* this.types('html', 'json');
|
75 |
+
* // => "json"
|
76 |
+
*
|
77 |
+
* @param {String|Array} types...
|
78 |
+
* @return {String|Array|Boolean}
|
79 |
+
* @public
|
80 |
+
*/
|
81 |
+
|
82 |
+
Accepts.prototype.type =
|
83 |
+
Accepts.prototype.types = function (types_) {
|
84 |
+
var types = types_
|
85 |
+
|
86 |
+
// support flattened arguments
|
87 |
+
if (types && !Array.isArray(types)) {
|
88 |
+
types = new Array(arguments.length)
|
89 |
+
for (var i = 0; i < types.length; i++) {
|
90 |
+
types[i] = arguments[i]
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
// no types, return all requested types
|
95 |
+
if (!types || types.length === 0) {
|
96 |
+
return this.negotiator.mediaTypes()
|
97 |
+
}
|
98 |
+
|
99 |
+
// no accept header, return first given type
|
100 |
+
if (!this.headers.accept) {
|
101 |
+
return types[0]
|
102 |
+
}
|
103 |
+
|
104 |
+
var mimes = types.map(extToMime)
|
105 |
+
var accepts = this.negotiator.mediaTypes(mimes.filter(validMime))
|
106 |
+
var first = accepts[0]
|
107 |
+
|
108 |
+
return first
|
109 |
+
? types[mimes.indexOf(first)]
|
110 |
+
: false
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Return accepted encodings or best fit based on `encodings`.
|
115 |
+
*
|
116 |
+
* Given `Accept-Encoding: gzip, deflate`
|
117 |
+
* an array sorted by quality is returned:
|
118 |
+
*
|
119 |
+
* ['gzip', 'deflate']
|
120 |
+
*
|
121 |
+
* @param {String|Array} encodings...
|
122 |
+
* @return {String|Array}
|
123 |
+
* @public
|
124 |
+
*/
|
125 |
+
|
126 |
+
Accepts.prototype.encoding =
|
127 |
+
Accepts.prototype.encodings = function (encodings_) {
|
128 |
+
var encodings = encodings_
|
129 |
+
|
130 |
+
// support flattened arguments
|
131 |
+
if (encodings && !Array.isArray(encodings)) {
|
132 |
+
encodings = new Array(arguments.length)
|
133 |
+
for (var i = 0; i < encodings.length; i++) {
|
134 |
+
encodings[i] = arguments[i]
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
// no encodings, return all requested encodings
|
139 |
+
if (!encodings || encodings.length === 0) {
|
140 |
+
return this.negotiator.encodings()
|
141 |
+
}
|
142 |
+
|
143 |
+
return this.negotiator.encodings(encodings)[0] || false
|
144 |
+
}
|
145 |
+
|
146 |
+
/**
|
147 |
+
* Return accepted charsets or best fit based on `charsets`.
|
148 |
+
*
|
149 |
+
* Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
|
150 |
+
* an array sorted by quality is returned:
|
151 |
+
*
|
152 |
+
* ['utf-8', 'utf-7', 'iso-8859-1']
|
153 |
+
*
|
154 |
+
* @param {String|Array} charsets...
|
155 |
+
* @return {String|Array}
|
156 |
+
* @public
|
157 |
+
*/
|
158 |
+
|
159 |
+
Accepts.prototype.charset =
|
160 |
+
Accepts.prototype.charsets = function (charsets_) {
|
161 |
+
var charsets = charsets_
|
162 |
+
|
163 |
+
// support flattened arguments
|
164 |
+
if (charsets && !Array.isArray(charsets)) {
|
165 |
+
charsets = new Array(arguments.length)
|
166 |
+
for (var i = 0; i < charsets.length; i++) {
|
167 |
+
charsets[i] = arguments[i]
|
168 |
+
}
|
169 |
+
}
|
170 |
+
|
171 |
+
// no charsets, return all requested charsets
|
172 |
+
if (!charsets || charsets.length === 0) {
|
173 |
+
return this.negotiator.charsets()
|
174 |
+
}
|
175 |
+
|
176 |
+
return this.negotiator.charsets(charsets)[0] || false
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Return accepted languages or best fit based on `langs`.
|
181 |
+
*
|
182 |
+
* Given `Accept-Language: en;q=0.8, es, pt`
|
183 |
+
* an array sorted by quality is returned:
|
184 |
+
*
|
185 |
+
* ['es', 'pt', 'en']
|
186 |
+
*
|
187 |
+
* @param {String|Array} langs...
|
188 |
+
* @return {Array|String}
|
189 |
+
* @public
|
190 |
+
*/
|
191 |
+
|
192 |
+
Accepts.prototype.lang =
|
193 |
+
Accepts.prototype.langs =
|
194 |
+
Accepts.prototype.language =
|
195 |
+
Accepts.prototype.languages = function (languages_) {
|
196 |
+
var languages = languages_
|
197 |
+
|
198 |
+
// support flattened arguments
|
199 |
+
if (languages && !Array.isArray(languages)) {
|
200 |
+
languages = new Array(arguments.length)
|
201 |
+
for (var i = 0; i < languages.length; i++) {
|
202 |
+
languages[i] = arguments[i]
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
// no languages, return all requested languages
|
207 |
+
if (!languages || languages.length === 0) {
|
208 |
+
return this.negotiator.languages()
|
209 |
+
}
|
210 |
+
|
211 |
+
return this.negotiator.languages(languages)[0] || false
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Convert extnames to mime.
|
216 |
+
*
|
217 |
+
* @param {String} type
|
218 |
+
* @return {String}
|
219 |
+
* @private
|
220 |
+
*/
|
221 |
+
|
222 |
+
function extToMime (type) {
|
223 |
+
return type.indexOf('/') === -1
|
224 |
+
? mime.lookup(type)
|
225 |
+
: type
|
226 |
+
}
|
227 |
+
|
228 |
+
/**
|
229 |
+
* Check if mime is valid.
|
230 |
+
*
|
231 |
+
* @param {String} type
|
232 |
+
* @return {String}
|
233 |
+
* @private
|
234 |
+
*/
|
235 |
+
|
236 |
+
function validMime (type) {
|
237 |
+
return typeof type === 'string'
|
238 |
+
}
|
datalab/web/node_modules/accepts/package.json
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "accepts",
|
3 |
+
"description": "Higher-level content negotiation",
|
4 |
+
"version": "1.3.5",
|
5 |
+
"contributors": [
|
6 |
+
"Douglas Christopher Wilson <[email protected]>",
|
7 |
+
"Jonathan Ong <[email protected]> (http://jongleberry.com)"
|
8 |
+
],
|
9 |
+
"license": "MIT",
|
10 |
+
"repository": "jshttp/accepts",
|
11 |
+
"dependencies": {
|
12 |
+
"mime-types": "~2.1.18",
|
13 |
+
"negotiator": "0.6.1"
|
14 |
+
},
|
15 |
+
"devDependencies": {
|
16 |
+
"eslint": "4.18.1",
|
17 |
+
"eslint-config-standard": "11.0.0",
|
18 |
+
"eslint-plugin-import": "2.9.0",
|
19 |
+
"eslint-plugin-markdown": "1.0.0-beta.6",
|
20 |
+
"eslint-plugin-node": "6.0.1",
|
21 |
+
"eslint-plugin-promise": "3.6.0",
|
22 |
+
"eslint-plugin-standard": "3.0.1",
|
23 |
+
"istanbul": "0.4.5",
|
24 |
+
"mocha": "~1.21.5"
|
25 |
+
},
|
26 |
+
"files": [
|
27 |
+
"LICENSE",
|
28 |
+
"HISTORY.md",
|
29 |
+
"index.js"
|
30 |
+
],
|
31 |
+
"engines": {
|
32 |
+
"node": ">= 0.6"
|
33 |
+
},
|
34 |
+
"scripts": {
|
35 |
+
"lint": "eslint --plugin markdown --ext js,md .",
|
36 |
+
"test": "mocha --reporter spec --check-leaks --bail test/",
|
37 |
+
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
|
38 |
+
"test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
|
39 |
+
},
|
40 |
+
"keywords": [
|
41 |
+
"content",
|
42 |
+
"negotiation",
|
43 |
+
"accept",
|
44 |
+
"accepts"
|
45 |
+
]
|
46 |
+
}
|
datalab/web/node_modules/after/.npmignore
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
node_modules
|
2 |
+
.monitor
|
datalab/web/node_modules/after/.travis.yml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
language: node_js
|
2 |
+
node_js:
|
3 |
+
- 0.6
|
4 |
+
- 0.8
|
5 |
+
- 0.9
|
6 |
+
- 0.10
|
7 |
+
- 0.12
|
8 |
+
- 4.2.4
|
9 |
+
- 5.4.1
|
10 |
+
- iojs-1
|
11 |
+
- iojs-2
|
12 |
+
- iojs-3
|
datalab/web/node_modules/after/LICENCE
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (c) 2011 Raynos.
|
2 |
+
|
3 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4 |
+
of this software and associated documentation files (the "Software"), to deal
|
5 |
+
in the Software without restriction, including without limitation the rights
|
6 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7 |
+
copies of the Software, and to permit persons to whom the Software is
|
8 |
+
furnished to do so, subject to the following conditions:
|
9 |
+
|
10 |
+
The above copyright notice and this permission notice shall be included in
|
11 |
+
all copies or substantial portions of the Software.
|
12 |
+
|
13 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19 |
+
THE SOFTWARE.
|
datalab/web/node_modules/after/README.md
ADDED
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# After [![Build Status][1]][2]
|
2 |
+
|
3 |
+
Invoke callback after n calls
|
4 |
+
|
5 |
+
## Status: production ready
|
6 |
+
|
7 |
+
## Example
|
8 |
+
|
9 |
+
```js
|
10 |
+
var after = require("after")
|
11 |
+
var db = require("./db") // some db.
|
12 |
+
|
13 |
+
var updateUser = function (req, res) {
|
14 |
+
// use after to run two tasks in parallel,
|
15 |
+
// namely get request body and get session
|
16 |
+
// then run updateUser with the results
|
17 |
+
var next = after(2, updateUser)
|
18 |
+
var results = {}
|
19 |
+
|
20 |
+
getJSONBody(req, res, function (err, body) {
|
21 |
+
if (err) return next(err)
|
22 |
+
|
23 |
+
results.body = body
|
24 |
+
next(null, results)
|
25 |
+
})
|
26 |
+
|
27 |
+
getSessionUser(req, res, function (err, user) {
|
28 |
+
if (err) return next(err)
|
29 |
+
|
30 |
+
results.user = user
|
31 |
+
next(null, results)
|
32 |
+
})
|
33 |
+
|
34 |
+
// now do the thing!
|
35 |
+
function updateUser(err, result) {
|
36 |
+
if (err) {
|
37 |
+
res.statusCode = 500
|
38 |
+
return res.end("Unexpected Error")
|
39 |
+
}
|
40 |
+
|
41 |
+
if (!result.user || result.user.role !== "admin") {
|
42 |
+
res.statusCode = 403
|
43 |
+
return res.end("Permission Denied")
|
44 |
+
}
|
45 |
+
|
46 |
+
db.put("users:" + req.params.userId, result.body, function (err) {
|
47 |
+
if (err) {
|
48 |
+
res.statusCode = 500
|
49 |
+
return res.end("Unexpected Error")
|
50 |
+
}
|
51 |
+
|
52 |
+
res.statusCode = 200
|
53 |
+
res.end("Ok")
|
54 |
+
})
|
55 |
+
}
|
56 |
+
}
|
57 |
+
```
|
58 |
+
|
59 |
+
## Naive Example
|
60 |
+
|
61 |
+
```js
|
62 |
+
var after = require("after")
|
63 |
+
, next = after(3, logItWorks)
|
64 |
+
|
65 |
+
next()
|
66 |
+
next()
|
67 |
+
next() // it works
|
68 |
+
|
69 |
+
function logItWorks() {
|
70 |
+
console.log("it works!")
|
71 |
+
}
|
72 |
+
```
|
73 |
+
|
74 |
+
## Example with error handling
|
75 |
+
|
76 |
+
```js
|
77 |
+
var after = require("after")
|
78 |
+
, next = after(3, logError)
|
79 |
+
|
80 |
+
next()
|
81 |
+
next(new Error("oops")) // logs oops
|
82 |
+
next() // does nothing
|
83 |
+
|
84 |
+
// This callback is only called once.
|
85 |
+
// If there is an error the callback gets called immediately
|
86 |
+
// this avoids the situation where errors get lost.
|
87 |
+
function logError(err) {
|
88 |
+
console.log(err)
|
89 |
+
}
|
90 |
+
```
|
91 |
+
|
92 |
+
## Installation
|
93 |
+
|
94 |
+
`npm install after`
|
95 |
+
|
96 |
+
## Tests
|
97 |
+
|
98 |
+
`npm test`
|
99 |
+
|
100 |
+
## Contributors
|
101 |
+
|
102 |
+
- Raynos
|
103 |
+
- defunctzombie
|
104 |
+
|
105 |
+
## MIT Licenced
|
106 |
+
|
107 |
+
[1]: https://secure.travis-ci.org/Raynos/after.png
|
108 |
+
[2]: http://travis-ci.org/Raynos/after
|
109 |
+
[3]: http://raynos.org/blog/2/Flow-control-in-node.js
|
110 |
+
[4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307
|
111 |
+
[5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031
|
112 |
+
[6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419
|
113 |
+
[7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091
|
114 |
+
[8]: http://github.com/Raynos/iterators
|
115 |
+
[9]: http://github.com/Raynos/composite
|
datalab/web/node_modules/after/index.js
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
module.exports = after
|
2 |
+
|
3 |
+
function after(count, callback, err_cb) {
|
4 |
+
var bail = false
|
5 |
+
err_cb = err_cb || noop
|
6 |
+
proxy.count = count
|
7 |
+
|
8 |
+
return (count === 0) ? callback() : proxy
|
9 |
+
|
10 |
+
function proxy(err, result) {
|
11 |
+
if (proxy.count <= 0) {
|
12 |
+
throw new Error('after called too many times')
|
13 |
+
}
|
14 |
+
--proxy.count
|
15 |
+
|
16 |
+
// after first error, rest are passed to err_cb
|
17 |
+
if (err) {
|
18 |
+
bail = true
|
19 |
+
callback(err)
|
20 |
+
// future error callbacks will go to error handler
|
21 |
+
callback = err_cb
|
22 |
+
} else if (proxy.count === 0 && !bail) {
|
23 |
+
callback(null, result)
|
24 |
+
}
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
function noop() {}
|
datalab/web/node_modules/after/package.json
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "after",
|
3 |
+
"description": "after - tiny flow control",
|
4 |
+
"version": "0.8.2",
|
5 |
+
"author": "Raynos <[email protected]>",
|
6 |
+
"contributors": [
|
7 |
+
{
|
8 |
+
"name": "Raynos",
|
9 |
+
"email": "[email protected]",
|
10 |
+
"url": "http://raynos.org"
|
11 |
+
}
|
12 |
+
],
|
13 |
+
"scripts": {
|
14 |
+
"test": "mocha --ui tdd --reporter spec test/*.js"
|
15 |
+
},
|
16 |
+
"devDependencies": {
|
17 |
+
"mocha": "~1.8.1"
|
18 |
+
},
|
19 |
+
"keywords": [
|
20 |
+
"flowcontrol",
|
21 |
+
"after",
|
22 |
+
"flow",
|
23 |
+
"control",
|
24 |
+
"arch"
|
25 |
+
],
|
26 |
+
"license": "MIT",
|
27 |
+
"repository": "git://github.com/Raynos/after.git"
|
28 |
+
}
|
datalab/web/node_modules/after/test/after-test.js
ADDED
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*global suite, test*/
|
2 |
+
|
3 |
+
var assert = require("assert")
|
4 |
+
, after = require("../")
|
5 |
+
|
6 |
+
test("exists", function () {
|
7 |
+
assert(typeof after === "function", "after is not a function")
|
8 |
+
})
|
9 |
+
|
10 |
+
test("after when called with 0 invokes", function (done) {
|
11 |
+
after(0, done)
|
12 |
+
});
|
13 |
+
|
14 |
+
test("after 1", function (done) {
|
15 |
+
var next = after(1, done)
|
16 |
+
next()
|
17 |
+
})
|
18 |
+
|
19 |
+
test("after 5", function (done) {
|
20 |
+
var next = after(5, done)
|
21 |
+
, i = 5
|
22 |
+
|
23 |
+
while (i--) {
|
24 |
+
next()
|
25 |
+
}
|
26 |
+
})
|
27 |
+
|
28 |
+
test("manipulate count", function (done) {
|
29 |
+
var next = after(1, done)
|
30 |
+
, i = 5
|
31 |
+
|
32 |
+
next.count = i
|
33 |
+
while (i--) {
|
34 |
+
next()
|
35 |
+
}
|
36 |
+
})
|
37 |
+
|
38 |
+
test("after terminates on error", function (done) {
|
39 |
+
var next = after(2, function(err) {
|
40 |
+
assert.equal(err.message, 'test');
|
41 |
+
done();
|
42 |
+
})
|
43 |
+
next(new Error('test'))
|
44 |
+
next(new Error('test2'))
|
45 |
+
})
|
46 |
+
|
47 |
+
test('gee', function(done) {
|
48 |
+
done = after(2, done)
|
49 |
+
|
50 |
+
function cb(err) {
|
51 |
+
assert.equal(err.message, 1);
|
52 |
+
done()
|
53 |
+
}
|
54 |
+
|
55 |
+
var next = after(3, cb, function(err) {
|
56 |
+
assert.equal(err.message, 2)
|
57 |
+
done()
|
58 |
+
});
|
59 |
+
|
60 |
+
next()
|
61 |
+
next(new Error(1))
|
62 |
+
next(new Error(2))
|
63 |
+
})
|
64 |
+
|
65 |
+
test('eee', function(done) {
|
66 |
+
done = after(3, done)
|
67 |
+
|
68 |
+
function cb(err) {
|
69 |
+
assert.equal(err.message, 1);
|
70 |
+
done()
|
71 |
+
}
|
72 |
+
|
73 |
+
var next = after(3, cb, function(err) {
|
74 |
+
assert.equal(err.message, 2)
|
75 |
+
done()
|
76 |
+
});
|
77 |
+
|
78 |
+
next(new Error(1))
|
79 |
+
next(new Error(2))
|
80 |
+
next(new Error(2))
|
81 |
+
})
|
82 |
+
|
83 |
+
test('gge', function(done) {
|
84 |
+
function cb(err) {
|
85 |
+
assert.equal(err.message, 1);
|
86 |
+
done()
|
87 |
+
}
|
88 |
+
|
89 |
+
var next = after(3, cb, function(err) {
|
90 |
+
// should not happen
|
91 |
+
assert.ok(false);
|
92 |
+
});
|
93 |
+
|
94 |
+
next()
|
95 |
+
next()
|
96 |
+
next(new Error(1))
|
97 |
+
})
|
98 |
+
|
99 |
+
test('egg', function(done) {
|
100 |
+
function cb(err) {
|
101 |
+
assert.equal(err.message, 1);
|
102 |
+
done()
|
103 |
+
}
|
104 |
+
|
105 |
+
var next = after(3, cb, function(err) {
|
106 |
+
// should not happen
|
107 |
+
assert.ok(false);
|
108 |
+
});
|
109 |
+
|
110 |
+
next(new Error(1))
|
111 |
+
next()
|
112 |
+
next()
|
113 |
+
})
|
114 |
+
|
115 |
+
test('throws on too many calls', function(done) {
|
116 |
+
var next = after(1, done);
|
117 |
+
next()
|
118 |
+
assert.throws(next, /after called too many times/);
|
119 |
+
});
|
120 |
+
|
datalab/web/node_modules/arraybuffer.slice/.npmignore
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
lib-cov
|
2 |
+
lcov.info
|
3 |
+
*.seed
|
4 |
+
*.log
|
5 |
+
*.csv
|
6 |
+
*.dat
|
7 |
+
*.out
|
8 |
+
*.pid
|
9 |
+
*.gz
|
10 |
+
|
11 |
+
pids
|
12 |
+
logs
|
13 |
+
results
|
14 |
+
build
|
15 |
+
.grunt
|
16 |
+
|
17 |
+
node_modules
|
datalab/web/node_modules/arraybuffer.slice/LICENCE
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (C) 2013 Rase-
|
2 |
+
|
3 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4 |
+
this software and associated documentation files (the "Software"), to deal in
|
5 |
+
the Software without restriction, including without limitation the rights to
|
6 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
7 |
+
of the Software, and to permit persons to whom the Software is furnished to do
|
8 |
+
so, subject to the following conditions:
|
9 |
+
|
10 |
+
The above copyright notice and this permission notice shall be included in all
|
11 |
+
copies or substantial portions of the Software.
|
12 |
+
|
13 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
15 |
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
16 |
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
17 |
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
18 |
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
datalab/web/node_modules/arraybuffer.slice/Makefile
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
REPORTER = dot
|
3 |
+
|
4 |
+
test:
|
5 |
+
@./node_modules/.bin/mocha \
|
6 |
+
--reporter $(REPORTER)
|
7 |
+
|
8 |
+
.PHONY: test
|
datalab/web/node_modules/arraybuffer.slice/README.md
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# How to
|
2 |
+
```javascript
|
3 |
+
var sliceBuffer = require('arraybuffer.slice');
|
4 |
+
var ab = (new Int8Array(5)).buffer;
|
5 |
+
var sliced = sliceBuffer(ab, 1, 3);
|
6 |
+
sliced = sliceBuffer(ab, 1);
|
7 |
+
```
|
8 |
+
|
9 |
+
# Licence (MIT)
|
10 |
+
Copyright (C) 2013 Rase-
|
11 |
+
|
12 |
+
|
13 |
+
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:
|
14 |
+
|
15 |
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
16 |
+
|
17 |
+
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.
|
datalab/web/node_modules/arraybuffer.slice/index.js
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* An abstraction for slicing an arraybuffer even when
|
3 |
+
* ArrayBuffer.prototype.slice is not supported
|
4 |
+
*
|
5 |
+
* @api public
|
6 |
+
*/
|
7 |
+
|
8 |
+
module.exports = function(arraybuffer, start, end) {
|
9 |
+
var bytes = arraybuffer.byteLength;
|
10 |
+
start = start || 0;
|
11 |
+
end = end || bytes;
|
12 |
+
|
13 |
+
if (arraybuffer.slice) { return arraybuffer.slice(start, end); }
|
14 |
+
|
15 |
+
if (start < 0) { start += bytes; }
|
16 |
+
if (end < 0) { end += bytes; }
|
17 |
+
if (end > bytes) { end = bytes; }
|
18 |
+
|
19 |
+
if (start >= bytes || start >= end || bytes === 0) {
|
20 |
+
return new ArrayBuffer(0);
|
21 |
+
}
|
22 |
+
|
23 |
+
var abv = new Uint8Array(arraybuffer);
|
24 |
+
var result = new Uint8Array(end - start);
|
25 |
+
for (var i = start, ii = 0; i < end; i++, ii++) {
|
26 |
+
result[ii] = abv[i];
|
27 |
+
}
|
28 |
+
return result.buffer;
|
29 |
+
};
|
datalab/web/node_modules/arraybuffer.slice/package.json
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "arraybuffer.slice",
|
3 |
+
"description": "Exports a function for slicing ArrayBuffers (no polyfilling)",
|
4 |
+
"version": "0.0.7",
|
5 |
+
"license": "MIT",
|
6 |
+
"homepage": "https://github.com/rase-/arraybuffer.slice",
|
7 |
+
"dependencies": {},
|
8 |
+
"devDependencies": {
|
9 |
+
"mocha": "1.17.1",
|
10 |
+
"expect.js": "0.2.0"
|
11 |
+
},
|
12 |
+
"repository": {
|
13 |
+
"type": "git",
|
14 |
+
"url": "[email protected]:rase-/arraybuffer.slice.git"
|
15 |
+
}
|
16 |
+
}
|
datalab/web/node_modules/arraybuffer.slice/test/slice-buffer.js
ADDED
@@ -0,0 +1,227 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* Test dependencies
|
3 |
+
*/
|
4 |
+
|
5 |
+
var sliceBuffer = require('../index.js');
|
6 |
+
var expect = require('expect.js');
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Tests
|
10 |
+
*/
|
11 |
+
|
12 |
+
describe('sliceBuffer', function() {
|
13 |
+
describe('using standard slice', function() {
|
14 |
+
it('should slice correctly with only start provided', function() {
|
15 |
+
var abv = new Uint8Array(10);
|
16 |
+
for (var i = 0; i < abv.length; i++) {
|
17 |
+
abv[i] = i;
|
18 |
+
}
|
19 |
+
|
20 |
+
var sliced = sliceBuffer(abv.buffer, 3);
|
21 |
+
var sabv = new Uint8Array(sliced);
|
22 |
+
for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
|
23 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
24 |
+
}
|
25 |
+
});
|
26 |
+
|
27 |
+
it('should slice correctly with start and end provided', function() {
|
28 |
+
var abv = new Uint8Array(10);
|
29 |
+
for (var i = 0; i < abv.length; i++) {
|
30 |
+
abv[i] = i;
|
31 |
+
}
|
32 |
+
|
33 |
+
var sliced = sliceBuffer(abv.buffer, 3, 8);
|
34 |
+
var sabv = new Uint8Array(sliced);
|
35 |
+
for (var i = 3, ii = 0; i < 8; i++, ii++) {
|
36 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
37 |
+
}
|
38 |
+
});
|
39 |
+
|
40 |
+
it('should slice correctly with negative start', function() {
|
41 |
+
var abv = new Uint8Array(10);
|
42 |
+
for (var i = 0; i < abv.length; i++) {
|
43 |
+
abv[i] = i;
|
44 |
+
}
|
45 |
+
|
46 |
+
var sliced = sliceBuffer(abv.buffer, -3);
|
47 |
+
var sabv = new Uint8Array(sliced);
|
48 |
+
for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
|
49 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
50 |
+
}
|
51 |
+
});
|
52 |
+
|
53 |
+
it('should slice correctly with negative end', function() {
|
54 |
+
var abv = new Uint8Array(10);
|
55 |
+
for (var i = 0; i < abv.length; i++) {
|
56 |
+
abv[i] = i;
|
57 |
+
}
|
58 |
+
|
59 |
+
var sliced = sliceBuffer(abv.buffer, 0, -3);
|
60 |
+
var sabv = new Uint8Array(sliced);
|
61 |
+
for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
|
62 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
63 |
+
}
|
64 |
+
});
|
65 |
+
|
66 |
+
it('should slice correctly with negative start and end', function() {
|
67 |
+
var abv = new Uint8Array(10);
|
68 |
+
for (var i = 0; i < abv.length; i++) {
|
69 |
+
abv[i] = i;
|
70 |
+
}
|
71 |
+
|
72 |
+
var sliced = sliceBuffer(abv.buffer, -6, -3);
|
73 |
+
var sabv = new Uint8Array(sliced);
|
74 |
+
for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
|
75 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
76 |
+
}
|
77 |
+
});
|
78 |
+
|
79 |
+
it('should slice correctly with equal start and end', function() {
|
80 |
+
var abv = new Uint8Array(10);
|
81 |
+
for (var i = 0; i < abv.length; i++) {
|
82 |
+
abv[i] = i;
|
83 |
+
}
|
84 |
+
|
85 |
+
var sliced = sliceBuffer(abv.buffer, 1, 1);
|
86 |
+
expect(sliced.byteLength).to.equal(0);
|
87 |
+
});
|
88 |
+
|
89 |
+
it('should slice correctly when end larger than buffer', function() {
|
90 |
+
var abv = new Uint8Array(10);
|
91 |
+
for (var i = 0; i < abv.length; i++) {
|
92 |
+
abv[i] = i;
|
93 |
+
}
|
94 |
+
|
95 |
+
var sliced = sliceBuffer(abv.buffer, 0, 100);
|
96 |
+
expect(new Uint8Array(sliced)).to.eql(abv);
|
97 |
+
});
|
98 |
+
|
99 |
+
it('shoud slice correctly when start larger than end', function() {
|
100 |
+
var abv = new Uint8Array(10);
|
101 |
+
for (var i = 0; i < abv.length; i++) {
|
102 |
+
abv[i] = i;
|
103 |
+
}
|
104 |
+
|
105 |
+
var sliced = sliceBuffer(abv.buffer, 6, 5);
|
106 |
+
expect(sliced.byteLength).to.equal(0);
|
107 |
+
});
|
108 |
+
});
|
109 |
+
|
110 |
+
describe('using fallback', function() {
|
111 |
+
it('should slice correctly with only start provided', function() {
|
112 |
+
var abv = new Uint8Array(10);
|
113 |
+
for (var i = 0; i < abv.length; i++) {
|
114 |
+
abv[i] = i;
|
115 |
+
}
|
116 |
+
var ab = abv.buffer;
|
117 |
+
ab.slice = undefined;
|
118 |
+
|
119 |
+
var sliced = sliceBuffer(ab, 3);
|
120 |
+
var sabv = new Uint8Array(sliced);
|
121 |
+
for (var i = 3, ii = 0; i < abv.length; i++, ii++) {
|
122 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
123 |
+
}
|
124 |
+
});
|
125 |
+
|
126 |
+
it('should slice correctly with start and end provided', function() {
|
127 |
+
var abv = new Uint8Array(10);
|
128 |
+
for (var i = 0; i < abv.length; i++) {
|
129 |
+
abv[i] = i;
|
130 |
+
}
|
131 |
+
var ab = abv.buffer;
|
132 |
+
ab.slice = undefined;
|
133 |
+
|
134 |
+
|
135 |
+
var sliced = sliceBuffer(ab, 3, 8);
|
136 |
+
var sabv = new Uint8Array(sliced);
|
137 |
+
for (var i = 3, ii = 0; i < 8; i++, ii++) {
|
138 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
139 |
+
}
|
140 |
+
});
|
141 |
+
|
142 |
+
it('should slice correctly with negative start', function() {
|
143 |
+
var abv = new Uint8Array(10);
|
144 |
+
for (var i = 0; i < abv.length; i++) {
|
145 |
+
abv[i] = i;
|
146 |
+
}
|
147 |
+
var ab = abv.buffer;
|
148 |
+
ab.slice = undefined;
|
149 |
+
|
150 |
+
|
151 |
+
var sliced = sliceBuffer(ab, -3);
|
152 |
+
var sabv = new Uint8Array(sliced);
|
153 |
+
for (var i = abv.length - 3, ii = 0; i < abv.length; i++, ii++) {
|
154 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
155 |
+
}
|
156 |
+
});
|
157 |
+
|
158 |
+
it('should slice correctly with negative end', function() {
|
159 |
+
var abv = new Uint8Array(10);
|
160 |
+
for (var i = 0; i < abv.length; i++) {
|
161 |
+
abv[i] = i;
|
162 |
+
}
|
163 |
+
var ab = abv.buffer;
|
164 |
+
ab.slice = undefined;
|
165 |
+
|
166 |
+
var sliced = sliceBuffer(ab, 0, -3);
|
167 |
+
var sabv = new Uint8Array(sliced);
|
168 |
+
for (var i = 0, ii = 0; i < abv.length - 3; i++, ii++) {
|
169 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
170 |
+
}
|
171 |
+
});
|
172 |
+
|
173 |
+
it('should slice correctly with negative start and end', function() {
|
174 |
+
var abv = new Uint8Array(10);
|
175 |
+
for (var i = 0; i < abv.length; i++) {
|
176 |
+
abv[i] = i;
|
177 |
+
}
|
178 |
+
var ab = abv.buffer;
|
179 |
+
ab.slice = undefined;
|
180 |
+
|
181 |
+
var sliced = sliceBuffer(ab, -6, -3);
|
182 |
+
var sabv = new Uint8Array(sliced);
|
183 |
+
for (var i = abv.length - 6, ii = 0; i < abv.length - 3; i++, ii++) {
|
184 |
+
expect(abv[i]).to.equal(sabv[ii]);
|
185 |
+
}
|
186 |
+
});
|
187 |
+
|
188 |
+
it('should slice correctly with equal start and end', function() {
|
189 |
+
var abv = new Uint8Array(10);
|
190 |
+
for (var i = 0; i < abv.length; i++) {
|
191 |
+
abv[i] = i;
|
192 |
+
}
|
193 |
+
var ab = abv.buffer;
|
194 |
+
ab.slice = undefined;
|
195 |
+
|
196 |
+
var sliced = sliceBuffer(ab, 1, 1);
|
197 |
+
expect(sliced.byteLength).to.equal(0);
|
198 |
+
});
|
199 |
+
|
200 |
+
it('should slice correctly when end larger than buffer', function() {
|
201 |
+
var abv = new Uint8Array(10);
|
202 |
+
for (var i = 0; i < abv.length; i++) {
|
203 |
+
abv[i] = i;
|
204 |
+
}
|
205 |
+
var ab = abv.buffer;
|
206 |
+
ab.slice = undefined;
|
207 |
+
|
208 |
+
var sliced = sliceBuffer(ab, 0, 100);
|
209 |
+
var sabv = new Uint8Array(sliced);
|
210 |
+
for (var i = 0; i < abv.length; i++) {
|
211 |
+
expect(abv[i]).to.equal(sabv[i]);
|
212 |
+
}
|
213 |
+
});
|
214 |
+
|
215 |
+
it('shoud slice correctly when start larger than end', function() {
|
216 |
+
var abv = new Uint8Array(10);
|
217 |
+
for (var i = 0; i < abv.length; i++) {
|
218 |
+
abv[i] = i;
|
219 |
+
}
|
220 |
+
var ab = abv.buffer;
|
221 |
+
ab.slice = undefined;
|
222 |
+
|
223 |
+
var sliced = sliceBuffer(ab, 6, 5);
|
224 |
+
expect(sliced.byteLength).to.equal(0);
|
225 |
+
});
|
226 |
+
});
|
227 |
+
});
|
datalab/web/node_modules/async-limiter/.travis.yml
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
language: node_js
|
2 |
+
node_js:
|
3 |
+
- "6"
|
4 |
+
- "node"
|
5 |
+
script: npm run travis
|
6 |
+
cache:
|
7 |
+
yarn: true
|
datalab/web/node_modules/async-limiter/LICENSE
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
The MIT License (MIT)
|
2 |
+
Copyright (c) 2017 Samuel Reed <[email protected]>
|
3 |
+
|
4 |
+
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:
|
5 |
+
|
6 |
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
7 |
+
|
8 |
+
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.
|
datalab/web/node_modules/async-limiter/coverage/coverage.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"/Users/samuelreed/git/forks/async-throttle/index.js":{"path":"/Users/samuelreed/git/forks/async-throttle/index.js","s":{"1":1,"2":7,"3":1,"4":6,"5":6,"6":6,"7":6,"8":6,"9":6,"10":1,"11":1,"12":3,"13":13,"14":13,"15":13,"16":1,"17":19,"18":1,"19":45,"20":6,"21":39,"22":13,"23":13,"24":13,"25":13,"26":39,"27":18,"28":6,"29":6,"30":1,"31":6,"32":6,"33":6,"34":1,"35":13,"36":13,"37":1},"b":{"1":[1,6],"2":[6,5],"3":[6,5],"4":[6,39],"5":[13,26],"6":[18,21],"7":[6,0]},"f":{"1":7,"2":3,"3":13,"4":19,"5":45,"6":6,"7":13},"fnMap":{"1":{"name":"Queue","line":3,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":24}}},"2":{"name":"(anonymous_2)","line":22,"loc":{"start":{"line":22,"column":24},"end":{"line":22,"column":41}}},"3":{"name":"(anonymous_3)","line":23,"loc":{"start":{"line":23,"column":28},"end":{"line":23,"column":39}}},"4":{"name":"(anonymous_4)","line":31,"loc":{"start":{"line":31,"column":7},"end":{"line":31,"column":18}}},"5":{"name":"(anonymous_5)","line":36,"loc":{"start":{"line":36,"column":23},"end":{"line":36,"column":34}}},"6":{"name":"(anonymous_6)","line":55,"loc":{"start":{"line":55,"column":25},"end":{"line":55,"column":38}}},"7":{"name":"done","line":62,"loc":{"start":{"line":62,"column":0},"end":{"line":62,"column":16}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":14,"column":1}},"2":{"start":{"line":4,"column":2},"end":{"line":6,"column":3}},"3":{"start":{"line":5,"column":4},"end":{"line":5,"column":30}},"4":{"start":{"line":8,"column":2},"end":{"line":8,"column":26}},"5":{"start":{"line":9,"column":2},"end":{"line":9,"column":53}},"6":{"start":{"line":10,"column":2},"end":{"line":10,"column":19}},"7":{"start":{"line":11,"column":2},"end":{"line":11,"column":17}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":16}},"9":{"start":{"line":13,"column":2},"end":{"line":13,"column":31}},"10":{"start":{"line":16,"column":0},"end":{"line":20,"column":2}},"11":{"start":{"line":22,"column":0},"end":{"line":28,"column":3}},"12":{"start":{"line":23,"column":2},"end":{"line":27,"column":4}},"13":{"start":{"line":24,"column":4},"end":{"line":24,"column":75}},"14":{"start":{"line":25,"column":4},"end":{"line":25,"column":16}},"15":{"start":{"line":26,"column":4},"end":{"line":26,"column":24}},"16":{"start":{"line":30,"column":0},"end":{"line":34,"column":3}},"17":{"start":{"line":32,"column":4},"end":{"line":32,"column":43}},"18":{"start":{"line":36,"column":0},"end":{"line":53,"column":2}},"19":{"start":{"line":37,"column":2},"end":{"line":39,"column":3}},"20":{"start":{"line":38,"column":4},"end":{"line":38,"column":11}},"21":{"start":{"line":40,"column":2},"end":{"line":45,"column":3}},"22":{"start":{"line":41,"column":4},"end":{"line":41,"column":32}},"23":{"start":{"line":42,"column":4},"end":{"line":42,"column":19}},"24":{"start":{"line":43,"column":4},"end":{"line":43,"column":20}},"25":{"start":{"line":44,"column":4},"end":{"line":44,"column":16}},"26":{"start":{"line":47,"column":2},"end":{"line":52,"column":3}},"27":{"start":{"line":48,"column":4},"end":{"line":51,"column":5}},"28":{"start":{"line":49,"column":6},"end":{"line":49,"column":30}},"29":{"start":{"line":50,"column":6},"end":{"line":50,"column":27}},"30":{"start":{"line":55,"column":0},"end":{"line":60,"column":2}},"31":{"start":{"line":56,"column":2},"end":{"line":59,"column":3}},"32":{"start":{"line":57,"column":4},"end":{"line":57,"column":22}},"33":{"start":{"line":58,"column":4},"end":{"line":58,"column":16}},"34":{"start":{"line":62,"column":0},"end":{"line":65,"column":1}},"35":{"start":{"line":63,"column":2},"end":{"line":63,"column":17}},"36":{"start":{"line":64,"column":2},"end":{"line":64,"column":14}},"37":{"start":{"line":67,"column":0},"end":{"line":67,"column":23}}},"branchMap":{"1":{"line":4,"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":4,"column":2}},{"start":{"line":4,"column":2},"end":{"line":4,"column":2}}]},"2":{"line":8,"type":"binary-expr","locations":[{"start":{"line":8,"column":12},"end":{"line":8,"column":19}},{"start":{"line":8,"column":23},"end":{"line":8,"column":25}}]},"3":{"line":9,"type":"binary-expr","locations":[{"start":{"line":9,"column":21},"end":{"line":9,"column":40}},{"start":{"line":9,"column":44},"end":{"line":9,"column":52}}]},"4":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":37,"column":2}},{"start":{"line":37,"column":2},"end":{"line":37,"column":2}}]},"5":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":2},"end":{"line":40,"column":2}},{"start":{"line":40,"column":2},"end":{"line":40,"column":2}}]},"6":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":2},"end":{"line":47,"column":2}},{"start":{"line":47,"column":2},"end":{"line":47,"column":2}}]},"7":{"line":56,"type":"if","locations":[{"start":{"line":56,"column":2},"end":{"line":56,"column":2}},{"start":{"line":56,"column":2},"end":{"line":56,"column":2}}]}}}}
|
datalab/web/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.html
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!doctype html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<title>Code coverage report for async-throttle/</title>
|
5 |
+
<meta charset="utf-8">
|
6 |
+
<link rel="stylesheet" href="../prettify.css">
|
7 |
+
<link rel="stylesheet" href="../base.css">
|
8 |
+
<style type='text/css'>
|
9 |
+
div.coverage-summary .sorter {
|
10 |
+
background-image: url(../sort-arrow-sprite.png);
|
11 |
+
}
|
12 |
+
</style>
|
13 |
+
</head>
|
14 |
+
<body>
|
15 |
+
<div class="header high">
|
16 |
+
<h1>Code coverage report for <span class="entity">async-throttle/</span></h1>
|
17 |
+
<h2>
|
18 |
+
Statements: <span class="metric">100% <small>(37 / 37)</small></span>
|
19 |
+
Branches: <span class="metric">92.86% <small>(13 / 14)</small></span>
|
20 |
+
Functions: <span class="metric">100% <small>(7 / 7)</small></span>
|
21 |
+
Lines: <span class="metric">100% <small>(37 / 37)</small></span>
|
22 |
+
Ignored: <span class="metric"><span class="ignore-none">none</span></span>
|
23 |
+
</h2>
|
24 |
+
<div class="path"><a href="../index.html">All files</a> » async-throttle/</div>
|
25 |
+
</div>
|
26 |
+
<div class="body">
|
27 |
+
<div class="coverage-summary">
|
28 |
+
<table>
|
29 |
+
<thead>
|
30 |
+
<tr>
|
31 |
+
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
32 |
+
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
33 |
+
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
34 |
+
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
35 |
+
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
36 |
+
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
37 |
+
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
38 |
+
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
39 |
+
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
40 |
+
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
41 |
+
</tr>
|
42 |
+
</thead>
|
43 |
+
<tbody><tr>
|
44 |
+
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
|
45 |
+
<td data-value="100" class="pic high"><span class="cover-fill cover-full" style="width: 100px;"></span><span class="cover-empty" style="width:0px;"></span></td>
|
46 |
+
<td data-value="100" class="pct high">100%</td>
|
47 |
+
<td data-value="37" class="abs high">(37 / 37)</td>
|
48 |
+
<td data-value="92.86" class="pct high">92.86%</td>
|
49 |
+
<td data-value="14" class="abs high">(13 / 14)</td>
|
50 |
+
<td data-value="100" class="pct high">100%</td>
|
51 |
+
<td data-value="7" class="abs high">(7 / 7)</td>
|
52 |
+
<td data-value="100" class="pct high">100%</td>
|
53 |
+
<td data-value="37" class="abs high">(37 / 37)</td>
|
54 |
+
</tr>
|
55 |
+
|
56 |
+
</tbody>
|
57 |
+
</table>
|
58 |
+
</div>
|
59 |
+
</div>
|
60 |
+
<div class="footer">
|
61 |
+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Sep 11 2017 11:14:14 GMT-0500 (CDT)</div>
|
62 |
+
</div>
|
63 |
+
<script src="../prettify.js"></script>
|
64 |
+
<script>
|
65 |
+
window.onload = function () {
|
66 |
+
if (typeof prettyPrint === 'function') {
|
67 |
+
prettyPrint();
|
68 |
+
}
|
69 |
+
};
|
70 |
+
</script>
|
71 |
+
<script src="../sorter.js"></script>
|
72 |
+
</body>
|
73 |
+
</html>
|
datalab/web/node_modules/async-limiter/coverage/lcov-report/async-throttle/index.js.html
ADDED
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!doctype html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<title>Code coverage report for async-throttle/index.js</title>
|
5 |
+
<meta charset="utf-8">
|
6 |
+
<link rel="stylesheet" href="../prettify.css">
|
7 |
+
<link rel="stylesheet" href="../base.css">
|
8 |
+
<style type='text/css'>
|
9 |
+
div.coverage-summary .sorter {
|
10 |
+
background-image: url(../sort-arrow-sprite.png);
|
11 |
+
}
|
12 |
+
</style>
|
13 |
+
</head>
|
14 |
+
<body>
|
15 |
+
<div class="header high">
|
16 |
+
<h1>Code coverage report for <span class="entity">async-throttle/index.js</span></h1>
|
17 |
+
<h2>
|
18 |
+
Statements: <span class="metric">100% <small>(37 / 37)</small></span>
|
19 |
+
Branches: <span class="metric">92.86% <small>(13 / 14)</small></span>
|
20 |
+
Functions: <span class="metric">100% <small>(7 / 7)</small></span>
|
21 |
+
Lines: <span class="metric">100% <small>(37 / 37)</small></span>
|
22 |
+
Ignored: <span class="metric"><span class="ignore-none">none</span></span>
|
23 |
+
</h2>
|
24 |
+
<div class="path"><a href="../index.html">All files</a> » <a href="index.html">async-throttle/</a> » index.js</div>
|
25 |
+
</div>
|
26 |
+
<div class="body">
|
27 |
+
<pre><table class="coverage">
|
28 |
+
<tr><td class="line-count">1
|
29 |
+
2
|
30 |
+
3
|
31 |
+
4
|
32 |
+
5
|
33 |
+
6
|
34 |
+
7
|
35 |
+
8
|
36 |
+
9
|
37 |
+
10
|
38 |
+
11
|
39 |
+
12
|
40 |
+
13
|
41 |
+
14
|
42 |
+
15
|
43 |
+
16
|
44 |
+
17
|
45 |
+
18
|
46 |
+
19
|
47 |
+
20
|
48 |
+
21
|
49 |
+
22
|
50 |
+
23
|
51 |
+
24
|
52 |
+
25
|
53 |
+
26
|
54 |
+
27
|
55 |
+
28
|
56 |
+
29
|
57 |
+
30
|
58 |
+
31
|
59 |
+
32
|
60 |
+
33
|
61 |
+
34
|
62 |
+
35
|
63 |
+
36
|
64 |
+
37
|
65 |
+
38
|
66 |
+
39
|
67 |
+
40
|
68 |
+
41
|
69 |
+
42
|
70 |
+
43
|
71 |
+
44
|
72 |
+
45
|
73 |
+
46
|
74 |
+
47
|
75 |
+
48
|
76 |
+
49
|
77 |
+
50
|
78 |
+
51
|
79 |
+
52
|
80 |
+
53
|
81 |
+
54
|
82 |
+
55
|
83 |
+
56
|
84 |
+
57
|
85 |
+
58
|
86 |
+
59
|
87 |
+
60
|
88 |
+
61
|
89 |
+
62
|
90 |
+
63
|
91 |
+
64
|
92 |
+
65
|
93 |
+
66
|
94 |
+
67
|
95 |
+
68</td><td class="line-coverage"><span class="cline-any cline-neutral"> </span>
|
96 |
+
<span class="cline-any cline-neutral"> </span>
|
97 |
+
<span class="cline-any cline-yes">1</span>
|
98 |
+
<span class="cline-any cline-yes">7</span>
|
99 |
+
<span class="cline-any cline-yes">1</span>
|
100 |
+
<span class="cline-any cline-neutral"> </span>
|
101 |
+
<span class="cline-any cline-neutral"> </span>
|
102 |
+
<span class="cline-any cline-yes">6</span>
|
103 |
+
<span class="cline-any cline-yes">6</span>
|
104 |
+
<span class="cline-any cline-yes">6</span>
|
105 |
+
<span class="cline-any cline-yes">6</span>
|
106 |
+
<span class="cline-any cline-yes">6</span>
|
107 |
+
<span class="cline-any cline-yes">6</span>
|
108 |
+
<span class="cline-any cline-neutral"> </span>
|
109 |
+
<span class="cline-any cline-neutral"> </span>
|
110 |
+
<span class="cline-any cline-yes">1</span>
|
111 |
+
<span class="cline-any cline-neutral"> </span>
|
112 |
+
<span class="cline-any cline-neutral"> </span>
|
113 |
+
<span class="cline-any cline-neutral"> </span>
|
114 |
+
<span class="cline-any cline-neutral"> </span>
|
115 |
+
<span class="cline-any cline-neutral"> </span>
|
116 |
+
<span class="cline-any cline-yes">1</span>
|
117 |
+
<span class="cline-any cline-yes">3</span>
|
118 |
+
<span class="cline-any cline-yes">13</span>
|
119 |
+
<span class="cline-any cline-yes">13</span>
|
120 |
+
<span class="cline-any cline-yes">13</span>
|
121 |
+
<span class="cline-any cline-neutral"> </span>
|
122 |
+
<span class="cline-any cline-neutral"> </span>
|
123 |
+
<span class="cline-any cline-neutral"> </span>
|
124 |
+
<span class="cline-any cline-yes">1</span>
|
125 |
+
<span class="cline-any cline-neutral"> </span>
|
126 |
+
<span class="cline-any cline-yes">19</span>
|
127 |
+
<span class="cline-any cline-neutral"> </span>
|
128 |
+
<span class="cline-any cline-neutral"> </span>
|
129 |
+
<span class="cline-any cline-neutral"> </span>
|
130 |
+
<span class="cline-any cline-yes">1</span>
|
131 |
+
<span class="cline-any cline-yes">45</span>
|
132 |
+
<span class="cline-any cline-yes">6</span>
|
133 |
+
<span class="cline-any cline-neutral"> </span>
|
134 |
+
<span class="cline-any cline-yes">39</span>
|
135 |
+
<span class="cline-any cline-yes">13</span>
|
136 |
+
<span class="cline-any cline-yes">13</span>
|
137 |
+
<span class="cline-any cline-yes">13</span>
|
138 |
+
<span class="cline-any cline-yes">13</span>
|
139 |
+
<span class="cline-any cline-neutral"> </span>
|
140 |
+
<span class="cline-any cline-neutral"> </span>
|
141 |
+
<span class="cline-any cline-yes">39</span>
|
142 |
+
<span class="cline-any cline-yes">18</span>
|
143 |
+
<span class="cline-any cline-yes">6</span>
|
144 |
+
<span class="cline-any cline-yes">6</span>
|
145 |
+
<span class="cline-any cline-neutral"> </span>
|
146 |
+
<span class="cline-any cline-neutral"> </span>
|
147 |
+
<span class="cline-any cline-neutral"> </span>
|
148 |
+
<span class="cline-any cline-neutral"> </span>
|
149 |
+
<span class="cline-any cline-yes">1</span>
|
150 |
+
<span class="cline-any cline-yes">6</span>
|
151 |
+
<span class="cline-any cline-yes">6</span>
|
152 |
+
<span class="cline-any cline-yes">6</span>
|
153 |
+
<span class="cline-any cline-neutral"> </span>
|
154 |
+
<span class="cline-any cline-neutral"> </span>
|
155 |
+
<span class="cline-any cline-neutral"> </span>
|
156 |
+
<span class="cline-any cline-yes">1</span>
|
157 |
+
<span class="cline-any cline-yes">13</span>
|
158 |
+
<span class="cline-any cline-yes">13</span>
|
159 |
+
<span class="cline-any cline-neutral"> </span>
|
160 |
+
<span class="cline-any cline-neutral"> </span>
|
161 |
+
<span class="cline-any cline-yes">1</span>
|
162 |
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
|
163 |
+
|
164 |
+
function Queue(options) {
|
165 |
+
if (!(this instanceof Queue)) {
|
166 |
+
return new Queue(options);
|
167 |
+
}
|
168 |
+
|
169 |
+
options = options || {};
|
170 |
+
this.concurrency = options.concurrency || Infinity;
|
171 |
+
this.pending = 0;
|
172 |
+
this.jobs = [];
|
173 |
+
this.cbs = [];
|
174 |
+
this._done = done.bind(this);
|
175 |
+
}
|
176 |
+
|
177 |
+
var arrayAddMethods = [
|
178 |
+
'push',
|
179 |
+
'unshift',
|
180 |
+
'splice'
|
181 |
+
];
|
182 |
+
|
183 |
+
arrayAddMethods.forEach(function(method) {
|
184 |
+
Queue.prototype[method] = function() {
|
185 |
+
var methodResult = Array.prototype[method].apply(this.jobs, arguments);
|
186 |
+
this._run();
|
187 |
+
return methodResult;
|
188 |
+
};
|
189 |
+
});
|
190 |
+
|
191 |
+
Object.defineProperty(Queue.prototype, 'length', {
|
192 |
+
get: function() {
|
193 |
+
return this.pending + this.jobs.length;
|
194 |
+
}
|
195 |
+
});
|
196 |
+
|
197 |
+
Queue.prototype._run = function() {
|
198 |
+
if (this.pending === this.concurrency) {
|
199 |
+
return;
|
200 |
+
}
|
201 |
+
if (this.jobs.length) {
|
202 |
+
var job = this.jobs.shift();
|
203 |
+
this.pending++;
|
204 |
+
job(this._done);
|
205 |
+
this._run();
|
206 |
+
}
|
207 |
+
|
208 |
+
if (this.pending === 0) {
|
209 |
+
while (this.cbs.length !== 0) {
|
210 |
+
var cb = this.cbs.pop();
|
211 |
+
process.nextTick(cb);
|
212 |
+
}
|
213 |
+
}
|
214 |
+
};
|
215 |
+
|
216 |
+
Queue.prototype.onDone = function(cb) {
|
217 |
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof cb === 'function') {
|
218 |
+
this.cbs.push(cb);
|
219 |
+
this._run();
|
220 |
+
}
|
221 |
+
};
|
222 |
+
|
223 |
+
function done() {
|
224 |
+
this.pending--;
|
225 |
+
this._run();
|
226 |
+
}
|
227 |
+
|
228 |
+
module.exports = Queue;
|
229 |
+
</pre></td></tr>
|
230 |
+
</table></pre>
|
231 |
+
|
232 |
+
</div>
|
233 |
+
<div class="footer">
|
234 |
+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Sep 11 2017 11:14:14 GMT-0500 (CDT)</div>
|
235 |
+
</div>
|
236 |
+
<script src="../prettify.js"></script>
|
237 |
+
<script>
|
238 |
+
window.onload = function () {
|
239 |
+
if (typeof prettyPrint === 'function') {
|
240 |
+
prettyPrint();
|
241 |
+
}
|
242 |
+
};
|
243 |
+
</script>
|
244 |
+
<script src="../sorter.js"></script>
|
245 |
+
</body>
|
246 |
+
</html>
|
datalab/web/node_modules/async-limiter/coverage/lcov-report/base.css
ADDED
@@ -0,0 +1,182 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
body, html {
|
2 |
+
margin:0; padding: 0;
|
3 |
+
}
|
4 |
+
body {
|
5 |
+
font-family: Helvetica Neue, Helvetica,Arial;
|
6 |
+
font-size: 10pt;
|
7 |
+
}
|
8 |
+
div.header, div.footer {
|
9 |
+
background: #eee;
|
10 |
+
padding: 1em;
|
11 |
+
}
|
12 |
+
div.header {
|
13 |
+
z-index: 100;
|
14 |
+
position: fixed;
|
15 |
+
top: 0;
|
16 |
+
border-bottom: 1px solid #666;
|
17 |
+
width: 100%;
|
18 |
+
}
|
19 |
+
div.footer {
|
20 |
+
border-top: 1px solid #666;
|
21 |
+
}
|
22 |
+
div.body {
|
23 |
+
margin-top: 10em;
|
24 |
+
}
|
25 |
+
div.meta {
|
26 |
+
font-size: 90%;
|
27 |
+
text-align: center;
|
28 |
+
}
|
29 |
+
h1, h2, h3 {
|
30 |
+
font-weight: normal;
|
31 |
+
}
|
32 |
+
h1 {
|
33 |
+
font-size: 12pt;
|
34 |
+
}
|
35 |
+
h2 {
|
36 |
+
font-size: 10pt;
|
37 |
+
}
|
38 |
+
pre {
|
39 |
+
font-family: Consolas, Menlo, Monaco, monospace;
|
40 |
+
margin: 0;
|
41 |
+
padding: 0;
|
42 |
+
line-height: 1.3;
|
43 |
+
font-size: 14px;
|
44 |
+
-moz-tab-size: 2;
|
45 |
+
-o-tab-size: 2;
|
46 |
+
tab-size: 2;
|
47 |
+
}
|
48 |
+
|
49 |
+
div.path { font-size: 110%; }
|
50 |
+
div.path a:link, div.path a:visited { color: #000; }
|
51 |
+
table.coverage { border-collapse: collapse; margin:0; padding: 0 }
|
52 |
+
|
53 |
+
table.coverage td {
|
54 |
+
margin: 0;
|
55 |
+
padding: 0;
|
56 |
+
color: #111;
|
57 |
+
vertical-align: top;
|
58 |
+
}
|
59 |
+
table.coverage td.line-count {
|
60 |
+
width: 50px;
|
61 |
+
text-align: right;
|
62 |
+
padding-right: 5px;
|
63 |
+
}
|
64 |
+
table.coverage td.line-coverage {
|
65 |
+
color: #777 !important;
|
66 |
+
text-align: right;
|
67 |
+
border-left: 1px solid #666;
|
68 |
+
border-right: 1px solid #666;
|
69 |
+
}
|
70 |
+
|
71 |
+
table.coverage td.text {
|
72 |
+
}
|
73 |
+
|
74 |
+
table.coverage td span.cline-any {
|
75 |
+
display: inline-block;
|
76 |
+
padding: 0 5px;
|
77 |
+
width: 40px;
|
78 |
+
}
|
79 |
+
table.coverage td span.cline-neutral {
|
80 |
+
background: #eee;
|
81 |
+
}
|
82 |
+
table.coverage td span.cline-yes {
|
83 |
+
background: #b5d592;
|
84 |
+
color: #999;
|
85 |
+
}
|
86 |
+
table.coverage td span.cline-no {
|
87 |
+
background: #fc8c84;
|
88 |
+
}
|
89 |
+
|
90 |
+
.cstat-yes { color: #111; }
|
91 |
+
.cstat-no { background: #fc8c84; color: #111; }
|
92 |
+
.fstat-no { background: #ffc520; color: #111 !important; }
|
93 |
+
.cbranch-no { background: yellow !important; color: #111; }
|
94 |
+
|
95 |
+
.cstat-skip { background: #ddd; color: #111; }
|
96 |
+
.fstat-skip { background: #ddd; color: #111 !important; }
|
97 |
+
.cbranch-skip { background: #ddd !important; color: #111; }
|
98 |
+
|
99 |
+
.missing-if-branch {
|
100 |
+
display: inline-block;
|
101 |
+
margin-right: 10px;
|
102 |
+
position: relative;
|
103 |
+
padding: 0 4px;
|
104 |
+
background: black;
|
105 |
+
color: yellow;
|
106 |
+
}
|
107 |
+
|
108 |
+
.skip-if-branch {
|
109 |
+
display: none;
|
110 |
+
margin-right: 10px;
|
111 |
+
position: relative;
|
112 |
+
padding: 0 4px;
|
113 |
+
background: #ccc;
|
114 |
+
color: white;
|
115 |
+
}
|
116 |
+
|
117 |
+
.missing-if-branch .typ, .skip-if-branch .typ {
|
118 |
+
color: inherit !important;
|
119 |
+
}
|
120 |
+
|
121 |
+
.entity, .metric { font-weight: bold; }
|
122 |
+
.metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
|
123 |
+
.metric small { font-size: 80%; font-weight: normal; color: #666; }
|
124 |
+
|
125 |
+
div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
|
126 |
+
div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; }
|
127 |
+
div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
|
128 |
+
div.coverage-summary th.file { border-right: none !important; }
|
129 |
+
div.coverage-summary th.pic { border-left: none !important; text-align: right; }
|
130 |
+
div.coverage-summary th.pct { border-right: none !important; }
|
131 |
+
div.coverage-summary th.abs { border-left: none !important; text-align: right; }
|
132 |
+
div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
|
133 |
+
div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
|
134 |
+
div.coverage-summary td.file { border-left: 1px solid #666; white-space: nowrap; }
|
135 |
+
div.coverage-summary td.pic { min-width: 120px !important; }
|
136 |
+
div.coverage-summary a:link { text-decoration: none; color: #000; }
|
137 |
+
div.coverage-summary a:visited { text-decoration: none; color: #777; }
|
138 |
+
div.coverage-summary a:hover { text-decoration: underline; }
|
139 |
+
div.coverage-summary tfoot td { border-top: 1px solid #666; }
|
140 |
+
|
141 |
+
div.coverage-summary .sorter {
|
142 |
+
height: 10px;
|
143 |
+
width: 7px;
|
144 |
+
display: inline-block;
|
145 |
+
margin-left: 0.5em;
|
146 |
+
background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
|
147 |
+
}
|
148 |
+
div.coverage-summary .sorted .sorter {
|
149 |
+
background-position: 0 -20px;
|
150 |
+
}
|
151 |
+
div.coverage-summary .sorted-desc .sorter {
|
152 |
+
background-position: 0 -10px;
|
153 |
+
}
|
154 |
+
|
155 |
+
.high { background: #b5d592 !important; }
|
156 |
+
.medium { background: #ffe87c !important; }
|
157 |
+
.low { background: #fc8c84 !important; }
|
158 |
+
|
159 |
+
span.cover-fill, span.cover-empty {
|
160 |
+
display:inline-block;
|
161 |
+
border:1px solid #444;
|
162 |
+
background: white;
|
163 |
+
height: 12px;
|
164 |
+
}
|
165 |
+
span.cover-fill {
|
166 |
+
background: #ccc;
|
167 |
+
border-right: 1px solid #444;
|
168 |
+
}
|
169 |
+
span.cover-empty {
|
170 |
+
background: white;
|
171 |
+
border-left: none;
|
172 |
+
}
|
173 |
+
span.cover-full {
|
174 |
+
border-right: none !important;
|
175 |
+
}
|
176 |
+
pre.prettyprint {
|
177 |
+
border: none !important;
|
178 |
+
padding: 0 !important;
|
179 |
+
margin: 0 !important;
|
180 |
+
}
|
181 |
+
.com { color: #999 !important; }
|
182 |
+
.ignore-none { color: #999; font-weight: normal; }
|
datalab/web/node_modules/async-limiter/coverage/lcov-report/index.html
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!doctype html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<title>Code coverage report for All files</title>
|
5 |
+
<meta charset="utf-8">
|
6 |
+
<link rel="stylesheet" href="prettify.css">
|
7 |
+
<link rel="stylesheet" href="base.css">
|
8 |
+
<style type='text/css'>
|
9 |
+
div.coverage-summary .sorter {
|
10 |
+
background-image: url(sort-arrow-sprite.png);
|
11 |
+
}
|
12 |
+
</style>
|
13 |
+
</head>
|
14 |
+
<body>
|
15 |
+
<div class="header high">
|
16 |
+
<h1>Code coverage report for <span class="entity">All files</span></h1>
|
17 |
+
<h2>
|
18 |
+
Statements: <span class="metric">100% <small>(37 / 37)</small></span>
|
19 |
+
Branches: <span class="metric">92.86% <small>(13 / 14)</small></span>
|
20 |
+
Functions: <span class="metric">100% <small>(7 / 7)</small></span>
|
21 |
+
Lines: <span class="metric">100% <small>(37 / 37)</small></span>
|
22 |
+
Ignored: <span class="metric"><span class="ignore-none">none</span></span>
|
23 |
+
</h2>
|
24 |
+
<div class="path"></div>
|
25 |
+
</div>
|
26 |
+
<div class="body">
|
27 |
+
<div class="coverage-summary">
|
28 |
+
<table>
|
29 |
+
<thead>
|
30 |
+
<tr>
|
31 |
+
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
32 |
+
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
33 |
+
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
34 |
+
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
35 |
+
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
36 |
+
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
37 |
+
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
38 |
+
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
39 |
+
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
40 |
+
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
41 |
+
</tr>
|
42 |
+
</thead>
|
43 |
+
<tbody><tr>
|
44 |
+
<td class="file high" data-value="async-throttle/"><a href="async-throttle/index.html">async-throttle/</a></td>
|
45 |
+
<td data-value="100" class="pic high"><span class="cover-fill cover-full" style="width: 100px;"></span><span class="cover-empty" style="width:0px;"></span></td>
|
46 |
+
<td data-value="100" class="pct high">100%</td>
|
47 |
+
<td data-value="37" class="abs high">(37 / 37)</td>
|
48 |
+
<td data-value="92.86" class="pct high">92.86%</td>
|
49 |
+
<td data-value="14" class="abs high">(13 / 14)</td>
|
50 |
+
<td data-value="100" class="pct high">100%</td>
|
51 |
+
<td data-value="7" class="abs high">(7 / 7)</td>
|
52 |
+
<td data-value="100" class="pct high">100%</td>
|
53 |
+
<td data-value="37" class="abs high">(37 / 37)</td>
|
54 |
+
</tr>
|
55 |
+
|
56 |
+
</tbody>
|
57 |
+
</table>
|
58 |
+
</div>
|
59 |
+
</div>
|
60 |
+
<div class="footer">
|
61 |
+
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Sep 11 2017 11:14:14 GMT-0500 (CDT)</div>
|
62 |
+
</div>
|
63 |
+
<script src="prettify.js"></script>
|
64 |
+
<script>
|
65 |
+
window.onload = function () {
|
66 |
+
if (typeof prettyPrint === 'function') {
|
67 |
+
prettyPrint();
|
68 |
+
}
|
69 |
+
};
|
70 |
+
</script>
|
71 |
+
<script src="sorter.js"></script>
|
72 |
+
</body>
|
73 |
+
</html>
|
datalab/web/node_modules/async-limiter/coverage/lcov-report/prettify.css
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
|
datalab/web/node_modules/async-limiter/coverage/lcov-report/prettify.js
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
|