1
0
Fork 0

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

This commit is contained in:
Michael Hackstein 2016-08-04 09:09:25 +02:00
commit 8cb670595b
701 changed files with 7723 additions and 285 deletions

View File

@ -43,10 +43,26 @@ devel
* Foxx OAuth2 module now correctly passes the `access_token` to the OAuth2 server * Foxx OAuth2 module now correctly passes the `access_token` to the OAuth2 server
* added timezone module
v3.0.4 (XXXX-XX-XX)
v3.0.5 (XXXX-XX-XX)
------------------- -------------------
* fixed issue #1977
* fixed extraction of _id attribute in AQL traversal conditions
v3.0.4 (2016-08-01)
-------------------
* added missing lock for periodic jobs access
* fix multiple foxx related cluster issues
* fix handling of empty AQL query strings
* fixed issue in `INTERSECTION` AQL function with duplicate elements * fixed issue in `INTERSECTION` AQL function with duplicate elements
in the source arrays in the source arrays

View File

@ -56,11 +56,14 @@ endif ()
set(ARANGODB_VERSION_MAJOR "3") set(ARANGODB_VERSION_MAJOR "3")
set(ARANGODB_VERSION_MINOR "0") set(ARANGODB_VERSION_MINOR "0")
set(ARANGODB_VERSION_REVISION "devel") set(ARANGODB_VERSION_REVISION "devel")
set(ARANGODB_PACKAGE_REVISION "1")
set(ARANGODB_VERSION set(ARANGODB_VERSION
"${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_REVISION}") "${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}.${ARANGODB_VERSION_REVISION}")
# for NSIS # for the packages
set(ARANGODB_PACKAGE_VENDOR "ArangoDB GmbH")
set(ARANGODB_PACKAGE_CONTACT "info@arangodb.com")
set(ARANGODB_DISPLAY_NAME "ArangoDB") set(ARANGODB_DISPLAY_NAME "ArangoDB")
set(ARANGODB_URL_INFO_ABOUT "https://www.arangodb.com") set(ARANGODB_URL_INFO_ABOUT "https://www.arangodb.com")
set(ARANGODB_HELP_LINK "https://docs.arangodb.com/${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}/") set(ARANGODB_HELP_LINK "https://docs.arangodb.com/${ARANGODB_VERSION_MAJOR}.${ARANGODB_VERSION_MINOR}/")
@ -91,7 +94,7 @@ set(BIN_ARANGOVPACK arangovpack)
# test binaries # test binaries
set(TEST_BASICS_SUITE basics_suite) set(TEST_BASICS_SUITE basics_suite)
set(TEST_GEO_SUITE geo_suite) set(TEST_GEO_SUITE geo_suite)
set(PACKAGES_LIST)
################################################################################ ################################################################################
## VERSION FILES ## VERSION FILES
################################################################################ ################################################################################
@ -618,6 +621,7 @@ if (VERBOSE)
message(STATUS) message(STATUS)
endif () endif ()
################################################################################ ################################################################################
## 3RD PARTY ## 3RD PARTY
################################################################################ ################################################################################
@ -691,6 +695,7 @@ add_definitions("-DARANGODB_LIBEV_VERSION=\"${LIBEV_VERSION}\"")
################################################################################ ################################################################################
find_package(OpenSSL REQUIRED) find_package(OpenSSL REQUIRED)
include_directories(${OPENSSL_INCLUDE_DIR}) include_directories(${OPENSSL_INCLUDE_DIR})
add_definitions(-DARANGODB_OPENSSL_VERSION=\"${OPENSSL_VERSION}\") add_definitions(-DARANGODB_OPENSSL_VERSION=\"${OPENSSL_VERSION}\")
@ -733,8 +738,9 @@ add_definitions("-DARANGODB_ZLIB_VERSION=\"${ZLIB_VERSION}\"")
## PATHS, installation, packages ## PATHS, installation, packages
################################################################################ ################################################################################
include(ArangoDBMacros) include(ArangoDBInstall)
include(packages/packages)
################################################################################ ################################################################################
## ERRORS FILE ## ERRORS FILE
################################################################################ ################################################################################
@ -854,10 +860,7 @@ if( EXISTS "${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json" )
) )
endif() endif()
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/arangodb-client)
configure_file(cmake/packages/package-client.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
add_custom_target(package-arongodb-client COMMAND ${CMAKE_COMMAND} .
COMMAND ${CMAKE_CPACK_COMMAND} -G DEB
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
WORKING_DIRECTORY ${BUILD_DIR})
add_custom_target(packages
DEPENDS ${PACKAGES_LIST}
)

View File

@ -119,11 +119,14 @@ The following [NPM modules](https://www.npmjs.com) are preinstalled:
* [minimatch](https://github.com/isaacs/minimatch) * [minimatch](https://github.com/isaacs/minimatch)
is a glob matcher for matching wildcards in file paths. 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) * [qs](https://github.com/hapijs/qs)
provides utilities for dealing with query strings using a different format than the **querystring** module. 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) * [sinon](http://sinonjs.org)
is a mocking library for writing test stubs, mocks and spies. 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

@ -330,25 +330,30 @@ ${MAKE_CMD_PREFIX} ${MAKE} ${VERBOSE_MAKE} "${PAR}" "${PARALLEL_BUILDS}" ${MAKE_
git rev-parse HEAD > ../last_compiled_version.sha git rev-parse HEAD > ../last_compiled_version.sha
if [ -n "$CPACK" -a -n "${TARGET_DIR}" ]; then if [ -n "$CPACK" -a -n "${TARGET_DIR}" ]; then
for PACK in ${CPACK}; do make packages
# if [ "$PACK" == "DEB" ]; then #todo cmake -build -target packages
# make prepare_debian
# fi
cpack -G "$PACK"
EXT=`echo $PACK|tr '[:upper:]' '[:lower:]'`
if [ "$PACK" == "Bundle" ]; then
EXT = 'dmg'
fi
if [ "$PACK" == "NSIS" ]; then
true
else
cp *.${EXT} ${TARGET_DIR}
fi
done
fi fi
#if [ -n "$CPACK" -a -n "${TARGET_DIR}" ]; then
# for PACK in ${CPACK}; do
## if [ "$PACK" == "DEB" ]; then
## make prepare_debian
## fi
#
# cpack -G "$PACK"
#
# EXT=`echo $PACK|tr '[:upper:]' '[:lower:]'`
# if [ "$PACK" == "Bundle" ]; then
# EXT = 'dmg'
# fi
# if [ "$PACK" == "NSIS" ]; then
# true
# else
# cp *.${EXT} ${TARGET_DIR}
# fi
# done
#fi
# and install # and install
if test -n "${TARGET_DIR}"; then if test -n "${TARGET_DIR}"; then

View File

@ -1,9 +1,3 @@
# debian
if (CPACK_GENERATOR STREQUAL "DEB")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
set(CPACK_COMPONENTS_ALL debian-extras)
endif ()
# OSX bundle # OSX bundle
if (CPACK_GENERATOR STREQUAL "Bundle") if (CPACK_GENERATOR STREQUAL "Bundle")

View File

@ -0,0 +1,9 @@
stand-alone shell
A distributed free and open-source database with a flexible data model for documents,
graphs, and key-values. Build high performance applications using a convenient
SQL-like query language or JavaScript extensions.
.
Copyright: 2014-2016 by ArangoDB GmbH
Copyright: 2012-2013 by triAGENS GmbH
ArangoDB Software
www.arangodb.com

View File

@ -1,4 +1,4 @@
a multi-purpose NoSQL database the multi-model NoSQL database
A distributed free and open-source database with a flexible data model for documents, A distributed free and open-source database with a flexible data model for documents,
graphs, and key-values. Build high performance applications using a convenient graphs, and key-values. Build high performance applications using a convenient
SQL-like query language or JavaScript extensions. SQL-like query language or JavaScript extensions.

View File

@ -168,7 +168,7 @@
* GITHUB: https://github.com/jshttp/http-errors * GITHUB: https://github.com/jshttp/http-errors
* License: [MIT License](https://github.com/jshttp/http-errors/blob/master/LICENSE) * License: [MIT License](https://github.com/jshttp/http-errors/blob/master/LICENSE)
#### inflect #### i (inflect)
* GITHUB: https://github.com/pksunkara/inflect * GITHUB: https://github.com/pksunkara/inflect
* License: [MIT-style License](https://github.com/pksunkara/inflect/blob/master/LICENSE) * License: [MIT-style License](https://github.com/pksunkara/inflect/blob/master/LICENSE)
@ -220,11 +220,6 @@
* GITHUB: https://github.com/mochajs/mocha * GITHUB: https://github.com/mochajs/mocha
* License: [MIT License](https://github.com/mochajs/mocha/blob/master/LICENSE) * 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 #### qs
* GITHUB: https://github.com/hapijs/qs * GITHUB: https://github.com/hapijs/qs
@ -252,6 +247,11 @@
* GITHUB: https://github.com/jshttp/statuses * GITHUB: https://github.com/jshttp/statuses
* License: [MIT License](https://github.com/jshttp/statuses/blob/master/LICENSE) * 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 #### type-is
* GITHUB: https://github.com/jshttp/type-is * GITHUB: https://github.com/jshttp/type-is

View File

@ -105,8 +105,8 @@ struct log_t {
std::chrono::system_clock::now().time_since_epoch())) {} std::chrono::system_clock::now().time_since_epoch())) {}
friend std::ostream& operator<<(std::ostream& o, log_t const& l) { friend std::ostream& operator<<(std::ostream& o, log_t const& l) {
o << l.index << " " << l.term << " " o << l.index << " " << l.term << " " << VPackSlice(l.entry->data()).toJson()
<< l.entry->toString() << " " << l.timestamp.count(); << " " << l.timestamp.count();
return o; return o;
} }

View File

@ -52,6 +52,8 @@ Agent::Agent(config_t const& config)
_state.configure(this); _state.configure(this);
_constituent.configure(this); _constituent.configure(this);
_confirmed.resize(size(), 0); // agency's size and reset to 0 _confirmed.resize(size(), 0); // agency's size and reset to 0
_lastHighest.resize(size(), 0);
_lastSent.resize(size());
} }
@ -237,8 +239,6 @@ bool Agent::recvAppendEntriesRPC(term_t term,
MUTEX_LOCKER(mutexLocker, _ioLock); MUTEX_LOCKER(mutexLocker, _ioLock);
// index_t lastPersistedIndex = _lastCommitIndex;
if (this->term() > term) { if (this->term() > term) {
LOG_TOPIC(WARN, Logger::AGENCY) << "I have a higher term than RPC caller."; LOG_TOPIC(WARN, Logger::AGENCY) << "I have a higher term than RPC caller.";
return false; return false;
@ -256,11 +256,12 @@ bool Agent::recvAppendEntriesRPC(term_t term,
<< " entries to state machine."; << " entries to state machine.";
/* bool success = */ /* bool success = */
_state.log(queries, term, prevIndex, prevTerm); _state.log(queries, term, prevIndex, prevTerm);
_spearhead.apply(_state.slices(_lastCommitIndex + 1, leaderCommitIndex));
_readDB.apply(_state.slices(_lastCommitIndex + 1, leaderCommitIndex));
_lastCommitIndex = leaderCommitIndex;
} }
_spearhead.apply(_state.slices(_lastCommitIndex + 1, leaderCommitIndex));
_readDB.apply(_state.slices(_lastCommitIndex + 1, leaderCommitIndex));
_lastCommitIndex = leaderCommitIndex;
if (_lastCommitIndex >= _nextCompationAfter) { if (_lastCommitIndex >= _nextCompationAfter) {
_state.compact(_lastCommitIndex); _state.compact(_lastCommitIndex);
@ -276,17 +277,19 @@ bool Agent::recvAppendEntriesRPC(term_t term,
priv_rpc_ret_t Agent::sendAppendEntriesRPC( priv_rpc_ret_t Agent::sendAppendEntriesRPC(
arangodb::consensus::id_t follower_id) { arangodb::consensus::id_t follower_id) {
index_t last_confirmed = _confirmed[follower_id];
std::vector<log_t> unconfirmed = _state.get(last_confirmed);
term_t t(0); term_t t(0);
{ {
MUTEX_LOCKER(mutexLocker, _ioLock); MUTEX_LOCKER(mutexLocker, _ioLock);
t = this->term(); t = this->term();
} }
if (unconfirmed.empty()) { index_t last_confirmed = _confirmed[follower_id];
return priv_rpc_ret_t(false, t); std::vector<log_t> unconfirmed = _state.get(last_confirmed);
index_t highest = unconfirmed.back().index;
if (highest == _lastHighest.at(follower_id) && (long)(500.0e6*_config.minPing) >
(std::chrono::system_clock::now() - _lastSent.at(follower_id)).count()) {
return priv_rpc_ret_t(true, t);
} }
// RPC path // RPC path
@ -300,9 +303,6 @@ priv_rpc_ret_t Agent::sendAppendEntriesRPC(
auto headerFields = auto headerFields =
std::make_unique<std::unordered_map<std::string, std::string>>(); std::make_unique<std::unordered_map<std::string, std::string>>();
// Highest unconfirmed
index_t last = unconfirmed[0].index;
// Body // Body
Builder builder; Builder builder;
builder.add(VPackValue(VPackValueType::Array)); builder.add(VPackValue(VPackValueType::Array));
@ -313,14 +313,14 @@ priv_rpc_ret_t Agent::sendAppendEntriesRPC(
builder.add("term", VPackValue(entry.term)); builder.add("term", VPackValue(entry.term));
builder.add("query", VPackSlice(entry.entry->data())); builder.add("query", VPackSlice(entry.entry->data()));
builder.close(); builder.close();
last = entry.index; highest = entry.index;
} }
builder.close(); builder.close();
// Verbose output // Verbose output
if (unconfirmed.size() > 1) { if (unconfirmed.size() > 1) {
LOG_TOPIC(DEBUG, Logger::AGENCY) << "Appending " << unconfirmed.size() - 1 LOG_TOPIC(DEBUG, Logger::AGENCY) << "Appending " << unconfirmed.size() - 1
<< " entries up to index " << last << " entries up to index " << highest
<< " to follower " << follower_id; << " to follower " << follower_id;
} }
@ -329,7 +329,10 @@ priv_rpc_ret_t Agent::sendAppendEntriesRPC(
"1", 1, _config.endpoints[follower_id], "1", 1, _config.endpoints[follower_id],
arangodb::GeneralRequest::RequestType::POST, path.str(), arangodb::GeneralRequest::RequestType::POST, path.str(),
std::make_shared<std::string>(builder.toJson()), headerFields, std::make_shared<std::string>(builder.toJson()), headerFields,
std::make_shared<AgentCallback>(this, follower_id, last), 1, true); std::make_shared<AgentCallback>(this, follower_id, highest), 1, true);
_lastSent.at(follower_id) = std::chrono::system_clock::now();
_lastHighest.at(follower_id) = highest;
return priv_rpc_ret_t(true, t); return priv_rpc_ret_t(true, t);
@ -343,19 +346,27 @@ bool Agent::load() {
ApplicationServer::getFeature<DatabaseFeature>("Database"); ApplicationServer::getFeature<DatabaseFeature>("Database");
auto vocbase = database->vocbase(); auto vocbase = database->vocbase();
auto queryRegistry = QueryRegistryFeature::QUERY_REGISTRY;
if (vocbase == nullptr) { if (vocbase == nullptr) {
LOG_TOPIC(FATAL, Logger::AGENCY) << "could not determine _system database"; LOG_TOPIC(FATAL, Logger::AGENCY) << "could not determine _system database";
FATAL_ERROR_EXIT(); FATAL_ERROR_EXIT();
} }
LOG_TOPIC(DEBUG, Logger::AGENCY) << "Loading persistent state."; LOG_TOPIC(DEBUG, Logger::AGENCY) << "Loading persistent state.";
if (!_state.loadCollections(vocbase, _config.waitForSync)) { if (!_state.loadCollections(vocbase, queryRegistry, _config.waitForSync)) {
LOG_TOPIC(DEBUG, Logger::AGENCY) LOG_TOPIC(DEBUG, Logger::AGENCY)
<< "Failed to load persistent state on startup."; << "Failed to load persistent state on startup.";
} }
LOG_TOPIC(DEBUG, Logger::AGENCY) << "Reassembling spearhead and read stores."; LOG_TOPIC(DEBUG, Logger::AGENCY) << "Reassembling spearhead and read stores.";
_spearhead.apply(_state.slices(_lastCommitIndex + 1)); _spearhead.apply(_state.slices(_lastCommitIndex + 1));
{
CONDITION_LOCKER(guard, _appendCV);
guard.broadcast();
}
reportIn(id(), _state.lastLog().index); reportIn(id(), _state.lastLog().index);
LOG_TOPIC(DEBUG, Logger::AGENCY) << "Starting spearhead worker."; LOG_TOPIC(DEBUG, Logger::AGENCY) << "Starting spearhead worker.";
@ -363,7 +374,6 @@ bool Agent::load() {
_readDB.start(); _readDB.start();
LOG_TOPIC(DEBUG, Logger::AGENCY) << "Starting constituent personality."; LOG_TOPIC(DEBUG, Logger::AGENCY) << "Starting constituent personality.";
auto queryRegistry = QueryRegistryFeature::QUERY_REGISTRY;
TRI_ASSERT(queryRegistry != nullptr); TRI_ASSERT(queryRegistry != nullptr);
_constituent.start(vocbase, queryRegistry); _constituent.start(vocbase, queryRegistry);
@ -434,7 +444,7 @@ void Agent::run() {
while (!this->isStopping() && size() > 1) { while (!this->isStopping() && size() > 1) {
if (leading()) { // Only if leading if (leading()) { // Only if leading
_appendCV.wait(100000); _appendCV.wait(10000);
} else { } else {
_appendCV.wait(); // Else wait for our moment in the sun _appendCV.wait(); // Else wait for our moment in the sun
} }
@ -485,11 +495,16 @@ void Agent::beginShutdown() {
bool Agent::lead() { bool Agent::lead() {
// Key value stores // Key value stores
//rebuildDBs(); rebuildDBs();
// Wake up run // Wake up run
CONDITION_LOCKER(guard, _appendCV); {
guard.broadcast(); CONDITION_LOCKER(guard, _appendCV);
guard.broadcast();
}
// Wake up supervision
_supervision.wakeUp();
return true; return true;
@ -497,10 +512,11 @@ bool Agent::lead() {
// Rebuild key value stores // Rebuild key value stores
bool Agent::rebuildDBs() { bool Agent::rebuildDBs() {
MUTEX_LOCKER(mutexLocker, _ioLock); MUTEX_LOCKER(mutexLocker, _ioLock);
_spearhead.apply(_state.slices());
_readDB.apply(_state.slices()); _spearhead.apply(_state.slices(_lastCommitIndex+1));
_readDB.apply(_state.slices(_lastCommitIndex+1));
return true; return true;
@ -508,10 +524,16 @@ bool Agent::rebuildDBs() {
/// Last commit index /// Last commit index
arangodb::consensus::index_t Agent::lastCommited() const { arangodb::consensus::index_t Agent::lastCommitted() const {
return _lastCommitIndex; return _lastCommitIndex;
} }
/// Last commit index
void Agent::lastCommitted(
arangodb::consensus::index_t lastCommitIndex) {
MUTEX_LOCKER(mutexLocker, _ioLock);
_lastCommitIndex = lastCommitIndex;
}
/// Last log entry /// Last log entry
log_t const& Agent::lastLog() const { return _state.lastLog(); } log_t const& Agent::lastLog() const { return _state.lastLog(); }

View File

@ -71,7 +71,7 @@ class Agent : public arangodb::Thread {
bool fitness() const; bool fitness() const;
/// @brief Leader ID /// @brief Leader ID
arangodb::consensus::index_t lastCommited() const; arangodb::consensus::index_t lastCommitted() const;
/// @brief Leader ID /// @brief Leader ID
arangodb::consensus::id_t leaderID() const; arangodb::consensus::id_t leaderID() const;
@ -137,6 +137,9 @@ class Agent : public arangodb::Thread {
private: private:
Agent& operator=(VPackSlice const&); Agent& operator=(VPackSlice const&);
/// @brief Leader ID
void lastCommitted(arangodb::consensus::index_t);
/// @brief This server (need endpoint) /// @brief This server (need endpoint)
TRI_server_t* _server; TRI_server_t* _server;
@ -164,7 +167,7 @@ class Agent : public arangodb::Thread {
/// @brief Spearhead (write) kv-store /// @brief Spearhead (write) kv-store
Store _spearhead; Store _spearhead;
/// @brief Commited (read) kv-store /// @brief Committed (read) kv-store
Store _readDB; Store _readDB;
/// @brief Condition variable for appendEntries /// @brief Condition variable for appendEntries
@ -175,6 +178,8 @@ class Agent : public arangodb::Thread {
/// @brief Confirmed indices of all members of agency /// @brief Confirmed indices of all members of agency
std::vector<index_t> _confirmed; std::vector<index_t> _confirmed;
std::vector<index_t> _lastHighest;
std::vector<TimePoint> _lastSent;
arangodb::Mutex _ioLock; /**< @brief Read/Write lock */ arangodb::Mutex _ioLock; /**< @brief Read/Write lock */
/// @brief Next compaction after /// @brief Next compaction after

View File

@ -244,6 +244,7 @@ RestHandler::status RestAgencyHandler::handleConfig() {
body.add(VPackValue(VPackValueType::Object)); body.add(VPackValue(VPackValueType::Object));
body.add("term", Value(_agent->term())); body.add("term", Value(_agent->term()));
body.add("leaderId", Value(_agent->leaderID())); body.add("leaderId", Value(_agent->leaderID()));
body.add("lastCommited", Value(_agent->lastCommitted()));
body.add("configuration", _agent->config().toBuilder()->slice()); body.add("configuration", _agent->config().toBuilder()->slice());
body.close(); body.close();
generateResult(GeneralResponse::ResponseCode::OK, body.slice()); generateResult(GeneralResponse::ResponseCode::OK, body.slice());

View File

@ -34,6 +34,7 @@
#include <thread> #include <thread>
#include "Aql/Query.h" #include "Aql/Query.h"
#include "Aql/QueryRegistry.h"
#include "Basics/StaticStrings.h" #include "Basics/StaticStrings.h"
#include "Basics/VelocyPackHelper.h" #include "Basics/VelocyPackHelper.h"
#include "RestServer/QueryRegistryFeature.h" #include "RestServer/QueryRegistryFeature.h"
@ -46,6 +47,7 @@
using namespace arangodb; using namespace arangodb;
using namespace arangodb::application_features; using namespace arangodb::application_features;
using namespace arangodb::aql;
using namespace arangodb::consensus; using namespace arangodb::consensus;
using namespace arangodb::velocypack; using namespace arangodb::velocypack;
using namespace arangodb::rest; using namespace arangodb::rest;
@ -58,6 +60,7 @@ State::State(std::string const& endpoint)
_endpoint(endpoint), _endpoint(endpoint),
_collectionsChecked(false), _collectionsChecked(false),
_collectionsLoaded(false), _collectionsLoaded(false),
_queryRegistry(nullptr),
_cur(0) {} _cur(0) {}
@ -167,21 +170,49 @@ arangodb::consensus::index_t State::log(
void State::removeConflicts (query_t const& transactions) { void State::removeConflicts (query_t const& transactions) {
VPackSlice slice = transactions->slice(); VPackSlice slice = transactions->slice();
TRI_ASSERT(slice.isArray()); TRI_ASSERT(slice.isArray());
if (slice.length() > 0) { if (slice.length() > 0) {
auto bindVars = std::make_shared<VPackBuilder>();
bindVars->openObject();
bindVars->close();
try { try {
auto idx = slice[0].get("index").getUInt(); auto idx = slice[0].get("index").getUInt();
if (idx-_cur < _log.size()) { if (idx-_cur < _log.size()) {
LOG_TOPIC(INFO, Logger::AGENCY) LOG_TOPIC(DEBUG, Logger::AGENCY)
<< "Removing " << _log.size()-idx+_cur << "Removing " << _log.size()-idx+_cur
<< " entries from log starting with " << idx; << " entries from log starting with " << idx << "=" << _log.at(idx-_cur).index;
_log.erase(_log.begin()+idx);
// 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()+idx-_cur-1, _log.end());
}
} }
} catch (std::exception const& e) { } catch (std::exception const& e) {
LOG_TOPIC(ERR, Logger::AGENCY) << e.what() << " " << __FILE__ << __LINE__; LOG_TOPIC(ERR, Logger::AGENCY) << e.what() << " " << __FILE__ << __LINE__;
} }
} }
} }
@ -327,12 +358,17 @@ template<class T> std::ostream& operator<< (std::ostream& o, std::deque<T> const
} }
/// Load collections /// Load collections
bool State::loadCollections(TRI_vocbase_t* vocbase, bool waitForSync) { bool State::loadCollections(TRI_vocbase_t* vocbase, QueryRegistry* queryRegistry,
bool waitForSync) {
_vocbase = vocbase; _vocbase = vocbase;
_queryRegistry = queryRegistry;
TRI_ASSERT(_vocbase != nullptr);
_options.waitForSync = false; _options.waitForSync = false;
_options.silent = true; _options.silent = true;
if (loadPersisted()) { if (loadPersisted()) {
if (_log.empty()) { if (_log.empty()) {
std::shared_ptr<Buffer<uint8_t>> buf = std::make_shared<Buffer<uint8_t>>(); std::shared_ptr<Buffer<uint8_t>> buf = std::make_shared<Buffer<uint8_t>>();
@ -343,7 +379,7 @@ bool State::loadCollections(TRI_vocbase_t* vocbase, bool waitForSync) {
} }
return true; return true;
} }
LOG(WARN) << "... done"; LOG(WARN) << "... done";
return false; return false;
@ -441,6 +477,9 @@ bool State::loadRemaining() {
} }
} }
_agent->rebuildDBs();
_agent->lastCommitted(_log.back().index);
return true; return true;
} }

View File

@ -36,6 +36,11 @@
struct TRI_vocbase_t; struct TRI_vocbase_t;
namespace arangodb { namespace arangodb {
namespace aql {
class QueryRegistry;
}
namespace consensus { namespace consensus {
class Agent; class Agent;
@ -85,7 +90,7 @@ class State {
bool configure(Agent* agent); bool configure(Agent* agent);
/// @brief Load persisted data from above or start with empty log /// @brief Load persisted data from above or start with empty log
bool loadCollections(TRI_vocbase_t*, bool); bool loadCollections(TRI_vocbase_t*, aql::QueryRegistry*, bool);
/// @brief Pipe to ostream /// @brief Pipe to ostream
friend std::ostream& operator<<(std::ostream& os, State const& s) { friend std::ostream& operator<<(std::ostream& os, State const& s) {
@ -141,6 +146,9 @@ class State {
bool _collectionsChecked; /**< @brief Collections checked */ bool _collectionsChecked; /**< @brief Collections checked */
bool _collectionsLoaded; bool _collectionsLoaded;
aql::QueryRegistry* _queryRegistry;
size_t _compaction_step; size_t _compaction_step;
size_t _cur; size_t _cur;

View File

@ -285,7 +285,7 @@ std::vector<bool> Store::apply(
Builder body; // host Builder body; // host
body.openObject(); body.openObject();
body.add("term", VPackValue(_agent->term())); body.add("term", VPackValue(_agent->term()));
body.add("index", VPackValue(_agent->lastCommited())); body.add("index", VPackValue(_agent->lastCommitted()));
auto ret = in.equal_range(url); auto ret = in.equal_range(url);
for (auto it = ret.first; it != ret.second; ++it) { for (auto it = ret.first; it != ret.second; ++it) {

View File

@ -53,10 +53,6 @@ Supervision::Supervision()
Supervision::~Supervision() { shutdown(); }; Supervision::~Supervision() { shutdown(); };
void Supervision::wakeUp() { void Supervision::wakeUp() {
TRI_ASSERT(_agent != nullptr);
if (!this->isStopping()) {
_snapshot = _agent->readDB().get(_agencyPrefix);
}
_cv.signal(); _cv.signal();
} }
@ -356,7 +352,7 @@ void Supervision::run() {
// Do nothing unless leader // Do nothing unless leader
if (_agent->leading()) { if (_agent->leading()) {
_cv.wait(_frequency * 1000000); // quarter second _cv.wait(_frequency * 1000000);
} else { } else {
_cv.wait(); _cv.wait();
} }

View File

@ -1076,10 +1076,7 @@ static bool throwExceptionAfterBadSyncRequest(ClusterCommResult* res,
bool isShutdown) { bool isShutdown) {
ENTER_BLOCK ENTER_BLOCK
if (res->status == CL_COMM_TIMEOUT) { if (res->status == CL_COMM_TIMEOUT) {
std::string errorMessage = std::string errorMessage = res->stringifyErrorMessage();
std::string("Timeout in communication with shard '") +
std::string(res->shardID) + std::string("' on cluster node '") +
std::string(res->serverID) + std::string("' failed.");
// No reply, we give up: // No reply, we give up:
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_CLUSTER_TIMEOUT, errorMessage); THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_CLUSTER_TIMEOUT, errorMessage);
@ -1087,10 +1084,7 @@ static bool throwExceptionAfterBadSyncRequest(ClusterCommResult* res,
if (res->status == CL_COMM_BACKEND_UNAVAILABLE) { if (res->status == CL_COMM_BACKEND_UNAVAILABLE) {
// there is no result // there is no result
std::string errorMessage = std::string errorMessage = res->stringifyErrorMessage();
std::string("Empty result in communication with shard '") +
std::string(res->shardID) + std::string("' on cluster node '") +
std::string(res->serverID) + std::string("'");
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_CLUSTER_CONNECTION_LOST, THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_CLUSTER_CONNECTION_LOST,
errorMessage); errorMessage);
} }

View File

@ -573,10 +573,7 @@ struct CoordinatorInstanciator : public WalkerWorker<ExecutionNode> {
error += "\n"; error += "\n";
} }
} else { } else {
error += std::string("Communication with shard '") + error += res.stringifyErrorMessage();
std::string(res.shardID) + std::string("' on cluster node '") +
std::string(res.serverID) + std::string("' failed : ") +
res.errorMessage;
} }
} }
@ -1145,11 +1142,10 @@ ExecutionEngine* ExecutionEngine::instantiateFromPlan(
url, "{\"code\": 0}", headers, 120.0); url, "{\"code\": 0}", headers, 120.0);
// Ignore result, we need to try to remove all. // Ignore result, we need to try to remove all.
// However, log the incident if we have an errorMessage. // However, log the incident if we have an errorMessage.
if (res->errorMessage.length() > 0) { if (!res->errorMessage.empty()) {
std::string msg("while trying to unregister query "); std::string msg("while trying to unregister query ");
msg += queryId + std::string("from shard: ") + shardId + msg += queryId + ": " + res->stringifyErrorMessage();
std::string("communication failed: ") + res->errorMessage; LOG(WARN) << msg;
LOG(WARN) << "" << msg;
} }
} else { } else {
// Remove query from registry: // Remove query from registry:

View File

@ -115,6 +115,61 @@ void ClusterCommResult::setDestination(std::string const& dest,
} }
} }
} }
/// @brief stringify the internal error state
std::string ClusterCommResult::stringifyErrorMessage() const {
// append status string
std::string result(stringifyStatus(status));
if (!serverID.empty()) {
result.append(", cluster node: '");
result.append(serverID);
result.push_back('\'');
}
if (!shardID.empty()) {
result.append(", shard: '");
result.append(shardID);
result.push_back('\'');
}
if (!endpoint.empty()) {
result.append(", endpoint: '");
result.append(endpoint);
result.push_back('\'');
}
if (!errorMessage.empty()) {
result.append(", error: '");
result.append(errorMessage);
result.push_back('\'');
}
return result;
}
/// @brief stringify a cluster comm status
char const* ClusterCommResult::stringifyStatus(ClusterCommOpStatus status) {
switch (status) {
case CL_COMM_SUBMITTED:
return "submitted";
case CL_COMM_SENDING:
return "sending";
case CL_COMM_SENT:
return "sent";
case CL_COMM_TIMEOUT:
return "timeout";
case CL_COMM_RECEIVED:
return "received";
case CL_COMM_ERROR:
return "error";
case CL_COMM_DROPPED:
return "dropped";
case CL_COMM_BACKEND_UNAVAILABLE:
return "backend unavailable";
}
return "unknown";
}
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
/// @brief ClusterComm constructor /// @brief ClusterComm constructor

View File

@ -212,6 +212,12 @@ struct ClusterCommResult {
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
void setDestination(std::string const& dest, bool logConnectionErrors); void setDestination(std::string const& dest, bool logConnectionErrors);
/// @brief stringify the internal error state
std::string stringifyErrorMessage() const;
/// @brief stringify a cluster comm status
static char const* stringifyStatus(ClusterCommOpStatus status);
}; };
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View File

@ -757,10 +757,15 @@ std::string Transaction::extractIdString(CollectionNameResolver const* resolver,
if (*p == basics::VelocyPackHelper::IdAttribute) { if (*p == basics::VelocyPackHelper::IdAttribute) {
id = VPackSlice(p + 1); id = VPackSlice(p + 1);
// we should be pointing to a custom value now if (id.isCustom()) {
TRI_ASSERT(id.isCustom() && id.head() == 0xf3); // we should be pointing to a custom value now
TRI_ASSERT(id.head() == 0xf3);
return makeIdFromCustom(resolver, id, key); return makeIdFromCustom(resolver, id, key);
}
if (id.isString()) {
return id.copyString();
}
} }
} }

View File

@ -138,19 +138,24 @@ void TraverserExpression::toVelocyPack(VPackBuilder& builder) const {
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
bool TraverserExpression::recursiveCheck(arangodb::aql::AstNode const* node, bool TraverserExpression::recursiveCheck(arangodb::aql::AstNode const* node,
arangodb::velocypack::Slice& element) const { arangodb::velocypack::Slice& element,
arangodb::velocypack::Slice& base) const {
base = arangodb::basics::VelocyPackHelper::EmptyObjectValue();
switch (node->type) { switch (node->type) {
case arangodb::aql::NODE_TYPE_REFERENCE: case arangodb::aql::NODE_TYPE_REFERENCE:
// We are on the variable access // We are on the variable access
return true; return true;
case arangodb::aql::NODE_TYPE_ATTRIBUTE_ACCESS: { case arangodb::aql::NODE_TYPE_ATTRIBUTE_ACCESS: {
std::string name(node->getString()); std::string name(node->getString());
if (!recursiveCheck(node->getMember(0), element)) { if (!recursiveCheck(node->getMember(0), element, base)) {
return false; return false;
} }
if (!element.isObject() || !element.hasKey(name)) { if (!element.isObject() || !element.hasKey(name)) {
return false; return false;
} }
base = element; // set base object
element = element.get(name); element = element.get(name);
break; break;
} }
@ -159,7 +164,7 @@ bool TraverserExpression::recursiveCheck(arangodb::aql::AstNode const* node,
if (!index->isIntValue()) { if (!index->isIntValue()) {
return false; return false;
} }
if (!recursiveCheck(node->getMember(0), element)) { if (!recursiveCheck(node->getMember(0), element, base)) {
return false; return false;
} }
auto idx = index->getIntValue(); auto idx = index->getIntValue();
@ -182,16 +187,24 @@ bool TraverserExpression::recursiveCheck(arangodb::aql::AstNode const* node,
bool TraverserExpression::matchesCheck(arangodb::Transaction* trx, bool TraverserExpression::matchesCheck(arangodb::Transaction* trx,
VPackSlice const& element) const { VPackSlice const& element) const {
TRI_ASSERT(trx != nullptr); TRI_ASSERT(trx != nullptr);
VPackSlice base = arangodb::basics::VelocyPackHelper::EmptyObjectValue();
VPackSlice value = element.resolveExternal(); VPackSlice value = element.resolveExternal();
// initialize compare value to Null // initialize compare value to Null
VPackSlice result = arangodb::basics::VelocyPackHelper::NullValue(); VPackSlice result = arangodb::basics::VelocyPackHelper::NullValue();
// perform recursive check. this may modify value // perform recursive check. this may modify value
if (recursiveCheck(varAccess, value)) { if (recursiveCheck(varAccess, value, base)) {
result = value; result = value;
} }
// hack for _id attribute
TransactionBuilderLeaser builder(trx);
if (result.isCustom() && base.isObject()) {
builder->add(VPackValue(trx->extractIdString(base)));
result = builder->slice();
}
TRI_ASSERT(compareTo != nullptr); TRI_ASSERT(compareTo != nullptr);
VPackOptions* options = trx->transactionContext()->getVPackOptions(); VPackOptions* options = trx->transactionContext()->getVPackOptions();

View File

@ -91,7 +91,8 @@ class TraverserExpression {
private: private:
bool recursiveCheck(arangodb::aql::AstNode const*, bool recursiveCheck(arangodb::aql::AstNode const*,
arangodb::velocypack::Slice&) const; arangodb::velocypack::Slice& value,
arangodb::velocypack::Slice& base) const;
// Required when creating this expression without AST // Required when creating this expression without AST
std::vector<std::unique_ptr<arangodb::aql::AstNode const>> _nodeRegister; std::vector<std::unique_ptr<arangodb::aql::AstNode const>> _nodeRegister;

38
arangosh/install.cmake Normal file
View File

@ -0,0 +1,38 @@
# -*- mode: CMAKE; -*-
# these are the install targets for the client package.
# we can't use RUNTIME DESTINATION here.
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOBENCH}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangobench)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGODUMP}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangodump)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOIMP}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangoimp)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGORESTORE}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangorestore)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOSH}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangosh)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOVPACK}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_command_alias(${BIN_ARANGOSH}
${CMAKE_INSTALL_FULL_BINDIR}
foxx-manager)
install_config(foxx-manager)

View File

@ -1,5 +1,7 @@
include(GNUInstallDirs) include(GNUInstallDirs)
set(ARANGODB_SOURCE_DIR ${CMAKE_SOURCE_DIR})
if (MSVC OR DARWIN) if (MSVC OR DARWIN)
set(ENABLE_UID_CFG false) set(ENABLE_UID_CFG false)
else () else ()
@ -22,7 +24,7 @@ FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/lib/arangodb3-apps")
# logs # logs
FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/arangodb3") FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/arangodb3")
include(ArangoDBinstallCfg) include(InstallMacros)
# install ---------------------------------------------------------------------- # install ----------------------------------------------------------------------
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/ install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/
@ -33,44 +35,6 @@ install_readme(README.md README.md)
install_readme(LICENSE LICENSE.txt) install_readme(LICENSE LICENSE.txt)
install_readme(LICENSES-OTHER-COMPONENTS.md LICENSES-OTHER-COMPONENTS.md) install_readme(LICENSES-OTHER-COMPONENTS.md LICENSES-OTHER-COMPONENTS.md)
# Build package ----------------------------------------------------------------
if (NOT(MSVC))
set(CPACK_SET_DESTDIR ON)
endif()
set(CPACK_PACKAGE_VENDOR "ArangoDB GmbH")
set(CPACK_PACKAGE_CONTACT "info@arangodb.com")
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
set(CPACK_STRIP_FILES "ON")
set(CPACK_PACKAGE_NAME "arangodb3")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_PACKAGE_RELEASE}.${CMAKE_SYSTEM_PROCESSOR}")
if ("${PACKAGING}" STREQUAL "DEB")
include(packaging_deb)
elseif ("${PACKAGING}" STREQUAL "RPM")
include(packaging_rpm)
elseif ("${PACKAGING}" STREQUAL "Bundle")
include(packaging_bundle)
elseif (MSVC)
include(packaging_nsis)
endif ()
configure_file(
"${CMAKE_SOURCE_DIR}/Installation/cmake/CMakeCPackOptions.cmake.in"
"${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY)
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake")
# Finally: user cpack
include(CPack)
# Custom targets ---------------------------------------------------------------- # Custom targets ----------------------------------------------------------------
# love # love
add_custom_target (love add_custom_target (love
@ -78,18 +42,7 @@ add_custom_target (love
COMMAND "" COMMAND ""
) )
include(InstallArangoDBJSClient)
################################################################################
### @brief install client-side JavaScript files
################################################################################
install(
DIRECTORY ${PROJECT_SOURCE_DIR}/js/common ${PROJECT_SOURCE_DIR}/js/client
DESTINATION share/arangodb3/js
FILES_MATCHING PATTERN "*.js"
REGEX "^.*/common/test-data$" EXCLUDE
REGEX "^.*/common/tests$" EXCLUDE
REGEX "^.*/client/tests$" EXCLUDE)
################################################################################ ################################################################################
### @brief install server-side JavaScript files ### @brief install server-side JavaScript files

View File

@ -0,0 +1,11 @@
################################################################################
### @brief install client-side JavaScript files
################################################################################
install(
DIRECTORY ${ARANGODB_SOURCE_DIR}/js/common ${ARANGODB_SOURCE_DIR}/js/client
DESTINATION share/arangodb3/js
FILES_MATCHING PATTERN "*.js"
REGEX "^.*/common/test-data$" EXCLUDE
REGEX "^.*/common/tests$" EXCLUDE
REGEX "^.*/client/tests$" EXCLUDE)

View File

@ -0,0 +1,78 @@
################################################################################
# the client package is a complete cmake sub package.
################################################################################
project(PACKAGE-CLIENT)
cmake_minimum_required(VERSION 2.8)
################################################################################
# variables from the main build have to be explicitely forwarded:
################################################################################
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "@PROJECT_BINARY_DIR@/bin/")
################################################################################
# Substitute the install binaries:
################################################################################
set(BIN_ARANGOBENCH @BIN_ARANGOBENCH@)
set(BIN_ARANGODUMP @BIN_ARANGODUMP@)
set(BIN_ARANGOIMP @BIN_ARANGOIMP@)
set(BIN_ARANGORESTORE @BIN_ARANGORESTORE@)
set(BIN_ARANGOSH @BIN_ARANGOSH@)
set(BIN_ARANGOVPACK @BIN_ARANGOVPACK@)
################################################################################
# build specific variables:
################################################################################
set(ARANGODB_URL_INFO_ABOUT @ARANGODB_URL_INFO_ABOUT@)
set(ARANGODB_SOURCE_DIR @ARANGODB_SOURCE_DIR@)
set(ARANGODB_VERSION @ARANGODB_VERSION@)
set(ARANGODB_PACKAGE_CONTACT @ARANGODB_PACKAGE_CONTACT@)
set(ARANGODB_PACKAGE_REVISION @ARANGODB_PACKAGE_REVISION@)
set(CMAKE_INSTALL_FULL_BINDIR @CMAKE_INSTALL_FULL_BINDIR@)
set(CMAKE_TARGET_ARCHITECTURES @CMAKE_TARGET_ARCHITECTURES@)
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_SYSCONFDIR_ARANGO@)
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO@)
set(ORIGINAL_SOURCE_DIR @PROJECT_SOURCE_DIR@)
set(PROJECT_SOURCE_DIR @PROJECT_SOURCE_DIR@)
################################################################################
# Get the final values for cpack:
################################################################################
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
set(CPACK_PACKAGE_NAME "arangodb3-client")
set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT})
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb, arangodb3")
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
set(CPACK_COMPONENTS_ALL debian-extras)
file(READ "${PROJECT_SOURCE_DIR}/Installation/debian/client_packagedesc.txt"
CPACK_DEBIAN_PACKAGE_DESCRIPTION)
################################################################################
# specify which target archcitecture the package is going to be:
################################################################################
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
set(ARANGODB_PACKAGE_ARCHITECTURE "amd64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
set(ARANGODB_PACKAGE_ARCHITECTURE "arm64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
set(ARANGODB_PACKAGE_ARCHITECTURE "arm7")
else()
set(ARANGODB_PACKAGE_ARCHITECTURE "i386")
endif()
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
################################################################################
# Install the external files into the package directory:
################################################################################
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallMacros.cmake)
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallArangoDBJSClient.cmake)
include(${ORIGINAL_SOURCE_DIR}/arangosh/install.cmake)
include(CPack)

View File

@ -0,0 +1,79 @@
################################################################################
# the client package is a complete cmake sub package.
################################################################################
project(PACKAGE-CLIENT)
cmake_minimum_required(VERSION 2.8)
################################################################################
# variables from the main build have to be explicitely forwarded:
################################################################################
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "@PROJECT_BINARY_DIR@/bin/")
################################################################################
# Substitute the install binaries:
################################################################################
set(BIN_ARANGOBENCH @BIN_ARANGOBENCH@)
set(BIN_ARANGODUMP @BIN_ARANGODUMP@)
set(BIN_ARANGOIMP @BIN_ARANGOIMP@)
set(BIN_ARANGORESTORE @BIN_ARANGORESTORE@)
set(BIN_ARANGOSH @BIN_ARANGOSH@)
set(BIN_ARANGOVPACK @BIN_ARANGOVPACK@)
################################################################################
# build specific variables:
################################################################################
set(ARANGODB_URL_INFO_ABOUT @ARANGODB_URL_INFO_ABOUT@)
set(ARANGODB_SOURCE_DIR @ARANGODB_SOURCE_DIR@)
set(ARANGODB_VERSION @ARANGODB_VERSION@)
set(ARANGODB_PACKAGE_CONTACT @ARANGODB_PACKAGE_CONTACT@)
set(ARANGODB_PACKAGE_REVISION @ARANGODB_PACKAGE_REVISION@)
set(CMAKE_INSTALL_FULL_BINDIR @CMAKE_INSTALL_FULL_BINDIR@)
set(CMAKE_TARGET_ARCHITECTURES @CMAKE_TARGET_ARCHITECTURES@)
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_SYSCONFDIR_ARANGO@)
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO@)
set(ORIGINAL_SOURCE_DIR @PROJECT_SOURCE_DIR@)
set(PROJECT_SOURCE_DIR @PROJECT_SOURCE_DIR@)
################################################################################
# Get the final values for cpack:
################################################################################
set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
set(CPACK_PACKAGE_NAME "arangodb3-client")
set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT})
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb, arangodb3")
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
set(CPACK_COMPONENTS_ALL debian-extras)
file(READ "${PROJECT_SOURCE_DIR}/Installation/debian/client_packagedesc.txt"
CPACK_DEBIAN_PACKAGE_DESCRIPTION)
################################################################################
# specify which target archcitecture the package is going to be:
################################################################################
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
set(ARANGODB_PACKAGE_ARCHITECTURE "amd64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
set(ARANGODB_PACKAGE_ARCHITECTURE "arm64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
set(ARANGODB_PACKAGE_ARCHITECTURE "arm7")
else()
set(ARANGODB_PACKAGE_ARCHITECTURE "i386")
endif()
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
################################################################################
# Install the external files into the package directory:
################################################################################
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallMacros.cmake)
include(${ORIGINAL_SOURCE_DIR}/cmake/InstallArangoDBJSClient.cmake)
include(${ORIGINAL_SOURCE_DIR}/arangosh/install.cmake)
include(CPack)

65
cmake/packages/deb.cmake Normal file
View File

@ -0,0 +1,65 @@
# -*- mode: CMAKE; -*-
################################################################################
# This produces the debian packages, using client/deb.txt for the second package.
################################################################################
FILE(READ "${PROJECT_SOURCE_DIR}/Installation/debian/packagedesc.txt" CPACK_DEBIAN_PACKAGE_DESCRIPTION)
set(CPACK_DEBIAN_PACKAGE_SECTION "database")
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb")
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
set(CPACK_COMPONENTS_ALL debian-extras)
set(CPACK_GENERATOR "DEB")
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
"${PROJECT_SOURCE_DIR}/Installation/debian/templates"
"${PROJECT_SOURCE_DIR}/Installation/debian/config"
"${PROJECT_SOURCE_DIR}/Installation/debian/postinst"
"${PROJECT_SOURCE_DIR}/Installation/debian/preinst"
"${PROJECT_SOURCE_DIR}/Installation/debian/postrm"
"${PROJECT_SOURCE_DIR}/Installation/debian/prerm;")
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
set(ARANGODB_PACKAGE_ARCHITECTURE "amd64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
set(ARANGODB_PACKAGE_ARCHITECTURE "arm64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
set(ARANGODB_PACKAGE_ARCHITECTURE "arm7")
else()
set(ARANGODB_PACKAGE_ARCHITECTURE "i386")
endif()
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
# deploy the Init script:
install(
FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/init.d
RENAME arangodb3
COMPONENT debian-extras
)
################################################################################
# hook to build the server package
################################################################################
add_custom_target(package-arongodb-server
COMMAND ${CMAKE_COMMAND} .
COMMAND ${CMAKE_CPACK_COMMAND} -G DEB
WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
list(APPEND PACKAGES_LIST package-arongodb-server)
################################################################################
# hook to build the client package
################################################################################
set(CLIENT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/arangodb-client)
configure_file(cmake/packages/client/deb.txt ${CLIENT_BUILD_DIR}/CMakeLists.txt @ONLY)
add_custom_target(package-arongodb-client
COMMAND ${CMAKE_COMMAND} .
COMMAND ${CMAKE_CPACK_COMMAND} -G DEB
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
WORKING_DIRECTORY ${CLIENT_BUILD_DIR})
list(APPEND PACKAGES_LIST package-arongodb-client)

View File

@ -1,73 +0,0 @@
# the client package is a complete cmake sub package.
project(PACKAGE-CLIENT)
cmake_minimum_required(VERSION 2.8)
# variables from the main build have to be explicitely forwarded:
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "@PROJECT_BINARY_DIR@/bin/")
set(BIN_ARANGOBENCH @BIN_ARANGOBENCH@)
set(BIN_ARANGODUMP @BIN_ARANGODUMP@)
set(BIN_ARANGOIMP @BIN_ARANGOIMP@)
set(BIN_ARANGORESTORE @BIN_ARANGORESTORE@)
set(BIN_ARANGOSH @BIN_ARANGOSH@)
set(BIN_ARANGOVPACK @BIN_ARANGOVPACK@)
set(CMAKE_INSTALL_FULL_BINDIR @CMAKE_INSTALL_FULL_BINDIR@)
set(CMAKE_INSTALL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_SYSCONFDIR_ARANGO@)
set(CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO @CMAKE_INSTALL_FULL_SYSCONFDIR_ARANGO@)
set(ORIGINAL_SOURCE_DIR @PROJECT_SOURCE_DIR@)
set(PROJECT_SOURCE_DIR @PROJECT_SOURCE_DIR@)
include(${ORIGINAL_SOURCE_DIR}/cmake/ArangoDBinstallCfg.cmake)
# Start installing the client components:
install(
DIRECTORY ${ORIGINAL_SOURCE_DIR}/js/common ${ORIGINAL_SOURCE_DIR}/js/client
DESTINATION share/arangodb3/js
FILES_MATCHING PATTERN "*.js"
REGEX "^.*/common/test-data$" EXCLUDE
REGEX "^.*/common/tests$" EXCLUDE
REGEX "^.*/client/tests$" EXCLUDE)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOBENCH}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangobench)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGODUMP}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangodump)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOIMP}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangoimp)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGORESTORE}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangorestore)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOSH}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_config(arangosh)
install(
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${BIN_ARANGOVPACK}
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
install_command_alias(${BIN_ARANGOSH}
${CMAKE_INSTALL_FULL_BINDIR}
foxx-manager)
install_config(foxx-manager)
# client packaging starts here:
set(CPACK_PACKAGE_NAME "arangodb3-client")
set(CPACK_PACKAGE_CONTACT "info@arangodb.com")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ArangoDB Client Package")
include(CPack)

View File

@ -0,0 +1,35 @@
if (NOT(MSVC))
set(CPACK_SET_DESTDIR ON)
endif()
set(CPACK_PACKAGE_VENDOR ${ARANGODB_PACKAGE_VENDOR})
set(CPACK_PACKAGE_CONTACT ${ARANGODB_PACKAGE_CONTACT})
set(CPACK_PACKAGE_VERSION "${ARANGODB_VERSION}")
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
set(CPACK_STRIP_FILES "ON")
set(CPACK_PACKAGE_NAME "arangodb3")
set(ARANGODB_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
# eventually the package string will be modified later on:
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}.${ARANGODB_PACKAGE_ARCHITECTURE}")
if ("${PACKAGING}" STREQUAL "DEB")
include(packages/deb)
elseif ("${PACKAGING}" STREQUAL "RPM")
include(packages/rpm)
elseif ("${PACKAGING}" STREQUAL "Bundle")
include(packages/bundle)
elseif (MSVC)
include(packages/nsis)
endif ()
configure_file(
"${CMAKE_SOURCE_DIR}/Installation/cmake/CMakeCPackOptions.cmake.in"
"${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY)
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CMakeCPackOptions.cmake")
# Finally: user cpack
include(CPack)

46
cmake/packages/rpm.cmake Normal file
View File

@ -0,0 +1,46 @@
# -*- mode: CMAKE; -*-
set(CPACK_GENERATOR "RPM")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Installation/rpm/arangodb.spec.in" "${CMAKE_CURRENT_BINARY_DIR}/arangodb.spec" @ONLY IMMEDIATE)
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_BINARY_DIR}/arangodb.spec")
################################################################################
# This produces the RPM packages, using client/rpm.txt for the second package.
################################################################################
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${ARANGODB_PACKAGE_REVISION}_${ARANGODB_PACKAGE_ARCHITECTURE}")
# deploy the Init script:
#install(
# FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init
# PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
# DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/init.d
# RENAME arangodb3
# COMPONENT debian-extras
# )
################################################################################
# hook to build the server package
################################################################################
add_custom_target(package-arongodb-server
COMMAND ${CMAKE_COMMAND} .
COMMAND ${CMAKE_CPACK_COMMAND} -G RPM
WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
list(APPEND PACKAGES_LIST package-arongodb-server)
################################################################################
# hook to build the client package
################################################################################
set(CLIENT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/arangodb-client)
configure_file(cmake/packages/client/rpm.txt ${CLIENT_BUILD_DIR}/CMakeLists.txt @ONLY)
add_custom_target(package-arongodb-client
COMMAND ${CMAKE_COMMAND} .
COMMAND ${CMAKE_CPACK_COMMAND} -G RPM
COMMAND cp *.rpm ${PROJECT_BINARY_DIR}
WORKING_DIRECTORY ${CLIENT_BUILD_DIR})
list(APPEND PACKAGES_LIST package-arongodb-client)

View File

@ -1,36 +0,0 @@
set(CPACK_DEBIAN_PACKAGE_SECTION "database")
FILE(READ "${PROJECT_SOURCE_DIR}/Installation/debian/packagedesc.txt" CPACK_DEBIAN_PACKAGE_DESCRIPTION)
SET(CPACK_DEBIAN_PACKAGE_CONFLICTS "arangodb")
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_COMPRESSION_TYPE "xz")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${ARANGODB_URL_INFO_ABOUT})
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
"${PROJECT_SOURCE_DIR}/Installation/debian/templates"
"${PROJECT_SOURCE_DIR}/Installation/debian/config"
"${PROJECT_SOURCE_DIR}/Installation/debian/postinst"
"${PROJECT_SOURCE_DIR}/Installation/debian/preinst"
"${PROJECT_SOURCE_DIR}/Installation/debian/postrm"
"${PROJECT_SOURCE_DIR}/Installation/debian/prerm;")
if(CMAKE_TARGET_ARCHITECTURES MATCHES ".*x86_64.*")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "aarch64")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64")
elseif(CMAKE_TARGET_ARCHITECTURES MATCHES "armv7")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm7")
else()
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")
endif()
# components
install(
FILES ${PROJECT_SOURCE_DIR}/Installation/debian/arangodb.init
PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/init.d
RENAME arangodb3
COMPONENT debian-extras
)

View File

@ -1,3 +0,0 @@
set(CPACK_GENERATOR "RPM")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Installation/rpm/arangodb.spec.in" "${CMAKE_CURRENT_BINARY_DIR}/arangodb.spec" @ONLY IMMEDIATE)
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_BINARY_DIR}/my_project.spec")

View File

@ -94,6 +94,14 @@ function agencyTestSuite () {
tearDown : function () { tearDown : function () {
}, },
////////////////////////////////////////////////////////////////////////////////
/// @brief startup timing
////////////////////////////////////////////////////////////////////////////////
testStartup : function () {
assertEqual(readAndCheck([["/x"]]), [{}]);
},
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
/// @brief test to write a single top level key /// @brief test to write a single top level key
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View File

@ -1473,7 +1473,7 @@ global.DEFINE_MODULE('internal', (function () {
if (typeof src !== 'function' || ( if (typeof src !== 'function' || (
key !== 'arguments' && key !== 'caller' && key !== 'callee' key !== 'arguments' && key !== 'caller' && key !== 'callee'
)) { )) {
if (key.charAt(0) !== '_' && !hasOwnProperty(result, key)) { if (key.charAt(0) !== '_' && !hasOwnProperty.call(result, key)) {
val = obj[key]; val = obj[key];
if (seen.indexOf(val) !== -1 && ( if (seen.indexOf(val) !== -1 && (
typeof val === 'object' || typeof val === 'function' typeof val === 'object' || typeof val === 'function'
@ -1491,7 +1491,7 @@ global.DEFINE_MODULE('internal', (function () {
if (obj.constructor && obj.constructor.name) { if (obj.constructor && obj.constructor.name) {
if (obj instanceof Error && obj.name === Error.name) { if (obj instanceof Error && obj.name === Error.name) {
result.name = obj.constructor.name; result.name = obj.constructor.name;
} else if (!hasOwnProperty(result, 'constructor')) { } else if (!hasOwnProperty.call(result, 'constructor')) {
result.constructor = { result.constructor = {
name: obj.constructor.name name: obj.constructor.name
}; };

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

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