1
0
Fork 0

Merge branch 'devel' of github.com:arangodb/ArangoDB into pipeline

This commit is contained in:
Wilfried Goesgens 2016-08-05 17:57:22 +02:00
commit 626d8ba315
698 changed files with 8034 additions and 841 deletions

View File

@ -36,6 +36,8 @@ devel
* Foxx OAuth2 module now correctly passes the `access_token` to the OAuth2 server
* added timezone module
v3.0.5 (XXXX-XX-XX)
-------------------

View File

@ -259,7 +259,6 @@ The following attributes will be returned in the `stats` attribute of an `explai
indicate a plan was actually modified by a rule)
- `rulesSkipped`: number of rules skipped by the optimizer
!SUBSECTION Warnings
For some queries, the optimizer may produce warnings. These will be returned in
@ -277,6 +276,26 @@ the `warnings` attribute of the `explain` result:
There is an upper bound on the number of warning a query may produce. If that
bound is reached, no further warnings will be returned.
!SUBSECTION Optimization in a cluster
When you're running AQL in the cluster, the parsing of the query is done on the
coordinator. The coordinator then chops the query into snipets, which are to
remain on the coordinator, and others that are to be distributed over the network
to the shards. The cutting sites are interconnected
via *Scatter-*, *Gather-* and *RemoteNodes*.
These nodes mark the network borders of the snippets. The optimizer strives to reduce the amount
of data transfered via these network interfaces by pushing `FILTER`s out to the shards,
as it is vital to the query performance to reduce that data amount to transfer over the
network links.
Snippets marked with **DBS** are executed on the shards, **COOR** ones are excuted on the coordinator.
**As usual, the optimizer can only take certain assumptions for granted when doing so,
i.e. [user-defined functions have to be executed on the coordinator](../Extending/README.md).
If in doubt, you should modify your query to reduce the number interconnections between your snippets.**
When optimizing your query you may want to look at simpler parts of it first.
!SUBSECTION List of execution nodes

View File

@ -2,24 +2,24 @@
!SECTION Naming
The *::* symbol is used inside AQL as the namespace separator. Using
the namespace separator, users can create a multi-level hierarchy of
function groups if required.
Built-in AQL functions that are shipped with ArangoDB reside in the namespace
*_aql*, which is also the default namespace to look in if an unqualified
function name is found.
Examples:
To refer to a user-defined AQL function, the function name must be fully
qualified to also include the user-defined namespace. The *::* symbol is used
as the namespace separator. Users can create a multi-level hierarchy of function
groups if required:
```js
RETURN myfunctions::myfunc()
RETURN myfunctions::math::random()
MYGROUP::MYFUNC()
MYFUNCTIONS::MATH::RANDOM()
```
**Note**: As all function names in AQL, user function names are also
case-insensitive.
**Note**: Adding user functions to the *_aql* namespace is disallowed and will
fail.
Built-in AQL functions reside in the namespace *_aql*, which is also
the default namespace to look in if an unqualified function name is
found. Adding user functions to the *_aql* namespace is disallowed and
will fail.
User function names are case-insensitive like all function names in AQL.
!SECTION Variables and side effects
@ -87,8 +87,8 @@ and state outside of the user function itself.
User functions must only return primitive types (i.e. *null*, boolean
values, numeric values, string values) or aggregate types (arrays or
objects) composed of these types.
Returning any other JavaScript object type from a user function may lead
to undefined behavior and should be avoided.
Returning any other JavaScript object type (Function, Date, RegExp etc.) from
a user function may lead to undefined behavior and should be avoided.
!SECTION Enforcing strict mode
@ -111,17 +111,3 @@ function (values) {
```
Any violation of the strict mode will trigger a runtime error.
!SECTION Miscellaneous
Internally, user functions are stored in a system collection named
*_aqlfunctions* of the selected database. The functions will be exclusively
available for queries in that particular database.
Documents in the *_aqlfunctions* collection (or any other system collection)
should not be accessed directly, but only via the dedicated interfaces.
Keep in mind that system collections are excluded from dumps created with
[arangodump](../../Manual/Administration/Arangodump.html) by default. To include AQL user
functions in a dump, the dump needs to be started with the
option *--include-system-collections true*.

View File

@ -12,6 +12,12 @@ function code must be specified. This can easily be done in
[arangosh](../../Manual/GettingStarted/Arangosh.html). The [HTTP Interface
](../../HTTP/AqlUserFunctions/index.html) also offers User Functions management.
Documents in the *_aqlfunctions* collection (or any other system collection)
should not be accessed directly, but only via the dedicated interfaces.
Otherwise you might see caching issues or accidentally break something.
The interfaces will ensure the correct format of the documents and invalidate
the UDF cache.
!SUBSECTION Registering an AQL user function
For testing, it may be sufficient to directly type the function code in the shell.

View File

@ -1,15 +1,62 @@
!CHAPTER Extending AQL with User Functions
AQL comes with a built-in set of functions, but it is not a
fully-featured programming language.
AQL comes with a [built-in set of functions](../Functions/README.md), but it is
not a fully-featured programming language.
To add missing functionality or to simplify queries, users
may add their own functions to AQL in the selected database.
These functions can be written in JavaScript, and must be
registered via the API; see [Registering Functions](Functions.md).
To add missing functionality or to simplify queries, users may add their own
functions to AQL in the selected database. These functions are written in
JavaScript, and are deployed via an API; see [Registering Functions](Functions.md).
In order to avoid conflicts with existing or future built-in
function names, all user functions must be put into separate
namespaces. Invoking a user functions is then possible by referring
to the fully-qualified function name, which includes the namespace,
too; see [Conventions](Conventions.md).
In order to avoid conflicts with existing or future built-in function names,
all user defined functions (**UDF**) have to be put into separate namespaces.
Invoking a UDF is then possible by referring to the fully-qualified function name,
which includes the namespace, too; see [Conventions](Conventions.md).
!SECTION Technical Details
!SUBSECTION Known Limitations
**UDFs have some implications you should be aware of. Otherwise they can
introduce serious effects on the performance of your queries and the resource
usage in ArangoDB.**
Since the optimizer doesn't know anything about the nature of your function,
**the optimizer can't use indices for UDFs**. So you should never lean on a UDF
as the primary criterion for a `FILTER` statement to reduce your query result set.
Instead, put a another `FILTER` statement in front of it. You should make sure
that this [**`FILTER` statement** is effective](../ExecutionAndPerformance/Optimizer.md)
to reduce the query result before passing it to your UDF.
Rule of thumb is, the closer the UDF is to your final `RETURN` statement
(or maybe even inside it), the better.
When used in clusters, UDFs are always executed on the
[coordinator](../../Manual/Scalability/Architecture.html).
Using UDFs in clusters may result in a higher resource allocation
in terms of used V8 contexts and server threads. If you run out
of these resources, your query may abort with a
[**cluster backend unavailable**](../../Manual/Appendix/ErrorCodes.html) error.
To overcome these mentioned limitations, you may want to
[increase the number of available V8 contexts](../../Manual/Administration/Configuration/Arangod.html#v8-contexts)
(at the expense of increased memory usage),
and [the number of available server threads](../../Manual/Administration/Configuration/Arangod.html#server-threads).
!SUBSECTION Deployment Details
Internally, UDFs are stored in a system collection named `_aqlfunctions`
of the selected database. When an AQL statement refers to such a UDF,
it is loaded from that collection. The UDFs will be exclusively
available for queries in that particular database.
Since the coordinator doesn't have own local collections, the `_aqlfunctions`
collection is sharded across the cluster. Therefore (as usual), it has to be
accessed through a coordinator - you mustn't talk to the shards directly.
Once it is in the `_aqlfunctions` collection, it is available on all
coordinators without additional effort.
Keep in mind that system collections are excluded from dumps created with
[arangodump](../../Manual/Administration/Arangodump.html) by default.
To include AQL UDF in a dump, the dump needs to be started with
the option *--include-system-collections true*.

View File

@ -72,13 +72,24 @@ from similar ways to test for the existance of an attribute, in case the attribu
has a falsy value or is not present (implicitly *null* on object access):
```js
!!{ name: "" }.name // false
!!{ name: "" }.name // false
HAS( { name: "" }, "name") // true
{ name: null }.name == null // true
{ }.name == null // true
{ name: null }.name == null // true
{ }.name == null // true
HAS( { name: null }, "name" ) // true
HAS( { }, "name" ) // false
HAS( { }, "name" ) // false
```
Note that `HAS()` can not utilize indexes. If it's not necessary to distinguish
between explicit and implicit *null* values in your query, you may use an equality
comparison to test for *null* and create a non-sparse index on the attribute you
want to test against:
```js
FILTER !HAS(doc, "name") // can not use indexes
FILTER IS_NULL(doc, "name") // can not use indexes
FILTER doc.name == null // can utilize non-sparse indexes
```
!SUBSECTION IS_SAME_COLLECTION()

View File

@ -28,38 +28,5 @@ i.e. *LENGTH(foo)* and *length(foo)* are equivalent.
!SUBSECTION Extending AQL
It is possible to extend AQL with user-defined functions. These functions need to
be written in JavaScript, and be registered before usage in a query. Please refer
to [Extending AQL](../Extending/index.html) for more details on this.
By default, any function used in an AQL query will be sought in the built-in
function namespace *_aql*. This is the default namespace that contains all AQL
functions that are shipped with ArangoDB.
To refer to a user-defined AQL function, the function name must be fully qualified
to also include the user-defined namespace. The *::* symbol is used as the namespace
separator:
```js
MYGROUP::MYFUNC()
MYFUNCTIONS::MATH::RANDOM()
```
As all AQL function names, user function names are also case-insensitive.
!SUBSUBSECTION Technical Details
ArangoDB stores user defined functions in the `_functions` system collection.
When an AQL statement refers to such a function, its loaded from that collection.
Since the optimizer doesn't know anything about this function, it won't be able
to use indices for these functions.
When used in clusters, the UDF is executed on the coordinator. Depending on your
query layout, this may result in many documents having to be passed up from the
DB-Servers to the Coordinator. To avoid this, you should make sure that the query
contains effective `FILTER` statements that can be used to DB-Server to reduce
the query result before passing it up to the Coordinator and your UDF.
Since the Coordinator doesn't have own local collections, the `_functions` collection
is sharded across the cluster. Therefore (as usual) it has to be accessed through the coordinator -
you mustn't talk to the DB-Servers directly. Once its in there, it will be available
on all coordinators.
be written in JavaScript, and have to be registered before they can be used in a query.
Please refer to [Extending AQL](../Extending/index.html) for more details.

View File

@ -143,7 +143,8 @@ checked for, and false otherwise.
The following type check functions are available:
- `IS_NULL(value) → bool`: Check whether *value* is a *null* value
- `IS_NULL(value) → bool`: Check whether *value* is a *null* value, also see
[HAS()](Document.md#has)
- `IS_BOOL(value) → bool`: Check whether *value* is a *boolean* value

View File

@ -131,14 +131,15 @@ FOR vertex[, edge[, path]]
are multiple paths from *startVertex* to *vertex*, one of those is picked.
- "none" (default) no uniqueness check is applied on vertices
- **uniqueEdges** (string): optionally ensure edge uniqueness
- "path" it is guaranteed that there is no path returned with a duplicate edge
- "path" (default) it is guaranteed that there is no path returned with a
duplicate edge
- "global" it is guaranteed that each edge is visited at most once during
the traversal, no matter how many paths lead from the start vertex to this edge.
If you start with a `min depth > 1`, an edge that was found before *min* depth
might not be returned at all (it still might be part of a path). **Note:**
Using this configuration the result is not deterministic any more. If there
are multiple paths from *startVertex* over *edge* one of those is picked.
- "none" (default) no uniqueness check is applied on edges. **Note:**
- "none" no uniqueness check is applied on edges. **Note:**
Using this configuration the traversal will follow cycles in edges.
- **bfs** (bool): optionally use the alternative breadth-first traversal algorithm
- true the traversal will be executed breadth-first. The results will first

View File

@ -6,8 +6,8 @@ This is an introduction to ArangoDB's HTTP interface for managing AQL
user functions. AQL user functions are a means to extend the functionality
of ArangoDB's query language (AQL) with user-defined JavaScript code.
For an overview of how AQL user functions work, please refer to
[Extending AQL](../../AQL/Extending/index.html).
For an overview of how AQL user functions and their implications, please refer to
the [Extending AQL](../../AQL/Extending/index.html) chapter.
The HTTP interface provides an API for adding, deleting, and listing
previously registered AQL user functions.

View File

@ -119,11 +119,14 @@ The following [NPM modules](https://www.npmjs.com) are preinstalled:
* [minimatch](https://github.com/isaacs/minimatch)
is a glob matcher for matching wildcards in file paths.
* [node-semver](https://github.com/npm/node-semver)
is a utility library for handling semver version numbers.
* [qs](https://github.com/hapijs/qs)
provides utilities for dealing with query strings using a different format than the **querystring** module.
* [semver](https://github.com/npm/node-semver)
is a utility library for handling semver version numbers.
* [sinon](http://sinonjs.org)
is a mocking library for writing test stubs, mocks and spies.
* [timezone](https://github.com/bigeasy/timezone)
is a library for converting date time values between formats and timezones.

View File

@ -47,5 +47,6 @@ The following methods exist on the collection object (returned by *db.name*):
* [collection.rename()](../../DataModeling/Collections/CollectionMethods.md#rename)
* [collection.replace(selector, data)](../../DataModeling/Documents/DocumentMethods.md#replace)
* [collection.replaceByExample(example, data)](../../DataModeling/Documents/DocumentMethods.md#replace-by-example)
* [collection.save(data)](../../DataModeling/Documents/DocumentMethods.md#insert)
* [collection.update(selector, data)](../../DataModeling/Documents/DocumentMethods.md#update)
* [collection.updateByExample(example, data)](../../DataModeling/Documents/DocumentMethods.md#update-by-example)

View File

@ -122,12 +122,12 @@ are missing from the replacement document, an `REPLACE` operation will fail.
!SUBSUBSECTION Graph functions
In version 3.0 all former graph related functions have been removed from AQL to be replaced
by native AQL constructs.
In version 3.0 all former graph related functions have been removed from AQL to
be replaced by [native AQL constructs](../../AQL/Graphs/index.html).
These constructs allow for more fine-grained filtering on several graph levels.
Also this allows the AQL optimizer to automatically improve these queries by
enhancing them with appropriate indexes.
We have create recipes to upgrade from 2.8 to 3.0 when using these functions.
We have created recipes to upgrade from 2.8 to 3.0 when using these functions.
The functions:
@ -161,7 +161,7 @@ are covered in [Migrating GRAPH_* Measurements from 2.8 or earlier to 3.0](https
* TRAVERSAL
* TRAVERSAL_TREE
are covered in [#Migrating anonymous graph Functions from 2.8 or earlier to 3.0](https://docs.arangodb.com/cookbook/AQL/MigratingEdgeFunctionsTo3.html)
are covered in [Migrating anonymous graph functions from 2.8 or earlier to 3.0](https://docs.arangodb.com/3/cookbook/AQL/MigratingEdgeFunctionsTo3.html)
!SUBSECTION Typecasting functions

View File

@ -168,7 +168,7 @@
* GITHUB: https://github.com/jshttp/http-errors
* License: [MIT License](https://github.com/jshttp/http-errors/blob/master/LICENSE)
#### inflect
#### i (inflect)
* GITHUB: https://github.com/pksunkara/inflect
* License: [MIT-style License](https://github.com/pksunkara/inflect/blob/master/LICENSE)
@ -220,11 +220,6 @@
* GITHUB: https://github.com/mochajs/mocha
* License: [MIT License](https://github.com/mochajs/mocha/blob/master/LICENSE)
#### node-semver
* GITHUB: https://github.com/npm/node-semver
* License: [ISC License](https://github.com/npm/node-semver/blob/master/LICENSE)
#### qs
* GITHUB: https://github.com/hapijs/qs
@ -252,6 +247,11 @@
* GITHUB: https://github.com/jshttp/statuses
* License: [MIT License](https://github.com/jshttp/statuses/blob/master/LICENSE)
#### timezone
* GITHUB: https://github.com/bigeasy/timezone
* License: [MIT License](https://github.com/bigeasy/timezone/blob/master/LICENSE)
#### type-is
* GITHUB: https://github.com/jshttp/type-is

View File

@ -248,22 +248,29 @@ bool Agent::recvAppendEntriesRPC(term_t term,
return false;
}
_state.removeConflicts(queries);
if (queries->slice().length()) {
LOG_TOPIC(DEBUG, Logger::AGENCY) << "Appending "
<< queries->slice().length()
<< " entries to state machine.";
/* bool success = */
_state.log(queries, term, prevIndex, prevTerm);
}
size_t nqs = queries->slice().length();
if (nqs > 0) {
size_t ndups = _state.removeConflicts(queries);
if (nqs > ndups) {
LOG_TOPIC(DEBUG, Logger::AGENCY)
<< "Appending " << nqs - ndups << " entries to state machine." <<
nqs << " " << ndups;
_state.log(queries, ndups);
}
}
_spearhead.apply(_state.slices(_lastCommitIndex + 1, leaderCommitIndex));
_readDB.apply(_state.slices(_lastCommitIndex + 1, leaderCommitIndex));
_lastCommitIndex = leaderCommitIndex;
if (_lastCommitIndex >= _nextCompationAfter) {
_state.compact(_lastCommitIndex);
_nextCompationAfter += _config.compactionStepSize;
}
@ -329,7 +336,8 @@ priv_rpc_ret_t Agent::sendAppendEntriesRPC(
"1", 1, _config.endpoints[follower_id],
arangodb::GeneralRequest::RequestType::POST, path.str(),
std::make_shared<std::string>(builder.toJson()), headerFields,
std::make_shared<AgentCallback>(this, follower_id, highest), 1, true);
std::make_shared<AgentCallback>(this, follower_id, highest),
0.5*_config.minPing, true, 0.75*_config.minPing);
_lastSent.at(follower_id) = std::chrono::system_clock::now();
_lastHighest.at(follower_id) = highest;
@ -444,7 +452,7 @@ void Agent::run() {
while (!this->isStopping() && size() > 1) {
if (leading()) { // Only if leading
_appendCV.wait(10000);
_appendCV.wait(1000);
} else {
_appendCV.wait(); // Else wait for our moment in the sun
}

View File

@ -41,6 +41,10 @@ bool AgentCallback::operator()(arangodb::ClusterCommResult* res) {
if (_agent) {
_agent->reportIn(_slaveID, _last);
}
} else {
LOG_TOPIC(DEBUG, Logger::AGENCY)
<< "comm_status(" << res->status << "), last("
<< _last << "), follower(" << _slaveID << ")";
}
return true;
}

View File

@ -378,7 +378,7 @@ void Constituent::callElection() {
operationIDs[i] = arangodb::ClusterComm::instance()->asyncRequest(
"1", 1, config().endpoints[i], GeneralRequest::RequestType::GET,
path.str(), std::make_shared<std::string>(body), headerFields,
nullptr, config().minPing, true);
nullptr, 0.75*config().minPing, true, 0.5*config().minPing);
}
}

View File

@ -138,80 +138,118 @@ std::vector<arangodb::consensus::index_t> State::log(
/// Log transactions (follower)
arangodb::consensus::index_t State::log(
query_t const& transactions, term_t term,
arangodb::consensus::index_t prevLogIndex, term_t prevLogTerm) {
query_t const& transactions, size_t ndups) {
if (transactions->slice().type() != VPackValueType::Array) {
return false;
}
VPackSlice slices = transactions->slice();
MUTEX_LOCKER(mutexLocker, _logLock); // log entries must stay in order
TRI_ASSERT(slices.isArray());
size_t nqs = slices.length();
TRI_ASSERT(nqs > ndups);
MUTEX_LOCKER(mutexLocker, _logLock); // log entries must stay in order
for (size_t i = ndups; i < nqs; ++i) {
VPackSlice slice = slices[i];
arangodb::consensus::index_t highest = (_log.empty()) ? 0 : _log.back().index;
for (auto const& i : VPackArrayIterator(transactions->slice())) {
try {
auto idx = i.get("index").getUInt();
auto trm = i.get("term").getUInt();
if (highest < idx) {
highest = idx;
}
std::shared_ptr<Buffer<uint8_t>> buf = std::make_shared<Buffer<uint8_t>>();
buf->append((char const*)i.get("query").begin(),i.get("query").byteSize());
auto idx = slice.get("index").getUInt();
auto trm = slice.get("term").getUInt();
auto buf = std::make_shared<Buffer<uint8_t>>();
buf->append(
(char const*)slice.get("query").begin(), slice.get("query").byteSize());
// to RAM
_log.push_back(log_t(idx, trm, buf));
persist(idx, trm, i.get("query")); // to disk
// to disk
persist(idx, trm, slice.get("query"));
} catch (std::exception const& e) {
LOG_TOPIC(ERR, Logger::AGENCY) << e.what() << " " << __FILE__ << __LINE__;
}
}
return highest;
TRI_ASSERT(!_log.empty());
return _log.back().index;
}
void State::removeConflicts (query_t const& transactions) {
size_t State::removeConflicts (query_t const& transactions) {
VPackSlice slice = transactions->slice();
TRI_ASSERT(slice.isArray());
VPackSlice slices = transactions->slice();
TRI_ASSERT(slices.isArray());
size_t ndups = 0;
if (slice.length() > 0) {
if (slices.length() > 0) {
auto bindVars = std::make_shared<VPackBuilder>();
bindVars->openObject();
bindVars->close();
try {
auto idx = slice[0].get("index").getUInt();
if (idx-_cur < _log.size()) {
LOG_TOPIC(DEBUG, Logger::AGENCY)
<< "Removing " << _log.size()-idx+_cur
<< " entries from log starting with " << idx << "=" << _log.at(idx-_cur).index;
auto idx = slices[0].get("index").getUInt();
auto pos = idx-_cur;
if (pos < _log.size()) {
for (auto const& slice : VPackArrayIterator(slices)) {
// persisted logs
std::stringstream aql;
aql << "FOR l IN log FILTER l._key >= '" << stringify(idx)
<< "' REMOVE l IN log";
arangodb::aql::Query
query(false, _vocbase, aql.str().c_str(), aql.str().size(), bindVars,
nullptr, arangodb::aql::PART_MAIN);
auto queryResult = query.execute(_queryRegistry);
if (queryResult.code != TRI_ERROR_NO_ERROR) {
THROW_ARANGO_EXCEPTION_MESSAGE(queryResult.code, queryResult.details);
auto trm = slice.get("term").getUInt();
idx = slice.get("index").getUInt();
pos = idx-_cur;
if (pos < _log.size()) {
if (idx == _log.at(pos).index && trm != _log.at(pos).term) {
LOG_TOPIC(DEBUG, Logger::AGENCY)
<< "Removing " << _log.size()-pos
<< " entries from log starting with " << idx << "=="
<< _log.at(pos).index << " and " << trm << "=" <<_log.at(pos).term;
// persisted logs
std::stringstream aql;
aql << "FOR l IN log FILTER l._key >= '" << stringify(idx)
<< "' REMOVE l IN log";
arangodb::aql::Query
query(false, _vocbase, aql.str().c_str(), aql.str().size(),
bindVars, nullptr, arangodb::aql::PART_MAIN);
auto queryResult = query.execute(_queryRegistry);
if (queryResult.code != TRI_ERROR_NO_ERROR) {
THROW_ARANGO_EXCEPTION_MESSAGE(
queryResult.code, queryResult.details);
}
queryResult.result->slice();
// volatile logs
{
MUTEX_LOCKER(mutexLocker, _logLock);
_log.erase(_log.begin()+pos, _log.end());
}
break;
} else {
++ndups;
}
}
}
queryResult.result->slice();
// volatile logs
{
MUTEX_LOCKER(mutexLocker, _logLock);
_log.erase(_log.begin()+idx-_cur-1, _log.end());
}
}
}
} catch (std::exception const& e) {
LOG_TOPIC(ERR, Logger::AGENCY) << e.what() << " " << __FILE__ << __LINE__;
LOG_TOPIC(DEBUG, Logger::AGENCY) << e.what() << " " << __FILE__ << __LINE__;
}
}
return ndups;
}
@ -251,7 +289,7 @@ std::vector<VPackSlice> State::slices(
std::vector<VPackSlice> slices;
MUTEX_LOCKER(mutexLocker, _logLock);
if (_log.empty()) {
if (_log.empty()) {
return slices;
}

View File

@ -64,8 +64,7 @@ class State {
std::vector<bool> const& indices, term_t term);
/// @brief Log entries (followers)
index_t log(query_t const& queries, term_t term, index_t prevLogIndex,
term_t prevLogTerm);
arangodb::consensus::index_t log(query_t const& queries, size_t ndups = 0);
/// @brief Find entry at index with term
bool find(index_t index, term_t term);
@ -103,7 +102,7 @@ class State {
bool compact(arangodb::consensus::index_t cind);
void removeConflicts(query_t const&);
size_t removeConflicts(query_t const&);
private:

View File

@ -424,7 +424,7 @@ void Supervision::shrinkCluster () {
targetNumDBServers = _snapshot("/Target/NumberOfDBServers").getUInt();
} catch (std::exception const& e) {
LOG_TOPIC(DEBUG, Logger::AGENCY)
<< "Cannot retrieve targeted number of db servers from agency" << e.what();
<< "Targeted number of DB servers not set yet: " << e.what();
return;
}

View File

@ -1075,18 +1075,9 @@ std::string DistributeBlock::createKey() const {
static bool throwExceptionAfterBadSyncRequest(ClusterCommResult* res,
bool isShutdown) {
ENTER_BLOCK
if (res->status == CL_COMM_TIMEOUT) {
std::string errorMessage = res->stringifyErrorMessage();
// No reply, we give up:
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_CLUSTER_TIMEOUT, errorMessage);
}
if (res->status == CL_COMM_BACKEND_UNAVAILABLE) {
// there is no result
std::string errorMessage = res->stringifyErrorMessage();
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_CLUSTER_CONNECTION_LOST,
errorMessage);
if (res->status == CL_COMM_TIMEOUT ||
res->status == CL_COMM_BACKEND_UNAVAILABLE) {
THROW_ARANGO_EXCEPTION_MESSAGE(res->getErrorCode(), res->stringifyErrorMessage());
}
if (res->status == CL_COMM_ERROR) {

View File

@ -526,6 +526,7 @@ struct CoordinatorInstanciator : public WalkerWorker<ExecutionNode> {
std::string error;
int count = 0;
int nrok = 0;
int errorCode = TRI_ERROR_NO_ERROR;
for (count = (int)shardIds->size(); count > 0; count--) {
auto res = cc->wait("", coordTransactionID, 0, "", 30.0);
@ -538,7 +539,7 @@ struct CoordinatorInstanciator : public WalkerWorker<ExecutionNode> {
VPackSlice tmp = res.answer->payload().get("queryId");
std::string queryId;
if(tmp.isString()){
if (tmp.isString()) {
queryId = tmp.copyString();
}
@ -560,13 +561,19 @@ struct CoordinatorInstanciator : public WalkerWorker<ExecutionNode> {
}
} else {
error += res.stringifyErrorMessage();
if (errorCode == TRI_ERROR_NO_ERROR) {
errorCode = res.getErrorCode();
}
}
}
// std::cout << "GOT ALL RESPONSES FROM DB SERVERS: " << nrok << "\n";
if (nrok != (int)shardIds->size()) {
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_INTERNAL, error);
if (errorCode == TRI_ERROR_NO_ERROR) {
errorCode = TRI_ERROR_INTERNAL; // must have an error
}
THROW_ARANGO_EXCEPTION_MESSAGE(errorCode, error);
}
}

View File

@ -1651,13 +1651,11 @@ AgencyCommResult AgencyComm::sendWithFailover(
std::string endpoint;
// transform location into an endpoint
int offset;
int offset { 11 };
if (result.location().substr(0, 7) == "http://") {
endpoint = "http+tcp://" + result.location().substr(7);
offset = 11;
} else if (result.location().substr(0, 8) == "https://") {
endpoint = "ssl://" + result.location().substr(8);
offset = 6;
endpoint = "http+ssl://" + result.location().substr(8);
} else {
// invalid endpoint, return an error
break;

View File

@ -148,6 +148,31 @@ std::string ClusterCommResult::stringifyErrorMessage() const {
return result;
}
/// @brief return an error code for a result
int ClusterCommResult::getErrorCode() const {
switch (status) {
case CL_COMM_SUBMITTED:
case CL_COMM_SENDING:
case CL_COMM_SENT:
case CL_COMM_RECEIVED:
return TRI_ERROR_NO_ERROR;
case CL_COMM_TIMEOUT:
return TRI_ERROR_CLUSTER_TIMEOUT;
case CL_COMM_ERROR:
return TRI_ERROR_INTERNAL;
case CL_COMM_DROPPED:
return TRI_ERROR_INTERNAL;
case CL_COMM_BACKEND_UNAVAILABLE:
return TRI_ERROR_CLUSTER_BACKEND_UNAVAILABLE;
}
return TRI_ERROR_INTERNAL;
}
/// @brief stringify a cluster comm status
char const* ClusterCommResult::stringifyStatus(ClusterCommOpStatus status) {
switch (status) {

View File

@ -216,6 +216,9 @@ struct ClusterCommResult {
/// @brief stringify the internal error state
std::string stringifyErrorMessage() const;
/// @brief return an error code for a result
int getErrorCode() const;
/// @brief stringify a cluster comm status
static char const* stringifyStatus(ClusterCommOpStatus status);
};

View File

@ -927,7 +927,6 @@ void V8DealerFeature::initializeContext(size_t i) {
TRI_InitV8UserStructures(isolate, localContext);
TRI_InitV8Buffer(isolate, localContext);
TRI_InitV8Conversions(localContext);
TRI_InitV8Utils(isolate, localContext, _startupPath, modulesPath);
TRI_InitV8DebugUtils(isolate, localContext, _startupPath, modulesPath);
TRI_InitV8Shell(isolate, localContext);

View File

@ -36,6 +36,439 @@
using namespace arangodb;
////////////////////////////////////////////////////////////////////////////////
/// @brief converts a TRI_json_t into a V8 object
////////////////////////////////////////////////////////////////////////////////
v8::Handle<v8::Value> TRI_ObjectJson(v8::Isolate* isolate, TRI_json_t const*);
////////////////////////////////////////////////////////////////////////////////
/// @brief returns the keys of a TRI_json_t* object into a V8 array
////////////////////////////////////////////////////////////////////////////////
v8::Handle<v8::Value> TRI_KeysJson(v8::Isolate* isolate, TRI_json_t const*);
////////////////////////////////////////////////////////////////////////////////
/// @brief returns the values of a TRI_json_t* object into a V8 array
////////////////////////////////////////////////////////////////////////////////
v8::Handle<v8::Value> TRI_ValuesJson(v8::Isolate* isolate, TRI_json_t const*);
/// @brief converts a TRI_json_t NULL into a V8 object
static inline v8::Handle<v8::Value> ObjectJsonNull(v8::Isolate* isolate,
TRI_json_t const* json) {
return v8::Null(isolate);
}
/// @brief converts a TRI_json_t BOOLEAN into a V8 object
static inline v8::Handle<v8::Value> ObjectJsonBoolean(v8::Isolate* isolate,
TRI_json_t const* json) {
return v8::Boolean::New(isolate, json->_value._boolean);
}
/// @brief converts a TRI_json_t NUMBER into a V8 object
static inline v8::Handle<v8::Value> ObjectJsonNumber(v8::Isolate* isolate,
TRI_json_t const* json) {
return v8::Number::New(isolate, json->_value._number);
}
/// @brief converts a TRI_json_t STRING into a V8 object
static inline v8::Handle<v8::Value> ObjectJsonString(v8::Isolate* isolate,
TRI_json_t const* json) {
return TRI_V8_PAIR_STRING(json->_value._string.data,
json->_value._string.length - 1);
}
/// @brief converts a TRI_json_t OBJECT into a V8 object
static v8::Handle<v8::Value> ObjectJsonObject(v8::Isolate* isolate,
TRI_json_t const* json) {
v8::Handle<v8::Object> object = v8::Object::New(isolate);
if (object.IsEmpty()) {
return v8::Undefined(isolate);
}
size_t const n = TRI_LengthVector(&json->_value._objects);
for (size_t i = 0; i < n; i += 2) {
TRI_json_t const* key = static_cast<TRI_json_t const*>(
TRI_AddressVector(&json->_value._objects, i));
if (!TRI_IsStringJson(key)) {
continue;
}
TRI_json_t const* element = static_cast<TRI_json_t const*>(
TRI_AddressVector(&json->_value._objects, i + 1));
auto val = TRI_ObjectJson(isolate, element);
if (!val.IsEmpty()) {
auto k = TRI_V8_PAIR_STRING(key->_value._string.data,
key->_value._string.length - 1);
if (!k.IsEmpty()) {
object->ForceSet(TRI_V8_PAIR_STRING(key->_value._string.data,
key->_value._string.length - 1),
val);
}
}
}
return object;
}
/// @brief converts a TRI_json_t ARRAY into a V8 object
static v8::Handle<v8::Value> ObjectJsonArray(v8::Isolate* isolate,
TRI_json_t const* json) {
uint32_t const n = static_cast<uint32_t>(TRI_LengthArrayJson(json));
v8::Handle<v8::Array> object = v8::Array::New(isolate, static_cast<int>(n));
if (object.IsEmpty()) {
return v8::Undefined(isolate);
}
uint32_t j = 0;
for (uint32_t i = 0; i < n; ++i) {
TRI_json_t const* element = static_cast<TRI_json_t const*>(
TRI_AddressVector(&json->_value._objects, i));
v8::Handle<v8::Value> val = TRI_ObjectJson(isolate, element);
if (!val.IsEmpty()) {
object->Set(j++, val);
}
}
return object;
}
/// @brief extracts keys or values from a TRI_json_t* object
static v8::Handle<v8::Value> ExtractObject(v8::Isolate* isolate,
TRI_json_t const* json,
size_t offset) {
v8::EscapableHandleScope scope(isolate);
if (json == nullptr || json->_type != TRI_JSON_OBJECT) {
return scope.Escape<v8::Value>(v8::Undefined(isolate));
}
size_t const n = TRI_LengthVector(&json->_value._objects);
v8::Handle<v8::Array> result =
v8::Array::New(isolate, static_cast<int>(n / 2));
uint32_t count = 0;
for (size_t i = offset; i < n; i += 2) {
TRI_json_t const* value =
static_cast<TRI_json_t const*>(TRI_AtVector(&json->_value._objects, i));
if (value != nullptr) {
result->Set(count++, TRI_ObjectJson(isolate, value));
}
}
return scope.Escape<v8::Value>(result);
}
/// @brief returns the keys of a TRI_json_t* object into a V8 array
v8::Handle<v8::Value> TRI_KeysJson(v8::Isolate* isolate,
TRI_json_t const* json) {
return ExtractObject(isolate, json, 0);
}
/// @brief returns the values of a TRI_json_t* object into a V8 array
v8::Handle<v8::Value> TRI_ValuesJson(v8::Isolate* isolate,
TRI_json_t const* json) {
return ExtractObject(isolate, json, 1);
}
/// @brief converts a TRI_json_t into a V8 object
v8::Handle<v8::Value> TRI_ObjectJson(v8::Isolate* isolate,
TRI_json_t const* json) {
if (json == nullptr) {
return v8::Undefined(isolate);
}
switch (json->_type) {
case TRI_JSON_NULL:
return ObjectJsonNull(isolate, json);
case TRI_JSON_BOOLEAN:
return ObjectJsonBoolean(isolate, json);
case TRI_JSON_NUMBER:
return ObjectJsonNumber(isolate, json);
case TRI_JSON_STRING:
case TRI_JSON_STRING_REFERENCE:
return ObjectJsonString(isolate, json);
case TRI_JSON_OBJECT:
return ObjectJsonObject(isolate, json);
case TRI_JSON_ARRAY:
return ObjectJsonArray(isolate, json);
case TRI_JSON_UNUSED: {
}
}
return v8::Undefined(isolate);
}
/// @brief convert a V8 value to a TRI_json_t value
static int ObjectToJson(v8::Isolate* isolate, TRI_json_t* result,
v8::Handle<v8::Value> const parameter,
std::set<int>& seenHashes,
std::vector<v8::Handle<v8::Object>>& seenObjects) {
v8::HandleScope scope(isolate);
if (parameter->IsNull()) {
TRI_InitNullJson(result);
return TRI_ERROR_NO_ERROR;
}
if (parameter->IsBoolean()) {
v8::Handle<v8::Boolean> booleanParameter = parameter->ToBoolean();
TRI_InitBooleanJson(result, booleanParameter->Value());
return TRI_ERROR_NO_ERROR;
}
if (parameter->IsNumber()) {
v8::Handle<v8::Number> numberParameter = parameter->ToNumber();
TRI_InitNumberJson(result, numberParameter->Value());
return TRI_ERROR_NO_ERROR;
}
if (parameter->IsString()) {
v8::Handle<v8::String> stringParameter = parameter->ToString();
TRI_Utf8ValueNFC str(TRI_UNKNOWN_MEM_ZONE, stringParameter);
if (*str == nullptr) {
TRI_InitNullJson(result);
return TRI_ERROR_OUT_OF_MEMORY;
}
// this passes ownership for the utf8 string to the JSON object
TRI_InitStringJson(result, str.steal(), str.length());
return TRI_ERROR_NO_ERROR;
}
if (parameter->IsArray()) {
v8::Handle<v8::Array> array = v8::Handle<v8::Array>::Cast(parameter);
uint32_t const n = array->Length();
// allocate the result array in one go
TRI_InitArrayJson(TRI_UNKNOWN_MEM_ZONE, result, static_cast<size_t>(n));
int res =
TRI_ReserveVector(&result->_value._objects, static_cast<size_t>(n));
if (res != TRI_ERROR_NO_ERROR) {
// result array could not be allocated
TRI_InitNullJson(result);
return TRI_ERROR_OUT_OF_MEMORY;
}
for (uint32_t i = 0; i < n; ++i) {
// get address of next element
auto next =
static_cast<TRI_json_t*>(TRI_NextVector(&result->_value._objects));
// the reserve call above made sure we could not have run out of memory
TRI_ASSERT(next != nullptr);
res = ObjectToJson(isolate, next, array->Get(i), seenHashes, seenObjects);
if (res != TRI_ERROR_NO_ERROR) {
// to mimic behavior of previous ArangoDB versions, we need to silently
// ignore this error
// now return the element to the vector
TRI_ReturnVector(&result->_value._objects);
// a better solution would be:
// initialize the element at position, otherwise later cleanups may
// peek into uninitialized memory
// TRI_InitNullJson(next);
// return res;
}
}
return TRI_ERROR_NO_ERROR;
}
if (parameter->IsObject()) {
if (parameter->IsBooleanObject()) {
TRI_InitBooleanJson(result, v8::Handle<v8::BooleanObject>::Cast(parameter)
->BooleanValue());
return TRI_ERROR_NO_ERROR;
}
if (parameter->IsNumberObject()) {
TRI_InitNumberJson(
result, v8::Handle<v8::NumberObject>::Cast(parameter)->NumberValue());
return TRI_ERROR_NO_ERROR;
}
if (parameter->IsStringObject()) {
v8::Handle<v8::String> stringParameter(parameter->ToString());
TRI_Utf8ValueNFC str(TRI_UNKNOWN_MEM_ZONE, stringParameter);
if (*str == nullptr) {
TRI_InitNullJson(result);
return TRI_ERROR_OUT_OF_MEMORY;
}
// this passes ownership for the utf8 string to the JSON object
TRI_InitStringJson(result, str.steal(), str.length());
return TRI_ERROR_NO_ERROR;
}
if (parameter->IsRegExp() || parameter->IsFunction() ||
parameter->IsExternal()) {
TRI_InitNullJson(result);
return TRI_ERROR_BAD_PARAMETER;
}
v8::Handle<v8::Object> o = parameter->ToObject();
// first check if the object has a "toJSON" function
v8::Handle<v8::String> toJsonString = TRI_V8_PAIR_STRING("toJSON", 6);
if (o->Has(toJsonString)) {
// call it if yes
v8::Handle<v8::Value> func = o->Get(toJsonString);
if (func->IsFunction()) {
v8::Handle<v8::Function> toJson = v8::Handle<v8::Function>::Cast(func);
v8::Handle<v8::Value> args;
v8::Handle<v8::Value> converted = toJson->Call(o, 0, &args);
if (!converted.IsEmpty()) {
// return whatever toJSON returned
TRI_Utf8ValueNFC str(TRI_UNKNOWN_MEM_ZONE, converted->ToString());
if (*str == nullptr) {
TRI_InitNullJson(result);
return TRI_ERROR_OUT_OF_MEMORY;
}
// this passes ownership for the utf8 string to the JSON object
TRI_InitStringJson(result, str.steal(), str.length());
return TRI_ERROR_NO_ERROR;
}
}
// fall-through intentional
}
int hash = o->GetIdentityHash();
if (seenHashes.find(hash) != seenHashes.end()) {
// LOG(TRACE) << "found hash " << hash;
for (auto it : seenObjects) {
if (parameter->StrictEquals(it)) {
// object is recursive
TRI_InitNullJson(result);
return TRI_ERROR_BAD_PARAMETER;
}
}
} else {
seenHashes.emplace(hash);
}
seenObjects.emplace_back(o);
v8::Handle<v8::Array> names = o->GetOwnPropertyNames();
uint32_t const n = names->Length();
// allocate the result object buffer in one go
TRI_InitObjectJson(TRI_UNKNOWN_MEM_ZONE, result, static_cast<size_t>(n));
int res = TRI_ReserveVector(&result->_value._objects,
static_cast<size_t>(n * 2)); // key + value
if (res != TRI_ERROR_NO_ERROR) {
// result object buffer could not be allocated
TRI_InitNullJson(result);
return TRI_ERROR_OUT_OF_MEMORY;
}
for (uint32_t i = 0; i < n; ++i) {
// process attribute name
v8::Handle<v8::Value> key = names->Get(i);
TRI_Utf8ValueNFC str(TRI_UNKNOWN_MEM_ZONE, key);
if (*str == nullptr) {
return TRI_ERROR_OUT_OF_MEMORY;
}
TRI_json_t* next =
static_cast<TRI_json_t*>(TRI_NextVector(&result->_value._objects));
// the reserve call above made sure we could not have run out of memory
TRI_ASSERT(next != nullptr);
// this passes ownership for the utf8 string to the JSON object
char* attributeName = str.steal();
TRI_InitStringJson(next, attributeName, str.length());
// process attribute value
next = static_cast<TRI_json_t*>(TRI_NextVector(&result->_value._objects));
// the reserve call above made sure we could not have run out of memory
TRI_ASSERT(next != nullptr);
res = ObjectToJson(isolate, next, o->Get(key), seenHashes, seenObjects);
if (res != TRI_ERROR_NO_ERROR) {
// to mimic behavior of previous ArangoDB versions, we need to silently
// ignore this error
// now free the attributeName string and return the elements to the
// vector
TRI_FreeString(TRI_UNKNOWN_MEM_ZONE, attributeName);
TRI_ReturnVector(&result->_value._objects);
TRI_ReturnVector(&result->_value._objects);
// a better solution would be:
// initialize the element at position, otherwise later cleanups may
// peek into uninitialized memory
// TRI_InitNullJson(next);
// return res;
}
}
seenObjects.pop_back();
return TRI_ERROR_NO_ERROR;
}
TRI_InitNullJson(result);
return TRI_ERROR_BAD_PARAMETER;
}
/// @brief convert a V8 value to a json_t value
TRI_json_t* TRI_ObjectToJson(v8::Isolate* isolate,
v8::Handle<v8::Value> const parameter) {
TRI_json_t* json = TRI_CreateNullJson(TRI_UNKNOWN_MEM_ZONE);
if (json == nullptr) {
return nullptr;
}
std::set<int> seenHashes;
std::vector<v8::Handle<v8::Object>> seenObjects;
int res = ObjectToJson(isolate, json, parameter, seenHashes, seenObjects);
if (res != TRI_ERROR_NO_ERROR) {
// some processing error occurred
TRI_FreeJson(TRI_UNKNOWN_MEM_ZONE, json);
return nullptr;
}
return json;
}
////////////////////////////////////////////////////////////////////////////////
/// @brief convert a V8 value to a json_t value
////////////////////////////////////////////////////////////////////////////////
TRI_json_t* TRI_ObjectToJson(v8::Isolate*, v8::Handle<v8::Value> const);
struct KeySpaceElement {
KeySpaceElement() = delete;
@ -829,7 +1262,7 @@ static void JS_KeyspaceCreate(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const name = TRI_ObjectToString(args[0]);
int64_t size = 0;
if (args.Length() > 1) {
@ -890,7 +1323,7 @@ static void JS_KeyspaceDrop(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const name = TRI_ObjectToString(args[0]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
{
@ -928,7 +1361,7 @@ static void JS_KeyspaceCount(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const name = TRI_ObjectToString(args[0]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
uint32_t count;
@ -942,7 +1375,7 @@ static void JS_KeyspaceCount(v8::FunctionCallbackInfo<v8::Value> const& args) {
}
if (args.Length() > 1) {
std::string const&& prefix = TRI_ObjectToString(args[1]);
std::string const prefix = TRI_ObjectToString(args[1]);
count = hash->keyspaceCount(prefix);
} else {
count = hash->keyspaceCount();
@ -971,7 +1404,7 @@ static void JS_KeyspaceExists(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const name = TRI_ObjectToString(args[0]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
@ -1003,7 +1436,7 @@ static void JS_KeyspaceKeys(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const name = TRI_ObjectToString(args[0]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
READ_LOCKER(readLocker, h->lock);
@ -1015,7 +1448,7 @@ static void JS_KeyspaceKeys(v8::FunctionCallbackInfo<v8::Value> const& args) {
}
if (args.Length() > 1) {
std::string const&& prefix = TRI_ObjectToString(args[1]);
std::string const prefix = TRI_ObjectToString(args[1]);
TRI_V8_RETURN(hash->keyspaceKeys(isolate, prefix));
}
@ -1041,7 +1474,7 @@ static void JS_KeyspaceGet(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const name = TRI_ObjectToString(args[0]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
READ_LOCKER(readLocker, h->lock);
@ -1053,7 +1486,7 @@ static void JS_KeyspaceGet(v8::FunctionCallbackInfo<v8::Value> const& args) {
}
if (args.Length() > 1) {
std::string const&& prefix = TRI_ObjectToString(args[1]);
std::string const prefix = TRI_ObjectToString(args[1]);
TRI_V8_RETURN(hash->keyspaceGet(isolate, prefix));
}
@ -1079,7 +1512,7 @@ static void JS_KeyspaceRemove(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const name = TRI_ObjectToString(args[0]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
READ_LOCKER(readLocker, h->lock);
@ -1091,7 +1524,7 @@ static void JS_KeyspaceRemove(v8::FunctionCallbackInfo<v8::Value> const& args) {
}
if (args.Length() > 1) {
std::string const&& prefix = TRI_ObjectToString(args[1]);
std::string const prefix = TRI_ObjectToString(args[1]);
TRI_V8_RETURN(hash->keyspaceRemove(isolate, prefix));
}
@ -1117,8 +1550,8 @@ static void JS_KeyGet(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
v8::Handle<v8::Value> result;
@ -1156,8 +1589,8 @@ static void JS_KeySet(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
bool replace = true;
if (args.Length() > 3) {
@ -1204,8 +1637,8 @@ static void JS_KeySetCas(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
if (args[2]->IsUndefined()) {
TRI_V8_THROW_EXCEPTION(TRI_ERROR_INTERNAL);
@ -1255,8 +1688,8 @@ static void JS_KeyRemove(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
bool result;
@ -1297,8 +1730,8 @@ static void JS_KeyExists(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
bool result;
@ -1343,8 +1776,8 @@ static void JS_KeyIncr(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
double incr = 1.0;
@ -1393,8 +1826,8 @@ static void JS_KeyUpdate(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
bool nullMeansRemove = false;
if (args.Length() > 3) {
@ -1432,8 +1865,8 @@ static void JS_KeyKeys(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
READ_LOCKER(readLocker, h->lock);
@ -1466,8 +1899,8 @@ static void JS_KeyValues(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
READ_LOCKER(readLocker, h->lock);
@ -1500,8 +1933,8 @@ static void JS_KeyPush(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
READ_LOCKER(readLocker, h->lock);
@ -1540,8 +1973,8 @@ static void JS_KeyPop(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
READ_LOCKER(readLocker, h->lock);
@ -1574,9 +2007,9 @@ static void JS_KeyTransfer(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& keyFrom = TRI_ObjectToString(args[1]);
std::string const&& keyTo = TRI_ObjectToString(args[2]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const keyFrom = TRI_ObjectToString(args[1]);
std::string const keyTo = TRI_ObjectToString(args[2]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
READ_LOCKER(readLocker, h->lock);
@ -1609,8 +2042,8 @@ static void JS_KeyGetAt(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
int64_t offset = TRI_ObjectToInt64(args[2]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
@ -1644,8 +2077,8 @@ static void JS_KeySetAt(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
int64_t offset = TRI_ObjectToInt64(args[2]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
@ -1684,8 +2117,8 @@ static void JS_KeyType(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
char const* result;
@ -1723,8 +2156,8 @@ static void JS_KeyCount(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_V8_THROW_EXCEPTION_INTERNAL("cannot extract vocbase");
}
std::string const&& name = TRI_ObjectToString(args[0]);
std::string const&& key = TRI_ObjectToString(args[1]);
std::string const name = TRI_ObjectToString(args[0]);
std::string const key = TRI_ObjectToString(args[1]);
auto h = &(static_cast<UserStructures*>(vocbase->_userStructures)->hashes);
uint32_t result;

View File

@ -2038,12 +2038,7 @@ static void JS_UseDatabase(v8::FunctionCallbackInfo<v8::Value> const& args) {
if (TRI_IsDeletedVocBase(vocbase)) {
TRI_V8_THROW_EXCEPTION(TRI_ERROR_ARANGO_DATABASE_NOT_FOUND);
}
if (TRI_EqualString(name.c_str(), vocbase->_name)) {
// same database. nothing to do
TRI_V8_RETURN(WrapVocBase(isolate, vocbase));
}
if (ServerState::instance()->isCoordinator()) {
vocbase = TRI_UseCoordinatorDatabaseServer(
static_cast<TRI_server_t*>(v8g->_server), name.c_str());
@ -2062,7 +2057,6 @@ static void JS_UseDatabase(v8::FunctionCallbackInfo<v8::Value> const& args) {
TRI_ASSERT(orig != nullptr);
v8g->_vocbase = vocbase;
TRI_ASSERT(orig != vocbase);
TRI_ReleaseDatabaseServer(static_cast<TRI_server_t*>(v8g->_server),
static_cast<TRI_vocbase_t*>(orig));

View File

@ -230,8 +230,8 @@ static void ObjectToMap(v8::Isolate* isolate,
for (uint32_t i = 0; i < props->Length(); i++) {
v8::Local<v8::Value> key = props->Get(i);
myMap.emplace(TRI_ObjectToString(key),
TRI_ObjectToString(v8Headers->Get(key)));
myMap.emplace(TRI_ObjectToString(isolate, key),
TRI_ObjectToString(isolate, v8Headers->Get(key)));
}
}
}
@ -317,7 +317,7 @@ static void ClientConnection_ConstructorCallback(
try {
if (args.Length() > 0 && args[0]->IsString()) {
std::string definition = TRI_ObjectToString(args[0]);
std::string definition = TRI_ObjectToString(isolate, args[0]);
connection = client->createConnection(definition);
} else {
connection = client->createConnection();
@ -374,15 +374,15 @@ static void ClientConnection_reconnect(
"reconnect(<endpoint>, <database>, [, <username>, <password>])");
}
std::string const endpoint = TRI_ObjectToString(args[0]);
std::string databaseName = TRI_ObjectToString(args[1]);
std::string const endpoint = TRI_ObjectToString(isolate, args[0]);
std::string databaseName = TRI_ObjectToString(isolate, args[1]);
std::string username;
if (args.Length() < 3) {
username = client->username();
} else {
username = TRI_ObjectToString(args[2]);
username = TRI_ObjectToString(isolate, args[2]);
}
std::string password;
@ -399,7 +399,7 @@ static void ClientConnection_reconnect(
std::cout << std::endl << std::flush;
}
} else {
password = TRI_ObjectToString(args[3]);
password = TRI_ObjectToString(isolate, args[3]);
}
client->setEndpoint(endpoint);
@ -823,7 +823,7 @@ static void ClientConnection_httpSendFile(
TRI_Utf8ValueNFC url(TRI_UNKNOWN_MEM_ZONE, args[0]);
std::string const infile = TRI_ObjectToString(args[1]);
std::string const infile = TRI_ObjectToString(isolate, args[1]);
if (!FileUtils::exists(infile)) {
TRI_V8_THROW_EXCEPTION(TRI_ERROR_FILE_NOT_FOUND);
@ -921,7 +921,7 @@ static void ClientConnection_importCsv(
v8::Handle<v8::Object> options = args[2]->ToObject();
// separator
if (options->Has(separatorKey)) {
separator = TRI_ObjectToString(options->Get(separatorKey));
separator = TRI_ObjectToString(isolate, options->Get(separatorKey));
if (separator.length() < 1) {
TRI_V8_THROW_EXCEPTION_PARAMETER(
@ -931,7 +931,7 @@ static void ClientConnection_importCsv(
// quote
if (options->Has(quoteKey)) {
quote = TRI_ObjectToString(options->Get(quoteKey));
quote = TRI_ObjectToString(isolate, options->Get(quoteKey));
if (quote.length() > 1) {
TRI_V8_THROW_EXCEPTION_PARAMETER(
@ -954,8 +954,8 @@ static void ClientConnection_importCsv(
ih.setQuote(quote);
ih.setSeparator(separator.c_str());
std::string fileName = TRI_ObjectToString(args[0]);
std::string collectionName = TRI_ObjectToString(args[1]);
std::string fileName = TRI_ObjectToString(isolate, args[0]);
std::string collectionName = TRI_ObjectToString(isolate, args[1]);
if (ih.importDelimited(collectionName, fileName, ImportHelper::CSV)) {
v8::Handle<v8::Object> result = v8::Object::New(isolate);
@ -1020,8 +1020,8 @@ static void ClientConnection_importJson(
ImportHelper ih(httpClient.get(), DefaultChunkSize);
std::string fileName = TRI_ObjectToString(args[0]);
std::string collectionName = TRI_ObjectToString(args[1]);
std::string fileName = TRI_ObjectToString(isolate, args[0]);
std::string collectionName = TRI_ObjectToString(isolate, args[1]);
if (ih.importJson(collectionName, fileName)) {
v8::Handle<v8::Object> result = v8::Object::New(isolate);
@ -1255,7 +1255,7 @@ static void ClientConnection_setDatabaseName(
TRI_V8_THROW_EXCEPTION_USAGE("setDatabaseName(<name>)");
}
std::string const dbName = TRI_ObjectToString(args[0]);
std::string const dbName = TRI_ObjectToString(isolate, args[0]);
v8connection->setDatabaseName(dbName);
client->setDatabaseName(dbName);

View File

@ -462,7 +462,7 @@ bool V8ShellFeature::runScript(std::vector<std::string> const& files,
auto oldDirname =
current->Get(TRI_V8_ASCII_STRING2(_isolate, "__dirname"));
auto dirname = FileUtils::dirname(TRI_ObjectToString(filename).c_str());
auto dirname = FileUtils::dirname(TRI_ObjectToString(filename));
current->ForceSet(TRI_V8_ASCII_STRING2(_isolate, "__dirname"),
TRI_V8_STD_STRING2(_isolate, dirname));

View File

@ -883,8 +883,8 @@ function runStressTest (options, command, testname) {
// / @brief executes a command, possible with valgrind
// //////////////////////////////////////////////////////////////////////////////
function executeValgrind (cmd, args, options, valgrindTest) {
if (valgrindTest && options.valgrind) {
function executeArangod (cmd, args, options) {
if (options.valgrind) {
let valgrindOpts = {};
if (options.valgrindArgs) {
@ -1269,7 +1269,7 @@ function shutdownInstance (instanceInfo, options) {
// //////////////////////////////////////////////////////////////////////////////
function startInstanceCluster (instanceInfo, protocol, options,
addArgs, name, rootDir) {
addArgs, rootDir) {
let makeArgs = function (name, args) {
args = args || options.extraArgs;
@ -1279,7 +1279,7 @@ function startInstanceCluster (instanceInfo, protocol, options,
let subArgs = makeArgsArangod(options, fs.join(subDir, 'apps'));
subArgs = Object.assign(subArgs, args);
return [subArgs, name, subDir];
return [subArgs, subDir];
};
options.agencySize = 1;
@ -1342,7 +1342,7 @@ function startInstanceCluster (instanceInfo, protocol, options,
return true;
}
function startArango (protocol, options, addArgs, name, rootDir, isAgency) {
function startArango (protocol, options, addArgs, rootDir, isAgency) {
const dataDir = fs.join(rootDir, 'data');
const appDir = fs.join(rootDir, 'apps');
@ -1389,7 +1389,7 @@ function startArango (protocol, options, addArgs, name, rootDir, isAgency) {
}
instanceInfo.url = endpointToURL(instanceInfo.endpoint);
instanceInfo.pid = executeValgrind(ARANGOD_BIN, toArgv(args), options, name).pid;
instanceInfo.pid = executeArangod(ARANGOD_BIN, toArgv(args), options).pid;
if (platform.substr(0, 3) === 'win') {
const procdumpArgs = [
@ -1411,7 +1411,7 @@ function startArango (protocol, options, addArgs, name, rootDir, isAgency) {
}
function startInstanceAgency (instanceInfo, protocol, options,
addArgs, testname, rootDir) {
addArgs, rootDir) {
const dataDir = fs.join(rootDir, 'data');
const N = options.agencySize;
@ -1446,7 +1446,7 @@ function startInstanceAgency (instanceInfo, protocol, options,
let dir = fs.join(rootDir, 'agency-' + i);
fs.makeDirectoryRecursive(dir);
instanceInfo.arangods.push(startArango(protocol, options, instanceArgs, testname, rootDir, true));
instanceInfo.arangods.push(startArango(protocol, options, instanceArgs, rootDir, true));
}
instanceInfo.endpoint = instanceInfo.arangods[instanceInfo.arangods.length - 1].endpoint;
@ -1457,8 +1457,8 @@ function startInstanceAgency (instanceInfo, protocol, options,
}
function startInstanceSingleServer (instanceInfo, protocol, options,
addArgs, testname, rootDir) {
instanceInfo.arangods.push(startArango(protocol, options, addArgs, testname, rootDir, false));
addArgs, rootDir) {
instanceInfo.arangods.push(startArango(protocol, options, addArgs, rootDir, false));
instanceInfo.endpoint = instanceInfo.arangods[instanceInfo.arangods.length - 1].endpoint;
instanceInfo.url = instanceInfo.arangods[instanceInfo.arangods.length - 1].url;
@ -1482,13 +1482,13 @@ function startInstance (protocol, options, addArgs, testname, tmpDir) {
}
else if (options.cluster) {
startInstanceCluster(instanceInfo, protocol, options,
addArgs, testname, rootDir);
addArgs, rootDir);
} else if (options.agency) {
startInstanceAgency(instanceInfo, protocol, options,
addArgs, testname, rootDir);
addArgs, rootDir);
} else {
startInstanceSingleServer(instanceInfo, protocol, options,
addArgs, testname, rootDir);
addArgs, rootDir);
}
if (!options.cluster) {

View File

@ -163,8 +163,26 @@ global.DEFINE_MODULE('buffer', (function () {
// Buffer
function Buffer (subject, encoding, offset) {
var handler = {
get: function(target, name) {
if (name === '__buffer__') { return true; }
if (typeof name === 'string' && name.match(/^\d+$/)) {
return target.parent[name];
}
return target[name];
},
set: function(target, name, value) {
if (typeof name === 'string' && name.match(/^\d+$/)) {
target.parent[name] = value;
} else {
target[name] = value;
}
return true;
}
};
if (!(this instanceof Buffer)) {
return new Buffer(subject, encoding, offset);
var b = new Buffer(subject, encoding, offset);
return new Proxy(b, handler);
}
var type;
@ -234,6 +252,7 @@ global.DEFINE_MODULE('buffer', (function () {
}
return new Proxy(this, handler);
// SlowBuffer.makeFastBuffer(this.parent, this, this.offset, this.length)
}
@ -246,6 +265,8 @@ global.DEFINE_MODULE('buffer', (function () {
exports.SlowBuffer = SlowBuffer;
exports.Buffer = Buffer;
Buffer.prototype.__buffer__ = true;
Buffer.isEncoding = function (encoding) {
switch (encoding && encoding.toLowerCase()) {
case 'hex':

2
js/node/node_modules/timezone/.npmignore generated vendored Normal file
View File

@ -0,0 +1,2 @@
.AppleDouble
.DS_Store

1
js/node/node_modules/timezone/Africa/Abidjan.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Abidjan":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Accra.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Accra":["z",{"wallclock":-1640995200000,"format":"%s","abbrev":"GMT","offset":0,"posix":-1640995148000,"save":0,"rules":"Ghana"},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-52000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Ghana":[{"from":1920,"to":1942,"month":8,"day":[7,1],"time":0,"clock":"wallclock","save":20,"letter":"GHST","saved":0},{"from":1920,"to":1942,"month":11,"day":[7,31],"time":0,"clock":"wallclock","save":0,"letter":"GMT","saved":1200000}]}}

1
js/node/node_modules/timezone/Africa/Addis_Ababa.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Addis_Ababa":["z",{"wallclock":-315619200000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-315629100000,"save":0},{"wallclock":-946771200000,"format":"BEAUT","abbrev":"BEAUT","offset":9900000,"posix":-946780200000,"save":0},{"wallclock":-1262304000000,"format":"BEAT","abbrev":"BEAT","offset":9000000,"posix":-1262314800000,"save":0},{"wallclock":-1309737600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-1309746436000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":8836000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Algiers.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Algiers":["z",{"wallclock":357523200000,"format":"CET","abbrev":"CET","offset":3600000,"posix":357523200000,"save":0},{"wallclock":309744000000,"format":"WE%sT","abbrev":"WET","offset":0,"posix":309740400000,"save":0,"rules":"Algeria"},{"wallclock":246240000000,"format":"CE%sT","abbrev":"CET","offset":3600000,"posix":246236400000,"save":0,"rules":"Algeria"},{"wallclock":-212025600000,"format":"WE%sT","abbrev":"WET","offset":0,"posix":-212029200000,"save":0,"rules":"Algeria"},{"wallclock":-439430400000,"format":"CET","abbrev":"CET","offset":3600000,"posix":-439430400000,"save":0},{"wallclock":-733276800000,"format":"WET","abbrev":"WET","offset":0,"posix":-733280400000,"save":0},{"wallclock":-942012000000,"format":"CE%sT","abbrev":"CET","offset":3600000,"posix":-942012000000,"save":0,"rules":"Algeria"},{"wallclock":-1855958400000,"format":"WE%sT","abbrev":"WET","offset":0,"posix":-1855958961000,"save":0,"rules":"Algeria"},{"wallclock":-2486678340000,"format":"PMT","abbrev":"PMT","offset":561000,"posix":-2486679072000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":732000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Algeria":[{"from":1980,"to":1980,"month":9,"day":[7,31],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1980,"to":1980,"month":3,"day":[7,25],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1978,"to":1978,"month":8,"day":[7,22],"time":180,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1978,"to":1978,"month":2,"day":[7,24],"time":60,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1977,"to":1977,"month":9,"day":[7,21],"time":0,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":1977,"to":1977,"month":4,"day":[7,6],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1971,"to":1971,"month":8,"day":[7,26],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1971,"to":1971,"month":3,"day":[7,25],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1944,"to":1945,"month":3,"day":[1,1],"time":120,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1945,"to":1945,"month":8,"day":[7,16],"time":60,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1944,"to":1944,"month":9,"day":[7,8],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1939,"to":1939,"month":10,"day":[7,19],"time":60,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1939,"to":1939,"month":8,"day":[7,11],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1921,"to":1921,"month":5,"day":[7,21],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1921,"to":1921,"month":2,"day":[7,14],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1920,"to":1920,"month":9,"day":[7,23],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1920,"to":1920,"month":1,"day":[7,14],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1916,"to":1919,"month":9,"day":[0,1],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1919,"to":1919,"month":2,"day":[7,1],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1918,"to":1918,"month":2,"day":[7,9],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1917,"to":1917,"month":2,"day":[7,24],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1916,"to":1916,"month":5,"day":[7,14],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Asmara.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Asmara":["z",{"wallclock":-315619200000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-315629100000,"save":0},{"wallclock":-946771200000,"format":"BEAUT","abbrev":"BEAUT","offset":9900000,"posix":-946780200000,"save":0},{"wallclock":-1262304000000,"format":"BEAT","abbrev":"BEAT","offset":9000000,"posix":-1262314800000,"save":0},{"wallclock":-1309737600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-1309746436000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":8836000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Asmera.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Asmera":["z",{"wallclock":-315619200000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-315629100000,"save":0},{"wallclock":-946771200000,"format":"BEAUT","abbrev":"BEAUT","offset":9900000,"posix":-946780200000,"save":0},{"wallclock":-1262304000000,"format":"BEAT","abbrev":"BEAT","offset":9000000,"posix":-1262314800000,"save":0},{"wallclock":-1309737600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-1309746436000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":8836000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Bamako.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Bamako":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Bangui.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Bangui":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Banjul.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Banjul":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Bissau.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Bissau":["z",{"wallclock":157766400000,"format":"GMT","abbrev":"GMT","offset":0,"posix":157770000000,"save":0},{"wallclock":-1830384000000,"format":"WAT","abbrev":"WAT","offset":-3600000,"posix":-1830380260000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-3740000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Blantyre.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Blantyre":["z",{"wallclock":-2109283200000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":-2109291020000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7820000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Brazzaville.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Brazzaville":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Bujumbura.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Bujumbura":["z",{"wallclock":-2109283200000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":-2109291020000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7820000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Cairo.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Cairo":["z",{"wallclock":-2185401600000,"format":"EE%sT","abbrev":"EET","offset":7200000,"posix":-2185409109000,"save":0,"rules":"Egypt"},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7509000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Egypt":[{"from":2014,"to":2014,"month":8,"day":[4,-30],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2014,"to":2014,"month":5,"day":[7,26],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2014,"to":2014,"month":4,"day":[7,15],"time":1440,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2014,"to":2014,"month":6,"day":[7,31],"time":1440,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2010,"to":2010,"month":8,"day":[4,-30],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2010,"to":2010,"month":8,"day":[7,9],"time":1440,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2010,"to":2010,"month":7,"day":[7,10],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1995,"to":2010,"month":3,"day":[5,-30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2009,"to":2009,"month":7,"day":[7,20],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2008,"to":2008,"month":7,"day":[4,-31],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2007,"to":2007,"month":8,"day":[4,1],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2006,"to":2006,"month":8,"day":[7,21],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1995,"to":2005,"month":8,"day":[4,-30],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1966,"to":1994,"month":9,"day":[7,1],"time":180,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1990,"to":1994,"month":4,"day":[7,1],"time":60,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1989,"to":1989,"month":4,"day":[7,6],"time":60,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1984,"to":1988,"month":4,"day":[7,1],"time":60,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1983,"to":1983,"month":6,"day":[7,12],"time":60,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1982,"to":1982,"month":6,"day":[7,25],"time":60,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1959,"to":1981,"month":4,"day":[7,1],"time":60,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1959,"to":1965,"month":8,"day":[7,30],"time":180,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1958,"to":1958,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1957,"to":1958,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1957,"to":1957,"month":4,"day":[7,10],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1945,"to":1945,"month":3,"day":[7,16],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1943,"to":1945,"month":10,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1942,"to":1944,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1942,"to":1942,"month":9,"day":[7,27],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1941,"to":1941,"month":8,"day":[7,16],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1941,"to":1941,"month":3,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1940,"to":1940,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1940,"to":1940,"month":6,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Casablanca.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1
js/node/node_modules/timezone/Africa/Ceuta.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1
js/node/node_modules/timezone/Africa/Conakry.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Conakry":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Dakar.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Dakar":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Dar_es_Salaam":["z",{"wallclock":-315619200000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-315629100000,"save":0},{"wallclock":-946771200000,"format":"BEAUT","abbrev":"BEAUT","offset":9900000,"posix":-946780200000,"save":0},{"wallclock":-1262304000000,"format":"BEAT","abbrev":"BEAT","offset":9000000,"posix":-1262314800000,"save":0},{"wallclock":-1309737600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-1309746436000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":8836000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Djibouti.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Djibouti":["z",{"wallclock":-315619200000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-315629100000,"save":0},{"wallclock":-946771200000,"format":"BEAUT","abbrev":"BEAUT","offset":9900000,"posix":-946780200000,"save":0},{"wallclock":-1262304000000,"format":"BEAT","abbrev":"BEAT","offset":9000000,"posix":-1262314800000,"save":0},{"wallclock":-1309737600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-1309746436000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":8836000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Douala.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Douala":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/El_Aaiun.js generated vendored Normal file

File diff suppressed because one or more lines are too long

1
js/node/node_modules/timezone/Africa/Freetown.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Freetown":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Gaborone.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Gaborone":["z",{"wallclock":-2109283200000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":-2109291020000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7820000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Harare.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Harare":["z",{"wallclock":-2109283200000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":-2109291020000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7820000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Johannesburg.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Johannesburg":["z",{"wallclock":-2109283200000,"format":"SAST","abbrev":"SAST","offset":7200000,"posix":-2109288600000,"save":0,"rules":"SA"},{"wallclock":-2458166400000,"format":"SAST","abbrev":"SAST","offset":5400000,"posix":-2458173120000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":6720000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"SA":[{"from":1943,"to":1944,"month":2,"day":[0,15],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1942,"to":1943,"month":8,"day":[0,15],"time":120,"clock":"wallclock","save":60,"letter":"","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Juba.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Juba":["z",{"wallclock":947937600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":947930400000,"save":0},{"wallclock":-1230768000000,"format":"CA%sT","abbrev":"CAT","offset":7200000,"posix":-1230775808000,"save":0,"rules":"Sudan"},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7808000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Sudan":[{"from":1970,"to":1985,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1972,"to":1985,"month":3,"day":[0,-30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1971,"to":1971,"month":3,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1970,"to":1970,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Kampala.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Kampala":["z",{"wallclock":-315619200000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-315629100000,"save":0},{"wallclock":-946771200000,"format":"BEAUT","abbrev":"BEAUT","offset":9900000,"posix":-946780200000,"save":0},{"wallclock":-1262304000000,"format":"BEAT","abbrev":"BEAT","offset":9000000,"posix":-1262314800000,"save":0},{"wallclock":-1309737600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-1309746436000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":8836000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Khartoum.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Khartoum":["z",{"wallclock":947937600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":947930400000,"save":0},{"wallclock":-1230768000000,"format":"CA%sT","abbrev":"CAT","offset":7200000,"posix":-1230775808000,"save":0,"rules":"Sudan"},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7808000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Sudan":[{"from":1970,"to":1985,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1972,"to":1985,"month":3,"day":[0,-30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1971,"to":1971,"month":3,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1970,"to":1970,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Kigali.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Kigali":["z",{"wallclock":-2109283200000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":-2109291020000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7820000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Kinshasa.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Kinshasa":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Lagos.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Lagos":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Libreville.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Libreville":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Lome.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Lome":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Luanda.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Luanda":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Lubumbashi.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Lubumbashi":["z",{"wallclock":-2109283200000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":-2109291020000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7820000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Lusaka.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Lusaka":["z",{"wallclock":-2109283200000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":-2109291020000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7820000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Malabo.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Malabo":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Maputo.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Maputo":["z",{"wallclock":-2109283200000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":-2109291020000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":7820000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Maseru.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Maseru":["z",{"wallclock":-2109283200000,"format":"SAST","abbrev":"SAST","offset":7200000,"posix":-2109288600000,"save":0,"rules":"SA"},{"wallclock":-2458166400000,"format":"SAST","abbrev":"SAST","offset":5400000,"posix":-2458173120000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":6720000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"SA":[{"from":1943,"to":1944,"month":2,"day":[0,15],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1942,"to":1943,"month":8,"day":[0,15],"time":120,"clock":"wallclock","save":60,"letter":"","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Mbabane.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Mbabane":["z",{"wallclock":-2109283200000,"format":"SAST","abbrev":"SAST","offset":7200000,"posix":-2109288600000,"save":0,"rules":"SA"},{"wallclock":-2458166400000,"format":"SAST","abbrev":"SAST","offset":5400000,"posix":-2458173120000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":6720000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"SA":[{"from":1943,"to":1944,"month":2,"day":[0,15],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1942,"to":1943,"month":8,"day":[0,15],"time":120,"clock":"wallclock","save":60,"letter":"","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Mogadishu.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Mogadishu":["z",{"wallclock":-315619200000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-315629100000,"save":0},{"wallclock":-946771200000,"format":"BEAUT","abbrev":"BEAUT","offset":9900000,"posix":-946780200000,"save":0},{"wallclock":-1262304000000,"format":"BEAT","abbrev":"BEAT","offset":9000000,"posix":-1262314800000,"save":0},{"wallclock":-1309737600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-1309746436000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":8836000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Monrovia.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Monrovia":["z",{"wallclock":73526400000,"format":"GMT","abbrev":"GMT","offset":0,"posix":73529070000,"save":0},{"wallclock":-1604361600000,"format":"LRT","abbrev":"LRT","offset":-2670000,"posix":-1604359012000,"save":0},{"wallclock":-2776982400000,"format":"MMT","abbrev":"MMT","offset":-2588000,"posix":-2776979812000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-2588000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Nairobi.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Nairobi":["z",{"wallclock":-315619200000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-315629100000,"save":0},{"wallclock":-946771200000,"format":"BEAUT","abbrev":"BEAUT","offset":9900000,"posix":-946780200000,"save":0},{"wallclock":-1262304000000,"format":"BEAT","abbrev":"BEAT","offset":9000000,"posix":-1262314800000,"save":0},{"wallclock":-1309737600000,"format":"EAT","abbrev":"EAT","offset":10800000,"posix":-1309746436000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":8836000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Ndjamena.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Ndjamena":["z",{"wallclock":321321600000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":321314400000,"save":0},{"wallclock":308707200000,"format":"WAST","abbrev":"WAST","offset":3600000,"posix":308703600000,"save":3600000},{"wallclock":-1830384000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1830387612000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":3612000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Niamey.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Niamey":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Nouakchott.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Nouakchott":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Ouagadougou.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Ouagadougou":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Porto-Novo.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Porto-Novo":["z",{"wallclock":-1588464000000,"format":"WAT","abbrev":"WAT","offset":3600000,"posix":-1588464816000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":816000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Sao_Tome.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Sao_Tome":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Timbuktu.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Timbuktu":["z",{"wallclock":-1830384000000,"format":"GMT","abbrev":"GMT","offset":0,"posix":-1830383032000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-968000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/Africa/Tripoli.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Tripoli":["z",{"wallclock":1382666400000,"format":"EET","abbrev":"EET","offset":7200000,"posix":1382659200000,"save":0},{"wallclock":1352512800000,"format":"CE%sT","abbrev":"CET","offset":3600000,"posix":1352505600000,"save":0,"rules":"Libya"},{"wallclock":875923200000,"format":"EET","abbrev":"EET","offset":7200000,"posix":875916000000,"save":0},{"wallclock":844041600000,"format":"CE%sT","abbrev":"CET","offset":3600000,"posix":844034400000,"save":0,"rules":"Libya"},{"wallclock":641779200000,"format":"EET","abbrev":"EET","offset":7200000,"posix":641775600000,"save":0},{"wallclock":378691200000,"format":"CE%sT","abbrev":"CET","offset":3600000,"posix":378684000000,"save":0,"rules":"Libya"},{"wallclock":-347155200000,"format":"EET","abbrev":"EET","offset":7200000,"posix":-347158800000,"save":0},{"wallclock":-1577923200000,"format":"CE%sT","abbrev":"CET","offset":3600000,"posix":-1577926364000,"save":0,"rules":"Libya"},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":3164000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Libya":[{"from":2013,"to":2013,"month":9,"day":[5,-31],"time":120,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":2013,"to":2013,"month":2,"day":[5,-31],"time":60,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1997,"to":1997,"month":9,"day":[7,4],"time":0,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":1997,"to":1997,"month":3,"day":[7,4],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1987,"to":1989,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1987,"to":1989,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1986,"to":1986,"month":9,"day":[7,3],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1986,"to":1986,"month":3,"day":[7,4],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1985,"to":1985,"month":3,"day":[7,6],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1982,"to":1985,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1982,"to":1984,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1956,"to":1956,"month":0,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1955,"to":1955,"month":8,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1954,"to":1954,"month":0,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1953,"to":1953,"month":9,"day":[7,9],"time":120,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1952,"to":1952,"month":0,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1951,"to":1951,"month":9,"day":[7,14],"time":120,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Tunis.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Tunis":["z",{"wallclock":-1855958400000,"format":"CE%sT","abbrev":"CET","offset":3600000,"posix":-1855958961000,"save":0,"rules":"Tunisia"},{"wallclock":-2797200000000,"format":"PMT","abbrev":"PMT","offset":561000,"posix":-2797202444000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":2444000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Tunisia":[{"from":2006,"to":2008,"month":9,"day":[0,-31],"time":180,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2006,"to":2008,"month":2,"day":[0,-31],"time":120,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2005,"to":2005,"month":8,"day":[7,30],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2005,"to":2005,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1990,"to":1990,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1988,"to":1990,"month":8,"day":[0,-30],"time":60,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1989,"to":1989,"month":2,"day":[7,26],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1988,"to":1988,"month":5,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1978,"to":1978,"month":9,"day":[7,1],"time":60,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1978,"to":1978,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1977,"to":1977,"month":8,"day":[7,24],"time":60,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1977,"to":1977,"month":3,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1944,"to":1945,"month":3,"day":[1,1],"time":120,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1945,"to":1945,"month":8,"day":[7,16],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1944,"to":1944,"month":9,"day":[7,8],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":2,"day":[7,29],"time":120,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1943,"to":1943,"month":9,"day":[7,4],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":3,"day":[7,25],"time":120,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1943,"to":1943,"month":3,"day":[7,17],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1942,"to":1942,"month":10,"day":[7,2],"time":180,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1942,"to":1942,"month":2,"day":[7,9],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":9,"day":[7,6],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1940,"to":1940,"month":1,"day":[7,25],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1939,"to":1939,"month":10,"day":[7,18],"time":1440,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1939,"to":1939,"month":3,"day":[7,15],"time":1380,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

1
js/node/node_modules/timezone/Africa/Windhoek.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"Africa/Windhoek":["z",{"wallclock":765331200000,"format":"WA%sT","abbrev":"WAT","offset":3600000,"posix":765324000000,"save":0,"rules":"Namibia"},{"wallclock":637977600000,"format":"CAT","abbrev":"CAT","offset":7200000,"posix":637970400000,"save":0},{"wallclock":-845244000000,"format":"SAST","abbrev":"SAST","offset":7200000,"posix":-845254800000,"save":0},{"wallclock":-860968800000,"format":"SAST","abbrev":"SAST","offset":7200000,"posix":-860976000000,"save":3600000},{"wallclock":-2109283200000,"format":"SAST","abbrev":"SAST","offset":7200000,"posix":-2109288600000,"save":0},{"wallclock":-2458166400000,"format":"SWAT","abbrev":"SWAT","offset":5400000,"posix":-2458170504000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":4104000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Namibia":[{"from":1994,"to":1.7976931348623157e+308,"month":8,"day":[0,1],"time":120,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1995,"to":1.7976931348623157e+308,"month":3,"day":[0,1],"time":120,"clock":"wallclock","save":0,"letter":"","saved":3600000}]}}

1
js/node/node_modules/timezone/Africa/index.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports = [require("./Abidjan.js"),require("./Accra.js"),require("./Addis_Ababa.js"),require("./Algiers.js"),require("./Asmara.js"),require("./Asmera.js"),require("./Bamako.js"),require("./Bangui.js"),require("./Banjul.js"),require("./Bissau.js"),require("./Blantyre.js"),require("./Brazzaville.js"),require("./Bujumbura.js"),require("./Cairo.js"),require("./Casablanca.js"),require("./Ceuta.js"),require("./Conakry.js"),require("./Dakar.js"),require("./Dar_es_Salaam.js"),require("./Djibouti.js"),require("./Douala.js"),require("./El_Aaiun.js"),require("./Freetown.js"),require("./Gaborone.js"),require("./Harare.js"),require("./Johannesburg.js"),require("./Juba.js"),require("./Kampala.js"),require("./Khartoum.js"),require("./Kigali.js"),require("./Kinshasa.js"),require("./Lagos.js"),require("./Libreville.js"),require("./Lome.js"),require("./Luanda.js"),require("./Lubumbashi.js"),require("./Lusaka.js"),require("./Malabo.js"),require("./Maputo.js"),require("./Maseru.js"),require("./Mbabane.js"),require("./Mogadishu.js"),require("./Monrovia.js"),require("./Nairobi.js"),require("./Ndjamena.js"),require("./Niamey.js"),require("./Nouakchott.js"),require("./Ouagadougou.js"),require("./Porto-Novo.js"),require("./Sao_Tome.js"),require("./Timbuktu.js"),require("./Tripoli.js"),require("./Tunis.js"),require("./Windhoek.js")]

1
js/node/node_modules/timezone/America/Adak.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Adak":["z",{"wallclock":438998400000,"format":"H%sT","abbrev":"HST","offset":-36000000,"posix":439034400000,"save":0,"rules":"US"},{"wallclock":436327200000,"format":"AH%sT","abbrev":"AHST","offset":-36000000,"posix":436363200000,"save":0,"rules":"US"},{"wallclock":-31536000000,"format":"B%sT","abbrev":"BST","offset":-39600000,"posix":-31496400000,"save":0,"rules":"US"},{"wallclock":-86918400000,"format":"BST","abbrev":"BST","offset":-39600000,"posix":-86878800000,"save":0},{"wallclock":-757382400000,"format":"NST","abbrev":"NST","offset":-39600000,"posix":-757342800000,"save":0},{"wallclock":-883612800000,"format":"N%sT","abbrev":"NST","offset":-39600000,"posix":-883573200000,"save":0,"rules":"US"},{"wallclock":-2188987200000,"format":"NST","abbrev":"NST","offset":-39600000,"posix":-2188944802000,"save":0},{"wallclock":-3225312000000,"format":"LMT","abbrev":"LMT","offset":-42398000,"posix":-3225356001000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":44001000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"US":[{"from":2007,"to":1.7976931348623157e+308,"month":10,"day":[0,1],"time":120,"clock":"wallclock","save":0,"letter":"S","saved":3600000},{"from":2007,"to":1.7976931348623157e+308,"month":2,"day":[0,8],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1987,"to":2006,"month":3,"day":[0,1],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1967,"to":2006,"month":9,"day":[0,-31],"time":120,"clock":"wallclock","save":0,"letter":"S","saved":3600000},{"from":1976,"to":1986,"month":3,"day":[0,-30],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1975,"to":1975,"month":1,"day":[7,23],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1974,"to":1974,"month":0,"day":[7,6],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1967,"to":1973,"month":3,"day":[0,-30],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1945,"to":1945,"month":8,"day":[0,-30],"time":120,"clock":"wallclock","save":0,"letter":"S","saved":3600000},{"from":1945,"to":1945,"month":7,"day":[7,14],"time":1380,"clock":"posix","save":60,"letter":"P","saved":3600000},{"from":1942,"to":1942,"month":1,"day":[7,9],"time":120,"clock":"wallclock","save":60,"letter":"W","saved":0},{"from":1918,"to":1919,"month":9,"day":[0,-31],"time":120,"clock":"wallclock","save":0,"letter":"S","saved":3600000},{"from":1918,"to":1919,"month":2,"day":[0,-31],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0}]}}

1
js/node/node_modules/timezone/America/Anchorage.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Anchorage":["z",{"wallclock":438998400000,"format":"AK%sT","abbrev":"AKST","offset":-32400000,"posix":439030800000,"save":0,"rules":"US"},{"wallclock":436327200000,"format":"Y%sT","abbrev":"YST","offset":-32400000,"posix":436359600000,"save":0,"rules":"US"},{"wallclock":-31536000000,"format":"AH%sT","abbrev":"AHST","offset":-36000000,"posix":-31500000000,"save":0,"rules":"US"},{"wallclock":-86918400000,"format":"AHST","abbrev":"AHST","offset":-36000000,"posix":-86882400000,"save":0},{"wallclock":-757382400000,"format":"CAT","abbrev":"CAT","offset":-36000000,"posix":-757346400000,"save":0},{"wallclock":-769428000000,"format":"CAT/CAPT","abbrev":"CAPT","offset":-36000000,"posix":-769395600000,"save":3600000,"rules":"US"},{"wallclock":-883612800000,"format":"CAT/CAWT","abbrev":"CAT","offset":-36000000,"posix":-883576800000,"save":0,"rules":"US"},{"wallclock":-2188987200000,"format":"CAT","abbrev":"CAT","offset":-36000000,"posix":-2188951224000,"save":0},{"wallclock":-3225312000000,"format":"LMT","abbrev":"LMT","offset":-35976000,"posix":-3225362424000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":50424000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"US":[{"from":2007,"to":1.7976931348623157e+308,"month":10,"day":[0,1],"time":120,"clock":"wallclock","save":0,"letter":"S","saved":3600000},{"from":2007,"to":1.7976931348623157e+308,"month":2,"day":[0,8],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1987,"to":2006,"month":3,"day":[0,1],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1967,"to":2006,"month":9,"day":[0,-31],"time":120,"clock":"wallclock","save":0,"letter":"S","saved":3600000},{"from":1976,"to":1986,"month":3,"day":[0,-30],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1975,"to":1975,"month":1,"day":[7,23],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1974,"to":1974,"month":0,"day":[7,6],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1967,"to":1973,"month":3,"day":[0,-30],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0},{"from":1945,"to":1945,"month":8,"day":[0,-30],"time":120,"clock":"wallclock","save":0,"letter":"S","saved":3600000},{"from":1945,"to":1945,"month":7,"day":[7,14],"time":1380,"clock":"posix","save":60,"letter":"P","saved":3600000},{"from":1942,"to":1942,"month":1,"day":[7,9],"time":120,"clock":"wallclock","save":60,"letter":"W","saved":0},{"from":1918,"to":1919,"month":9,"day":[0,-31],"time":120,"clock":"wallclock","save":0,"letter":"S","saved":3600000},{"from":1918,"to":1919,"month":2,"day":[0,-31],"time":120,"clock":"wallclock","save":60,"letter":"D","saved":0}]}}

1
js/node/node_modules/timezone/America/Anguilla.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Anguilla":["z",{"wallclock":-1825113600000,"format":"AST","abbrev":"AST","offset":-14400000,"posix":-1825098836000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-14764000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/America/Antigua.js generated vendored Normal file
View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Antigua":["z",{"wallclock":-1825113600000,"format":"AST","abbrev":"AST","offset":-14400000,"posix":-1825098836000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-14764000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{}}

1
js/node/node_modules/timezone/America/Araguaina.js generated vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Argentina/Buenos_Aires":["z",{"wallclock":952041600000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":952052400000,"save":0,"rules":"Arg"},{"wallclock":938908800000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":938919600000,"save":3600000,"rules":"Arg"},{"wallclock":-7603200000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":-7588800000,"save":0,"rules":"Arg"},{"wallclock":-1233446400000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":-1233432000000,"save":3600000,"rules":"Arg"},{"wallclock":-1567468800000,"format":"ART","abbrev":"ART","offset":-14400000,"posix":-1567453392000,"save":0},{"wallclock":-2372112000000,"format":"CMT","abbrev":"CMT","offset":-15408000,"posix":-2372097972000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-14028000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Arg":[{"from":2008,"to":2009,"month":2,"day":[0,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2008,"to":2008,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2007,"to":2007,"month":11,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2000,"to":2000,"month":2,"day":[7,3],"time":0,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":1999,"to":1999,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1989,"to":1993,"month":2,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1989,"to":1992,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1988,"to":1988,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1974,"to":1974,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1974,"to":1974,"month":0,"day":[7,23],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1968,"to":1969,"month":3,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1967,"to":1968,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1967,"to":1967,"month":3,"day":[7,2],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1963,"to":1963,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1963,"to":1963,"month":11,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":7,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":5,"day":[7,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1940,"to":1940,"month":6,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1932,"to":1940,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1932,"to":1939,"month":10,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1931,"to":1931,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1931,"to":1931,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1930,"to":1930,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Argentina/Catamarca":["z",{"wallclock":1224288000000,"format":"ART","abbrev":"ART","offset":-10800000,"posix":1224298800000,"save":0},{"wallclock":1087689600000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":1087704000000,"save":0,"rules":"Arg"},{"wallclock":1086048000000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":1086058800000,"save":0},{"wallclock":952041600000,"format":"ART","abbrev":"ART","offset":-10800000,"posix":952052400000,"save":0},{"wallclock":938908800000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":938919600000,"save":3600000,"rules":"Arg"},{"wallclock":687916800000,"format":"AR%sT","abbrev":"ARST","offset":-10800000,"posix":687931200000,"save":3600000,"rules":"Arg"},{"wallclock":667958400000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":667965600000,"save":0},{"wallclock":-7603200000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":-7588800000,"save":0,"rules":"Arg"},{"wallclock":-1233446400000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":-1233432000000,"save":3600000,"rules":"Arg"},{"wallclock":-1567468800000,"format":"ART","abbrev":"ART","offset":-14400000,"posix":-1567453392000,"save":0},{"wallclock":-2372112000000,"format":"CMT","abbrev":"CMT","offset":-15408000,"posix":-2372096212000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-15788000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Arg":[{"from":2008,"to":2009,"month":2,"day":[0,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2008,"to":2008,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2007,"to":2007,"month":11,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2000,"to":2000,"month":2,"day":[7,3],"time":0,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":1999,"to":1999,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1989,"to":1993,"month":2,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1989,"to":1992,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1988,"to":1988,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1974,"to":1974,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1974,"to":1974,"month":0,"day":[7,23],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1968,"to":1969,"month":3,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1967,"to":1968,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1967,"to":1967,"month":3,"day":[7,2],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1963,"to":1963,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1963,"to":1963,"month":11,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":7,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":5,"day":[7,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1940,"to":1940,"month":6,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1932,"to":1940,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1932,"to":1939,"month":10,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1931,"to":1931,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1931,"to":1931,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1930,"to":1930,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Argentina/ComodRivadavia":["z",{"wallclock":1224288000000,"format":"ART","abbrev":"ART","offset":-10800000,"posix":1224298800000,"save":0},{"wallclock":1087689600000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":1087704000000,"save":0,"rules":"Arg"},{"wallclock":1086048000000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":1086058800000,"save":0},{"wallclock":952041600000,"format":"ART","abbrev":"ART","offset":-10800000,"posix":952052400000,"save":0},{"wallclock":938908800000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":938919600000,"save":3600000,"rules":"Arg"},{"wallclock":687916800000,"format":"AR%sT","abbrev":"ARST","offset":-10800000,"posix":687931200000,"save":3600000,"rules":"Arg"},{"wallclock":667958400000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":667965600000,"save":0},{"wallclock":-7603200000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":-7588800000,"save":0,"rules":"Arg"},{"wallclock":-1233446400000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":-1233432000000,"save":3600000,"rules":"Arg"},{"wallclock":-1567468800000,"format":"ART","abbrev":"ART","offset":-14400000,"posix":-1567453392000,"save":0},{"wallclock":-2372112000000,"format":"CMT","abbrev":"CMT","offset":-15408000,"posix":-2372096212000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-15788000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Arg":[{"from":2008,"to":2009,"month":2,"day":[0,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2008,"to":2008,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2007,"to":2007,"month":11,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2000,"to":2000,"month":2,"day":[7,3],"time":0,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":1999,"to":1999,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1989,"to":1993,"month":2,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1989,"to":1992,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1988,"to":1988,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1974,"to":1974,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1974,"to":1974,"month":0,"day":[7,23],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1968,"to":1969,"month":3,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1967,"to":1968,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1967,"to":1967,"month":3,"day":[7,2],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1963,"to":1963,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1963,"to":1963,"month":11,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":7,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":5,"day":[7,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1940,"to":1940,"month":6,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1932,"to":1940,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1932,"to":1939,"month":10,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1931,"to":1931,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1931,"to":1931,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1930,"to":1930,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Argentina/Cordoba":["z",{"wallclock":952041600000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":952052400000,"save":0,"rules":"Arg"},{"wallclock":938908800000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":938919600000,"save":3600000,"rules":"Arg"},{"wallclock":687916800000,"format":"AR%sT","abbrev":"ARST","offset":-10800000,"posix":687931200000,"save":3600000,"rules":"Arg"},{"wallclock":667958400000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":667965600000,"save":0},{"wallclock":-7603200000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":-7588800000,"save":0,"rules":"Arg"},{"wallclock":-1233446400000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":-1233432000000,"save":3600000,"rules":"Arg"},{"wallclock":-1567468800000,"format":"ART","abbrev":"ART","offset":-14400000,"posix":-1567453392000,"save":0},{"wallclock":-2372112000000,"format":"CMT","abbrev":"CMT","offset":-15408000,"posix":-2372096592000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-15408000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Arg":[{"from":2008,"to":2009,"month":2,"day":[0,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2008,"to":2008,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2007,"to":2007,"month":11,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2000,"to":2000,"month":2,"day":[7,3],"time":0,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":1999,"to":1999,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1989,"to":1993,"month":2,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1989,"to":1992,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1988,"to":1988,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1974,"to":1974,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1974,"to":1974,"month":0,"day":[7,23],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1968,"to":1969,"month":3,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1967,"to":1968,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1967,"to":1967,"month":3,"day":[7,2],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1963,"to":1963,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1963,"to":1963,"month":11,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":7,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":5,"day":[7,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1940,"to":1940,"month":6,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1932,"to":1940,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1932,"to":1939,"month":10,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1931,"to":1931,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1931,"to":1931,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1930,"to":1930,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Argentina/Jujuy":["z",{"wallclock":1224288000000,"format":"ART","abbrev":"ART","offset":-10800000,"posix":1224298800000,"save":0},{"wallclock":952041600000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":952052400000,"save":0,"rules":"Arg"},{"wallclock":938908800000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":938919600000,"save":3600000,"rules":"Arg"},{"wallclock":694224000000,"format":"AR%sT","abbrev":"ARST","offset":-10800000,"posix":694231200000,"save":3600000,"rules":"Arg"},{"wallclock":686707200000,"format":"ARST","abbrev":"ARST","offset":-10800000,"posix":686721600000,"save":3600000},{"wallclock":669168000000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":669178800000,"save":0},{"wallclock":657072000000,"format":"WARST","abbrev":"WARST","offset":-14400000,"posix":657086400000,"save":3600000},{"wallclock":636508800000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":636516000000,"save":0},{"wallclock":-7603200000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":-7588800000,"save":0,"rules":"Arg"},{"wallclock":-1233446400000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":-1233432000000,"save":3600000,"rules":"Arg"},{"wallclock":-1567468800000,"format":"ART","abbrev":"ART","offset":-14400000,"posix":-1567453392000,"save":0},{"wallclock":-2372112000000,"format":"CMT","abbrev":"CMT","offset":-15408000,"posix":-2372096328000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-15672000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Arg":[{"from":2008,"to":2009,"month":2,"day":[0,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2008,"to":2008,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2007,"to":2007,"month":11,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2000,"to":2000,"month":2,"day":[7,3],"time":0,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":1999,"to":1999,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1989,"to":1993,"month":2,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1989,"to":1992,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1988,"to":1988,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1974,"to":1974,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1974,"to":1974,"month":0,"day":[7,23],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1968,"to":1969,"month":3,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1967,"to":1968,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1967,"to":1967,"month":3,"day":[7,2],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1963,"to":1963,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1963,"to":1963,"month":11,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":7,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":5,"day":[7,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1940,"to":1940,"month":6,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1932,"to":1940,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1932,"to":1939,"month":10,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1931,"to":1931,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1931,"to":1931,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1930,"to":1930,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

View File

@ -0,0 +1 @@
module.exports={"zones":{"America/Argentina/La_Rioja":["z",{"wallclock":1224288000000,"format":"ART","abbrev":"ART","offset":-10800000,"posix":1224298800000,"save":0},{"wallclock":1087689600000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":1087704000000,"save":0,"rules":"Arg"},{"wallclock":1086048000000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":1086058800000,"save":0},{"wallclock":952041600000,"format":"ART","abbrev":"ART","offset":-10800000,"posix":952052400000,"save":0},{"wallclock":938908800000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":938919600000,"save":3600000,"rules":"Arg"},{"wallclock":673574400000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":673588800000,"save":0,"rules":"Arg"},{"wallclock":667785600000,"format":"WART","abbrev":"WART","offset":-14400000,"posix":667792800000,"save":0},{"wallclock":-7603200000,"format":"AR%sT","abbrev":"ART","offset":-10800000,"posix":-7588800000,"save":0,"rules":"Arg"},{"wallclock":-1233446400000,"format":"AR%sT","abbrev":"ARST","offset":-14400000,"posix":-1233432000000,"save":3600000,"rules":"Arg"},{"wallclock":-1567468800000,"format":"ART","abbrev":"ART","offset":-14400000,"posix":-1567453392000,"save":0},{"wallclock":-2372112000000,"format":"CMT","abbrev":"CMT","offset":-15408000,"posix":-2372095956000,"save":0},{"wallclock":-1.7976931348623157e+308,"format":"LMT","abbrev":"LMT","offset":-16044000,"posix":-1.7976931348623157e+308,"save":0}]},"rules":{"Arg":[{"from":2008,"to":2009,"month":2,"day":[0,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":2008,"to":2008,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2007,"to":2007,"month":11,"day":[7,30],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":2000,"to":2000,"month":2,"day":[7,3],"time":0,"clock":"wallclock","save":0,"letter":"","saved":0},{"from":1999,"to":1999,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1989,"to":1993,"month":2,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1989,"to":1992,"month":9,"day":[0,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1988,"to":1988,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1974,"to":1974,"month":4,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1974,"to":1974,"month":0,"day":[7,23],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1968,"to":1969,"month":3,"day":[0,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1967,"to":1968,"month":9,"day":[0,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1967,"to":1967,"month":3,"day":[7,2],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1964,"to":1966,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1963,"to":1963,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1963,"to":1963,"month":11,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":9,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1946,"to":1946,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":7,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1943,"to":1943,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1941,"to":1941,"month":5,"day":[7,15],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1940,"to":1940,"month":6,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1932,"to":1940,"month":2,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1932,"to":1939,"month":10,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1931,"to":1931,"month":3,"day":[7,1],"time":0,"clock":"wallclock","save":0,"letter":"","saved":3600000},{"from":1931,"to":1931,"month":9,"day":[7,15],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0},{"from":1930,"to":1930,"month":11,"day":[7,1],"time":0,"clock":"wallclock","save":60,"letter":"S","saved":0}]}}

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More