diff --git a/package.json b/package.json
index e1d1753c..cd9052fe 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"prepare": "mdep install || true"
},
"dependencies": {
+ "@faker-js/faker": "^8.0.1",
"@hapi/hapi": "^20.2.1",
"@microfleet/core": "^17.29.2",
"@microfleet/core-types": "^0.13.2",
@@ -41,6 +42,7 @@
"lodash": "^4.17.21",
"moment": "^2.29.4",
"ms-conf": "^7.0.2",
+ "nock": "^13.3.1",
"p-limit": "3",
"pg": "^8.8.0",
"pino": "^7.11.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 50b93da9..78f3169b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,6 +1,7 @@
-lockfileVersion: 5.3
+lockfileVersion: 5.4
specifiers:
+ '@faker-js/faker': ^8.0.1
'@hapi/hapi': ^20.2.1
'@makeomatic/deploy': ^12.8.2
'@microfleet/core': ^17.29.2
@@ -48,6 +49,7 @@ specifiers:
mocha: ^9.2.2
moment: ^2.29.4
ms-conf: ^7.0.2
+ nock: ^13.3.1
p-limit: '3'
pg: ^8.8.0
pino: ^7.11.0
@@ -64,22 +66,23 @@ specifiers:
yargs: ^17.5.1
dependencies:
+ '@faker-js/faker': 8.0.1
'@hapi/hapi': 20.2.1
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
- '@microfleet/plugin-amqp': 0.10.2_78d50cfeb91994eb3d0d763b4f7ae615
- '@microfleet/plugin-hapi': 0.10.2_93d17d26404461c7d567047ad53c521f
- '@microfleet/plugin-knex': 2.26.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-logger': 0.18.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-opentracing': 0.13.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-prometheus': 0.13.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-router': 0.11.2_19a2f8a1bb41ea210972ba5d15d7812d
- '@microfleet/plugin-router-amqp': 0.10.2_eff8ad6f94ccfbd07f90b2cb44a7092e
- '@microfleet/plugin-router-hapi': 0.10.2_54fda05d9dc63868a129572355e1c9ba
- '@microfleet/plugin-validator': 0.13.2_66a43bd8e31e900c76384eac644f1611
+ '@microfleet/plugin-amqp': 0.10.2_pdkqz7vzdgkowpinoy5u66xgcu
+ '@microfleet/plugin-hapi': 0.10.2_spix2jsairq4pvlhar5nkpcsd4
+ '@microfleet/plugin-knex': 2.26.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-logger': 0.18.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-opentracing': 0.13.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-prometheus': 0.13.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-router': 0.11.2_dgrprin3ihvccclsxjorlv4bfu
+ '@microfleet/plugin-router-amqp': 0.10.2_574k234uzt55a74qwlfujjyjfy
+ '@microfleet/plugin-router-hapi': 0.10.2_kt62axm5yy4grijjk4rvlyojxi
+ '@microfleet/plugin-validator': 0.13.2_m2sdxwhdd2iay5ryj2wgitywce
'@microfleet/transport-amqp': 17.3.0_common-errors@1.2.0
'@microfleet/utils': 0.13.2
- '@microfleet/validation': 11.1.2
+ '@microfleet/validation': 11.1.2_common-errors@1.2.0
'@sentry/node': 6.19.7
bluebird: 3.7.2
bn.js: 5.2.1
@@ -91,6 +94,7 @@ dependencies:
lodash: 4.17.21
moment: 2.29.4
ms-conf: 7.0.2
+ nock: 13.3.1
p-limit: 3.1.0
pg: 8.8.0
pino: 7.11.0
@@ -244,10 +248,10 @@ packages:
'@types/node': 14.18.31
chalk: 4.1.2
cosmiconfig: 7.0.1
- cosmiconfig-typescript-loader: 4.1.1_33d7b64ae90e9bb80d48469351c457b9
+ cosmiconfig-typescript-loader: 4.1.1_gpl3msxjb2n3qdkii2jvdrcxxe
lodash: 4.17.21
resolve-from: 5.0.0
- ts-node: 10.9.1_2abc08acbb4fe741ae8218df9aa74f5c
+ ts-node: 10.9.1_fk6arlf3j7tudlucddpzvj2plq
typescript: 4.8.4
transitivePeerDependencies:
- '@swc/core'
@@ -375,6 +379,11 @@ packages:
- supports-color
dev: true
+ /@faker-js/faker/8.0.1:
+ resolution: {integrity: sha512-kbh5MenpTN9U0B4QcOI1NoTPlZHniSYQ3BHbhAnPjJGAmmFqxoxTE4sGdpy7ZOO9038DPGCuhXyMkjOr05uVwA==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'}
+ dev: false
+
/@fastify/accept-negotiator/1.0.0:
resolution: {integrity: sha512-4R/N2KfYeld7A5LGkai+iUFMahXcxxYbDp+XS2B1yuL3cdmZLJ9TlCnNzT3q5xFTqsYm0GPpinLUwfSwjcVjyA==}
engines: {node: '>=14'}
@@ -844,7 +853,7 @@ packages:
eventemitter3: 4.0.7
dev: false
- /@microfleet/core/17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c:
+ /@microfleet/core/17.29.2_7lr2vv5bl57san5n4sfdx2tkfq:
resolution: {integrity: sha512-oG9/7PjO0I7/iRc0OBsmHy7rrKSJlxgZraKRnLhUQHkkG76BmrLXfvGc98I660UTcjF6mcnb3RBeBS/jJ91r6w==}
engines: {node: '>= 12.14.0', npm: '>= 4.0.0'}
hasBin: true
@@ -854,7 +863,7 @@ packages:
dependencies:
'@microfleet/core-types': 0.23.2
'@microfleet/utils': 0.23.2
- '@microfleet/validation': 11.1.2
+ '@microfleet/validation': 11.1.2_common-errors@1.2.0
bluebird: 3.7.2
bluebird-retry: 0.11.0_bluebird@3.7.2
common-errors: 1.2.0
@@ -865,7 +874,7 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-amqp/0.10.2_78d50cfeb91994eb3d0d763b4f7ae615:
+ /@microfleet/plugin-amqp/0.10.2_pdkqz7vzdgkowpinoy5u66xgcu:
resolution: {integrity: sha512-cHWQG7deo9zRlJVmyX9t/hA9db6qFkwLY22AoPlrXhkYylw2g8xR57/J3eFXigbWVF87spHkiWASL+D7KYMBwQ==}
engines: {node: '>= 12.14.0', npm: '>= 4.0.0'}
peerDependencies:
@@ -875,10 +884,10 @@ packages:
'@microfleet/plugin-validator': ^0.13.2
common-errors: ~1.x.x
dependencies:
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
- '@microfleet/plugin-logger': 0.18.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-router': 0.11.2_19a2f8a1bb41ea210972ba5d15d7812d
- '@microfleet/plugin-validator': 0.13.2_66a43bd8e31e900c76384eac644f1611
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
+ '@microfleet/plugin-logger': 0.18.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-router': 0.11.2_dgrprin3ihvccclsxjorlv4bfu
+ '@microfleet/plugin-validator': 0.13.2_m2sdxwhdd2iay5ryj2wgitywce
'@microfleet/transport-amqp': 17.3.0_common-errors@1.2.0
bluebird: 3.7.2
common-errors: 1.2.0
@@ -886,7 +895,7 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-hapi/0.10.2_93d17d26404461c7d567047ad53c521f:
+ /@microfleet/plugin-hapi/0.10.2_spix2jsairq4pvlhar5nkpcsd4:
resolution: {integrity: sha512-pz4u8DxH8TT98EXgufCuqhqS7Gs8lAURi3PZ42+hmBWc26fGJRvAQZiyaxn6Ni6U69dbpmecIEmAxaRGyDtAdQ==}
engines: {node: '>= 12.14.0', npm: '>= 4.0.0'}
peerDependencies:
@@ -895,12 +904,12 @@ packages:
dependencies:
'@hapi/hapi': 20.2.1
'@hapi/vision': 6.1.0
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
- '@microfleet/plugin-logger': 0.18.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-router': 0.11.2_19a2f8a1bb41ea210972ba5d15d7812d
- '@microfleet/plugin-socketio': 0.10.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-validator': 0.13.2_66a43bd8e31e900c76384eac644f1611
+ '@microfleet/plugin-logger': 0.18.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-router': 0.11.2_dgrprin3ihvccclsxjorlv4bfu
+ '@microfleet/plugin-socketio': 0.10.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-validator': 0.13.2_m2sdxwhdd2iay5ryj2wgitywce
common-errors: 1.2.0
joi: 17.6.0
transitivePeerDependencies:
@@ -910,17 +919,17 @@ packages:
- utf-8-validate
dev: false
- /@microfleet/plugin-knex/2.26.2_3c4caf0d55a0947eb17902763ef1a99c:
+ /@microfleet/plugin-knex/2.26.2_hrgk6dkvuckh5mlzaj3d54njtq:
resolution: {integrity: sha512-mZZuMtofRMyMh5/MSnk9rnoI7cRVZekXzatp7V/IRrFJVo5F7+XzSe0leBoHQz/hIEaaT9lPtMQ2OMzSNzu4Hg==}
engines: {node: '>= 12.14.0', npm: '>= 4.0.0'}
peerDependencies:
'@microfleet/core': ^17.29.2
common-errors: ~1.x.x
dependencies:
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.23.2
- '@microfleet/plugin-logger': 0.28.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-validator': 0.23.2_90442f699ac3861d147f2a2fa22c190f
+ '@microfleet/plugin-logger': 0.28.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-validator': 0.23.2_sbcc62m2yodb2fd7fix2elazb4
'@microfleet/utils': 0.23.2
bluebird: 3.7.2
bluebird-retry: 0.11.0_bluebird@3.7.2
@@ -937,16 +946,16 @@ packages:
- tedious
dev: false
- /@microfleet/plugin-logger/0.18.2_3c4caf0d55a0947eb17902763ef1a99c:
+ /@microfleet/plugin-logger/0.18.2_hrgk6dkvuckh5mlzaj3d54njtq:
resolution: {integrity: sha512-E/dq4lFZtz+woE06y5ahjZvS7w+GTd0WLnZ3cCTEoCPxguz/o/VoTqfN0zJrnFhH0Ir0hEmpMFW2HfapLMSCrA==}
engines: {node: '>= 12.15.0', npm: '>= 4.0.0'}
peerDependencies:
'@microfleet/core': ^17.19.2
common-errors: ~1.x.x
dependencies:
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
- '@microfleet/plugin-validator': 0.13.2_66a43bd8e31e900c76384eac644f1611
+ '@microfleet/plugin-validator': 0.13.2_m2sdxwhdd2iay5ryj2wgitywce
'@microfleet/utils': 0.13.2
'@sentry/utils': 6.19.2
common-errors: 1.2.0
@@ -960,16 +969,16 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-logger/0.28.2_3c4caf0d55a0947eb17902763ef1a99c:
+ /@microfleet/plugin-logger/0.28.2_hrgk6dkvuckh5mlzaj3d54njtq:
resolution: {integrity: sha512-PWzgKwrd2Qvh6HKa09HQOZrfWfQ2OAf9dn9No8Otzcq8HbwZetaMwbJm33A0vgzGx94/JEXwnjRX/u+Ragootw==}
engines: {node: '>= 12.15.0', npm: '>= 4.0.0'}
peerDependencies:
'@microfleet/core': ^17.29.2
common-errors: ~1.x.x
dependencies:
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.23.2
- '@microfleet/plugin-validator': 0.23.2_90442f699ac3861d147f2a2fa22c190f
+ '@microfleet/plugin-validator': 0.23.2_sbcc62m2yodb2fd7fix2elazb4
'@microfleet/utils': 0.23.2
'@sentry/utils': 7.14.0
common-errors: 1.2.0
@@ -983,17 +992,17 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-opentracing/0.13.2_3c4caf0d55a0947eb17902763ef1a99c:
+ /@microfleet/plugin-opentracing/0.13.2_hrgk6dkvuckh5mlzaj3d54njtq:
resolution: {integrity: sha512-UFisO6mcIvflDZosaoiU0mACM/CQFBWK0JfWylB7dXrI7+DsPzfC76iOgi7QpKCC+x9Tc/EZRQajb1Cp/+9Ytw==}
engines: {node: '>= 12.15.0', npm: '>= 4.0.0'}
peerDependencies:
'@microfleet/core': ^17.19.2
common-errors: ~1.x.x
dependencies:
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
- '@microfleet/plugin-logger': 0.18.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-validator': 0.13.2_66a43bd8e31e900c76384eac644f1611
+ '@microfleet/plugin-logger': 0.18.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-validator': 0.13.2_m2sdxwhdd2iay5ryj2wgitywce
'@microfleet/utils': 0.13.2
common-errors: 1.2.0
jaeger-client: 3.19.0
@@ -1001,14 +1010,14 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-prometheus/0.13.2_3c4caf0d55a0947eb17902763ef1a99c:
+ /@microfleet/plugin-prometheus/0.13.2_hrgk6dkvuckh5mlzaj3d54njtq:
resolution: {integrity: sha512-c3qqIMQS+qAYh0OxfBrFGInEE9kMpvBtz8E9iHrrYWdlG5B/1YpbbYa/9rOhd2OFmST3bgd4DN1wzatYXQ8Usw==}
engines: {node: '>= 12.15.0', npm: '>= 4.0.0'}
peerDependencies:
'@microfleet/core': ^17.19.2
common-errors: ~1.x.x
dependencies:
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
'@microfleet/utils': 0.13.2
common-errors: 1.2.0
@@ -1016,7 +1025,7 @@ packages:
semver: 7.3.5
dev: false
- /@microfleet/plugin-router-amqp/0.10.2_eff8ad6f94ccfbd07f90b2cb44a7092e:
+ /@microfleet/plugin-router-amqp/0.10.2_574k234uzt55a74qwlfujjyjfy:
resolution: {integrity: sha512-qavW9SCNquovA0z1VtST7/N3+U2K14N+Q04hlNIYUcK9PdInEvgBEIBAjI1E4g/lwbuPo/JJgygNzwxZFzh9WA==}
engines: {node: '>= 12.14.0', npm: '>= 4.0.0'}
peerDependencies:
@@ -1028,11 +1037,11 @@ packages:
common-errors: ~1.x.x
dependencies:
'@microfleet/amqp-coffee': 2.3.2
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
- '@microfleet/plugin-amqp': 0.10.2_78d50cfeb91994eb3d0d763b4f7ae615
- '@microfleet/plugin-logger': 0.18.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-router': 0.11.2_19a2f8a1bb41ea210972ba5d15d7812d
+ '@microfleet/plugin-amqp': 0.10.2_pdkqz7vzdgkowpinoy5u66xgcu
+ '@microfleet/plugin-logger': 0.18.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-router': 0.11.2_dgrprin3ihvccclsxjorlv4bfu
'@microfleet/transport-amqp': 17.3.0_common-errors@1.2.0
bluebird: 3.7.2
common-errors: 1.2.0
@@ -1041,7 +1050,7 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-router-hapi/0.10.2_54fda05d9dc63868a129572355e1c9ba:
+ /@microfleet/plugin-router-hapi/0.10.2_kt62axm5yy4grijjk4rvlyojxi:
resolution: {integrity: sha512-GJOr55qe1q9nTmsgnp5fDNzawDDjhyFAG1r/rVvPndNRUmMlUg8nKVudBUGFD1OvjC6h9fEsqLIaphQ7z6kUtw==}
engines: {node: '>= 12.14.0', npm: '>= 4.0.0'}
peerDependencies:
@@ -1054,12 +1063,12 @@ packages:
dependencies:
'@hapi/boom': 9.1.4
'@hapi/hapi': 20.2.1
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
- '@microfleet/plugin-hapi': 0.10.2_93d17d26404461c7d567047ad53c521f
- '@microfleet/plugin-opentracing': 0.13.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-router': 0.11.2_19a2f8a1bb41ea210972ba5d15d7812d
- '@microfleet/plugin-validator': 0.13.2_66a43bd8e31e900c76384eac644f1611
- '@microfleet/validation': 11.1.2
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
+ '@microfleet/plugin-hapi': 0.10.2_spix2jsairq4pvlhar5nkpcsd4
+ '@microfleet/plugin-opentracing': 0.13.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-router': 0.11.2_dgrprin3ihvccclsxjorlv4bfu
+ '@microfleet/plugin-validator': 0.13.2_m2sdxwhdd2iay5ryj2wgitywce
+ '@microfleet/validation': 11.1.2_common-errors@1.2.0
common-errors: 1.2.0
get-value: 3.0.1
lodash: 4.17.21
@@ -1068,7 +1077,7 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-router/0.11.2_19a2f8a1bb41ea210972ba5d15d7812d:
+ /@microfleet/plugin-router/0.11.2_dgrprin3ihvccclsxjorlv4bfu:
resolution: {integrity: sha512-IWr/aIEl6RVDplP4rdEGjm9JiGp8Hak++08wbyA8xLA1HXknaxxYKR/MLVEr/MvbYDqoZZpUp1G+G3xhw7Qb7w==}
engines: {node: '>= 12.14.0', npm: '>= 4.0.0'}
peerDependencies:
@@ -1079,12 +1088,12 @@ packages:
common-errors: ~1.x.x
dependencies:
'@hapi/boom': 9.1.4
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
- '@microfleet/plugin-logger': 0.18.2_3c4caf0d55a0947eb17902763ef1a99c
+ '@microfleet/plugin-logger': 0.18.2_hrgk6dkvuckh5mlzaj3d54njtq
'@microfleet/transport-amqp': 17.3.0_common-errors@1.2.0
'@microfleet/utils': 0.13.2
- '@microfleet/validation': 11.1.2
+ '@microfleet/validation': 11.1.2_common-errors@1.2.0
common-errors: 1.2.0
glob: 7.2.3
hyperid: 3.0.1
@@ -1096,7 +1105,7 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-socketio/0.10.2_3c4caf0d55a0947eb17902763ef1a99c:
+ /@microfleet/plugin-socketio/0.10.2_hrgk6dkvuckh5mlzaj3d54njtq:
resolution: {integrity: sha512-+kEFsPhZMZLMLEWBwQ9gJP0Tn93pXGhL7j9UG/2WADyMvdgTOvpy65L15Z3o+QHCvw0/2znBNJzuZAEKAUnWUw==}
engines: {node: '>= 12.14.0', npm: '>= 4.0.0'}
peerDependencies:
@@ -1104,15 +1113,15 @@ packages:
common-errors: ~1.x.x
dependencies:
'@microfleet/amqp-coffee': 2.3.2
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
- '@microfleet/plugin-logger': 0.18.2_3c4caf0d55a0947eb17902763ef1a99c
- '@microfleet/plugin-router': 0.11.2_19a2f8a1bb41ea210972ba5d15d7812d
- '@microfleet/plugin-validator': 0.13.2_66a43bd8e31e900c76384eac644f1611
+ '@microfleet/plugin-logger': 0.18.2_hrgk6dkvuckh5mlzaj3d54njtq
+ '@microfleet/plugin-router': 0.11.2_dgrprin3ihvccclsxjorlv4bfu
+ '@microfleet/plugin-validator': 0.13.2_m2sdxwhdd2iay5ryj2wgitywce
'@microfleet/transport-amqp': 17.3.0_common-errors@1.2.0
'@microfleet/utils': 0.13.2
common-errors: 1.2.0
- ms-socket.io-adapter-amqp: 9.0.1_00e1ea48190344393d2e80d9a9511e14
+ ms-socket.io-adapter-amqp: 9.0.1_adq6usazancdspjoqdm2sui6cq
socket.io: 4.4.1
transitivePeerDependencies:
- bufferutil
@@ -1120,7 +1129,7 @@ packages:
- utf-8-validate
dev: false
- /@microfleet/plugin-validator/0.13.2_66a43bd8e31e900c76384eac644f1611:
+ /@microfleet/plugin-validator/0.13.2_m2sdxwhdd2iay5ryj2wgitywce:
resolution: {integrity: sha512-MT+PkpkpnesORM84LFiq5+fIeic79IQlP/bKVm1J+GZ+qiBxXAnhuHP+NZMuQM1lh+tx64UIU3dihUCND7VMuw==}
engines: {node: '>= 12.15.0', npm: '>= 4.0.0'}
peerDependencies:
@@ -1128,10 +1137,10 @@ packages:
'@microfleet/core-types': ^0.13.2
'@microfleet/utils': ^0.13.2
dependencies:
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.13.2
'@microfleet/utils': 0.13.2
- '@microfleet/validation': 11.1.2
+ '@microfleet/validation': 11.1.2_common-errors@1.2.0
callsite: 1.0.0
common-errors: 1.2.0
lodash: 4.17.21
@@ -1139,7 +1148,7 @@ packages:
- supports-color
dev: false
- /@microfleet/plugin-validator/0.23.2_90442f699ac3861d147f2a2fa22c190f:
+ /@microfleet/plugin-validator/0.23.2_sbcc62m2yodb2fd7fix2elazb4:
resolution: {integrity: sha512-WOonHY6c+sDje40TOn+f/ExEpDrBGiIBbJcOMLx3c1IChMCkK0IYCl/DLaSvNvWwS/2HZcJLzg2R40DLClJ0+Q==}
engines: {node: '>= 12.15.0', npm: '>= 4.0.0'}
peerDependencies:
@@ -1147,10 +1156,10 @@ packages:
'@microfleet/core-types': ^0.23.2
'@microfleet/utils': ^0.23.2
dependencies:
- '@microfleet/core': 17.29.2_fae3aad7a15f7f2037ade48a3bea6a2c
+ '@microfleet/core': 17.29.2_7lr2vv5bl57san5n4sfdx2tkfq
'@microfleet/core-types': 0.23.2
'@microfleet/utils': 0.23.2
- '@microfleet/validation': 11.1.2
+ '@microfleet/validation': 11.1.2_common-errors@1.2.0
callsite: 1.0.0
common-errors: 1.2.0
lodash: 4.17.21
@@ -1204,9 +1213,11 @@ packages:
read-pkg-up: 7.0.1
dev: false
- /@microfleet/validation/11.1.2:
+ /@microfleet/validation/11.1.2_common-errors@1.2.0:
resolution: {integrity: sha512-UAytvgv18PAFyrFHUlgdNlfElygLkohuupirJjSS4tQqIJrV95w7zdWYAhpnqW07M02IwVaATKz6oGOv/tjgmA==}
engines: {node: '>= 14.15.0', npm: '>= 4.x.x'}
+ peerDependencies:
+ common-errors: ~1.x.x
dependencies:
ajv: 8.11.0
ajv-formats: 2.1.1
@@ -1800,7 +1811,7 @@ packages:
'@types/node': 18.7.23
dev: false
- /@typescript-eslint/eslint-plugin/5.17.0_7e65682680cffeace60e7661702716fb:
+ /@typescript-eslint/eslint-plugin/5.17.0_pzswqjuaz77kzzqoozqxajyw7m:
resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -1811,10 +1822,10 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.17.0_eslint@8.6.0+typescript@4.8.4
+ '@typescript-eslint/parser': 5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4
'@typescript-eslint/scope-manager': 5.17.0
- '@typescript-eslint/type-utils': 5.17.0_eslint@8.6.0+typescript@4.8.4
- '@typescript-eslint/utils': 5.17.0_eslint@8.6.0+typescript@4.8.4
+ '@typescript-eslint/type-utils': 5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4
+ '@typescript-eslint/utils': 5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4
debug: 4.3.4
eslint: 8.6.0
functional-red-black-tree: 1.0.1
@@ -1827,7 +1838,7 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/parser/5.17.0_eslint@8.6.0+typescript@4.8.4:
+ /@typescript-eslint/parser/5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4:
resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -1855,7 +1866,7 @@ packages:
'@typescript-eslint/visitor-keys': 5.17.0
dev: true
- /@typescript-eslint/type-utils/5.17.0_eslint@8.6.0+typescript@4.8.4:
+ /@typescript-eslint/type-utils/5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4:
resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -1865,7 +1876,7 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/utils': 5.17.0_eslint@8.6.0+typescript@4.8.4
+ '@typescript-eslint/utils': 5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4
debug: 4.3.4
eslint: 8.6.0
tsutils: 3.21.0_typescript@4.8.4
@@ -1900,7 +1911,7 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/utils/5.17.0_eslint@8.6.0+typescript@4.8.4:
+ /@typescript-eslint/utils/5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4:
resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2036,7 +2047,7 @@ packages:
'@xtuc/long': 4.2.2
dev: true
- /@webpack-cli/configtest/1.1.1_webpack-cli@4.9.2+webpack@5.70.0:
+ /@webpack-cli/configtest/1.1.1_spmstbzrmxjdafr7ccogoqrx6e:
resolution: {integrity: sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==}
peerDependencies:
webpack: 4.x.x || 5.x.x
@@ -2744,6 +2755,8 @@ packages:
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.3.0
+ transitivePeerDependencies:
+ - supports-color
dev: true
/chrome-remote-interface/0.31.3:
@@ -2999,8 +3012,8 @@ packages:
engines: {node: '>=10'}
hasBin: true
dependencies:
- is-text-path: 1.0.1
JSONStream: 1.3.5
+ is-text-path: 1.0.1
lodash: 4.17.21
meow: 8.1.2
split2: 3.2.2
@@ -3039,7 +3052,7 @@ packages:
vary: 1.1.2
dev: false
- /cosmiconfig-typescript-loader/4.1.1_33d7b64ae90e9bb80d48469351c457b9:
+ /cosmiconfig-typescript-loader/4.1.1_gpl3msxjb2n3qdkii2jvdrcxxe:
resolution: {integrity: sha512-9DHpa379Gp0o0Zefii35fcmuuin6q92FnLDffzdZ0l9tVd3nEobG3O+MZ06+kuBvFTSVScvNb/oHA13Nd4iipg==}
engines: {node: '>=12', npm: '>=6'}
peerDependencies:
@@ -3050,7 +3063,7 @@ packages:
dependencies:
'@types/node': 14.18.31
cosmiconfig: 7.0.1
- ts-node: 10.9.1_2abc08acbb4fe741ae8218df9aa74f5c
+ ts-node: 10.9.1_fk6arlf3j7tudlucddpzvj2plq
typescript: 4.8.4
dev: true
@@ -3126,15 +3139,37 @@ packages:
/debug/2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
dependencies:
ms: 2.0.0
dev: true
/debug/3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
dependencies:
ms: 2.1.3
+ /debug/3.2.7_supports-color@5.5.0:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ supports-color: 5.5.0
+ dev: true
+
/debug/4.3.3_supports-color@8.1.1:
resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
engines: {node: '>=6.0'}
@@ -3368,7 +3403,7 @@ packages:
resolution: {integrity: sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==}
engines: {node: '>=10.13.0'}
dependencies:
- graceful-fs: 4.2.9
+ graceful-fs: 4.2.10
tapable: 2.2.1
dev: true
@@ -3689,7 +3724,7 @@ packages:
engines: {node: '>=10'}
dev: true
- /eslint-config-airbnb-base/15.0.0_b5a36b8c1535387c8dd00eff7ec6b551:
+ /eslint-config-airbnb-base/15.0.0_wwrwxdavgu4hzdoqb37x5rvvke:
resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==}
engines: {node: ^10.12.0 || >=12.0.0}
peerDependencies:
@@ -3698,7 +3733,7 @@ packages:
dependencies:
confusing-browser-globals: 1.0.11
eslint: 8.6.0
- eslint-plugin-import: 2.25.4_eslint@8.6.0
+ eslint-plugin-import: 2.25.4_iqw3drkeu3ex4nvrz5kovrx4yq
object.assign: 4.1.2
object.entries: 1.1.5
semver: 6.3.0
@@ -3707,14 +3742,16 @@ packages:
/eslint-config-makeomatic/5.1.0_typescript@4.8.4:
resolution: {integrity: sha512-CZt/arn15KqCPM+YLfv5BwLkHrgjIUaRKMcnB9kJ/cBos3eP49GRKBPmi7XCEMDo4+68gVvKcgPUzffVQjVDqA==}
dependencies:
- '@typescript-eslint/eslint-plugin': 5.17.0_7e65682680cffeace60e7661702716fb
- '@typescript-eslint/parser': 5.17.0_eslint@8.6.0+typescript@4.8.4
+ '@typescript-eslint/eslint-plugin': 5.17.0_pzswqjuaz77kzzqoozqxajyw7m
+ '@typescript-eslint/parser': 5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4
eslint: 8.6.0
- eslint-config-airbnb-base: 15.0.0_b5a36b8c1535387c8dd00eff7ec6b551
- eslint-plugin-import: 2.25.4_eslint@8.6.0
+ eslint-config-airbnb-base: 15.0.0_wwrwxdavgu4hzdoqb37x5rvvke
+ eslint-plugin-import: 2.25.4_iqw3drkeu3ex4nvrz5kovrx4yq
eslint-plugin-promise: 6.0.0_eslint@8.6.0
eslint-plugin-unicorn: 40.1.0_eslint@8.6.0
transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
- supports-color
- typescript
dev: true
@@ -3724,29 +3761,79 @@ packages:
dependencies:
debug: 3.2.7
resolve: 1.22.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-module-utils/2.7.3_aomysh6w35sl7gbuoze27zteb4:
+ resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4
+ debug: 3.2.7
+ eslint-import-resolver-node: 0.3.6
+ find-up: 2.1.0
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /eslint-module-utils/2.7.3:
+ /eslint-module-utils/2.7.3_ulu2225r2ychl26a37c6o2rfje:
resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
dependencies:
debug: 3.2.7
+ eslint-import-resolver-node: 0.3.6
find-up: 2.1.0
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /eslint-plugin-import/2.25.4_eslint@8.6.0:
+ /eslint-plugin-import/2.25.4_iqw3drkeu3ex4nvrz5kovrx4yq:
resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==}
engines: {node: '>=4'}
peerDependencies:
+ '@typescript-eslint/parser': '*'
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
dependencies:
+ '@typescript-eslint/parser': 5.17.0_oqhpifbdsnl6ewfwbkgh6fckz4
array-includes: 3.1.4
array.prototype.flat: 1.2.5
debug: 2.6.9
doctrine: 2.1.0
eslint: 8.6.0
eslint-import-resolver-node: 0.3.6
- eslint-module-utils: 2.7.3
+ eslint-module-utils: 2.7.3_aomysh6w35sl7gbuoze27zteb4
has: 1.0.3
is-core-module: 2.8.1
is-glob: 4.0.3
@@ -3754,13 +3841,21 @@ packages:
object.values: 1.1.5
resolve: 1.22.0
tsconfig-paths: 3.14.1
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
dev: true
/eslint-plugin-import/2.26.0_eslint@8.24.0:
resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==}
engines: {node: '>=4'}
peerDependencies:
+ '@typescript-eslint/parser': '*'
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
dependencies:
array-includes: 3.1.4
array.prototype.flat: 1.2.5
@@ -3768,7 +3863,7 @@ packages:
doctrine: 2.1.0
eslint: 8.24.0
eslint-import-resolver-node: 0.3.6
- eslint-module-utils: 2.7.3
+ eslint-module-utils: 2.7.3_ulu2225r2ychl26a37c6o2rfje
has: 1.0.3
is-core-module: 2.8.1
is-glob: 4.0.3
@@ -3776,6 +3871,10 @@ packages:
object.values: 1.1.5
resolve: 1.22.0
tsconfig-paths: 3.14.1
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
dev: true
/eslint-plugin-json/3.1.0:
@@ -5309,7 +5408,7 @@ packages:
dev: true
/json-stringify-safe/5.0.1:
- resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=}
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
/json/11.0.0:
resolution: {integrity: sha512-N/ITv3Yw9Za8cGxuQqSqrq6RHnlaHWZkAFavcfpH/R52522c26EbihMxnY7A1chxfXJ4d+cEFIsyTgfi9GihrA==}
@@ -5339,7 +5438,7 @@ packages:
dependencies:
universalify: 2.0.0
optionalDependencies:
- graceful-fs: 4.2.9
+ graceful-fs: 4.2.10
dev: true
/jsonparse/1.3.1:
@@ -5468,6 +5567,8 @@ packages:
dependencies:
debug: 2.6.9
marky: 1.2.5
+ transitivePeerDependencies:
+ - supports-color
dev: true
/lines-and-columns/1.2.4:
@@ -5848,7 +5949,7 @@ packages:
transitivePeerDependencies:
- supports-color
- /ms-socket.io-adapter-amqp/9.0.1_00e1ea48190344393d2e80d9a9511e14:
+ /ms-socket.io-adapter-amqp/9.0.1_adq6usazancdspjoqdm2sui6cq:
resolution: {integrity: sha512-sGaFwgPpnOZY4O5WhWLD4SKMPKSYTKF6AAFbw8Nf5mLRq1CBm837O6XKPWCR8dcO8wJvHqqamOfL7oGfrfRBlQ==}
peerDependencies:
'@microfleet/amqp-coffee': '>= 2'
@@ -5920,6 +6021,18 @@ packages:
path-to-regexp: 1.8.0
dev: true
+ /nock/13.3.1:
+ resolution: {integrity: sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw==}
+ engines: {node: '>= 10.13'}
+ dependencies:
+ debug: 4.3.4
+ json-stringify-safe: 5.0.1
+ lodash: 4.17.21
+ propagate: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/node-addon-api/1.7.2:
resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==}
dev: true
@@ -5966,7 +6079,7 @@ packages:
requiresBuild: true
dependencies:
chokidar: 3.5.3
- debug: 3.2.7
+ debug: 3.2.7_supports-color@5.5.0
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
@@ -6647,6 +6760,11 @@ packages:
tdigest: 0.1.1
dev: false
+ /propagate/2.0.1:
+ resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==}
+ engines: {node: '>= 8'}
+ dev: false
+
/proxy-addr/2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
@@ -6859,6 +6977,8 @@ packages:
resolution: {integrity: sha512-2Xyn/0Qgz89VT+++WP0sTosdm9oeowLP23wRJYhG4BFdMUrLj3jhwHZNEytYNYgtPKLNTP3KJX4HEgBvM1/Y2g==}
dependencies:
debug: 3.2.7
+ transitivePeerDependencies:
+ - supports-color
dev: false
/regexp-tree/0.1.24:
@@ -7723,7 +7843,7 @@ packages:
resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==}
dev: true
- /ts-node/10.9.1_2abc08acbb4fe741ae8218df9aa74f5c:
+ /ts-node/10.9.1_fk6arlf3j7tudlucddpzvj2plq:
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
@@ -8034,7 +8154,7 @@ packages:
engines: {node: '>=10.13.0'}
dependencies:
glob-to-regexp: 0.4.1
- graceful-fs: 4.2.9
+ graceful-fs: 4.2.10
dev: true
/webidl-conversions/3.0.1:
@@ -8062,7 +8182,7 @@ packages:
optional: true
dependencies:
'@discoveryjs/json-ext': 0.5.7
- '@webpack-cli/configtest': 1.1.1_webpack-cli@4.9.2+webpack@5.70.0
+ '@webpack-cli/configtest': 1.1.1_spmstbzrmxjdafr7ccogoqrx6e
'@webpack-cli/info': 1.4.1_webpack-cli@4.9.2
'@webpack-cli/serve': 1.6.1_webpack-cli@4.9.2
colorette: 2.0.16
diff --git a/src/services/twitter/intercepts/data/evgenypoyarkov/original.json b/src/services/twitter/intercepts/data/evgenypoyarkov/original.json
new file mode 100644
index 00000000..37942193
--- /dev/null
+++ b/src/services/twitter/intercepts/data/evgenypoyarkov/original.json
@@ -0,0 +1,102 @@
+{
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "id": 146595,
+ "id_str": "146595",
+ "text": "Accusamus laboriosam incidunt neque maxime recusandae natus aperiam molestiae hic.",
+ "truncated": false,
+ "entities": {
+ "hashtags": [],
+ "symbols": [],
+ "user_mentions": [
+ {
+ "screen_name": "NodeConfEU",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "id": 526867353,
+ "id_str": "526867353",
+ "indices": [
+ 0,
+ 11
+ ]
+ },
+ {
+ "screen_name": "MakeOmatic",
+ "name": "makeomatic",
+ "id": 1960663927,
+ "id_str": "1960663927",
+ "indices": [
+ 17,
+ 28
+ ]
+ }
+ ],
+ "urls": []
+ },
+ "source": "Twitter Web Client",
+ "in_reply_to_status_id": null,
+ "in_reply_to_status_id_str": null,
+ "in_reply_to_user_id": null,
+ "in_reply_to_user_id_str": null,
+ "in_reply_to_screen_name": null,
+ "user": {
+ "id": 20743,
+ "id_str": "20743",
+ "name": "Bill Crooks",
+ "screen_name": "evgenypoyarkov",
+ "location": "French Guiana, Michealport",
+ "description": "Regional",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 1,
+ "favorited": false,
+ "retweeted": false,
+ "lang": "en"
+}
\ No newline at end of file
diff --git a/src/services/twitter/intercepts/data/evgenypoyarkov/reply.json b/src/services/twitter/intercepts/data/evgenypoyarkov/reply.json
new file mode 100644
index 00000000..a1f457ff
--- /dev/null
+++ b/src/services/twitter/intercepts/data/evgenypoyarkov/reply.json
@@ -0,0 +1,102 @@
+{
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "id": 231653,
+ "id_str": "231653",
+ "text": "Nemo possimus dolor sit facilis eum occaecati error rem ab.",
+ "truncated": false,
+ "entities": {
+ "hashtags": [],
+ "symbols": [],
+ "user_mentions": [
+ {
+ "screen_name": "NodeConfEU",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "id": 526867353,
+ "id_str": "526867353",
+ "indices": [
+ 0,
+ 11
+ ]
+ },
+ {
+ "screen_name": "MakeOmatic",
+ "name": "makeomatic",
+ "id": 1960663927,
+ "id_str": "1960663927",
+ "indices": [
+ 17,
+ 28
+ ]
+ }
+ ],
+ "urls": []
+ },
+ "source": "Twitter Web Client",
+ "in_reply_to_status_id": 622616,
+ "in_reply_to_status_id_str": "622616",
+ "in_reply_to_user_id": 596867,
+ "in_reply_to_user_id_str": "596867",
+ "in_reply_to_screen_name": "other_user",
+ "user": {
+ "id": 20743,
+ "id_str": "20743",
+ "name": "Bill Crooks",
+ "screen_name": "evgenypoyarkov",
+ "location": "French Guiana, Michealport",
+ "description": "Regional",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 1,
+ "favorited": false,
+ "retweeted": false,
+ "lang": "en"
+}
\ No newline at end of file
diff --git a/src/services/twitter/intercepts/data/evgenypoyarkov/retweet.json b/src/services/twitter/intercepts/data/evgenypoyarkov/retweet.json
new file mode 100644
index 00000000..5c1d1dda
--- /dev/null
+++ b/src/services/twitter/intercepts/data/evgenypoyarkov/retweet.json
@@ -0,0 +1,212 @@
+{
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "id": 97762,
+ "id_str": "97762",
+ "text": "Optio illum modi ad voluptas totam necessitatibus molestiae esse nostrum.",
+ "truncated": false,
+ "entities": {
+ "hashtags": [
+ {
+ "text": "media",
+ "indices": [
+ 31,
+ 37
+ ]
+ },
+ {
+ "text": "artwork",
+ "indices": [
+ 38,
+ 46
+ ]
+ },
+ {
+ "text": "NFT",
+ "indices": [
+ 92,
+ 96
+ ]
+ },
+ {
+ "text": "digitalart",
+ "indices": [
+ 120,
+ 131
+ ]
+ }
+ ],
+ "symbols": [],
+ "user_mentions": [
+ {
+ "screen_name": "NodeConfEU",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "id": 526867353,
+ "id_str": "526867353",
+ "indices": [
+ 0,
+ 11
+ ]
+ },
+ {
+ "screen_name": "MakeOmatic",
+ "name": "makeomatic",
+ "id": 1960663927,
+ "id_str": "1960663927",
+ "indices": [
+ 17,
+ 28
+ ]
+ }
+ ],
+ "urls": []
+ },
+ "source": "Twitter for iPhone",
+ "in_reply_to_status_id": null,
+ "in_reply_to_status_id_str": null,
+ "in_reply_to_user_id": null,
+ "in_reply_to_user_id_str": null,
+ "in_reply_to_screen_name": null,
+ "user": {
+ "id": 20743,
+ "id_str": "20743",
+ "name": "Bill Crooks",
+ "screen_name": "evgenypoyarkov",
+ "location": "French Guiana, Michealport",
+ "description": "Regional",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "retweeted_status": {
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "id": 789210,
+ "id_str": "789210",
+ "text": "Modi non iste ut sed exercitationem eveniet est dignissimos delectus.",
+ "truncated": false,
+ "entities": {
+ "hashtags": [],
+ "symbols": [],
+ "user_mentions": [],
+ "urls": []
+ },
+ "source": "Twitter Web Client",
+ "in_reply_to_status_id": null,
+ "in_reply_to_status_id_str": null,
+ "in_reply_to_user_id": null,
+ "in_reply_to_user_id_str": null,
+ "in_reply_to_screen_name": null,
+ "user": {
+ "id": 908973,
+ "id_str": "908973",
+ "name": "Yolanda Donnelly",
+ "screen_name": "retweet_user",
+ "location": "Portugal, Coconut Creek",
+ "description": "Forward",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 1,
+ "favorited": false,
+ "retweeted": false,
+ "lang": "en"
+ },
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 0,
+ "favorited": true,
+ "retweeted": true,
+ "lang": "en"
+}
\ No newline at end of file
diff --git a/src/services/twitter/intercepts/data/evgenypoyarkov/tweets.json b/src/services/twitter/intercepts/data/evgenypoyarkov/tweets.json
new file mode 100644
index 00000000..f7990767
--- /dev/null
+++ b/src/services/twitter/intercepts/data/evgenypoyarkov/tweets.json
@@ -0,0 +1,6 @@
+{
+ "146595": "original.json",
+ "97762": "retweet.json",
+ "231653": "reply.json",
+ "20": "original-20.json"
+}
diff --git a/src/services/twitter/intercepts/data/evgenypoyarkov/user.json b/src/services/twitter/intercepts/data/evgenypoyarkov/user.json
new file mode 100644
index 00000000..0c33181d
--- /dev/null
+++ b/src/services/twitter/intercepts/data/evgenypoyarkov/user.json
@@ -0,0 +1,52 @@
+{
+ "id": 20743,
+ "id_str": "20743",
+ "name": "Bill Crooks",
+ "screen_name": "evgenypoyarkov",
+ "location": "French Guiana, Michealport",
+ "description": "Regional",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+}
\ No newline at end of file
diff --git a/src/services/twitter/intercepts/data/jack/status.json b/src/services/twitter/intercepts/data/jack/status.json
new file mode 100644
index 00000000..4003c932
--- /dev/null
+++ b/src/services/twitter/intercepts/data/jack/status.json
@@ -0,0 +1,102 @@
+{
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "id": 20,
+ "id_str": "20",
+ "text": "just setting up my twttr",
+ "truncated": false,
+ "entities": {
+ "hashtags": [],
+ "symbols": [],
+ "user_mentions": [
+ {
+ "screen_name": "NodeConfEU",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "id": 526867353,
+ "id_str": "526867353",
+ "indices": [
+ 0,
+ 11
+ ]
+ },
+ {
+ "screen_name": "MakeOmatic",
+ "name": "makeomatic",
+ "id": 1960663927,
+ "id_str": "1960663927",
+ "indices": [
+ 17,
+ 28
+ ]
+ }
+ ],
+ "urls": []
+ },
+ "source": "Twitter Web Client",
+ "in_reply_to_status_id": null,
+ "in_reply_to_status_id_str": null,
+ "in_reply_to_user_id": null,
+ "in_reply_to_user_id_str": null,
+ "in_reply_to_screen_name": null,
+ "user": {
+ "id": 12,
+ "id_str": "12",
+ "name": "Bill Crooks",
+ "screen_name": "jack",
+ "location": "French Guiana, Michealport",
+ "description": "Regional",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:38:58 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": true,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 1,
+ "favorited": false,
+ "retweeted": false,
+ "lang": "en"
+}
diff --git a/src/services/twitter/intercepts/data/reid/status.json b/src/services/twitter/intercepts/data/reid/status.json
new file mode 100644
index 00000000..5363edde
--- /dev/null
+++ b/src/services/twitter/intercepts/data/reid/status.json
@@ -0,0 +1,418 @@
+{
+ "created_at": "Mon Oct 17 19:27:50 +0000 2016",
+ "id": 788099220381335552,
+ "id_str": "788099220381335552",
+ "text": "Celtic drummers outside Kilkenny Castle were amazing! Thanks @NodeConfEU for the fine hospitality. https://t.co/niCaEinjjd",
+ "truncated": false,
+ "entities": {
+ "hashtags": [],
+ "symbols": [],
+ "user_mentions": [
+ {
+ "screen_name": "NodeConfEU",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "id": 526867353,
+ "id_str": "526867353",
+ "indices": [
+ 61,
+ 72
+ ]
+ }
+ ],
+ "urls": [
+ {
+ "url": "https://t.co/niCaEinjjd",
+ "expanded_url": "https://twitter.com/NodeConfEU/status/788098182714720256",
+ "display_url": "twitter.com/NodeConfEU/sta…",
+ "indices": [
+ 100,
+ 123
+ ]
+ }
+ ]
+ },
+ "source": "Tweetbot for iΟS",
+ "in_reply_to_status_id": 788098182714720256,
+ "in_reply_to_status_id_str": "788098182714720256",
+ "in_reply_to_user_id": 526867353,
+ "in_reply_to_user_id_str": "526867353",
+ "in_reply_to_screen_name": "NodeConfEU",
+ "user": {
+ "id": 2187,
+ "id_str": "2187",
+ "name": "Reid Burke",
+ "screen_name": "reid",
+ "location": "San Jose, California",
+ "description": "Loving people, building things. Husband to @jeeyunit. Also found over here: @reid@intentional.network",
+ "url": "https://t.co/EC648mfifU",
+ "entities": {
+ "url": {
+ "urls": [
+ {
+ "url": "https://t.co/EC648mfifU",
+ "expanded_url": "https://reidburke.com",
+ "display_url": "reidburke.com",
+ "indices": [
+ 0,
+ 23
+ ]
+ }
+ ]
+ },
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 1578,
+ "friends_count": 363,
+ "listed_count": 102,
+ "created_at": "Tue Jul 18 04:45:15 +0000 2006",
+ "favourites_count": 2353,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 4286,
+ "lang": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "F2F2F2",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme15/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme15/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1369300745510658049/D3-hpDIN_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1369300745510658049/D3-hpDIN_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2187/1615301593",
+ "profile_link_color": "1B95E0",
+ "profile_sidebar_border_color": "FFFFFF",
+ "profile_sidebar_fill_color": "E6FFD1",
+ "profile_text_color": "2D2E40",
+ "profile_use_background_image": false,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": []
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": {
+ "id": "83e9c5185856cabc",
+ "url": "https://api.twitter.com/1.1/geo/id/83e9c5185856cabc.json",
+ "place_type": "city",
+ "name": "Kilkenny",
+ "full_name": "Kilkenny, Ireland",
+ "country_code": "IE",
+ "country": "Ireland",
+ "contained_within": [],
+ "bounding_box": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ -7.6733888,
+ 52.2425457
+ ],
+ [
+ -6.9142322,
+ 52.2425457
+ ],
+ [
+ -6.9142322,
+ 52.8944269
+ ],
+ [
+ -7.6733888,
+ 52.8944269
+ ]
+ ]
+ ]
+ },
+ "attributes": {}
+ },
+ "contributors": null,
+ "is_quote_status": true,
+ "quoted_status_id": 788098182714720256,
+ "quoted_status_id_str": "788098182714720256",
+ "quoted_status": {
+ "created_at": "Mon Oct 17 19:23:43 +0000 2016",
+ "id": 788098182714720256,
+ "id_str": "788098182714720256",
+ "text": "Celtic drummers on arrival! #NodeConfEU #Kilkenny https://t.co/8loCawojWv",
+ "truncated": false,
+ "entities": {
+ "hashtags": [
+ {
+ "text": "NodeConfEU",
+ "indices": [
+ 28,
+ 39
+ ]
+ },
+ {
+ "text": "Kilkenny",
+ "indices": [
+ 40,
+ 49
+ ]
+ }
+ ],
+ "symbols": [],
+ "user_mentions": [],
+ "urls": [],
+ "media": [
+ {
+ "id": 788097978926034944,
+ "id_str": "788097978926034944",
+ "indices": [
+ 50,
+ 73
+ ],
+ "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/788097978926034944/pu/img/l5dSXoCJoVTism03.jpg",
+ "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/788097978926034944/pu/img/l5dSXoCJoVTism03.jpg",
+ "url": "https://t.co/8loCawojWv",
+ "display_url": "pic.twitter.com/8loCawojWv",
+ "expanded_url": "https://twitter.com/NodeConfEU/status/788098182714720256/video/1",
+ "type": "photo",
+ "sizes": {
+ "thumb": {
+ "w": 150,
+ "h": 150,
+ "resize": "crop"
+ },
+ "small": {
+ "w": 383,
+ "h": 680,
+ "resize": "fit"
+ },
+ "large": {
+ "w": 720,
+ "h": 1280,
+ "resize": "fit"
+ },
+ "medium": {
+ "w": 675,
+ "h": 1200,
+ "resize": "fit"
+ }
+ }
+ }
+ ]
+ },
+ "extended_entities": {
+ "media": [
+ {
+ "id": 788097978926034944,
+ "id_str": "788097978926034944",
+ "indices": [
+ 50,
+ 73
+ ],
+ "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/788097978926034944/pu/img/l5dSXoCJoVTism03.jpg",
+ "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/788097978926034944/pu/img/l5dSXoCJoVTism03.jpg",
+ "url": "https://t.co/8loCawojWv",
+ "display_url": "pic.twitter.com/8loCawojWv",
+ "expanded_url": "https://twitter.com/NodeConfEU/status/788098182714720256/video/1",
+ "type": "video",
+ "sizes": {
+ "thumb": {
+ "w": 150,
+ "h": 150,
+ "resize": "crop"
+ },
+ "small": {
+ "w": 383,
+ "h": 680,
+ "resize": "fit"
+ },
+ "large": {
+ "w": 720,
+ "h": 1280,
+ "resize": "fit"
+ },
+ "medium": {
+ "w": 675,
+ "h": 1200,
+ "resize": "fit"
+ }
+ },
+ "video_info": {
+ "aspect_ratio": [
+ 9,
+ 16
+ ],
+ "duration_millis": 16137,
+ "variants": [
+ {
+ "bitrate": 832000,
+ "content_type": "video/mp4",
+ "url": "https://video.twimg.com/ext_tw_video/788097978926034944/pu/vid/360x640/Z-0TBWQTDp5BhUGw.mp4"
+ },
+ {
+ "bitrate": 2176000,
+ "content_type": "video/mp4",
+ "url": "https://video.twimg.com/ext_tw_video/788097978926034944/pu/vid/720x1280/z0CWe4W3kWSEMwgV.mp4"
+ },
+ {
+ "content_type": "application/x-mpegURL",
+ "url": "https://video.twimg.com/ext_tw_video/788097978926034944/pu/pl/Oh8yHoHj8R5aHdDY.m3u8"
+ },
+ {
+ "bitrate": 320000,
+ "content_type": "video/mp4",
+ "url": "https://video.twimg.com/ext_tw_video/788097978926034944/pu/vid/180x320/M9I157TlEOS3DclN.mp4"
+ }
+ ]
+ },
+ "additional_media_info": {
+ "monetizable": false
+ }
+ }
+ ]
+ },
+ "source": "Twitter for Android",
+ "in_reply_to_status_id": null,
+ "in_reply_to_status_id_str": null,
+ "in_reply_to_user_id": null,
+ "in_reply_to_user_id_str": null,
+ "in_reply_to_screen_name": null,
+ "user": {
+ "id": 526867353,
+ "id_str": "526867353",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "screen_name": "NodeConfEU",
+ "location": "",
+ "description": "Nov 6th-8th 2023 at @lyrathestate | 📹 Watch back 2022: https://t.co/3bX7iwoWwS | 📸 https://t.co/l0NI9JopvW | Organised by @NearForm",
+ "url": "https://t.co/mfsBek3Idf",
+ "entities": {
+ "url": {
+ "urls": [
+ {
+ "url": "https://t.co/mfsBek3Idf",
+ "expanded_url": "http://www.nodeconf.eu",
+ "display_url": "nodeconf.eu",
+ "indices": [
+ 0,
+ 23
+ ]
+ }
+ ]
+ },
+ "description": {
+ "urls": [
+ {
+ "url": "https://t.co/3bX7iwoWwS",
+ "expanded_url": "http://nf.ie/NCEU22",
+ "display_url": "nf.ie/NCEU22",
+ "indices": [
+ 55,
+ 78
+ ]
+ },
+ {
+ "url": "https://t.co/l0NI9JopvW",
+ "expanded_url": "http://nf.ie/NCEU22pics",
+ "display_url": "nf.ie/NCEU22pics",
+ "indices": [
+ 83,
+ 106
+ ]
+ }
+ ]
+ }
+ },
+ "protected": false,
+ "followers_count": 5099,
+ "friends_count": 1754,
+ "listed_count": 213,
+ "created_at": "Fri Mar 16 22:45:48 +0000 2012",
+ "favourites_count": 1814,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 4297,
+ "lang": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "000000",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1641024326139879425/wEE4x5oa_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1641024326139879425/wEE4x5oa_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/526867353/1680084544",
+ "profile_link_color": "B12C65",
+ "profile_sidebar_border_color": "000000",
+ "profile_sidebar_fill_color": "000000",
+ "profile_text_color": "000000",
+ "profile_use_background_image": false,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": true,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": []
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": {
+ "id": "83e9c5185856cabc",
+ "url": "https://api.twitter.com/1.1/geo/id/83e9c5185856cabc.json",
+ "place_type": "city",
+ "name": "Kilkenny",
+ "full_name": "Kilkenny, Ireland",
+ "country_code": "IE",
+ "country": "Ireland",
+ "contained_within": [],
+ "bounding_box": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ -7.6733888,
+ 52.2425457
+ ],
+ [
+ -6.9142322,
+ 52.2425457
+ ],
+ [
+ -6.9142322,
+ 52.8944269
+ ],
+ [
+ -7.6733888,
+ 52.8944269
+ ]
+ ]
+ ]
+ },
+ "attributes": {}
+ },
+ "contributors": null,
+ "is_quote_status": false,
+ "retweet_count": 2,
+ "favorite_count": 6,
+ "favorited": false,
+ "retweeted": false,
+ "possibly_sensitive": false,
+ "possibly_sensitive_appealable": false,
+ "lang": "en"
+ },
+ "retweet_count": 3,
+ "favorite_count": 3,
+ "favorited": false,
+ "retweeted": true,
+ "possibly_sensitive": false,
+ "possibly_sensitive_appealable": false,
+ "lang": "en"
+}
diff --git a/src/services/twitter/intercepts/data/v_aminev/original.json b/src/services/twitter/intercepts/data/v_aminev/original.json
new file mode 100644
index 00000000..daba432c
--- /dev/null
+++ b/src/services/twitter/intercepts/data/v_aminev/original.json
@@ -0,0 +1,102 @@
+{
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "id": 904549,
+ "id_str": "904549",
+ "text": "Cumque sunt vero quisquam repellat quo rerum illum odit explicabo.",
+ "truncated": false,
+ "entities": {
+ "hashtags": [],
+ "symbols": [],
+ "user_mentions": [
+ {
+ "screen_name": "NodeConfEU",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "id": 526867353,
+ "id_str": "526867353",
+ "indices": [
+ 0,
+ 11
+ ]
+ },
+ {
+ "screen_name": "MakeOmatic",
+ "name": "makeomatic",
+ "id": 1960663927,
+ "id_str": "1960663927",
+ "indices": [
+ 17,
+ 28
+ ]
+ }
+ ],
+ "urls": []
+ },
+ "source": "Twitter Web Client",
+ "in_reply_to_status_id": null,
+ "in_reply_to_status_id_str": null,
+ "in_reply_to_user_id": null,
+ "in_reply_to_user_id_str": null,
+ "in_reply_to_screen_name": null,
+ "user": {
+ "id": 532079,
+ "id_str": "532079",
+ "name": "Dr. Erik Haag",
+ "screen_name": "v_aminev",
+ "location": "Guinea-Bissau, Riverton",
+ "description": "National",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 1,
+ "favorited": false,
+ "retweeted": false,
+ "lang": "en"
+}
\ No newline at end of file
diff --git a/src/services/twitter/intercepts/data/v_aminev/reply.json b/src/services/twitter/intercepts/data/v_aminev/reply.json
new file mode 100644
index 00000000..6929ba23
--- /dev/null
+++ b/src/services/twitter/intercepts/data/v_aminev/reply.json
@@ -0,0 +1,102 @@
+{
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "id": 991460,
+ "id_str": "991460",
+ "text": "Atque libero sunt iure doloremque qui eveniet officia delectus perferendis. Atque libero sunt iure doloremque qui eveniet officia delectus perferendis. Atque libero sunt iure doloremque qui eveniet officia delectus perfe",
+ "truncated": false,
+ "entities": {
+ "hashtags": [],
+ "symbols": [],
+ "user_mentions": [
+ {
+ "screen_name": "NodeConfEU",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "id": 526867353,
+ "id_str": "526867353",
+ "indices": [
+ 0,
+ 11
+ ]
+ },
+ {
+ "screen_name": "MakeOmatic",
+ "name": "makeomatic",
+ "id": 1960663927,
+ "id_str": "1960663927",
+ "indices": [
+ 17,
+ 28
+ ]
+ }
+ ],
+ "urls": []
+ },
+ "source": "Twitter Web Client",
+ "in_reply_to_status_id": 522309,
+ "in_reply_to_status_id_str": "522309",
+ "in_reply_to_user_id": 296461,
+ "in_reply_to_user_id_str": "296461",
+ "in_reply_to_screen_name": "other_user",
+ "user": {
+ "id": 532079,
+ "id_str": "532079",
+ "name": "Dr. Erik Haag",
+ "screen_name": "v_aminev",
+ "location": "Guinea-Bissau, Riverton",
+ "description": "National",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 1,
+ "favorited": false,
+ "retweeted": false,
+ "lang": "en"
+}
diff --git a/src/services/twitter/intercepts/data/v_aminev/retweet.json b/src/services/twitter/intercepts/data/v_aminev/retweet.json
new file mode 100644
index 00000000..e2850b1a
--- /dev/null
+++ b/src/services/twitter/intercepts/data/v_aminev/retweet.json
@@ -0,0 +1,212 @@
+{
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "id": 772961,
+ "id_str": "772961",
+ "text": "Recusandae aperiam omnis aliquam distinctio quo consectetur reiciendis laboriosam natus.",
+ "truncated": false,
+ "entities": {
+ "hashtags": [
+ {
+ "text": "media",
+ "indices": [
+ 31,
+ 37
+ ]
+ },
+ {
+ "text": "artwork",
+ "indices": [
+ 38,
+ 46
+ ]
+ },
+ {
+ "text": "NFT",
+ "indices": [
+ 92,
+ 96
+ ]
+ },
+ {
+ "text": "digitalart",
+ "indices": [
+ 120,
+ 131
+ ]
+ }
+ ],
+ "symbols": [],
+ "user_mentions": [
+ {
+ "screen_name": "NodeConfEU",
+ "name": "NodeConf EU Nov 6th-8th 2023",
+ "id": 526867353,
+ "id_str": "526867353",
+ "indices": [
+ 0,
+ 11
+ ]
+ },
+ {
+ "screen_name": "MakeOmatic",
+ "name": "makeomatic",
+ "id": 1960663927,
+ "id_str": "1960663927",
+ "indices": [
+ 17,
+ 28
+ ]
+ }
+ ],
+ "urls": []
+ },
+ "source": "Twitter for iPhone",
+ "in_reply_to_status_id": null,
+ "in_reply_to_status_id_str": null,
+ "in_reply_to_user_id": null,
+ "in_reply_to_user_id_str": null,
+ "in_reply_to_screen_name": null,
+ "user": {
+ "id": 532079,
+ "id_str": "532079",
+ "name": "Dr. Erik Haag",
+ "screen_name": "v_aminev",
+ "location": "Guinea-Bissau, Riverton",
+ "description": "National",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "retweeted_status": {
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "id": 727355,
+ "id_str": "727355",
+ "text": "Aut laboriosam vero hic similique alias ducimus expedita architecto maiores.",
+ "truncated": false,
+ "entities": {
+ "hashtags": [],
+ "symbols": [],
+ "user_mentions": [],
+ "urls": []
+ },
+ "source": "Twitter Web Client",
+ "in_reply_to_status_id": null,
+ "in_reply_to_status_id_str": null,
+ "in_reply_to_user_id": null,
+ "in_reply_to_user_id_str": null,
+ "in_reply_to_screen_name": null,
+ "user": {
+ "id": 986455,
+ "id_str": "986455",
+ "name": "Trevor Homenick",
+ "screen_name": "retweet_user",
+ "location": "Saint Barthelemy, North Genesischester",
+ "description": "Product",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ },
+ "geo": null,
+ "coordinates": null,
+ "place": null,
+ "contributors": null,
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 1,
+ "favorited": false,
+ "retweeted": false,
+ "lang": "en"
+ },
+ "is_quote_status": false,
+ "retweet_count": 1,
+ "favorite_count": 0,
+ "favorited": true,
+ "retweeted": true,
+ "lang": "en"
+}
\ No newline at end of file
diff --git a/src/services/twitter/intercepts/data/v_aminev/tweets.json b/src/services/twitter/intercepts/data/v_aminev/tweets.json
new file mode 100644
index 00000000..8a98b2e7
--- /dev/null
+++ b/src/services/twitter/intercepts/data/v_aminev/tweets.json
@@ -0,0 +1,5 @@
+{
+ "904549": "original.json",
+ "772961": "retweet.json",
+ "991460": "reply.json"
+}
diff --git a/src/services/twitter/intercepts/data/v_aminev/user.json b/src/services/twitter/intercepts/data/v_aminev/user.json
new file mode 100644
index 00000000..2d9f6117
--- /dev/null
+++ b/src/services/twitter/intercepts/data/v_aminev/user.json
@@ -0,0 +1,52 @@
+{
+ "id": 532079,
+ "id_str": "532079",
+ "name": "Dr. Erik Haag",
+ "screen_name": "v_aminev",
+ "location": "Guinea-Bissau, Riverton",
+ "description": "National",
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": "Thu May 25 10:32:11 +0000 2023",
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+}
\ No newline at end of file
diff --git a/src/services/twitter/intercepts/generator/cli.js b/src/services/twitter/intercepts/generator/cli.js
new file mode 100644
index 00000000..f55828b7
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/cli.js
@@ -0,0 +1,27 @@
+const fs = require("fs");
+const { userFactory, originalFactory, replyFactory, retweetFactory } = require("./factories");
+
+const screenName = "v_aminev"
+const user = userFactory(screenName)
+const retweet = retweetFactory(user)
+const original = originalFactory(user)
+const reply = replyFactory(user)
+
+const tweets = {}
+tweets[`${original.id}`] = "original.json"
+tweets[`${retweet.id}`] = "retweet.json"
+tweets[`${reply.id}`] = "reply.json"
+
+console.log(user)
+console.log(original)
+console.log(reply)
+console.log(retweet)
+console.log(tweets)
+
+fs.mkdirSync(__dirname + `/../data/${screenName}`);
+fs.writeFileSync(__dirname + `/../data/${screenName}/user.json`, JSON.stringify(user, null, 2))
+fs.writeFileSync(__dirname + `/../data/${screenName}/original.json`, JSON.stringify(original, null, 2))
+fs.writeFileSync(__dirname + `/../data/${screenName}/reply.json`, JSON.stringify(reply, null, 2))
+fs.writeFileSync(__dirname + `/../data/${screenName}/retweet.json`, JSON.stringify(retweet, null, 2))
+fs.writeFileSync(__dirname + `/../data/${screenName}/tweets.json`, JSON.stringify(tweets, null, 2))
+
diff --git a/src/services/twitter/intercepts/generator/factories.js b/src/services/twitter/intercepts/generator/factories.js
new file mode 100644
index 00000000..aed6a443
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/factories.js
@@ -0,0 +1,44 @@
+
+
+const createOriginal = require('./models/original')
+const createStatus = require('./models/status')
+const createReply = require('./models/reply')
+const createRetweet = require('./models/retweet')
+const createUser = require('./models/user')
+const createMentions = require('./models/mentions')
+
+function retweetFactory(user) {
+ const otherUser = createUser("retweet_user")
+ const tweet = createOriginal(otherUser, [])
+ const mentions = createMentions()
+ return createRetweet(user, mentions, tweet)
+}
+
+function replyFactory(user) {
+ const otherUser = createUser("other_user")
+ const tweet = createOriginal(otherUser, [])
+ const mentions = createMentions()
+ return createReply(user, mentions, tweet)
+}
+
+function originalFactory(user, options) {
+ const mentions = createMentions()
+ return createOriginal(user, mentions, options)
+}
+
+function statusFactory(user) {
+ const mentions = createMentions()
+ return createStatus(user, mentions)
+}
+
+function userFactory(screenName) {
+ return createUser(screenName)
+}
+
+module.exports = {
+ userFactory,
+ retweetFactory,
+ replyFactory,
+ originalFactory,
+ statusFactory
+}
diff --git a/src/services/twitter/intercepts/generator/models/mentions.js b/src/services/twitter/intercepts/generator/models/mentions.js
new file mode 100644
index 00000000..d3fd0208
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/models/mentions.js
@@ -0,0 +1,26 @@
+
+
+module.exports = function() {
+ return [
+ {
+ screen_name: 'NodeConfEU',
+ name: 'NodeConf EU Nov 6th-8th 2023',
+ id: 526867353,
+ id_str: '526867353',
+ indices: [
+ 0,
+ 11,
+ ],
+ },
+ {
+ screen_name: 'MakeOmatic',
+ name: 'makeomatic',
+ id: 1960663927,
+ id_str: '1960663927',
+ indices: [
+ 17,
+ 28,
+ ],
+ },
+ ]
+}
diff --git a/src/services/twitter/intercepts/generator/models/original.js b/src/services/twitter/intercepts/generator/models/original.js
new file mode 100644
index 00000000..69b34808
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/models/original.js
@@ -0,0 +1,38 @@
+
+const { getRandomInt, getDateString } = require("../util");
+const { faker } = require("@faker-js/faker");
+
+module.exports = function(user, mentions, options = {}) {
+ const id = options.id ?? getRandomInt()
+ return {
+ created_at: getDateString(),
+ // eslint-disable-next-line no-loss-of-precision
+ id: id,
+ id_str: `${id}`,
+ text: faker.lorem.sentence(10),
+ truncated: false,
+ entities: {
+ hashtags: [],
+ symbols: [],
+ user_mentions: mentions,
+ urls: [],
+ },
+ source: 'Twitter Web Client',
+ in_reply_to_status_id: null,
+ in_reply_to_status_id_str: null,
+ in_reply_to_user_id: null,
+ in_reply_to_user_id_str: null,
+ in_reply_to_screen_name: null,
+ user: user,
+ geo: null,
+ coordinates: null,
+ place: null,
+ contributors: null,
+ is_quote_status: false,
+ retweet_count: 1,
+ favorite_count: 1,
+ favorited: false,
+ retweeted: false,
+ lang: 'en',
+ };
+}
diff --git a/src/services/twitter/intercepts/generator/models/reply.js b/src/services/twitter/intercepts/generator/models/reply.js
new file mode 100644
index 00000000..5e0bdbfa
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/models/reply.js
@@ -0,0 +1,39 @@
+
+const { getRandomInt, getDateString } = require("../util");
+const { faker } = require("@faker-js/faker");
+
+module.exports = function(user, mentions = [], tweet) {
+ const id = getRandomInt()
+ return {
+ created_at: getDateString(),
+ // eslint-disable-next-line no-loss-of-precision
+ id: id,
+ id_str: `${id}`,
+ text: faker.lorem.sentence(10),
+ truncated: false,
+ entities: {
+ hashtags: [],
+ symbols: [],
+ user_mentions: mentions,
+ urls: [],
+ },
+ source: 'Twitter Web Client',
+ // eslint-disable-next-line no-loss-of-precision
+ in_reply_to_status_id: tweet.id,
+ in_reply_to_status_id_str: `${tweet.id}`,
+ in_reply_to_user_id: tweet.user.id,
+ in_reply_to_user_id_str: `${tweet.user.id}`,
+ in_reply_to_screen_name: tweet.user.screen_name,
+ user: user,
+ geo: null,
+ coordinates: null,
+ place: null,
+ contributors: null,
+ is_quote_status: false,
+ retweet_count: 1,
+ favorite_count: 1,
+ favorited: false,
+ retweeted: false,
+ lang: 'en',
+ };
+}
diff --git a/src/services/twitter/intercepts/generator/models/retweet.js b/src/services/twitter/intercepts/generator/models/retweet.js
new file mode 100644
index 00000000..737d900b
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/models/retweet.js
@@ -0,0 +1,68 @@
+
+const { getRandomInt, getDateString } = require("../util");
+const { faker } = require("@faker-js/faker");
+
+module.exports = function(user, mentions, tweet) {
+ const id = getRandomInt()
+ return {
+ created_at: getDateString(),
+ // eslint-disable-next-line no-loss-of-precision
+ id: id,
+ id_str: `${id}`,
+ text: faker.lorem.sentence(10),
+ truncated: false,
+ entities: {
+ hashtags: [
+ {
+ text: 'media',
+ indices: [
+ 31,
+ 37,
+ ],
+ },
+ {
+ text: 'artwork',
+ indices: [
+ 38,
+ 46,
+ ],
+ },
+ {
+ text: 'NFT',
+ indices: [
+ 92,
+ 96,
+ ],
+ },
+ {
+ text: 'digitalart',
+ indices: [
+ 120,
+ 131,
+ ],
+ },
+ ],
+ symbols: [],
+ user_mentions: mentions,
+ urls: [],
+ },
+ source: 'Twitter for iPhone',
+ in_reply_to_status_id: null,
+ in_reply_to_status_id_str: null,
+ in_reply_to_user_id: null,
+ in_reply_to_user_id_str: null,
+ in_reply_to_screen_name: null,
+ user: user,
+ geo: null,
+ coordinates: null,
+ place: null,
+ contributors: null,
+ retweeted_status: tweet,
+ is_quote_status: false,
+ retweet_count: 1,
+ favorite_count: 0,
+ favorited: true,
+ retweeted: true,
+ lang: 'en',
+ };
+}
diff --git a/src/services/twitter/intercepts/generator/models/status.js b/src/services/twitter/intercepts/generator/models/status.js
new file mode 100644
index 00000000..691ee672
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/models/status.js
@@ -0,0 +1,56 @@
+const { getRandomInt } = require("../util");
+const { faker } = require("@faker-js/faker");
+
+module.exports = function(user, mentions) {
+ const id = getRandomInt()
+ return {
+ created_at: "Wed Jun 06 20:07:10 +0000 2012",
+ id: id,
+ id_str: `${id}`,
+ text: faker.lorem.sentence(10),
+ truncated: false,
+ entities: {
+ hashtags: [
+ {
+ text: "Twitterbird",
+ indices: [
+ 19,
+ 31
+ ]
+ }
+ ],
+ symbols: [],
+ user_mentions: mentions,
+ urls: [
+ {
+ url: "https://t.co/Ed4omjYs",
+ expanded_url: "https://dev.twitter.com/terms/display-guidelines",
+ display_url: "dev.twitter.com/terms/display-…",
+ indices: [
+ 76,
+ 97
+ ]
+ }
+ ]
+ },
+ source: "Twitter Web Client",
+ in_reply_to_status_id: null,
+ in_reply_to_status_id_str: null,
+ in_reply_to_user_id: null,
+ in_reply_to_user_id_str: null,
+ in_reply_to_screen_name: null,
+ user: user,
+ geo: null,
+ coordinates: null,
+ place: null,
+ contributors: null,
+ is_quote_status: false,
+ retweet_count: 1,
+ favorite_count: 1,
+ favorited: false,
+ retweeted: false,
+ possibly_sensitive: false,
+ possibly_sensitive_appealable: false,
+ lang: "en"
+ }
+}
diff --git a/src/services/twitter/intercepts/generator/models/user.js b/src/services/twitter/intercepts/generator/models/user.js
new file mode 100644
index 00000000..3d26de1a
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/models/user.js
@@ -0,0 +1,58 @@
+const { faker } = require('@faker-js/faker');
+const { getRandomInt, getDateString } = require("../util");
+
+module.exports = function(screenName) {
+ const id = getRandomInt()
+ return {
+ "id": id,
+ "id_str": `${id}`,
+ "name": faker.person.fullName(),
+ "screen_name": screenName,
+ "location": faker.location.country() + ", " + faker.location.city(),
+ "description": faker.person.jobDescriptor(),
+ "url": null,
+ "entities": {
+ "description": {
+ "urls": []
+ }
+ },
+ "protected": false,
+ "followers_count": 105,
+ "friends_count": 157,
+ "listed_count": 3,
+ "created_at": getDateString(),
+ "favourites_count": 59,
+ "utc_offset": null,
+ "time_zone": null,
+ "geo_enabled": true,
+ "verified": false,
+ "statuses_count": 146,
+ "lang": null,
+ "status": null,
+ "contributors_enabled": false,
+ "is_translator": false,
+ "is_translation_enabled": false,
+ "profile_background_color": "C0DEED",
+ "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+ "profile_background_tile": false,
+ "profile_image_url": "http://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_image_url_https": "https://pbs.twimg.com/profile_images/1540076330191974400/hwpwsAJg_normal.jpg",
+ "profile_banner_url": "https://pbs.twimg.com/profile_banners/2533316504/1404549458",
+ "profile_link_color": "000000",
+ "profile_sidebar_border_color": "C0DEED",
+ "profile_sidebar_fill_color": "DDEEF6",
+ "profile_text_color": "333333",
+ "profile_use_background_image": true,
+ "has_extended_profile": false,
+ "default_profile": false,
+ "default_profile_image": false,
+ "following": false,
+ "follow_request_sent": false,
+ "notifications": false,
+ "translator_type": "none",
+ "withheld_in_countries": [],
+ "suspended": false,
+ "needs_phone_verification": false
+ }
+}
diff --git a/src/services/twitter/intercepts/generator/util.js b/src/services/twitter/intercepts/generator/util.js
new file mode 100644
index 00000000..4a5e8a76
--- /dev/null
+++ b/src/services/twitter/intercepts/generator/util.js
@@ -0,0 +1,26 @@
+
+function getRandomInt() {
+ return Math.ceil(Math.random() * 1_000_000)
+}
+
+function getDateString() {
+ const date = new Date();
+
+ const daysOfWeek = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
+ const months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
+
+ const dayOfWeek = daysOfWeek[date.getUTCDay()];
+ const month = months[date.getUTCMonth()];
+ const day = date.getUTCDate();
+ const hours = date.getUTCHours();
+ const minutes = date.getUTCMinutes();
+ const seconds = date.getUTCSeconds();
+ const year = date.getUTCFullYear();
+
+ return `${dayOfWeek} ${month} ${day} ${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')} +0000 ${year}`;
+}
+
+module.exports = {
+ getRandomInt,
+ getDateString
+}
diff --git a/src/services/twitter/intercepts/index.js b/src/services/twitter/intercepts/index.js
new file mode 100644
index 00000000..c34ee876
--- /dev/null
+++ b/src/services/twitter/intercepts/index.js
@@ -0,0 +1,185 @@
+const nock = require('nock');
+const url = require('url');
+const debug = require('debug');
+const log = debug('twitter:intercept');
+const Stream = require('stream');
+const fs = require('fs');
+const { userFactory, originalFactory, replyFactory, retweetFactory } = require("./generator/factories");
+
+function hasUser(name) {
+ return fs.existsSync(`./src/services/twitter/intercepts/data/${name}`)
+}
+
+// message: JSON.stringify([{ code: 17, message: 'No user matches for specified terms.' }]),
+function interceptTwitterApi() {
+ log('using twitter api interceptor');
+
+ nock('https://api.twitter.com', { allowUnmocked: false })
+ .persist()
+ // lookup correct user
+ .get((uri) => {
+ const q = url.parse(uri, true)
+ const { screen_name } = q.query
+ const matched = uri.includes('users/lookup') && hasUser(screen_name)
+ if (matched) {
+ log(`getting request for existing users, for uri=${uri}, screen_name=${screen_name}`)
+ }
+ return matched
+ })
+ .reply(200, function (uri) {
+ const q = url.parse(uri, true);
+ const { screen_name } = q.query
+ const user = require(`./data/${screen_name}/user.json`)
+ log(`sending response for uri=${uri}, screen_name=${screen_name}`, JSON.stringify(user))
+ return [user]
+ })
+ // lookup incorrect user
+ .get((uri) => {
+ const q = url.parse(uri, true)
+ const { screen_name } = q.query
+ const matched = uri.includes('users/lookup') && !hasUser(screen_name)
+ if (matched) {
+ log(`getting request non-existing users, for uri=${uri}, screen_name=${screen_name}`)
+ }
+ return matched
+ })
+ .reply(404, function (uri) {
+ const q = url.parse(uri, true)
+ const { screen_name } = q.query
+ log(`sending response for non-existing user, screen_name=${screen_name}`)
+ return JSON.stringify({ "errors": [{ "code": 17, "message": "No user matches for specified terms." }] })
+ })
+ // user timeline
+ .get((uri) => {
+ const q = url.parse(uri, true)
+ const { screen_name } = q.query
+ const matched = uri.includes('statuses/user_timeline') && hasUser(screen_name)
+ if (matched) {
+ log(`getting request for uri=${uri}, screen_name=${screen_name}`)
+ }
+ return matched
+ })
+ .reply(200, function (uri) {
+ const q = url.parse(uri, true);
+ const { screen_name } = q.query
+ const response = [
+ require(`./data/${screen_name}/original.json`),
+ require(`./data/${screen_name}/reply.json`),
+ require(`./data/${screen_name}/retweet.json`),
+ ]
+ log(`sending response for uri=${uri}, screen_name=${screen_name}`, JSON.stringify(response.map(item => item.id)))
+ return response
+ })
+ // destroy status
+ .post((uri) => {
+ const matched = uri.includes('statuses/destroy')
+ if (matched) {
+ log(`getting request for uri=${uri}`)
+ }
+ return matched
+ })
+ .reply(200, function (uri) {
+ const q = url.parse(uri, true)
+ const id = q.pathname.split("/").pop().replace(/\.json/, '')
+ const user = userFactory()
+ const original = originalFactory(user, { id })
+ log(`sending response for statuses/destroy`, uri, JSON.stringify(original))
+ return original;
+ })
+ // statuses show
+ .get((uri) => {
+ const matched = uri.includes('statuses/show') && uri.includes("id=")
+ if (matched) {
+ log(`getting request for uri=${uri}`);
+ }
+ return matched
+ })
+ .reply(function (uri) {
+
+ const q = url.parse(uri, true);
+ const id = q.query.id
+
+ let user, file
+
+ if (id === "20") {
+ user = "jack"
+ file = "status.json"
+ } else if (id === "788099220381335552") {
+ user = "reid"
+ file = "status.json"
+ } else {
+ user = 'v_aminev'
+ const tweets = require(`./data/${user}/tweets.json`)
+ file = tweets[id]
+ }
+
+ if (!file) {
+ log(`interception error: tweet id=${id} not found`)
+ // actually twitter return 404 ,but tests expect 400, it is weird
+ return [400, JSON.stringify({ "errors": [{ "code": 144, "message": "No status found with that ID." }] })]
+ } else {
+ const response = require(`./data/${user}/${file}`)
+ log(`sending response to uri=${uri}, id=${id}, file=${file}, user=${user}, response=${JSON.stringify(response)}`)
+ return [200, response];
+ }
+ })
+ // update statuses
+ .post((uri) => {
+ const matched = uri.includes('statuses/update')
+ if (matched) {
+ log(`getting request for uri=${uri}`)
+ }
+ return matched
+ })
+ .reply(200, function (uri, body) {
+ const response = require(`./data/v_aminev/reply.json`)
+ log(`sending response for statuses/update, uri=${uri}, body=${body}, `
+ + `response=${response.id}, headers=${JSON.stringify(this.req.headers)}`)
+ return response;
+ })
+
+ nock('https://stream.twitter.com', { allowUnmocked: false })
+ .persist()
+ .get((uri) => {
+ const matched = uri.includes('statuses/filter')
+ if (matched) {
+ log(`getting request for GET uri=${uri}`);
+ }
+ return matched
+ })
+ .reply(200, function (uri) {
+ const response = require(`./data/v_aminev/reply.json`)
+ return [ response ];
+ })
+
+ nock('https://userstream.twitter.com', { allowUnmocked: false })
+ .persist()
+ .get((uri) => {
+ log(`getting request for uri=${uri}`);
+ return true
+ })
+ .reply(200, 'OK')
+ .post((uri) => {
+ log(`getting request for uri=${uri}`);
+ return true
+ })
+ .reply(200, 'OK')
+
+ nock('https://sitestream.twitter.com', { allowUnmocked: false })
+ .persist()
+ .get((uri) => {
+ log(`getting request for uri=${uri}`);
+ return true
+ })
+ .reply(200, 'OK')
+ .post((uri) => {
+ log(`getting request for uri=${uri}`);
+ return true
+ })
+ .reply(200, 'OK')
+
+}
+
+module.exports = {
+ interceptTwitterApi
+}
diff --git a/src/social.js b/src/social.js
index 331eff2a..8f5815f4 100755
--- a/src/social.js
+++ b/src/social.js
@@ -14,6 +14,11 @@ const addUpsert = require('./utils/knex/upsert');
const services = new WeakMap();
+if (process.env.INTERCEPT_TWITTER_API) {
+ const { interceptTwitterApi } = require('./services/twitter/intercepts');
+ interceptTwitterApi();
+}
+
class Social extends Microfleet {
static defaultConfig = conf.get('/', {
env: process.env.NODE_ENV,
diff --git a/test/docker-compose.yml b/test/docker-compose.yml
index 71a3723f..2356dc94 100755
--- a/test/docker-compose.yml
+++ b/test/docker-compose.yml
@@ -28,3 +28,4 @@ services:
NODE_ENV: "test"
DEBUG: ${DEBUG}
NCONF_NAMESPACE: MS_SOCIAL
+ INTERCEPT_TWITTER_API: ${INTERCEPT_TWITTER_API}
diff --git a/test/suites/01.twitter.js b/test/suites/01.twitter.js
index 67843a8b..3b3799e8 100644
--- a/test/suites/01.twitter.js
+++ b/test/suites/01.twitter.js
@@ -173,7 +173,7 @@ describe('twitter', function testSuite() {
);
});
- it('should have collected some tweets', async () => {
+ it('should have collected some tweets (one account)', async () => {
await Promise.delay(1500);
const response = await request(uri.read, payload.read);
@@ -190,7 +190,7 @@ describe('twitter', function testSuite() {
}));
});
- it('should have collected some tweets', async () => {
+ it('should have collected some tweets (multiple accounts)', async () => {
await Promise.delay(1500);
const response = await request(uri.read, payload.readMultiple);
diff --git a/test/suites/twitter.filter.js b/test/suites/twitter.filter.js
index 04af3166..8d0ca3c6 100644
--- a/test/suites/twitter.filter.js
+++ b/test/suites/twitter.filter.js
@@ -4,7 +4,11 @@ const assert = require('assert');
const filterByType = (tweets, type) => tweets.filter((x) => Number.parseInt(x.attributes.type, 10) === type);
[
- [true, [true, true], [0, 1, 2], []],
+ [ /* ignoreFilters */ true,
+ /* filters */ [ /* filterReplies */ true, /* filterRetweets */ true],
+ /* expectedTypes */ [0, 1, 2],
+ /* filteredTypes */ [],
+ ],
[false, [true, true], [0], []], // check filteredTypes more correctly with own later
].forEach(([ignoreFilters, filters, expectedTypes, filteredTypes]) => {
describe('twitter filter statuses', function testSuite() {