2 Commits

Author SHA1 Message Date
9842cc6164 fix npm audit (except nodeunit)
add .nvmrc
docker nodejs build in a folder on the ephemeral disk so we don't interfere with lib and node_modules folders
2023-01-30 14:49:45 -05:00
bf1ebfaab0 release compatible with Eventstore v20.10.x 2023-01-30 11:48:29 -05:00
31 changed files with 4863 additions and 12808 deletions

1
.gitignore vendored
View File

@ -34,7 +34,6 @@ node_modules
# InteliJ # InteliJ
.idea/workspace.xml .idea/workspace.xml
.idea/shelf
.vscode .vscode
lib/ lib/

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
v14.21.2

View File

@ -24,22 +24,14 @@ If you want to learn more about EventSourcing/EventModeling, you can join one of
Install using `npm install node-eventstore-client` Install using `npm install node-eventstore-client`
Versions to install to match EventStore versions:
- 0.1.x for ES prior to 3.9.4
- 0.2.x for ES from 3.9.4 to 20.10
- 21.10.x for ES 21.10
*I am working on making version match LTS and latest release of EventStore so that TCP protocol matches*
### Dependencies ### Dependencies
- Node.js >= 12 - Node.js >= 4.0
- Modules: [long](https://www.npmjs.org/package/long), [protobufjs](https://www.npmjs.org/package/protobufjs), [uuid](https://www.npmjs.org/package/uuid), [strict-event-emitter-types](https://www.npmjs.com/package/strict-event-emitter-types) (installed via `npm install`) - Modules: [long](https://www.npmjs.org/package/long), [protobufjs](https://www.npmjs.org/package/protobufjs), [uuid](https://www.npmjs.org/package/uuid), [strict-event-emitter-types](https://www.npmjs.com/package/strict-event-emitter-types) (installed via `npm install`)
### Install and run an Eventstore on localhost ### Install and run an Eventstore on localhost
See https://eventstore.com See https://eventstore.org/docs/introduction/4.1.0/
*Note: If you are using a version of EventStore prior to 3.9.4, you need to use version 0.1.x of this package `npm install node-eventstore-client@^0.1`.* *Note: If you are using a version of EventStore prior to 3.9.4, you need to use version 0.1.x of this package `npm install node-eventstore-client@^0.1`.*

11
build-and-test.sh Executable file
View File

@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -e
if [[ -d /var/code/src ]]; then
cp -R /var/code/{src,test,*.js,*.json} .
fi
npm i
npm run build
npm run test-debug

View File

@ -1,23 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIID0zCCArugAwIBAgIRAICyIvDoMRsOp8HOeD9x6k0wDQYJKoZIhvcNAQELBQAw MIIECDCCAvCgAwIBAgIQI83qjs8Vn2iLbeUZbTPRcTANBgkqhkiG9w0BAQsFADBi
YjELMAkGA1UEBhMCVUsxGDAWBgNVBAoTD0V2ZW50IFN0b3JlIEx0ZDE5MDcGA1UE MQswCQYDVQQGEwJVSzEYMBYGA1UEChMPRXZlbnQgU3RvcmUgTHRkMTkwNwYDVQQD
AxMwRXZlbnRTdG9yZURCIENBIDkwZjQ3M2NjZmMyMTNiMmM2YzQ5MzM4ZjFlMTk5 EzBFdmVudFN0b3JlREIgQ0EgOTBmNDczY2NmYzIxM2IyYzZjNDkzMzhmMWUxOTk5
OTFhMB4XDTIyMTAyMjEzNTIwMloXDTIzMTAyMjEzNTIwMlowHDEaMBgGA1UEAxMR MWEwHhcNMjMwMTMwMTUyMzM0WhcNMjQwMTMwMTUyMzM0WjAcMRowGAYDVQQDExFl
ZXZlbnRzdG9yZWRiLW5vZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB dmVudHN0b3JlZGItbm9kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AQC5EvroAGtYYso6BHH1Ik9IeTV7fQZfpKqolGKtDyw8UBdJiss5OfQYB35I0lbw AL3CBeNLxZDvUA4WMRACrM+kxvrlD8ahs9MOFfAJHCNLoNR4mWAvh+BUDHsG7E56
QOYU5oC4kto1ku4Y+kEuv/4RHPNEykurjYtGAcBRMT8JB96dW6rrKtGkISJlmtfa 4I5Y7XbC0cCIIER3/QB6Jz80kcJ4y745d9RCbYSqTeUnptrLdcXDNiwbI3bAjyuJ
0OoAcPySKHnjrgsT3FYpvD5Sm8aP7YuZlaZbUIyg66h0Nd932bAZN8i7UoiAKxse tEqg+iPjrz2E6bSlZ4GSxKSTC95Dm80UUU/CG6+H1FesN8JP+ruYey4S5bYASy6o
3m1a/rJvHCcMma9tJwuzfc7GU8yyRhl9a9doUtwh0uGU7sfiXR0yQB7xYKroXl3R z1NtYaPDGqSqDGvLhuWQNKoJAAc4g1R/UcVFbuI2asnCkFGjDF7gcRKkHpw0DNhN
YBvqoteZ3beTSBM5mAxfRKK3JS3NlK4ys4DXp2YVWTUkoEv9oDqLr7DJSnPA1ZQk TMQWMdQ2+I8it5UwNzYpsCZj/le5a54mNZqNYj52nEpURDsdJy4BXJy5dUwADZHz
MwZGByQohPDF6vz9ok2rX6W3AgMBAAGjgckwgcYwDgYDVR0PAQH/BAQDAgWgMB0G ffN+ciWEToQz2hZmnliIG98CAwEAAaOB/zCB/DAOBgNVHQ8BAf8EBAMCBaAwHQYD
A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMCkGA1Ud VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwKQYDVR0O
DgQiBCBAtQuI/026tsHlRnIi4NJRD6gZWAb/lf7D2zow/ACgkjArBgNVHSMEJDAi BCIEIFRmt7SsPXFStSAcZDS9OCP03JyevPMV6/1R0Utg8UA3MCsGA1UdIwQkMCKA
gCD/e+Znkm9xKVyrJo1eCtBnkU5eVn0e9iv3H5NuuzczHjAvBgNVHREEKDAmgiQq IP975meSb3EpXKsmjV4K0GeRTl5WfR72K/cfk267NzMeMGUGA1UdEQReMFyCKmNs
LnRlc3RzLm5vZGUtZXZlbnRzdG9yZS1jbGllbnQubG9jYWwwDQYJKoZIhvcNAQEL dXN0ZXIudGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIIobm9kZTEu
BQADggEBAMDQE0GqALLeMixp7ZbKepN+BvqLvQYF22U0wr+rBdo4UvEKTAtZ1Jku dGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIcEwKghCjANBgkqhkiG
vwhPy6fmlq8vwf9YGrwJHwQHRIbg/H0gFV3M+Xk4LNg7anptBQ+K0Q1tSo997uoS 9w0BAQsFAAOCAQEATHxhyf27pPFJRegPB9ozm4P06MkvZMm4syxmoR1jJohm+7Xp
jNKZTD9szy2dLfJK3xaJT5tU2qcTxPFr7/ztDhc1qXX094rqcVJc6GIQXZdvh9FD 7jd9ENATFApZNxV+/MYGgryML9Y+Md/Bd1fttP8j0MUR5euJX8zehrnCufaIw2If
kNjRpCVnHNWX8CWRYdod+Lq9IUDwTsWi8BVPIxJUB2qbiK40tX77+NGV6MFmhGFE /a9YalJ2/a+WElAgTHM1sCpdvL+WwsQ6IjWPVfGIu7VIotQXIqllZUjMd3rFI4Ip
aLdso5mwegpqOQXM8m/JRDrJNVAZAbDT4Myy1+UcDu/91jw/xuPmCLZMXEbsFIGu 9CkMgXbZzls8OhWH1FnPkFFjolqITwcgSmn3NWbQkl6qFYFjAZ8pFcjhdNay7yZx
IKF8Kr6IXObMJpr7M8t/vb1eb6BQufk= +Pe9gEPbi6iyP50xb0LQtJXQQvFhwmDQbR5v0xiBI6ONK8mha3fQkxmV1wMPJdvQ
TOva/iFP4qmjyewyzOd752DN6r4qFlpb39Hpmw==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -1,23 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
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
8M4M9MYa3Xy4FUquonpnSYiYtLEdvQ== k2h2/G36i26lTTm2TyxO4A2v8PotRO0xhjJkVKVEs4ZuY+lK6JUoTaM9Z8FubDqE
K2KH+YCBdER5jQK2YbmZDRh58aKMpCXtCx8RqQ==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -1,23 +1,24 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIID0zCCArugAwIBAgIRAIrgk9b8CiaOIhKw0UVCnw0wDQYJKoZIhvcNAQELBQAw MIIECDCCAvCgAwIBAgIQecOoexYVeIUtLwNQp179vzANBgkqhkiG9w0BAQsFADBi
YjELMAkGA1UEBhMCVUsxGDAWBgNVBAoTD0V2ZW50IFN0b3JlIEx0ZDE5MDcGA1UE MQswCQYDVQQGEwJVSzEYMBYGA1UEChMPRXZlbnQgU3RvcmUgTHRkMTkwNwYDVQQD
AxMwRXZlbnRTdG9yZURCIENBIDkwZjQ3M2NjZmMyMTNiMmM2YzQ5MzM4ZjFlMTk5 EzBFdmVudFN0b3JlREIgQ0EgOTBmNDczY2NmYzIxM2IyYzZjNDkzMzhmMWUxOTk5
OTFhMB4XDTIyMTAyMjEzNTIwM1oXDTIzMTAyMjEzNTIwM1owHDEaMBgGA1UEAxMR MWEwHhcNMjMwMTMwMTUyMzQ2WhcNMjQwMTMwMTUyMzQ2WjAcMRowGAYDVQQDExFl
ZXZlbnRzdG9yZWRiLW5vZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB dmVudHN0b3JlZGItbm9kZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AQDmS3u8Mx1OUbXqFlDSU25sthiBI8p5sUq5/VvuKVEAvBuSQydTwbCU3cfaUNCk AN8iXoWZjjxOqJJLTHmHOy89lbk2pBo/ca7qPZ/WC+I52A4Lgw58/O7tV/RHFyao
wLkIEVJInqtzsUnUWkPRDg3W4bFzEoXzP1/1OffqcgjwDl+hym/k0HWGvt4UzXnw X8lS2hAVMlRfToUqj7ILAVBeF3t827W0qttbv+wdnxvIWqpq1HdtV5xgLIUXbyiQ
7MXHxlMUj6E+GK9JvleKIo9C/zWg7o7ZaC4s/cYkkkmHHzHVCcapuKCJEbUKJgzt SI97Tgn7zDJOvm41sHV0xsPWKlritliDByXlGMOabzV53yxa1c0cU2bP5n7nc9wW
JnJ8wZCPvmEHWoTT7255drMMh1cwzZvOqCWpZ0Qk1+KZc6C7QcbGrnPv1PIKT53o KOH03OU64qCj6MJTdi35peKDhaAcRtGmr5ZggUCP4n9GUzJ1FATAkcrLMOjoh1v1
7XDZnAXTGfbah0/e5zIM4/Ms3JauObbcXv/oSb8KeiMrYmM12CfAJ9LAu7sm8uOz K6auqOQZ8f+ns+3bQ4G96rZxwwrSzI/leUFY4u/lzjLUlEuLALJquPrB6RiwzTwb
tuVvpaT9lH0v91Aat1G4k19/AgMBAAGjgckwgcYwDgYDVR0PAQH/BAQDAgWgMB0G BOaTYG6mgWORWPBupjpj67cCAwEAAaOB/zCB/DAOBgNVHQ8BAf8EBAMCBaAwHQYD
A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMCkGA1Ud VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwKQYDVR0O
DgQiBCCla0cvcjb+WYGvsdw50JZcKNTFFj4je4cHn8xci9SQqTArBgNVHSMEJDAi BCIEIMdKDLFiWvROUmnmDVing8S3lLisBr+vfrrM+A0t3yycMCsGA1UdIwQkMCKA
gCD/e+Znkm9xKVyrJo1eCtBnkU5eVn0e9iv3H5NuuzczHjAvBgNVHREEKDAmgiQq IP975meSb3EpXKsmjV4K0GeRTl5WfR72K/cfk267NzMeMGUGA1UdEQReMFyCKmNs
LnRlc3RzLm5vZGUtZXZlbnRzdG9yZS1jbGllbnQubG9jYWwwDQYJKoZIhvcNAQEL dXN0ZXIudGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIIobm9kZTMu
BQADggEBAJtCYINTvOQXOYIhEUZLjyPKqAKc5Ey117WNj1BJ1OAlrddwiMGUZg1L dGVzdHMubm9kZS1ldmVudHN0b3JlLWNsaWVudC5sb2NhbIcEwKghDDANBgkqhkiG
g3Md2oKJXrsKrNBgePEnfa/gCt1kBUpNfO5ILVJtVzuifQAsePtbjvkRA5suzll3 9w0BAQsFAAOCAQEAEJmQloXSfxqWGIdGFi7UFDNr3oTxuQsEJRztKzA1rRPbvFhp
FP1QrvC8ZCq9oDW9+/WEGEi2Bjp2RPKlRBKj1wP/4MYKwjoGY2ezrb/rutKVpdIm jJ1uPZKRv0SBnmaQa6+PW1zphP+kklmMq9XqiFqq7D7FmYgr2err08DbQfMxyEhG
3UEoaJG1VpT7IkdcIcLSCyPS5BDd/Jf1428ZZuq6DlbSOIRjCo8w9hazfizeJ+iE yHmaBFzEyI/rm8jRn3K5DMV6cDCB3jTn5eud3oVVAZwTsLcR3mB2UpSJ7lAJgRFs
kGDygYYg5RkPsl8ACcXsZDCPr6gS2yFa1v0eQOV3CPeO8i6aiQToZekEoAVGrJ9/ 5pfFFgHKCQ4YQcFIkNtMeda7KpVv4YxoltJMSISDGvo4fcNhCH62H6/PDJFBi/e9
HpLfDap2pVqf8gSnX59XIsE/WwMVWjc= L4vB7eZHaO//8UQQxV24VSDLDBP1MQ4ucLZEVam9HQj4qK+DiwDlH6WmQs22FqqE
i7aLjEEu9Ko2zG7hzTp1jxDfyPw5iByax1JdXw==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA5kt7vDMdTlG16hZQ0lNubLYYgSPKebFKuf1b7ilRALwbkkMn MIIEpAIBAAKCAQEA3yJehZmOPE6okktMeYc7Lz2VuTakGj9xruo9n9YL4jnYDguD
U8GwlN3H2lDQpMC5CBFSSJ6rc7FJ1FpD0Q4N1uGxcxKF8z9f9Tn36nII8A5focpv Dnz87u1X9EcXJqhfyVLaEBUyVF9OhSqPsgsBUF4Xe3zbtbSq21u/7B2fG8haqmrU
5NB1hr7eFM158OzFx8ZTFI+hPhivSb5XiiKPQv81oO6O2WguLP3GJJJJhx8x1QnG d21XnGAshRdvKJBIj3tOCfvMMk6+bjWwdXTGw9YqWuK2WIMHJeUYw5pvNXnfLFrV
qbigiRG1CiYM7SZyfMGQj75hB1qE0+9ueXazDIdXMM2bzqglqWdEJNfimXOgu0HG zRxTZs/mfudz3BYo4fTc5TrioKPowlN2Lfml4oOFoBxG0aavlmCBQI/if0ZTMnUU
xq5z79TyCk+d6O1w2ZwF0xn22odP3ucyDOPzLNyWrjm23F7/6Em/CnojK2JjNdgn BMCRyssw6OiHW/Urpq6o5Bnx/6ez7dtDgb3qtnHDCtLMj+V5QVji7+XOMtSUS4sA
wCfSwLu7JvLjs7blb6Wk/ZR9L/dQGrdRuJNffwIDAQABAoIBAHmEOO0sd3k9CmVT smq4+sHpGLDNPBsE5pNgbqaBY5FY8G6mOmPrtwIDAQABAoIBADk571QEVd5RrhoX
kx/4IBtC1plF3m/qCgkr1BdOO8zMdSvvPVAnstpKUEs1O3LDsp68LRPejY+Fa/Se Bb4FWMB84vFleiDhNJ7PpI5hrxqOC0NO4IXOuG/unygfM2jOtgJEJXkKdqX8635r
EIy+ArVw76ZNjtq0hRirltJhi6/HldSUMgilqm4IRrzpUz+6X/4y+uGtjCJs+glK s/7No8Cg4RTiqNapR0iK92XvEudlMxuR2nvmpxmL8N8Ra4jTuEhUL2eQFIaye1R4
Y3yjEb8DVTPuzPeQzlS1L5lai2u9HKBBOOY5At6lwDa9ckZd3Xyf3xUPGiK/Vdyd oJD/Khr/yk0U5/87W5H0d61y5iKobF87QbI9xxkBGGQygsvoEni4sHchN1se/Ha8
HscVpr/PBQeMkXODhUCRIyY2nfSncYOv1d+TM2r7PXi4v/zrPnfybz8D7eseo6YR y9nb6B/9sYU8lfSSaRhS/sqpH/ppnptWr1hwxj6jxI21uMB+cWN+rs8j1F0Zizex
NS/70rNJSfn2snhTS1iFaAPvG8AU6nLwGlj/8m8J69IFS34znmj+T6bcCSSyV40o +TTDqhyuYoqh1x2J9UFCjipiKVnA1563eFmtQZk2nrNdjvN6K9qWa0iF8IgTGvdh
YqOPRzECgYEA6LVYbuZqkeqCtW4cGOJ5AShhl8CCG7BLR61/A2Vd1aQYUchlYi3R m+9NNEECgYEA6sYqugSzeVCqBqHKAQKESsO6XOQjwkDZQhgeDG8Sal5RArlNsup6
PNoH8F4lD6HT61zL25e4IRlTkYllblRldN3PzMHxyDVKak9UclW70KbP37e7Ta49 hh/ZONPCL/6zxz5oKEyxzsTg4tJI9F3uqkpF5rcM1UGCc3maywXmLUd70NuTWM2G
HQAz45ewM3nOnJN8lHgSxP3IVUGXZolhjqis+3/Afr+hhzj7GDaAcicCgYEA/VhL hz+R4IhKyuQsFhWzFRBh10rorSvjIflkKiviZp+lNiDp1UnY0pOhxWUCgYEA807M
6DKhacYfXvwnQuQ35n/MNkbBCH8mcytoGDGrJ62Mh8Lu0UEJ5R2HhvMrZsOsuLbR i60fuTTZsvGKhExORHUOnfs3USst1zHODDAaQYyjUYJP7ix/azf1ciHeeNCZ9rzF
tAV2AGmeV1ixcdiZZoZb1J0V4BP5T1QP89DSlO9N5xwJTvV8r3rdXJUMbntcXl2F 9xBlDKChRSvKPnU0K07C49a+WI4rdgw8zS+8dqKdvaczPas0InPzXs+oW/O6I86I
eUJ0L3Hi4/13wb/ohsfTIce2IWtmstFBwJ529ukCgYAvhwIlvEedv6Csf22bo32F ANEanw9fgrAPEL4/8TLMLhjTV3msdrJ04KzVWOsCgYEAtc9Ax01cr1YIVZp1FNMe
QAMWpEmucAYgAI5FWkmc3aPd6CjUsXjfjcQ7Um8NT0bh9hTop4cCs5J+0en2a6RB H8fzSnxiNMyDcuu6WWaqnDTuB234/dUXjUacsaVLfF+CWYm6n3rFN5q/jOfMF3Gm
ByBuuFmyQzgMmGEt7NasGbWxAmxtxB1VM/plDFD/YmxRTEoQZKmotBBbYUcTuRFE obli6IhZJ8zTeRlzBkZLOkVhXRytvtdqltJj5b2mLfkFKxUi2e0V1+PqzDBwdJ7t
uqyBvSjKekb6QCgAXPlE1wKBgQCSc4Fl2CbhG2u1H/SeQYljEMt/MMWT4NTcTOJe MrtJWK/JAWH7s3C8uFYbsQECgYEAsxD2d4H1zA/6fLlKEa47GCTymhCumJ1nwm4U
4g9732JWdMRTaNKMhNZ8l4OmY0UsflqZQ3LkaCnlelsRYdHDp7XcIXas0z8SsZiL UGICoOWJuU5n10mGiXmIufP1UQNtnOs342p8hDugFVFyKl+GAq2Xv6lnM7OGhv3g
LFMfT3rsN5PV9ik+07q1M2A9WciasFthLp41cxNjEnoxIXwMteUCKQ3LIef7ROZK rb6JPOLXpyHsE2HyH70oi0nXhb0t7HZvH/LFXfUpfPxoShFK7BBPt0lsGYAiDsWu
sBA7SQKBgQDBxdbUQCpwLs9iJQH+ddPhIGKXLGNw/3f4quKBGz6fO1X4E9STFWoa QUDST/sCgYAVljJlvlEx8C8HmBrSeeh+Zec9t9HDjl04jNAwenY4x5hD1l1u2ij5
diu+C27608WmPEnDLy58yCameZ4sk/Pt269yhHerEuPrSFKrqVQOyyO9utCQHbRY OJqVodZd1s/To7Dm9Xc6w7r6c9x8xsok4Kc3izc/KQXlxPvRnxF76J4KsMw8kEU1
9wjvymJnXAvJE4CgXvdYLIFvaog86KmhpVX830gnyFdJ+d7EDpUU9w== LnQN+igffijohdln2Q8cQnEZylM1N4e+sNat5ufEzTk7MBn1676aHA==
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

View File

@ -1,15 +1,15 @@
version: '3.4' version: '3.7'
services: services:
eventstore.db: eventstore1:
image: eventstore/eventstore:21.10.8-buster-slim image: eventstore/eventstore:20.10.5-buster-slim
environment: environment:
- EVENTSTORE_CLUSTER_SIZE=3 - EVENTSTORE_CLUSTER_SIZE=3
- EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local - EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local
- EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node1.tests.node-eventstore-client.local - EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node1.tests.node-eventstore-client.local
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113 - EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113
- EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113 - EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113
# - EVENTSTORE_DISCOVER_VIA_DNS=false # - EVENTSTORE_DISCOVER_VIA_DNS=False
# - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113 # - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113
- EVENTSTORE_RUN_PROJECTIONS=All - EVENTSTORE_RUN_PROJECTIONS=All
- EVENTSTORE_START_STANDARD_PROJECTIONS=True - EVENTSTORE_START_STANDARD_PROJECTIONS=True
@ -21,6 +21,10 @@ services:
- EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node1/node1.crt - EVENTSTORE_CERTIFICATE_FILE=/etc/eventstore/certs/node1/node1.crt
- EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node1/node1.key - EVENTSTORE_CERTIFICATE_PRIVATE_KEY_FILE=/etc/eventstore/certs/node1/node1.key
- EVENTSTORE_TRUSTED_ROOT_CERTIFICATES_PATH=/etc/eventstore/certs/ca - EVENTSTORE_TRUSTED_ROOT_CERTIFICATES_PATH=/etc/eventstore/certs/ca
expose:
- "1112"
- "1113"
- "2113"
ports: ports:
- "1112:1112" - "1112:1112"
- "1113:1113" - "1113:1113"
@ -35,15 +39,15 @@ services:
- eventstore1-data:/var/lib/eventstore - eventstore1-data:/var/lib/eventstore
- ./certs:/etc/eventstore/certs:ro - ./certs:/etc/eventstore/certs:ro
eventstore.db2: eventstore2:
image: eventstore/eventstore:21.10.8-buster-slim image: eventstore/eventstore:20.10.5-buster-slim
environment: environment:
- EVENTSTORE_CLUSTER_SIZE=3 - EVENTSTORE_CLUSTER_SIZE=3
- EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local - EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local
- EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node2.tests.node-eventstore-client.local - EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node2.tests.node-eventstore-client.local
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113 - EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113
- EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113 - EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113
# - EVENTSTORE_DISCOVER_VIA_DNS=false # - EVENTSTORE_DISCOVER_VIA_DNS=False
# - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113 # - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113
- EVENTSTORE_RUN_PROJECTIONS=All - EVENTSTORE_RUN_PROJECTIONS=All
- EVENTSTORE_START_STANDARD_PROJECTIONS=True - EVENTSTORE_START_STANDARD_PROJECTIONS=True
@ -69,15 +73,15 @@ services:
- eventstore2-data:/var/lib/eventstore - eventstore2-data:/var/lib/eventstore
- ./certs:/etc/eventstore/certs:ro - ./certs:/etc/eventstore/certs:ro
eventstore.db3: eventstore3:
image: eventstore/eventstore:21.10.8-buster-slim image: eventstore/eventstore:20.10.5-buster-slim
environment: environment:
- EVENTSTORE_CLUSTER_SIZE=3 - EVENTSTORE_CLUSTER_SIZE=3
- EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local - EVENTSTORE_CLUSTER_DNS=cluster.tests.node-eventstore-client.local
- EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node3.tests.node-eventstore-client.local - EVENTSTORE_ADVERTISE_HOST_TO_CLIENT_AS=node3.tests.node-eventstore-client.local
- EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113 - EVENTSTORE_ADVERTISE_HTTP_PORT_TO_CLIENT_AS=2113
- EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113 - EVENTSTORE_ADVERTISE_TCP_PORT_TO_CLIENT_AS=1113
# - EVENTSTORE_DISCOVER_VIA_DNS=false # - EVENTSTORE_DISCOVER_VIA_DNS=False
# - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113 # - EVENTSTORE_GOSSIP_SEED=192.168.33.10:2113,192.168.33.11:2113,192.168.33.12:2113
- EVENTSTORE_RUN_PROJECTIONS=All - EVENTSTORE_RUN_PROJECTIONS=All
- EVENTSTORE_START_STANDARD_PROJECTIONS=True - EVENTSTORE_START_STANDARD_PROJECTIONS=True
@ -104,14 +108,18 @@ services:
- ./certs:/etc/eventstore/certs:ro - ./certs:/etc/eventstore/certs:ro
nodejs: nodejs:
image: node:12 image: node:14
working_dir: /var/code working_dir: /var/build
volumes: volumes:
- .:/var/code - ./:/var/code:ro
- /var/code/node_modules - ./build-and-test.sh:/var/build/build-and-test.sh:ro
- ./certs:/var/certs:ro
environment:
- NODE_EXTRA_CA_CERTS=/var/certs/ca/ca.crt
command: bash -c "tail -f /dev/null" command: bash -c "tail -f /dev/null"
networks: networks:
- app_net app_net:
ipv4_address: 192.168.33.5
volumes: volumes:
eventstore1-data: eventstore1-data:

View File

@ -1,8 +1,8 @@
version: '3.4' version: '3.4'
services: services:
eventstore.db: eventstore:
image: eventstore/eventstore:21.10.8-buster-slim image: eventstore/eventstore:20.10.5-buster-slim
environment: environment:
- EVENTSTORE_CLUSTER_SIZE=1 - EVENTSTORE_CLUSTER_SIZE=1
- EVENTSTORE_RUN_PROJECTIONS=All - EVENTSTORE_RUN_PROJECTIONS=All
@ -18,22 +18,30 @@ services:
ports: ports:
- "1113:1113" - "1113:1113"
- "2113:2113" - "2113:2113"
tmpfs:
- /var/log/eventstore
volumes: volumes:
- eventstore-data:/var/lib/eventstore - eventstore-data:/var/lib/eventstore
- ./certs:/etc/eventstore/certs:ro - ./certs:/etc/eventstore/certs:ro
networks: networks:
app_net: app_net:
aliases:
- node1.tests.node-eventstore-client.local
ipv4_address: 192.168.33.10 ipv4_address: 192.168.33.10
nodejs: nodejs:
image: node:12 image: node:14
working_dir: /var/code working_dir: /var/build
volumes: volumes:
- .:/var/code - ./:/var/code:ro
- /var/code/node_modules - ./build-and-test.sh:/var/build/build-and-test.sh:ro
- ./certs:/var/certs:ro
environment:
- NODE_EXTRA_CA_CERTS=/var/certs/ca/ca.crt
command: bash -c "tail -f /dev/null" command: bash -c "tail -f /dev/null"
networks: networks:
- app_net app_net:
ipv4_address: 192.168.33.5
volumes: volumes:
eventstore-data: eventstore-data:

10976
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,18 @@
{ {
"name": "node-eventstore-client", "name": "node-eventstore-client",
"version": "21.10.0", "version": "20.10.0",
"description": "A port of the EventStore .Net ClientAPI to Node.js", "description": "A port of the EventStore .Net ClientAPI to Node.js",
"main": "index.js", "main": "index.js",
"types": "index.d.ts", "types": "index.d.ts",
"engines": { "engines": {
"node": ">=12" "node": ">=14",
"npm": ">=6"
}, },
"engineStrict": true, "engineStrict": true,
"scripts": { "scripts": {
"clean": "rm -f lib/dist.js", "clean": "rm -f lib/dist.js",
"prebuild": "npm run clean", "prebuild": "npm run clean",
"build": "webpack -o ./lib/dist.js", "build": "webpack",
"pretest": "npm run build", "pretest": "npm run build",
"test": "nodeunit", "test": "nodeunit",
"test-debug": "TESTS_VERBOSE_LOGGING=1 nodeunit", "test-debug": "TESTS_VERBOSE_LOGGING=1 nodeunit",
@ -24,9 +25,9 @@
"compose:single:stop": "docker-compose -f docker-compose-single.yaml down -v --remove-orphans", "compose:single:stop": "docker-compose -f docker-compose-single.yaml down -v --remove-orphans",
"compose:cluster:stop": "docker-compose -f docker-compose-cluster.yaml down -v --remove-orphans", "compose:cluster:stop": "docker-compose -f docker-compose-cluster.yaml down -v --remove-orphans",
"compose:wait": "while [ \"$(curl -s -o /dev/null -w ''%{http_code}'' -k https://localhost:2113/ping)\" != \"200\" ]; do sleep 5; done", "compose:wait": "while [ \"$(curl -s -o /dev/null -w ''%{http_code}'' -k https://localhost:2113/ping)\" != \"200\" ]; do sleep 5; done",
"compose:single:test": "docker-compose -f docker-compose-single.yaml exec nodejs bash -c \"npm i && npm run build && EVENTSTORE_CONNECTION_TYPE=tcp EVENTSTORE_HOST=192.168.33.10 npm run test-debug\"", "compose:single:test": "docker-compose -f docker-compose-single.yaml exec nodejs bash -c \"EVENTSTORE_CONNECTION_TYPE=tcp EVENTSTORE_HOST=192.168.33.10 ./build-and-test.sh\"",
"compose:cluster:test": "docker-compose -f docker-compose-cluster.yaml exec nodejs bash -c \"npm i && npm run build && EVENTSTORE_CONNECTION_TYPE=gossip EVENTSTORE_HOST=192.168.33.10 EVENTSTORE_HOST_1=192.168.33.10 EVENTSTORE_HOST_2=192.168.33.11 EVENTSTORE_HOST_3=192.168.33.12 npm run test-debug\"", "compose:gossip:test": "docker-compose -f docker-compose-cluster.yaml exec nodejs bash -c \"EVENTSTORE_CONNECTION_TYPE=gossip EVENTSTORE_HOST=192.168.33.10 EVENTSTORE_HOST_1=192.168.33.10 EVENTSTORE_HOST_2=192.168.33.11 EVENTSTORE_HOST_3=192.168.33.12 ./build-and-test.sh\"",
"compose:gossip:test": "docker-compose -f docker-compose-cluster.yaml exec nodejs bash -c \"npm i && npm run build && EVENTSTORE_CONNECTION_TYPE=dns EVENTSTORE_HOST=192.168.33.10 npm run test-debug\"", "compose:cluster:test": "docker-compose -f docker-compose-cluster.yaml exec nodejs bash -c \"EVENTSTORE_CONNECTION_TYPE=dns EVENTSTORE_HOST=cluster.tests.node-eventstore-client.local ./build-and-test.sh\"",
"prepublishOnly": "npm run build && npm run gendocs", "prepublishOnly": "npm run build && npm run gendocs",
"gendocs": "rm -rf docs && jsdoc src -r -d docs" "gendocs": "rm -rf docs && jsdoc src -r -d docs"
}, },
@ -58,18 +59,18 @@
}, },
"homepage": "https://github.com/nicdex/node-eventstore-client#readme", "homepage": "https://github.com/nicdex/node-eventstore-client#readme",
"dependencies": { "dependencies": {
"@types/node": ">=12", "@types/long": "^3.0.32",
"long": "^5.2.0", "@types/node": ">=5.10",
"protobufjs": "^7.1.2", "long": "^3.2.0",
"protobufjs-cli": "^1.0.2", "protobufjs": "^6.8.8",
"strict-event-emitter-types": "^1.2.0", "strict-event-emitter-types": "^1.2.0",
"uuid": "^9.0.0" "uuid": "^3.0.1"
}, },
"devDependencies": { "devDependencies": {
"jest": "^26.4.2", "jest": "^29.4.1",
"jsdoc": "^3.6.3", "jsdoc": "^4.0.0",
"nodeunit": "^0.11.3", "nodeunit": "^0.11.3",
"webpack": "^4.41.2", "webpack": "^5.75.0",
"webpack-cli": "^3.3.10" "webpack-cli": "^3.3.10"
} }
} }

View File

@ -37,7 +37,7 @@ AppendToStreamOperation.prototype._createRequestDto = function() {
eventStreamId: this._stream, eventStreamId: this._stream,
expectedVersion: this._expectedVersion, expectedVersion: this._expectedVersion,
events: dtos, events: dtos,
requireLeader: this._requireMaster}); requireMaster: this._requireMaster});
}; };
AppendToStreamOperation.prototype._inspectResponse = function(response) { AppendToStreamOperation.prototype._inspectResponse = function(response) {
@ -79,4 +79,4 @@ AppendToStreamOperation.prototype.toString = function() {
return util.format("Stream: %s, ExpectedVersion: %d", this._stream, this._expectedVersion); return util.format("Stream: %s, ExpectedVersion: %d", this._stream, this._expectedVersion);
}; };
module.exports = AppendToStreamOperation; module.exports = AppendToStreamOperation;

View File

@ -24,7 +24,7 @@ util.inherits(CommitTransactionOperation, OperationBase);
CommitTransactionOperation.prototype._createRequestDto = function() { CommitTransactionOperation.prototype._createRequestDto = function() {
return new ClientMessage.TransactionCommit({ return new ClientMessage.TransactionCommit({
transactionId: this._transactionId, transactionId: this._transactionId,
requireLeader: this._requireMaster requireMaster: this._requireMaster
}); });
}; };
@ -66,4 +66,4 @@ CommitTransactionOperation.prototype.toString = function() {
return util.format("TransactionId: %s", this._transactionId); return util.format("TransactionId: %s", this._transactionId);
}; };
module.exports = CommitTransactionOperation; module.exports = CommitTransactionOperation;

View File

@ -27,7 +27,7 @@ DeleteStreamOperation.prototype._createRequestDto = function() {
return new ClientMessage.DeleteStream({ return new ClientMessage.DeleteStream({
eventStreamId: this._stream, eventStreamId: this._stream,
expectedVersion: this._expectedVersion, expectedVersion: this._expectedVersion,
requireLeader: this._requireMaster, requireMaster: this._requireMaster,
hardDelete: this._hardDelete hardDelete: this._hardDelete
}); });
}; };
@ -69,4 +69,4 @@ DeleteStreamOperation.prototype.toString = function() {
return util.format("Stream: %s, ExpectedVersion: %s.", this._stream, this._expectedVersion); return util.format("Stream: %s, ExpectedVersion: %s.", this._stream, this._expectedVersion);
}; };
module.exports = DeleteStreamOperation; module.exports = DeleteStreamOperation;

View File

@ -117,9 +117,9 @@ OperationBase.prototype._inspectNotHandled = function(pkg)
case ClientMessage.NotHandled.NotHandledReason.TooBusy: case ClientMessage.NotHandled.NotHandledReason.TooBusy:
return new InspectionResult(InspectionDecision.Retry, "NotHandled - TooBusy"); return new InspectionResult(InspectionDecision.Retry, "NotHandled - TooBusy");
case ClientMessage.NotHandled.NotHandledReason.NotLeader: case ClientMessage.NotHandled.NotHandledReason.NotMaster:
var masterInfo = ClientMessage.NotHandled.LeaderInfo.decode(message.additionalInfo); var masterInfo = ClientMessage.NotHandled.MasterInfo.decode(message.additionalInfo);
return new InspectionResult(InspectionDecision.Reconnect, "NotHandled - NotLeader", return new InspectionResult(InspectionDecision.Reconnect, "NotHandled - NotMaster",
{host: masterInfo.externalTcpAddress, port: masterInfo.externalTcpPort}, {host: masterInfo.externalTcpAddress, port: masterInfo.externalTcpPort},
{host: masterInfo.externalSecureTcpAddress, port: masterInfo.externalSecureTcpPort}); {host: masterInfo.externalSecureTcpAddress, port: masterInfo.externalSecureTcpPort});
@ -145,4 +145,4 @@ OperationBase.prototype._inspectUnexpectedCommand = function(pkg, expectedComman
}; };
module.exports = OperationBase; module.exports = OperationBase;

View File

@ -29,7 +29,7 @@ ReadAllEventsBackwardOperation.prototype._createRequestDto = function() {
preparePosition: this._position.preparePosition, preparePosition: this._position.preparePosition,
maxCount: this._maxCount, maxCount: this._maxCount,
resolveLinkTos: this._resolveLinkTos, resolveLinkTos: this._resolveLinkTos,
requireLeader: this._requireMaster requireMaster: this._requireMaster
}); });
}; };
@ -64,4 +64,4 @@ ReadAllEventsBackwardOperation.prototype.toString = function() {
this._position, this._maxCount, this._resolveLinkTos, this._requireMaster); this._position, this._maxCount, this._resolveLinkTos, this._requireMaster);
}; };
module.exports = ReadAllEventsBackwardOperation; module.exports = ReadAllEventsBackwardOperation;

View File

@ -29,7 +29,7 @@ ReadAllEventsForwardOperation.prototype._createRequestDto = function() {
preparePosition: this._position.preparePosition, preparePosition: this._position.preparePosition,
maxCount: this._maxCount, maxCount: this._maxCount,
resolveLinkTos: this._resolveLinkTos, resolveLinkTos: this._resolveLinkTos,
requireLeader: this._requireMaster requireMaster: this._requireMaster
}); });
}; };
@ -64,4 +64,4 @@ ReadAllEventsForwardOperation.prototype.toString = function() {
this._position, this._maxCount, this._resolveLinkTos, this._requireMaster); this._position, this._maxCount, this._resolveLinkTos, this._requireMaster);
}; };
module.exports = ReadAllEventsForwardOperation; module.exports = ReadAllEventsForwardOperation;

View File

@ -25,7 +25,7 @@ ReadEventOperation.prototype._createRequestDto = function() {
eventStreamId: this._stream, eventStreamId: this._stream,
eventNumber: this._eventNumber, eventNumber: this._eventNumber,
resolveLinkTos: this._resolveLinkTos, resolveLinkTos: this._resolveLinkTos,
requireLeader: this._requireMaster requireMaster: this._requireMaster
}); });
}; };
@ -81,4 +81,4 @@ ReadEventOperation.prototype.toString = function() {
this._stream, this._eventNumber, this._resolveLinkTos, this._requireMaster); this._stream, this._eventNumber, this._resolveLinkTos, this._requireMaster);
}; };
module.exports = ReadEventOperation; module.exports = ReadEventOperation;

View File

@ -31,7 +31,7 @@ ReadStreamEventsBackwardOperation.prototype._createRequestDto = function() {
fromEventNumber: this._fromEventNumber, fromEventNumber: this._fromEventNumber,
maxCount: this._maxCount, maxCount: this._maxCount,
resolveLinkTos: this._resolveLinkTos, resolveLinkTos: this._resolveLinkTos,
requireLeader: this._requireMaster requireMaster: this._requireMaster
}); });
}; };
@ -76,4 +76,4 @@ ReadStreamEventsBackwardOperation.prototype.toString = function() {
this._stream, this._fromEventNumber, this._maxCount, this._resolveLinkTos, this._requireMaster); this._stream, this._fromEventNumber, this._maxCount, this._resolveLinkTos, this._requireMaster);
}; };
module.exports = ReadStreamEventsBackwardOperation; module.exports = ReadStreamEventsBackwardOperation;

View File

@ -31,7 +31,7 @@ ReadStreamEventsForwardOperation.prototype._createRequestDto = function() {
fromEventNumber: this._fromEventNumber, fromEventNumber: this._fromEventNumber,
maxCount: this._maxCount, maxCount: this._maxCount,
resolveLinkTos: this._resolveLinkTos, resolveLinkTos: this._resolveLinkTos,
requireLeader: this._requireMaster requireMaster: this._requireMaster
}); });
}; };
@ -76,4 +76,4 @@ ReadStreamEventsForwardOperation.prototype.toString = function() {
this._stream, this._fromEventNumber, this._maxCount, this._resolveLinkTos, this._requireMaster); this._stream, this._fromEventNumber, this._maxCount, this._resolveLinkTos, this._requireMaster);
}; };
module.exports = ReadStreamEventsForwardOperation; module.exports = ReadStreamEventsForwardOperation;

View File

@ -25,7 +25,7 @@ StartTransactionOperation.prototype._createRequestDto = function() {
return new ClientMessage.TransactionStart({ return new ClientMessage.TransactionStart({
eventStreamId: this._stream, eventStreamId: this._stream,
expectedVersion: this._expectedVersion, expectedVersion: this._expectedVersion,
requireLeader: this._requireMaster requireMaster: this._requireMaster
}); });
}; };
@ -66,4 +66,4 @@ StartTransactionOperation.prototype.toString = function() {
return util.format("Stream: %s, ExpectedVersion: %d", this._stream, this._expectedVersion); return util.format("Stream: %s, ExpectedVersion: %d", this._stream, this._expectedVersion);
}; };
module.exports = StartTransactionOperation; module.exports = StartTransactionOperation;

View File

@ -137,9 +137,9 @@ SubscriptionOperation.prototype.inspectPackage = function(pkg) {
case ClientMessage.NotHandled.NotHandledReason.TooBusy: case ClientMessage.NotHandled.NotHandledReason.TooBusy:
return new InspectionResult(InspectionDecision.Retry, "NotHandled - TooBusy"); return new InspectionResult(InspectionDecision.Retry, "NotHandled - TooBusy");
case ClientMessage.NotHandled.NotHandledReason.NotLeader: case ClientMessage.NotHandled.NotHandledReason.NotMaster:
var masterInfo = ClientMessage.NotHandled.LeaderInfo.decode(message.additionalInfo); var masterInfo = ClientMessage.NotHandled.MasterInfo.decode(message.additionalInfo);
return new InspectionResult(InspectionDecision.Reconnect, "NotHandled - NotLeader", return new InspectionResult(InspectionDecision.Reconnect, "NotHandled - NotMaster",
{host: masterInfo.externalTcpAddress, port: masterInfo.externalTcpPort}, {host: masterInfo.externalTcpAddress, port: masterInfo.externalTcpPort},
{host: masterInfo.externalSecureTcpAddress, port: masterInfo.externalSecureTcpPort}); {host: masterInfo.externalSecureTcpAddress, port: masterInfo.externalSecureTcpPort});
@ -279,4 +279,4 @@ SubscriptionOperation.prototype.toString = function() {
}; };
module.exports = SubscriptionOperation; module.exports = SubscriptionOperation;

View File

@ -32,7 +32,7 @@ TransactionalWriteOperation.prototype._createRequestDto = function() {
return new ClientMessage.TransactionWrite({ return new ClientMessage.TransactionWrite({
transactionId: this._transactionId, transactionId: this._transactionId,
events: dtos, events: dtos,
requireLeader: this._requireMaster requireMaster: this._requireMaster
}); });
}; };
@ -64,4 +64,4 @@ TransactionalWriteOperation.prototype.toString = function() {
return util.format("TransactionId: %s", this._transactionId); return util.format("TransactionId: %s", this._transactionId);
}; };
module.exports = TransactionalWriteOperation; module.exports = TransactionalWriteOperation;

View File

@ -8,15 +8,20 @@ const VNodeStates = Object.freeze({
CatchingUp: 4, CatchingUp: 4,
Clone: 5, Clone: 5,
Follower: 6, Follower: 6,
Slave: 6,
PreLeader: 7, PreLeader: 7,
PreMaster: 7,
Leader: 8, Leader: 8,
Master: 8,
Manager: 9, Manager: 9,
ShuttingDown: 10, ShuttingDown: 10,
Shutdown: 11, Shutdown: 11,
ReadOnlyLeaderless: 12, ReadOnlyLeaderless: 12,
ReadOnlyMasterless: 12,
PreReadOnlyReplica: 13, PreReadOnlyReplica: 13,
ReadOnlyReplica: 14, ReadOnlyReplica: 14,
ResigningLeader: 15, ResigningLeader: 15,
ResigningMaster: 15,
}); });
function ClusterInfo(members) { function ClusterInfo(members) {
@ -32,7 +37,7 @@ function ClusterInfo(members) {
ClusterInfo.prototype._getBestNode = function () { ClusterInfo.prototype._getBestNode = function () {
return this._members return this._members
.filter(member => member.isAlive && member.isAllowedToConnect) .filter(member => member.isAlive && member.isAllowedToConnect && VNodeStates[member.state] <= VNodeStates.Master)
.sort(function (a, b) { .sort(function (a, b) {
return VNodeStates[b.state] - VNodeStates[a.state]; return VNodeStates[b.state] - VNodeStates[a.state];
})[0]; })[0];

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,3 @@
syntax = "proto2";
package EventStore.Client.Messages; package EventStore.Client.Messages;
enum OperationResult enum OperationResult
@ -52,7 +50,7 @@ message WriteEvents {
required string event_stream_id = 1; required string event_stream_id = 1;
required int64 expected_version = 2; required int64 expected_version = 2;
repeated NewEvent events = 3; repeated NewEvent events = 3;
required bool require_leader = 4; required bool require_master = 4;
} }
message WriteEventsCompleted { message WriteEventsCompleted {
@ -68,7 +66,7 @@ message WriteEventsCompleted {
message DeleteStream { message DeleteStream {
required string event_stream_id = 1; required string event_stream_id = 1;
required int64 expected_version = 2; required int64 expected_version = 2;
required bool require_leader = 3; required bool require_master = 3;
optional bool hard_delete = 4; optional bool hard_delete = 4;
} }
@ -77,13 +75,12 @@ message DeleteStreamCompleted {
optional string message = 2; optional string message = 2;
optional int64 prepare_position = 3; optional int64 prepare_position = 3;
optional int64 commit_position = 4; optional int64 commit_position = 4;
optional int64 current_version = 5;
} }
message TransactionStart { message TransactionStart {
required string event_stream_id = 1; required string event_stream_id = 1;
required int64 expected_version = 2; required int64 expected_version = 2;
required bool require_leader = 3; required bool require_master = 3;
} }
message TransactionStartCompleted { message TransactionStartCompleted {
@ -95,7 +92,7 @@ message TransactionStartCompleted {
message TransactionWrite { message TransactionWrite {
required int64 transaction_id = 1; required int64 transaction_id = 1;
repeated NewEvent events = 2; repeated NewEvent events = 2;
required bool require_leader = 3; required bool require_master = 3;
} }
message TransactionWriteCompleted { message TransactionWriteCompleted {
@ -106,7 +103,7 @@ message TransactionWriteCompleted {
message TransactionCommit { message TransactionCommit {
required int64 transaction_id = 1; required int64 transaction_id = 1;
required bool require_leader = 2; required bool require_master = 2;
} }
message TransactionCommitCompleted { message TransactionCommitCompleted {
@ -123,7 +120,7 @@ message ReadEvent {
required string event_stream_id = 1; required string event_stream_id = 1;
required int64 event_number = 2; required int64 event_number = 2;
required bool resolve_link_tos = 3; required bool resolve_link_tos = 3;
required bool require_leader = 4; required bool require_master = 4;
} }
message ReadEventCompleted { message ReadEventCompleted {
@ -148,7 +145,7 @@ message ReadStreamEvents {
required int64 from_event_number = 2; required int64 from_event_number = 2;
required int32 max_count = 3; required int32 max_count = 3;
required bool resolve_link_tos = 4; required bool resolve_link_tos = 4;
required bool require_leader = 5; required bool require_master = 5;
} }
message ReadStreamEventsCompleted { message ReadStreamEventsCompleted {
@ -177,7 +174,7 @@ message ReadAllEvents {
required int64 prepare_position = 2; required int64 prepare_position = 2;
required int32 max_count = 3; required int32 max_count = 3;
required bool resolve_link_tos = 4; required bool resolve_link_tos = 4;
required bool require_leader = 5; required bool require_master = 5;
} }
message ReadAllEventsCompleted { message ReadAllEventsCompleted {
@ -199,54 +196,6 @@ message ReadAllEventsCompleted {
optional string error = 7; optional string error = 7;
} }
message Filter{
enum FilterContext {
StreamId = 0;
EventType = 1;
}
enum FilterType {
Regex = 0;
Prefix = 1;
}
required FilterContext context = 1;
required FilterType type = 2;
repeated string data = 3;
}
message FilteredReadAllEvents {
required int64 commit_position = 1;
required int64 prepare_position = 2;
required int32 max_count = 3;
optional int32 max_search_window = 4;
required bool resolve_link_tos = 5;
required bool require_leader = 6;
required Filter filter = 7;
}
message FilteredReadAllEventsCompleted {
enum FilteredReadAllResult {
Success = 0;
NotModified = 1;
Error = 2;
AccessDenied = 3;
}
required int64 commit_position = 1;
required int64 prepare_position = 2;
repeated ResolvedEvent events = 3;
required int64 next_commit_position = 4;
required int64 next_prepare_position = 5;
required bool is_end_of_stream = 6;
optional FilteredReadAllResult result = 7 [default = Success];
optional string error = 8;
}
message CreatePersistentSubscription { message CreatePersistentSubscription {
required string subscription_group_name = 1; required string subscription_group_name = 1;
required string event_stream_id = 2; required string event_stream_id = 2;
@ -358,7 +307,6 @@ message PersistentSubscriptionConfirmation {
message PersistentSubscriptionStreamEventAppeared { message PersistentSubscriptionStreamEventAppeared {
required ResolvedIndexedEvent event = 1; required ResolvedIndexedEvent event = 1;
optional int32 retryCount = 2;
} }
message SubscribeToStream { message SubscribeToStream {
@ -366,18 +314,6 @@ message SubscribeToStream {
required bool resolve_link_tos = 2; required bool resolve_link_tos = 2;
} }
message FilteredSubscribeToStream {
required string event_stream_id = 1;
required bool resolve_link_tos = 2;
required Filter filter = 3;
required int32 checkpoint_interval = 4;
}
message CheckpointReached {
required int64 commit_position = 1;
required int64 prepare_position = 2;
}
message SubscriptionConfirmation { message SubscriptionConfirmation {
required int64 last_commit_position = 1; required int64 last_commit_position = 1;
optional int64 last_event_number = 2; optional int64 last_event_number = 2;
@ -408,18 +344,17 @@ message NotHandled {
enum NotHandledReason { enum NotHandledReason {
NotReady = 0; NotReady = 0;
TooBusy = 1; TooBusy = 1;
NotLeader = 2; NotMaster = 2;
IsReadOnly = 3;
} }
required NotHandledReason reason = 1; required NotHandledReason reason = 1;
optional bytes additional_info = 2; optional bytes additional_info = 2;
message LeaderInfo { message MasterInfo {
optional string external_tcp_address = 1; required string external_tcp_address = 1;
optional int32 external_tcp_port = 2; required int32 external_tcp_port = 2;
required string http_address = 3; required string external_http_address = 3;
required int32 http_port = 4; required int32 external_http_port = 4;
optional string external_secure_tcp_address = 5; optional string external_secure_tcp_address = 5;
optional int32 external_secure_tcp_port = 6; optional int32 external_secure_tcp_port = 6;
} }
@ -428,17 +363,18 @@ message NotHandled {
message ScavengeDatabase { message ScavengeDatabase {
} }
message ScavengeDatabaseResponse { message ScavengeDatabaseCompleted {
enum ScavengeResult { enum ScavengeResult {
Started = 0; Success = 0;
InProgress = 1; InProgress = 1;
Unauthorized = 2; Failed = 2;
} }
required ScavengeResult result = 1; required ScavengeResult result = 1;
optional string scavengeId = 2; optional string error = 2;
required int32 total_time_ms = 3;
required int64 total_space_saved = 4;
} }
message IdentifyClient { message IdentifyClient {
@ -447,4 +383,4 @@ message IdentifyClient {
} }
message ClientIdentified { message ClientIdentified {
} }

View File

@ -6,7 +6,7 @@ const ProjectionsClient = require('./projectionsClient');
* @param {Logger} log Instance of Logger to use for logging. * @param {Logger} log Instance of Logger to use for logging.
* @param {string} httpEndPoint HTTP endpoint of an Event Store server. * @param {string} httpEndPoint HTTP endpoint of an Event Store server.
* @param {number} operationTimeout Operation timeout in milliseconds. * @param {number} operationTimeout Operation timeout in milliseconds.
* @param {boolean} [rejectUnauthorized] Reject authorized SSL certs (if using SSL) - set to false is using self-signed certs * @param {boolean} [rejectUnauthorized] Reject authorized SSL certs (if using SSL) - set to false if using self-signed certs
* @constructor * @constructor
*/ */
function ProjectionsManager(log, httpEndPoint, operationTimeout, rejectUnauthorized) { function ProjectionsManager(log, httpEndPoint, operationTimeout, rejectUnauthorized) {

View File

@ -13,7 +13,6 @@ protobufJS.configure();
var settings = { var settings = {
log: new NoopLogger(), log: new NoopLogger(),
useSslConnection: true, useSslConnection: true,
validateServer: false
}; };
if (process.env.TESTS_VERBOSE_LOGGING === '1') { if (process.env.TESTS_VERBOSE_LOGGING === '1') {
settings.verboseLogging = true; settings.verboseLogging = true;