mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
Merge branch 'master' into dependabot/npm_and_yarn/babel/core-7.23.7
This commit is contained in:
commit
71f6503f2c
2
.github/workflows/check-documentation.yml
vendored
2
.github/workflows/check-documentation.yml
vendored
@ -29,7 +29,7 @@ jobs:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@master
|
||||
- name: Remove old documentation files
|
||||
run: rm -rf ./deployment/src/old/ # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done
|
||||
run: rm -rf ./deployment/src/old/ ./CHANGELOG.md # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done
|
||||
- name: Check Markdown Links
|
||||
uses: gaurav-nelson/github-action-markdown-link-check@master
|
||||
with:
|
||||
|
||||
8
.github/workflows/test-backend.yml
vendored
8
.github/workflows/test-backend.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
||||
|
||||
- name: Cache docker images
|
||||
id: cache-neo4j
|
||||
uses: actions/cache/save@v3.3.2
|
||||
uses: actions/cache/save@v3.3.3
|
||||
with:
|
||||
path: /tmp/neo4j.tar
|
||||
key: ${{ github.run_id }}-backend-neo4j-cache
|
||||
@ -58,7 +58,7 @@ jobs:
|
||||
|
||||
- name: Cache docker images
|
||||
id: cache-backend
|
||||
uses: actions/cache/save@v3.3.2
|
||||
uses: actions/cache/save@v3.3.3
|
||||
with:
|
||||
path: /tmp/backend.tar
|
||||
key: ${{ github.run_id }}-backend-cache
|
||||
@ -87,14 +87,14 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Restore Neo4J cache
|
||||
uses: actions/cache/restore@v3.3.2
|
||||
uses: actions/cache/restore@v3.3.3
|
||||
with:
|
||||
path: /tmp/neo4j.tar
|
||||
key: ${{ github.run_id }}-backend-neo4j-cache
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- name: Restore Backend cache
|
||||
uses: actions/cache/restore@v3.3.2
|
||||
uses: actions/cache/restore@v3.3.3
|
||||
with:
|
||||
path: /tmp/backend.tar
|
||||
key: ${{ github.run_id }}-backend-cache
|
||||
|
||||
4
.github/workflows/test-e2e.yml
vendored
4
.github/workflows/test-e2e.yml
vendored
@ -36,7 +36,7 @@ jobs:
|
||||
|
||||
- name: Cache docker images
|
||||
id: cache
|
||||
uses: actions/cache/save@v3.3.2
|
||||
uses: actions/cache/save@v3.3.3
|
||||
with:
|
||||
path: |
|
||||
/opt/cucumber-json-formatter
|
||||
@ -58,7 +58,7 @@ jobs:
|
||||
job: [1, 2, 3, 4, 5, 6, 7, 8]
|
||||
steps:
|
||||
- name: Restore cache
|
||||
uses: actions/cache/restore@v3.3.2
|
||||
uses: actions/cache/restore@v3.3.3
|
||||
id: cache
|
||||
with:
|
||||
path: |
|
||||
|
||||
4
.github/workflows/test-webapp.yml
vendored
4
.github/workflows/test-webapp.yml
vendored
@ -50,7 +50,7 @@ jobs:
|
||||
docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar
|
||||
|
||||
- name: Cache docker image
|
||||
uses: actions/cache/save@v3.3.2
|
||||
uses: actions/cache/save@v3.3.3
|
||||
with:
|
||||
path: /tmp/webapp.tar
|
||||
key: ${{ github.run_id }}-webapp-cache
|
||||
@ -79,7 +79,7 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Restore webapp cache
|
||||
uses: actions/cache/restore@v3.3.2
|
||||
uses: actions/cache/restore@v3.3.3
|
||||
with:
|
||||
path: /tmp/webapp.tar
|
||||
key: ${{ github.run_id }}-webapp-cache
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,6 +8,7 @@ yarn-error.log*
|
||||
.yarn-integrity
|
||||
.eslintcache
|
||||
kubeconfig.yaml
|
||||
backup-cron-job.log
|
||||
|
||||
node_modules/
|
||||
cypress/videos
|
||||
|
||||
@ -97,11 +97,11 @@
|
||||
"@faker-js/faker": "7.6.0",
|
||||
"@types/jest": "^27.0.2",
|
||||
"@types/node": "^20.2.5",
|
||||
"@typescript-eslint/eslint-plugin": "^5.57.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
||||
"@typescript-eslint/parser": "^5.57.1",
|
||||
"apollo-server-testing": "~2.11.0",
|
||||
"eslint": "^8.37.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-config-standard": "^17.0.0",
|
||||
"eslint-import-resolver-typescript": "^3.6.1",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
@ -115,7 +115,7 @@
|
||||
"prettier": "^2.8.7",
|
||||
"rosie": "^2.0.1",
|
||||
"ts-jest": "^27.0.5",
|
||||
"ts-node": "^10.9.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"typescript": "^4.9.4"
|
||||
},
|
||||
"resolutions": {
|
||||
|
||||
@ -2478,17 +2478,17 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d"
|
||||
integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^5.57.1":
|
||||
version "5.60.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.0.tgz#2f4bea6a3718bed2ba52905358d0f45cd3620d31"
|
||||
integrity sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==
|
||||
"@typescript-eslint/eslint-plugin@^5.62.0":
|
||||
version "5.62.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db"
|
||||
integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==
|
||||
dependencies:
|
||||
"@eslint-community/regexpp" "^4.4.0"
|
||||
"@typescript-eslint/scope-manager" "5.60.0"
|
||||
"@typescript-eslint/type-utils" "5.60.0"
|
||||
"@typescript-eslint/utils" "5.60.0"
|
||||
"@typescript-eslint/scope-manager" "5.62.0"
|
||||
"@typescript-eslint/type-utils" "5.62.0"
|
||||
"@typescript-eslint/utils" "5.62.0"
|
||||
debug "^4.3.4"
|
||||
grapheme-splitter "^1.0.4"
|
||||
graphemer "^1.4.0"
|
||||
ignore "^5.2.0"
|
||||
natural-compare-lite "^1.4.0"
|
||||
semver "^7.3.7"
|
||||
@ -2512,13 +2512,21 @@
|
||||
"@typescript-eslint/types" "5.60.0"
|
||||
"@typescript-eslint/visitor-keys" "5.60.0"
|
||||
|
||||
"@typescript-eslint/type-utils@5.60.0":
|
||||
version "5.60.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.60.0.tgz#69b09087eb12d7513d5b07747e7d47f5533aa228"
|
||||
integrity sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==
|
||||
"@typescript-eslint/scope-manager@5.62.0":
|
||||
version "5.62.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
|
||||
integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "5.60.0"
|
||||
"@typescript-eslint/utils" "5.60.0"
|
||||
"@typescript-eslint/types" "5.62.0"
|
||||
"@typescript-eslint/visitor-keys" "5.62.0"
|
||||
|
||||
"@typescript-eslint/type-utils@5.62.0":
|
||||
version "5.62.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a"
|
||||
integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "5.62.0"
|
||||
"@typescript-eslint/utils" "5.62.0"
|
||||
debug "^4.3.4"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
@ -2527,6 +2535,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.60.0.tgz#3179962b28b4790de70e2344465ec97582ce2558"
|
||||
integrity sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==
|
||||
|
||||
"@typescript-eslint/types@5.62.0":
|
||||
version "5.62.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
|
||||
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.60.0":
|
||||
version "5.60.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz#4ddf1a81d32a850de66642d9b3ad1e3254fb1600"
|
||||
@ -2540,17 +2553,30 @@
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/utils@5.60.0", "@typescript-eslint/utils@^5.10.0":
|
||||
version "5.60.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.60.0.tgz#4667c5aece82f9d4f24a667602f0f300864b554c"
|
||||
integrity sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==
|
||||
"@typescript-eslint/typescript-estree@5.62.0":
|
||||
version "5.62.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
|
||||
integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.62.0"
|
||||
"@typescript-eslint/visitor-keys" "5.62.0"
|
||||
debug "^4.3.4"
|
||||
globby "^11.1.0"
|
||||
is-glob "^4.0.3"
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.10.0":
|
||||
version "5.62.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
|
||||
integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.2.0"
|
||||
"@types/json-schema" "^7.0.9"
|
||||
"@types/semver" "^7.3.12"
|
||||
"@typescript-eslint/scope-manager" "5.60.0"
|
||||
"@typescript-eslint/types" "5.60.0"
|
||||
"@typescript-eslint/typescript-estree" "5.60.0"
|
||||
"@typescript-eslint/scope-manager" "5.62.0"
|
||||
"@typescript-eslint/types" "5.62.0"
|
||||
"@typescript-eslint/typescript-estree" "5.62.0"
|
||||
eslint-scope "^5.1.1"
|
||||
semver "^7.3.7"
|
||||
|
||||
@ -2562,6 +2588,14 @@
|
||||
"@typescript-eslint/types" "5.60.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.62.0":
|
||||
version "5.62.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
|
||||
integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.62.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@wry/context@^0.4.0":
|
||||
version "0.4.4"
|
||||
resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.4.4.tgz#e50f5fa1d6cfaabf2977d1fda5ae91717f8815f8"
|
||||
@ -2623,16 +2657,11 @@ acorn@^7.1.1:
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
|
||||
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
||||
|
||||
acorn@^8.2.4, acorn@^8.8.0:
|
||||
acorn@^8.2.4, acorn@^8.4.1, acorn@^8.8.0:
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59"
|
||||
integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==
|
||||
|
||||
acorn@^8.4.1:
|
||||
version "8.8.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
|
||||
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
|
||||
|
||||
agent-base@5:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
|
||||
@ -4923,10 +4952,10 @@ escodegen@^2.0.0:
|
||||
optionalDependencies:
|
||||
source-map "~0.6.1"
|
||||
|
||||
eslint-config-prettier@^9.0.0:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f"
|
||||
integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==
|
||||
eslint-config-prettier@^9.1.0:
|
||||
version "9.1.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f"
|
||||
integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
|
||||
|
||||
eslint-config-standard@^17.0.0:
|
||||
version "17.1.0"
|
||||
@ -5951,11 +5980,6 @@ graceful-fs@^4.2.6:
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
|
||||
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
|
||||
|
||||
grapheme-splitter@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
|
||||
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
|
||||
|
||||
graphemer@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
|
||||
@ -6405,12 +6429,7 @@ ignore-walk@^3.0.1:
|
||||
dependencies:
|
||||
minimatch "^3.0.4"
|
||||
|
||||
ignore@^5.1.1, ignore@^5.1.4:
|
||||
version "5.1.4"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
|
||||
integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
|
||||
|
||||
ignore@^5.2.0:
|
||||
ignore@^5.1.1, ignore@^5.1.4, ignore@^5.2.0:
|
||||
version "5.2.4"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
|
||||
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
|
||||
@ -10763,10 +10782,10 @@ ts-jest@^27.0.5:
|
||||
semver "7.x"
|
||||
yargs-parser "20.x"
|
||||
|
||||
ts-node@^10.9.1:
|
||||
version "10.9.1"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
|
||||
integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
|
||||
ts-node@^10.9.2:
|
||||
version "10.9.2"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
|
||||
integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
|
||||
dependencies:
|
||||
"@cspotcode/source-map-support" "^0.8.0"
|
||||
"@tsconfig/node10" "^1.0.7"
|
||||
|
||||
@ -1 +1,7 @@
|
||||
CONFIGURATION=example
|
||||
# branding folder used for "docker compose up" run in deployment folder
|
||||
CONFIGURATION=stage.ocelot.social
|
||||
|
||||
# used in "scripts/clusters.backup-multiple-servers.sh"
|
||||
BACKUP_CONFIGURATIONS="stage.ocelot.social stage.wir.social"
|
||||
# if '<= 0' no backups will be deleted
|
||||
BACKUP_SAVED_BACKUPS_NUMBER=7
|
||||
@ -1 +1 @@
|
||||
Subproject commit a930f11d8f2d0c11136ff0bf9188aaab9cabc5d1
|
||||
Subproject commit fdc2e52fa444b300e1c4736600bc0e9ae3314222
|
||||
@ -22,15 +22,15 @@ After the first deployment of the new network on your server, the database is in
|
||||
|
||||
***ATTENTION:*** When you are logged in for the first time, please change your (the admin's) e-mail to an existing one and change your password to a secure one !!!
|
||||
|
||||
## Use the Scripts
|
||||
## Using the Scripts
|
||||
|
||||
To use all the scripts you have to set the variable `CONFIGURATION` in your terminal by entering:
|
||||
To use most of the scripts you have to set the variable `CONFIGURATION` in your terminal by entering:
|
||||
|
||||
```bash
|
||||
# in deployment folder
|
||||
|
||||
# set configuration name to folder name in 'configurations' folder (network name)
|
||||
$ export CONFIGURATION=`<your-configuration-name>`
|
||||
$ export CONFIGURATION=<your-configuration-name>
|
||||
# to check this
|
||||
$ echo $CONFIGURATION
|
||||
```
|
||||
@ -64,9 +64,13 @@ $ scripts/cluster.maintenance.sh on
|
||||
$ scripts/cluster.maintenance.sh off
|
||||
```
|
||||
|
||||
### Backup Script
|
||||
### Backup Scripts
|
||||
|
||||
To save a locale backup of the database and uploaded images:
|
||||
Save backups.
|
||||
|
||||
#### Single Backup
|
||||
|
||||
To save a local backup of the database and uploaded images:
|
||||
|
||||
```bash
|
||||
# in deployment folder
|
||||
@ -76,3 +80,58 @@ $ scripts/cluster.backup.sh
|
||||
```
|
||||
|
||||
The backup will be saved into your network folders `backup` folder in a new folder with the date and time.
|
||||
|
||||
#### Multiple Networks Backup
|
||||
|
||||
In order to save several network backups locally, you must define the configuration names of all networks in `.env`. The template for this is `deployment/.env.dist`:
|
||||
|
||||
```bash
|
||||
# in the deployment folders '.env' set as example
|
||||
BACKUP_CONFIGURATIONS="stage.ocelot.social stage.wir.social"
|
||||
BACKUP_SAVED_BACKUPS_NUMBER=7
|
||||
```
|
||||
|
||||
If `BACKUP_SAVED_BACKUPS_NUMBER <= 0` then no backups will be deleted.
|
||||
|
||||
To actually save all the backups run:
|
||||
|
||||
```bash
|
||||
# in deployment folder
|
||||
|
||||
# save all backups listed in 'BACKUP_CONFIGURATIONS'
|
||||
# delete all backups older then the 'BACKUP_SAVED_BACKUPS_NUMBER' newest ones
|
||||
$ scripts/clusters.backup-multiple-servers.sh
|
||||
```
|
||||
|
||||
The backups will be saved into your networks folders `backup` folder in a new folder with the date and time.
|
||||
|
||||
#### Automated Backups
|
||||
|
||||
⚠️ *Attention: Please check carefully whether really the oldest backups have been deleted. As shells on different systems behave differently with regard to the commands used in this script.*
|
||||
|
||||
Install automated backups by a [cron job](https://en.wikipedia.org/wiki/Cron).
|
||||
Be aware of having the bash shell installed to run the script.
|
||||
The environment variables for the automated backups are described above.
|
||||
|
||||
Installing a cron job by editing the cron table file:
|
||||
|
||||
```bash
|
||||
# edit cron job table
|
||||
$ crontab -e
|
||||
```
|
||||
|
||||
In the editor add the line:
|
||||
|
||||
```bash
|
||||
# in cron job table file
|
||||
|
||||
# set a cron job every night at 04am server time
|
||||
# min hour day month weekday command
|
||||
00 04 * * * /root/Ocelot-Social/deployment/scripts/clusters.backup-multiple-servers.sh >> /root/Ocelot-Social/deployment/backup-cron-job.log
|
||||
```
|
||||
|
||||
This way the terminal output is written into a log file named `backup-cron-job.log` located in the deployment folder.
|
||||
|
||||
Be aware that the server datetime can differ from your local time.
|
||||
Especially by the change between summer and winter time, because servers usually have UTC.
|
||||
Find out the actual difference by running the command `date` on your server.
|
||||
|
||||
@ -168,6 +168,9 @@ services:
|
||||
# Uncomment following line for Neo4j Enterprise version instead of Community version
|
||||
# TODO: clarify if that is the only thing needed to unlock the Enterprise version
|
||||
# - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
|
||||
# set the name of the database to be used
|
||||
# - NEO4J_dbms_default__database=graph.db
|
||||
# - NEO4J_dbms_default__database=neo4j
|
||||
# TODO: Remove the playground from production
|
||||
# bring the database in offline mode to export or load dumps
|
||||
# command: ["tail", "-f", "/dev/null"]
|
||||
|
||||
@ -1,34 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
# time stamp
|
||||
printf "Backup started at:\n "
|
||||
date
|
||||
|
||||
# base setup
|
||||
SCRIPT_PATH=$(realpath $0)
|
||||
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
|
||||
|
||||
# check CONFIGURATION
|
||||
if [ -z ${CONFIGURATION} ]; then
|
||||
echo "You must provide a `CONFIGURATION` via environment variable"
|
||||
if [[ -z "$CONFIGURATION" ]]; then
|
||||
echo "!!! You must provide a CONFIGURATION via environment variable !!!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf " Cluster: %s\n" $CONFIGURATION
|
||||
|
||||
# configuration
|
||||
KUBECONFIG=${KUBECONFIG:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubeconfig.yaml}
|
||||
BACKUP_DATE=$(date "+%F_%H-%M-%S")
|
||||
BACKUP_FOLDER=${BACKUP_FOLDER:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/backup/${BACKUP_DATE}}
|
||||
|
||||
# create backup fodler
|
||||
printf "Backup folder name: %s\n" $BACKUP_DATE
|
||||
# create backup folder
|
||||
mkdir -p ${BACKUP_FOLDER}
|
||||
|
||||
# cluster maintenance mode on && Neo4j maintenance mode on
|
||||
${SCRIPT_DIR}/cluster.neo4j.sh maintenance on
|
||||
|
||||
# database backup
|
||||
echo "Dumping database ..."
|
||||
kubectl --kubeconfig=${KUBECONFIG} -n default exec -it \
|
||||
$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') \
|
||||
-- neo4j-admin dump --database=graph.db --to=/var/lib/neo4j/$BACKUP_DATE-neo4j-dump
|
||||
-- neo4j-admin dump --to=/var/lib/neo4j/$BACKUP_DATE-neo4j-dump
|
||||
# copy neo4j backup to local drive
|
||||
echo "Copying database to local file system ..."
|
||||
kubectl --kubeconfig=${KUBECONFIG} cp \
|
||||
default/$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-neo4j |awk '{ print $1 }'):/var/lib/neo4j/$BACKUP_DATE-neo4j-dump $BACKUP_FOLDER/neo4j-dump
|
||||
# copy image data
|
||||
echo "Copying public uploads to local file system ..."
|
||||
kubectl --kubeconfig=${KUBECONFIG} cp \
|
||||
default/$(kubectl --kubeconfig=${KUBECONFIG} -n default get pods | grep ocelot-backend |awk '{ print $1 }'):/app/public/uploads $BACKUP_FOLDER/public-uploads
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ SCRIPT_PATH=$(realpath $0)
|
||||
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
|
||||
|
||||
# check CONFIGURATION
|
||||
if [ -z ${CONFIGURATION} ]; then
|
||||
if [[ -z "$CONFIGURATION" ]]; then
|
||||
echo "You must provide a `CONFIGURATION` via environment variable"
|
||||
exit 1
|
||||
fi
|
||||
@ -16,9 +16,11 @@ KUBECONFIG=${KUBECONFIG:-${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubeco
|
||||
|
||||
case $1 in
|
||||
on)
|
||||
echo "Network maintenance: on"
|
||||
kubectl --kubeconfig=${KUBECONFIG} patch ingress ingress-ocelot-webapp --type merge --patch-file ${SCRIPT_DIR}/../src/kubernetes/patches/patch.ingress.maintenance.on.yaml
|
||||
;;
|
||||
off)
|
||||
echo "Network maintenance: off"
|
||||
kubectl --kubeconfig=${KUBECONFIG} patch ingress ingress-ocelot-webapp --type merge --patch-file ${SCRIPT_DIR}/../src/kubernetes/patches/patch.ingress.maintenance.off.yaml
|
||||
;;
|
||||
*)
|
||||
|
||||
@ -5,7 +5,7 @@ SCRIPT_PATH=$(realpath $0)
|
||||
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
|
||||
|
||||
# check CONFIGURATION
|
||||
if [ -z ${CONFIGURATION} ]; then
|
||||
if [[ -z "$CONFIGURATION" ]]; then
|
||||
echo "You must provide a `CONFIGURATION` via environment variable"
|
||||
exit 1
|
||||
fi
|
||||
@ -21,20 +21,24 @@ case $1 in
|
||||
${SCRIPT_DIR}/cluster.maintenance.sh on
|
||||
|
||||
# set Neo4j in offline mode (maintenance)
|
||||
echo "Neo4j maintenance: on"
|
||||
kubectl --kubeconfig=${KUBECONFIG} get deployment ocelot-neo4j -o json \
|
||||
| jq '.spec.template.spec.containers[] += {"command": ["tail", "-f", "/dev/null"]}' \
|
||||
| kubectl --kubeconfig=${KUBECONFIG} apply -f -
|
||||
|
||||
# wait for the container to restart
|
||||
echo "Wait 60s ..."
|
||||
sleep 60
|
||||
;;
|
||||
off)
|
||||
# set Neo4j in online mode
|
||||
echo "Neo4j maintenance: off"
|
||||
kubectl --kubeconfig=${KUBECONFIG} get deployment ocelot-neo4j -o json \
|
||||
| jq 'del(.spec.template.spec.containers[].command)' \
|
||||
| kubectl --kubeconfig=${KUBECONFIG} apply -f -
|
||||
|
||||
# wait for the container to restart
|
||||
echo "Wait 60s ..."
|
||||
sleep 60
|
||||
|
||||
# maintenance mode off
|
||||
|
||||
91
deployment/scripts/clusters.backup-multiple-servers.sh
Executable file
91
deployment/scripts/clusters.backup-multiple-servers.sh
Executable file
@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
# time stamp
|
||||
printf "\n\nMultiple backups started at:\n "
|
||||
date
|
||||
|
||||
# base setup
|
||||
SCRIPT_PATH=$(realpath $0)
|
||||
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
|
||||
|
||||
# save old CONFIGURATION for later reset
|
||||
export SAVE_CONFIGURATION=$CONFIGURATION
|
||||
|
||||
# export all variables in "../.env"
|
||||
set -a
|
||||
source ${SCRIPT_DIR}/../.env
|
||||
set +a
|
||||
|
||||
# check BACKUP_CONFIGURATIONS
|
||||
if [[ -z "$BACKUP_CONFIGURATIONS" ]]; then
|
||||
#%! echo "You must provide a BACKUP_CONFIGURATIONS via environment variable"
|
||||
printf "!!! You must provide a BACKUP_CONFIGURATIONS via environment variable !!!\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# check BACKUP_SAVED_BACKUPS_NUMBER
|
||||
if [[ -z ${BACKUP_SAVED_BACKUPS_NUMBER} ]]; then
|
||||
#%! echo "You must provide a BACKUP_SAVED_BACKUPS_NUMBER via environment variable"
|
||||
printf "!!! You must provide a BACKUP_SAVED_BACKUPS_NUMBER via environment variable !!!\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# convert configurations to array
|
||||
IFS=' ' read -a CONFIGURATIONS_ARRAY <<< "$BACKUP_CONFIGURATIONS"
|
||||
|
||||
# display the clusters
|
||||
printf "Backup the clusters:\n"
|
||||
for i in "${CONFIGURATIONS_ARRAY[@]}"
|
||||
do
|
||||
echo " $i"
|
||||
done
|
||||
|
||||
# deleting backups?
|
||||
if (( BACKUP_SAVED_BACKUPS_NUMBER >= 1 )); then
|
||||
printf "Keep the last %d backups for all networks.\n" $BACKUP_SAVED_BACKUPS_NUMBER
|
||||
else
|
||||
echo "!!! ATTENTION: No backups are deleted !!!"
|
||||
fi
|
||||
|
||||
echo "Cancel by ^C. You have 15 seconds"
|
||||
# wait for the admin to react
|
||||
sleep 15
|
||||
|
||||
printf "\n"
|
||||
|
||||
for i in "${CONFIGURATIONS_ARRAY[@]}"
|
||||
do
|
||||
export CONFIGURATION=$i
|
||||
# individual cluster backup
|
||||
${SCRIPT_DIR}/cluster.backup.sh
|
||||
|
||||
# deleting backups?
|
||||
if (( BACKUP_SAVED_BACKUPS_NUMBER >= 1 )); then
|
||||
# delete all oldest backups, but leave the last BACKUP_SAVED_BACKUPS_NUMBER
|
||||
|
||||
keep=$BACKUP_SAVED_BACKUPS_NUMBER
|
||||
path="$SCRIPT_DIR/../configurations/$CONFIGURATION/backup/"
|
||||
|
||||
cd $path
|
||||
|
||||
printf "In\n '$path'\n remove:\n"
|
||||
while [ `ls -1 | wc -l` -gt $keep ]; do
|
||||
oldest=`ls -c1 | sort -n | head -1`
|
||||
printf " %s\n" $oldest
|
||||
rm -rf $oldest
|
||||
done
|
||||
|
||||
printf "Keep the last %d backups:\n" $BACKUP_SAVED_BACKUPS_NUMBER
|
||||
ls -c1 | sort -n | awk '{print " " $0}'
|
||||
|
||||
cd $SCRIPT_DIR
|
||||
else
|
||||
echo "!!! ATTENTION: No backups are deleted !!!"
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
done
|
||||
|
||||
# reset CONFIGURATION to old
|
||||
export CONFIGURATION=$SAVE_CONFIGURATION
|
||||
echo "Reset to CONFIGURATION=$CONFIGURATION"
|
||||
@ -137,7 +137,7 @@ $ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-neo4j
|
||||
# bash: enter bash of Neo4j
|
||||
$ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') -- bash
|
||||
# generate Dump
|
||||
neo4j% neo4j-admin dump --database=graph.db --to=/var/lib/neo4j/$(date +%F)-neo4j-dump
|
||||
neo4j% neo4j-admin dump --to=/var/lib/neo4j/$(date +%F)-neo4j-dump
|
||||
# exit bash
|
||||
neo4j% exit
|
||||
|
||||
@ -145,6 +145,9 @@ neo4j% exit
|
||||
$ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-neo4j | awk '{ print $1 }') -- ls
|
||||
```
|
||||
|
||||
If you need a specific database name, add the option `--database=<name>` to the command `neo4j-admin dump`.
|
||||
To find out the default database name, see the [Neo4j readme](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/neo4j/README.md).
|
||||
|
||||
Lets copy the dump backup
|
||||
|
||||
```bash
|
||||
|
||||
@ -20,4 +20,5 @@ data:
|
||||
NEO4J_dbms_security_procedures_unrestricted: "{{ .Values.NEO4J.DBMS_SECURITY_PROCEDURES_UNRESTRICTED }}"
|
||||
NEO4J_dbms_allow__format__migration: "true"
|
||||
NEO4J_dbms_allow__upgrade: "true"
|
||||
NEO4J_apoc_import_file_enabled: "{{ .Values.NEO4J.APOC_IMPORT_FILE_ENABLED }}"
|
||||
NEO4J_dbms_default__database: "{{ .Values.NEO4J.DBMS_DEFAULT_DATABASE }}"
|
||||
NEO4J_apoc_import_file_enabled: "{{ .Values.NEO4J.APOC_IMPORT_FILE_ENABLED }}"
|
||||
|
||||
@ -79,8 +79,8 @@ $ kubectl -n ocelot-social get pods
|
||||
$ kubectl cp ./neo4j-backup human-connection/<POD-ID>:/root/
|
||||
$ kubectl -n ocelot-social exec -it <POD-ID> bash
|
||||
# Once you're in the pod restore the backup and overwrite the default database
|
||||
# called `graph.db` with `--force`.
|
||||
# This will delete all existing data in database `graph.db`!
|
||||
# called `neo4j` with `--force`.
|
||||
# This will delete all existing data in database `neo4j`!
|
||||
> neo4j-admin load --from=/root/neo4j-backup --force
|
||||
> exit
|
||||
```
|
||||
|
||||
@ -114,9 +114,12 @@ services:
|
||||
- NEO4J_dbms_security_procedures_unrestricted=algo.*,apoc.*
|
||||
- NEO4J_dbms_allow__format__migration=true
|
||||
- NEO4J_dbms_allow__upgrade=true
|
||||
# Uncomment following line for Neo4j Enterprise version instead of Community version
|
||||
# uncomment following line for Neo4j Enterprise version instead of Community version
|
||||
# TODO: clarify if that is the only thing needed to unlock the Enterprise version
|
||||
# - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
|
||||
# set the name of the database to be used
|
||||
# - NEO4J_dbms_default__database=graph.db
|
||||
# - NEO4J_dbms_default__database=neo4j
|
||||
# TODO: Remove the playground from production
|
||||
# bring the database in offline mode to export or load dumps
|
||||
# command: ["tail", "-f", "/dev/null"]
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# Neo4J
|
||||
# Neo4j 4.4
|
||||
|
||||
Human Connection is a social network. Using a graph based database which can
|
||||
model nodes and edges natively - a network - feels like an obvious choice. We
|
||||
@ -16,8 +16,7 @@ docker-compose up
|
||||
```
|
||||
|
||||
You can access Neo4J through [http://localhost:7474/](http://localhost:7474/)
|
||||
for an interactive cypher shell and a visualization of the graph.
|
||||
|
||||
for an interactive Cypher shell and a visualization of the graph.
|
||||
|
||||
## Installation Without Docker
|
||||
|
||||
@ -51,7 +50,7 @@ in `backend/.env`.
|
||||
|
||||
Start Neo4J and confirm the database is running at [http://localhost:7474](http://localhost:7474).
|
||||
|
||||
## Operations on Neo4j
|
||||
## Operations on Neo4j 4.4
|
||||
|
||||
### Docker or Docker Compose
|
||||
|
||||
@ -68,13 +67,15 @@ To create a dump in Neo4j running in a Docker container:
|
||||
# connect to the Docker containers Neo4j terminal
|
||||
$ docker exec -it neo4j bash
|
||||
# generate Dump
|
||||
neo4j% neo4j-admin dump --database=graph.db --to=/var/lib/neo4j/$(date +%F)-neo4j-dump
|
||||
neo4j% neo4j-admin dump --to=/var/lib/neo4j/$(date +%F)-neo4j-dump
|
||||
# exit bash
|
||||
neo4j% exit
|
||||
# copy the dump out of the running Docker container
|
||||
$ docker cp <docker-image-name('neo4j')>:/var/lib/neo4j/neo4j-dump <local-folder-path>/$(date +%F)-neo4j-dump
|
||||
```
|
||||
|
||||
If you need a specific database name, add the option `--database=<name>` to the command `neo4j-admin dump`.
|
||||
|
||||
### Import Neo4j Dump
|
||||
|
||||
To import a dump into Neo4j running in a Docker container:
|
||||
@ -88,11 +89,14 @@ $ docker cp <local-folder-path>/neo4j-dump <docker-image-name('neo4j')>:/var/lib
|
||||
# connect to the Docker containers Neo4j terminal
|
||||
$ docker exec -it neo4j bash
|
||||
# to load the dump into the database we need the following command in this terminal
|
||||
neo4j% neo4j-admin load --database=neo4j --from /var/lib/neo4j/$(date +%F)-neo4j-dump --force
|
||||
neo4j% neo4j-admin load --from /var/lib/neo4j/$(date +%F)-neo4j-dump --force
|
||||
# leave the terminal by entering
|
||||
neo4j% exit
|
||||
```
|
||||
|
||||
If you need a specific database name, add the option `--database=<name>` to the command `neo4j-admin load`.
|
||||
To find out the default database name, see below.
|
||||
|
||||
## Commands
|
||||
|
||||
Here we describe some rarely used Cypher commands for Neo4j that are needed from time to time:
|
||||
@ -143,7 +147,7 @@ $ kubectl -n default exec -it $(kubectl -n default get pods | grep ocelot-backen
|
||||
***Cypher commands to show indexes and constraints***
|
||||
|
||||
```bash
|
||||
# in browser command line or cypher shell
|
||||
# in browser command line or Cypher shell
|
||||
|
||||
# show all indexes and constraints
|
||||
$ :schema
|
||||
@ -158,7 +162,7 @@ $ CALL db.constraints();
|
||||
***Cypher commands to create and drop indexes and constraints***
|
||||
|
||||
```bash
|
||||
# in browser command line or cypher shell
|
||||
# in browser command line or Cypher shell
|
||||
|
||||
# create indexes
|
||||
$ CALL db.index.fulltext.createNodeIndex("post_fulltext_search",["Post"],["title", "content"]);
|
||||
@ -171,3 +175,21 @@ $ DROP CONSTRAINT ON ( image:Image ) ASSERT image.url IS UNIQUE
|
||||
# drop all indexes and constraints
|
||||
$ CALL apoc.schema.assert({},{},true) YIELD label, key RETURN * ;
|
||||
```
|
||||
|
||||
### Database Management Commands
|
||||
|
||||
***Cypher commands to manage databases***
|
||||
|
||||
```bash
|
||||
# in browser command line or Cypher shell
|
||||
|
||||
# show the default database
|
||||
$ SHOW DEFAULT DATABASE
|
||||
# show all databases
|
||||
$ SHOW DATABASES
|
||||
```
|
||||
|
||||
To set the default database by configuration, use `NEO4J_dbms_default__database` as an environment variable when starting Neo4j 4.4, see [Docker specific configuration settings](<https://neo4j.com/docs/operations-manual/4.4/docker/ref-settings/>).
|
||||
|
||||
If a database with this name does not exist, an empty database with this name is created and all other databases remain.
|
||||
You can switch back to an existing database without damaging it.
|
||||
|
||||
2311
package-lock.json
generated
2311
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -62,7 +62,7 @@
|
||||
"optionalDependencies": {
|
||||
"vuepress": "^2.0.0-rc.0",
|
||||
"vuepress-plugin-search-pro": "^2.0.0-rc.6",
|
||||
"vuepress-theme-hope": "^2.0.0-rc.6"
|
||||
"vuepress-theme-hope": "^2.0.0-rc.11"
|
||||
},
|
||||
"resolutions": {
|
||||
"set-value": "^2.0.1",
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
"graphql": "~14.7.0",
|
||||
"intersection-observer": "^0.12.0",
|
||||
"jsonwebtoken": "~9.0.0",
|
||||
"linkify-it": "~3.0.2",
|
||||
"linkify-it": "~5.0.0",
|
||||
"mapbox-gl": "1.13.2",
|
||||
"node-fetch": "^2.6.1",
|
||||
"nuxt": "~2.12.1",
|
||||
|
||||
@ -12886,12 +12886,12 @@ lines-and-columns@^1.1.6:
|
||||
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
|
||||
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
|
||||
|
||||
linkify-it@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8"
|
||||
integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==
|
||||
linkify-it@~5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421"
|
||||
integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==
|
||||
dependencies:
|
||||
uc.micro "^1.0.1"
|
||||
uc.micro "^2.0.0"
|
||||
|
||||
linkifyjs@2.1.9:
|
||||
version "2.1.9"
|
||||
@ -18638,10 +18638,10 @@ ua-parser-js@^0.7.21:
|
||||
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777"
|
||||
integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==
|
||||
|
||||
uc.micro@^1.0.1:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
|
||||
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
|
||||
uc.micro@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.0.0.tgz#84b3c335c12b1497fd9e80fcd3bfa7634c363ff1"
|
||||
integrity sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig==
|
||||
|
||||
ufo@^0.7.9:
|
||||
version "0.7.11"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user