-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathpackage.json
215 lines (215 loc) · 20.3 KB
/
package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
{
"name": "chaingraph",
"version": "1.0.0",
"description": "A multi-node blockchain indexer and GraphQL API",
"type": "module",
"bin": "./bin/chaingraph.js",
"main": "build/main/index.js",
"repository": "https://github.com/bitauth/chaingraph",
"license": "MIT",
"keywords": [],
"scripts": {
"dev-cluster:init": "yarn dev-cluster:init:base && yarn dev-cluster:upgrade",
"dev-cluster:init:base": "yarn dev-cluster:create && yarn image:build:hasura && yarn dev-cluster:images:load:hasura",
"dev-cluster:init:local": "yarn dev-cluster:init:base && yarn dev-cluster:upgrade:local",
"dev-cluster:init:local-node": "yarn dev-cluster:init:base && yarn dev-cluster:upgrade:local-node",
"dev-cluster:init:prod-sim": "yarn dev-cluster:init:base && echo '\n\nNote: skipping local build of BCHN; if you need to test building your own, try:\nyarn image:build:bchn && yarn dev-cluster:images:load:bchn \n\n' && yarn image:build:agent && yarn dev-cluster:images:load:agent && yarn dev-cluster:upgrade:prod-sim",
"dev-cluster:init:prod-sim:random-password": "yarn dev-cluster:init:prod-sim --set postgres.password='' && echo 'Created a prod-sim cluster with a random postgres password.\n\nNote, the prod-sim reset/destroy package scripts will also cause the cluster's chaingraph-secrets to be deleted, so restoring this postgres database will require that you save the password reported by: \n$ yarn dev-cluster:secret:postgres-password'",
"dev-cluster:start": "k3d cluster start chaingraph-development-cluster",
"dev-cluster:stop": "k3d cluster stop chaingraph-development-cluster",
"dev-cluster:secrets": "kubectl get secret chaingraph-secrets -o go-template='{{range $k,$v := .data}}{{\"### \"}}{{$k}}{{\"\\n\"}}{{$v|base64decode}}{{\"\\n\\n\"}}{{end}}'",
"dev-cluster:secret:postgres-connection-string": "kubectl get secret chaingraph-secrets -o go-template='{{ .data.postgresConnectionString | base64decode}}'",
"dev-cluster:secret:postgres-password": "kubectl get secret chaingraph-secrets -o go-template='{{.data.postgresPassword | base64decode}}'",
"dev-cluster:secret:hasura-admin-secret-key": "kubectl get secret chaingraph-secrets -o go-template='{{.data.adminSecretKey | base64decode}}'",
"dev-cluster:reset": "yarn dev-cluster:destroy && yarn dev-cluster:init",
"dev-cluster:reset:local": "yarn dev-cluster:destroy:local && yarn dev-cluster:init:local",
"dev-cluster:reset:local-node": "yarn dev-cluster:destroy:local-node && yarn dev-cluster:init:local-node",
"dev-cluster:reset:prod-sim": "echo '\n## Note ##\n This command does not reset the database. To truly sync Chaingraph from scratch, try:\n$ yarn dev-cluster:reset:prod-sim:mv-postgres\n\n' && yarn dev-cluster:destroy:prod-sim && yarn dev-cluster:init:prod-sim",
"dev-cluster:reset:prod-sim:mv-postgres": "yarn dev-cluster:destroy:prod-sim && mv data/postgres data/postgres-$(date +%Y%m%d_%H%MZ) && mv data/agent data/agent-$(date +%Y%m%d_%H%MZ) && yarn dev-cluster:init:prod-sim",
"dev-cluster:create": "k3d cluster create chaingraph-development-cluster --servers 1 --agents 2 --port '31933:31933@loadbalancer' --volume $PWD/data:/data --volume $PWD/images/hasura/hasura-data:/hasura",
"dev-cluster:destroy": "yarn dev-cluster:spin-down:bchn:chipnet && yarn dev-cluster:spin-down:bchn:testnet && yarn dev-cluster:spin-down:postgres && echo 'pausing to allow pods to shutdown' && kubectl rollout status statefulset/bitcoin-cash-node-chipnet && kubectl rollout status statefulset/bitcoin-cash-node-testnet && kubectl rollout status statefulset/postgres && k3d cluster delete chaingraph-development-cluster",
"dev-cluster:destroy:local": "k3d cluster delete chaingraph-development-cluster",
"dev-cluster:destroy:local-node": "yarn dev-cluster:spin-down:postgres && echo 'pausing to allow pods to shutdown' && kubectl rollout status statefulset/postgres && k3d cluster delete chaingraph-development-cluster",
"dev-cluster:destroy:prod-sim": "yarn dev-cluster:spin-down:bchn:mainnet && yarn dev-cluster:spin-down:bchn:testnet && yarn dev-cluster:spin-down:bchn:chipnet && yarn dev-cluster:spin-down:postgres && echo 'pausing to allow pods to shutdown' && kubectl rollout status statefulset/bitcoin-cash-node && kubectl rollout status statefulset/bitcoin-cash-node-testnet && kubectl rollout status statefulset/postgres && k3d cluster delete chaingraph-development-cluster",
"dev-cluster:docker:stats": "docker stats",
"dev-cluster:images:load:agent": "k3d image import chaingraph/agent:dev-build -c chaingraph-development-cluster",
"dev-cluster:images:load:bchn": "k3d image import chaingraph/bitcoin-cash-node:dev-build -c chaingraph-development-cluster",
"dev-cluster:images:load:hasura": "k3d image import chaingraph/hasura:dev-build -c chaingraph-development-cluster",
"dev-cluster:images:load:postgres-pldebugger": "k3d image import chaingraph/postgres-pldebugger:latest -c chaingraph-development-cluster",
"dev-cluster:debug-chart": "helm template charts/chaingraph --debug",
"dev-cluster:upgrade": "helm upgrade --install chaingraph-development charts/chaingraph --set useDevelopmentVolumes=true --set postgres.password=very_insecure_postgres_password --set hasura.image=chaingraph/hasura:dev-build --set agent.enable=false --set hasura.webhookHandlerBaseUrl='http://host.k3d.internal:3200' --set pgAdmin.enable=true --set pgHero.enable=true",
"dev-cluster:upgrade:dry-run": "yarn dev-cluster:upgrade --dry-run",
"dev-cluster:upgrade:prod-sim": "helm upgrade --install chaingraph-development charts/chaingraph --set useDevelopmentVolumes=true --set postgres.password=very_insecure_postgres_password --set pgAdmin.enable=true --set pgHero.enable=true --set bitcoinCashNode.enable=true --set postgres.volumeSize=700Gi --set agent.enable=true --set agent.image=chaingraph/agent:dev-build --set hasura.image=chaingraph/hasura:dev-build",
"dev-cluster:upgrade:enable-pldbgapi": "yarn image:build:postgres-pldebugger && yarn dev-cluster:images:load:postgres-pldebugger && yarn dev-cluster:upgrade --set postgres.image=chaingraph/postgres-pldebugger",
"dev-cluster:upgrade:local-postgres": "yarn dev-cluster:upgrade --set postgres.externalDbUrl=postgres://chaingraph:[email protected]:5432/postgres --set agent.enable=false",
"dev-cluster:upgrade:local-node": "yarn dev-cluster:upgrade --set bitcoinCashNodeTestnet.enable=false --set bitcoinCashNodeChipnet.enable=false --set agent.enable=false",
"dev-cluster:upgrade:local-node-enable-pldbgapi": "yarn image:build:postgres-pldebugger && yarn dev-cluster:images:load:postgres-pldebugger && yarn dev-cluster:upgrade:local-node --set postgres.image=chaingraph/postgres-pldebugger",
"dev-cluster:upgrade:local": "yarn dev-cluster:upgrade:local-postgres --set bitcoinCashNodeTestnet.enable=false --set bitcoinCashNodeChipnet.enable=false",
"dev-cluster:bchn:sh": "echo 'Some useful commands:\n\n chain info>> bitcoin-cli -datadir=/data getblockchaininfo\n peer versions>> bitcoin-cli -datadir=/data getpeerinfo | grep subver\n quit>> exit\n' && kubectl exec bitcoin-cash-node-0 -it -- /bin/bash",
"dev-cluster:bounce:postgres": "yarn dev-cluster:spin-down:postgres && kubectl rollout status statefulset/postgres && yarn dev-cluster:spin-up:postgres",
"dev-cluster:prod-sim:restart:agent": "echo 'Restarting chaingraph-agent - the existing pod will begin shutdown, and a new pod will be created immediately. If both are logging to the same file, the logs may overlap momentarily.' && kubectl rollout restart deployment chaingraph-agent",
"dev-cluster:spin-down:bchn:mainnet": "kubectl scale statefulsets bitcoin-cash-node --replicas=0",
"dev-cluster:spin-up:bchn:mainnet": "kubectl scale statefulsets bitcoin-cash-node --replicas=1",
"dev-cluster:spin-down:bchn:testnet": "kubectl scale statefulsets bitcoin-cash-node-testnet --replicas=0",
"dev-cluster:spin-up:bchn:testnet": "kubectl scale statefulsets bitcoin-cash-node-testnet --replicas=1",
"dev-cluster:spin-down:bchn:chipnet": "kubectl scale statefulsets bitcoin-cash-node-chipnet --replicas=0",
"dev-cluster:spin-up:bchn:chipnet": "kubectl scale statefulsets bitcoin-cash-node-chipnet --replicas=1",
"dev-cluster:spin-down:hasura": "kubectl scale deployment hasura --replicas=0",
"dev-cluster:spin-up:hasura": "kubectl scale deployment hasura --replicas=1",
"dev-cluster:spin-down:agent": "kubectl scale deployment chaingraph-agent --replicas=0",
"dev-cluster:spin-up:agent": "kubectl scale deployment chaingraph-agent --replicas=1",
"dev-cluster:spin-down:postgres": "kubectl scale statefulsets postgres --replicas=0",
"dev-cluster:spin-up:postgres": "kubectl scale statefulsets postgres --replicas=1",
"dev-cluster:spin-down:pgadmin": "kubectl scale statefulsets pgadmin --replicas=0",
"dev-cluster:spin-up:pgadmin": "kubectl scale statefulsets pgadmin --replicas=1",
"dev-cluster:logs:bchn": "kubectl logs -f bitcoin-cash-node-0",
"dev-cluster:logs:hasura": "kubectl logs -f service/hasura-service",
"dev-cluster:logs:postgres": "kubectl logs -f postgres-0",
"dev-cluster:port-forward:bchn:mainnet": "kubectl port-forward bitcoin-cash-node-0 8333:8333 8334:8334",
"dev-cluster:port-forward:bchn:chipnet": "kubectl port-forward bitcoin-cash-node-chipnet-0 48333:48333 48334:48334",
"dev-cluster:port-forward:bchn:testnet": "kubectl port-forward bitcoin-cash-node-testnet-0 28333:28333 28334:28334",
"dev-cluster:port-forward:pgadmin": "kubectl port-forward pgadmin-0 8081:80",
"dev-cluster:port-forward:postgres": "kubectl port-forward postgres-0 5432:5432",
"dev-cluster:port-forward:hasura": "kubectl port-forward $(kubectl get pod -l app=hasura -o jsonpath=\"{.items[0].metadata.name}\") 8080:8080",
"dev-cluster:port-forward:pghero": "kubectl port-forward $(kubectl get pod -l app=pghero -o jsonpath=\"{.items[0].metadata.name}\") 8082:8080",
"dev-cluster:psql": "psql \"postgres://chaingraph:$(yarn dev-cluster:secret:postgres-password)@localhost:5432/chaingraph\" || echo '\nIs the cluster running postgres, and are you running dev-cluster:port-forward:postgres?'",
"dev-cluster:ssh:bchn": "kubectl exec --stdin --tty bitcoin-cash-node-0 -- /bin/bash",
"dev-cluster:ssh:hasura": "kubectl exec --stdin --tty $(kubectl get pod -l app=hasura -o jsonpath=\"{.items[0].metadata.name}\") -- /bin/bash",
"dev-cluster:ssh:postgres": "kubectl exec --stdin --tty postgres-0 -- /bin/bash",
"dev-cluster:df:bchn": "kubectl exec bitcoin-cash-node-0 -- df -h",
"dev-cluster:df:postgres": "kubectl exec postgres-0 -- df -h",
"dev-cluster:hasura:console": "cd images/hasura/hasura-data && hasura console --console-port=8013 --admin-secret=$(yarn dev-cluster:secret:hasura-admin-secret-key) || echo '\nTo connect to Hasura, make sure the port is being forwarded. In another shell session, run:\n\nyarn dev-cluster:port-forward:hasura\n'",
"dev-cluster:hasura:console:prod-sim": "cd images/hasura/hasura-data && hasura console --console-port=8013 --api-port=31933 --endpoint=http://localhost:31933/ --admin-secret=$(yarn dev-cluster:secret:hasura-admin-secret-key)",
"dev-cluster:hasura:init-migrations": "cd images/hasura/hasura-data && hasura migrate create 'init' --from-server --admin-secret=$(yarn dev-cluster:secret:hasura-admin-secret-key)",
"dev-cluster:hasura:squash-migrations": "cd images/hasura/hasura-data && hasura migrate squash --admin-secret=$(yarn dev-cluster:secret:hasura-admin-secret-key)",
"local:bchn:mainnet": "bitcoin-bchn -datadir=$PWD/data/bitcoin-cash-node-local",
"local:bchn:pruned": "bitcoin-bchn -datadir=$PWD/data/bitcoin-cash-node-pruned-local",
"local:bchn:testnet": "bitcoin-bchn -datadir=$PWD/data/bitcoin-cash-node-testnet-local",
"local:bchn:chipnet": "bitcoin-bchn -datadir=$PWD/data/bitcoin-cash-node-chipnet-local",
"local:postgres": "postgres -D $PWD/data/postgres-local",
"local:postgres:init": "bash -c 'initdb --username=chaingraph --auth=scram-sha-256 --pwfile=<(echo \"very_insecure_postgres_password\") --no-locale --encoding UTF-8 $PWD/data/postgres-local'",
"local:postgres:tune": "yarn local:postgres:psql -c \"ALTER SYSTEM SET shared_buffers = '2048MB'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET effective_cache_size = '6144MB'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET maintenance_work_mem = '128MB'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET checkpoint_completion_target = '0.9'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET min_wal_size = '4GB'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET max_wal_size = '16GB'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET default_statistics_target = '500'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET random_page_cost = '1.1'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET max_connections = '50'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET work_mem = '8MB'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET max_worker_processes = '8'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET max_parallel_workers_per_gather = '4'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET max_parallel_workers = '8'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET max_parallel_maintenance_workers = '4'\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET effective_io_concurrency = '200'\" || echo '\n(no need to set effective_io_concurrency on macOS, tuning complete. 👍)'",
"local:postgres:psql": "psql postgres://chaingraph:very_insecure_postgres_password@localhost:5432/postgres",
"local:postgres:dump:e2e": "pg_dump postgres://chaingraph:very_insecure_postgres_password@localhost:5432/chaingraph_e2e_test > data/dump_e2e_test.sql && echo \"\nDumped chaingraph_e2e_test DB to: data/dump_e2e_test.sql\"",
"local:postgres:enable-logs": "yarn local:postgres:psql -c \"ALTER DATABASE postgres SET log_statement = 'all';\" && echo \"\nLogging enabled for new client connections. If 'local:postgres' is running, try restarting it to reset all connections.\"",
"local:postgres:disable-logs": "yarn local:postgres:psql -c \"ALTER DATABASE postgres SET log_statement = 'ddl';\" && echo \"\nLogging disabled for new client connections. If 'local:postgres' is running, try restarting it to reset all client connections.\"",
"local:postgres:configure-pghero-step-1": "yarn local:postgres:psql -c \"ALTER SYSTEM SET shared_preload_libraries = 'pg_stat_statements';\" && yarn local:postgres:psql -c \"ALTER SYSTEM SET track_activity_query_size = 20480;\" && echo \"\nThe 'pg_stat_statements' extension will be enabled when the Postgres database is restarted. If 'local:postgres' is running, restart it; if using the built-in Postgres, try: 'yarn dev-cluster:bounce:postgres'.\"",
"local:postgres:configure-pghero-step-2": "yarn local:postgres:psql -c \"ALTER SYSTEM SET pg_stat_statements.track = 'all';\" && yarn local:postgres:psql -c \"SELECT pg_reload_conf();\" && echo \"\nThe 'pg_stat_statements' extension is now tracking all queries. PgHero should be fully functional.\"",
"local:postgres:enable-pldbgapi": "yarn local:postgres:psql -c \"ALTER SYSTEM SET shared_preload_libraries = pg_stat_statements,'\\$libdir/plugin_debugger';\" && echo \"\nThe 'pg_stat_statements' and 'plugin_debugger' extensions will be enabled when the Postgres database is restarted. If 'local:postgres' is running, restart it; if using the built-in Postgres, try: 'yarn dev-cluster:bounce:postgres'.\"",
"image:build:agent": "docker build -f images/agent/Dockerfile . -t chaingraph/agent:dev-build",
"image:build:bchn": "cd images/bitcoin-cash-node && docker build -t chaingraph/bitcoin-cash-node:dev-build .",
"image:build:hasura": "cd images/hasura && docker build -t chaingraph/hasura:dev-build .",
"image:build:postgres-pldebugger": "cd images/postgres-pldebugger && docker build -t chaingraph/postgres-pldebugger .",
"image:test:agent": "docker run --rm --name chaingraph-agent -v \"$PWD/data/agent:/data\" chaingraph/agent:dev-build",
"image:test:agent:sh": "docker run --rm --name chaingraph-agent -v \"$PWD/data/agent:/data\" -it --entrypoint=/bin/sh chaingraph/agent:dev-build",
"image:test:bchn": "docker run --rm --name bitcoin-cash-node -v \"$PWD/data/bitcoin-cash-node:/data\" chaingraph/bitcoin-cash-node:dev-build",
"image:inspect:agent": "docker save chaingraph/agent:dev-build > data/agent.tar",
"image:inspect:bchn": "docker save chaingraph/bitcoin-cash-node:dev-build > data/bitcoin-cash-node.tar",
"build": "tsc",
"gen:schema-md": "graphql-markdown http://localhost:8080/v1/graphql > docs/generated-schema.md",
"gen:schemaspy": "docker run --rm -it -v \"$(pwd)/output\":/output --network host schemaspy/schemaspy:latest -t pgsql -db postgres -host host.docker.internal --port 5432 -s public -u chaingraph -p very_insecure_postgres_password -hq -imageformat svg",
"log": "yarn log:base -c -l -t",
"log:base": "tail -f data/chaingraph/log.ndjson | pino-pretty",
"log:debug": "yarn log --minimumLevel debug",
"log:e2e": "yarn log:e2e:trace --minimumLevel debug",
"log:e2e:trace": "tail -f data/chaingraph/log-e2e.ndjson | pino-pretty -c -l -t 'UTC:yyyy-mm-dd HH:MM:ss.l Z' -i hostname",
"log:info": "yarn log --minimumLevel info",
"log:warn": "yarn log --minimumLevel warn",
"log:prod-sim:trace": "tail -f data/agent/log.ndjson | pino-pretty -c -l -t 'UTC:yyyy-mm-dd HH:MM:ss.l Z' -i hostname",
"log:prod-sim:debug": "tail -f data/agent/log.ndjson | pino-pretty -c -l -t 'UTC:yyyy-mm-dd HH:MM:ss.l Z' -i hostname --minimumLevel debug",
"fix": "run-s fix:*",
"fix:prettier": "prettier \"src/**/*.ts\" --write",
"fix:lint": "eslint src --ext .ts --fix",
"test": "run-s build test:lint test:prettier test:spelling test:ava",
"test:lint": "eslint src --ext .ts",
"test:prettier": "prettier \"src/**/*.ts\" --list-different",
"test:spelling": "cspell \"{README.md,.github/*.md,src/**/*.ts}\"",
"test:ava": "nyc --silent ava --timeout=30s",
"test:e2e": "nyc --silent ava --match='*[e2e]*' --timeout=30s",
"test:unit": "nyc --silent ava --match='!*[e2e]*'",
"start": "yarn build && node bin/chaingraph.js",
"profile": "clinic doctor -- node bin/chaingraph.js",
"profile:flame": "clinic flame -- node bin/chaingraph.js",
"profile:bubble": "clinic bubbleprof -- node bin/chaingraph.js",
"watch": "yarn build -w",
"watch:test:unit": "nyc --silent ava --watch --match='!*[e2e]*'",
"cov": "run-s build test cov:html cov:lcov && open-cli coverage/index.html",
"cov:html": "nyc report --reporter=html",
"cov:lcov": "nyc report --reporter=lcov",
"cov:check": "nyc report && nyc check-coverage --lines 100 --functions 100 --branches 100",
"version": "standard-version",
"preinstall": "node -e \"if(process.env.npm_execpath.indexOf('yarn') === -1) throw new Error('chaingraph must be installed with Yarn: https://yarnpkg.com/')\"",
"postinstall": "touch .env"
},
"engines": {
"node": ">=10"
},
"dependencies": {
"@bitauth/libauth": "^2.0.0-alpha.8",
"@chaingraph/bitcore-p2p-cash": "^9.0.4",
"dotenv": "^16.0.3",
"lru-cache": "^7.14.1",
"pg": "^8.8.0",
"pino": "^8.8.0"
},
"devDependencies": {
"@ava/typescript": "^3.0.1",
"@istanbuljs/nyc-config-typescript": "^1.0.2",
"@types/dotenv": "^8.2.0",
"@types/lru-cache": "^7.10.10",
"@types/pg": "^8.6.6",
"@typescript-eslint/eslint-plugin": "^5.48.1",
"@typescript-eslint/parser": "^5.48.1",
"ava": "^5.1.0",
"clinic": "^12.0.0",
"cspell": "^6.18.1",
"cz-conventional-changelog": "^3.3.0",
"eslint": "^8.31.0",
"eslint-config-bitauth": "^3.1.2",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-functional": "^4.4.1",
"eslint-plugin-import": "^2.27.4",
"eslint-plugin-tsdoc": "^0.2.17",
"execa": "^6.1.0",
"got": "^12.5.3",
"npm-run-all": "^4.1.5",
"nyc": "^15.1.0",
"open-cli": "^7.1.0",
"pino-pretty": "^9.1.1",
"prando": "^6.0.1",
"prettier": "^2.8.2",
"standard-version": "^9.5.0",
"strict-event-emitter-types": "^2.0.0",
"typescript": "^4.9.4"
},
"ava": {
"timeout": "20s",
"files": [
"!charts",
"!data",
"!images"
],
"ignoredByWatcher": [
"charts",
"data",
"images"
]
},
"config": {
"commitizen": {
"path": "cz-conventional-changelog"
}
},
"prettier": {
"singleQuote": true
},
"nyc": {
"extends": "@istanbuljs/nyc-config-typescript",
"exclude": [
"**/*.spec.*"
]
},
"private": true,
"packageManager": "[email protected]"
}