mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-23 04:52:58 +00:00
Use Commonlib for self-hosted setup tools
This commit is contained in:
Generated
+844
-14
@@ -1,25 +1,855 @@
|
||||
{
|
||||
"version": "4",
|
||||
"version": "5",
|
||||
"specifiers": {
|
||||
"npm:octagonal-wheels@0.1.11": "0.1.11"
|
||||
"npm:@vrtmrz/livesync-commonlib@0.1.0-rc.4": "0.1.0-rc.4"
|
||||
},
|
||||
"npm": {
|
||||
"idb@8.0.0": {
|
||||
"integrity": "sha512-l//qvlAKGmQO31Qn7xdzagVPPaHTxXx199MhrAFuVBTPqydcPYBWjkrbv4Y0ktB+GmWOiwHl237UUOrLmQxLvw=="
|
||||
},
|
||||
"octagonal-wheels@0.1.11": {
|
||||
"integrity": "sha512-KsXfpziFHmlLEBe5VAXFz9OyyjJEEdSg7xxASqdzmbe5oo9dhcOeWGrQfyipRJwHAhlFkI4vEf8JCSgkcyRxYg==",
|
||||
"@aws-sdk/checksums@3.1000.18": {
|
||||
"integrity": "sha512-IImkbEyXdV6/uaF5r6Wkk+8718mQw1ll83j0a4a30R3JM/rHVFdWAiT4jtJpFjJiIwM/oJ6SxIxr0z2TaQUGqw==",
|
||||
"dependencies": [
|
||||
"idb",
|
||||
"xxhash-wasm@0.4.2",
|
||||
"xxhash-wasm-102@npm:xxhash-wasm@1.0.2"
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"xxhash-wasm@0.4.2": {
|
||||
"integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA=="
|
||||
"@aws-sdk/client-s3@3.1090.0": {
|
||||
"integrity": "sha512-R6GX9cd1jljwzZ8xFmgAI/hHCuX1MobIKBdsymv7WL9SENvO9Vgz9KOR6avTnu0Ao+w1LmxnTe+jqmZXEn7Q/Q==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/checksums",
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/credential-provider-node",
|
||||
"@aws-sdk/middleware-sdk-s3",
|
||||
"@aws-sdk/signature-v4-multi-region",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/fetch-http-handler",
|
||||
"@smithy/node-http-handler",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"xxhash-wasm@1.0.2": {
|
||||
"integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A=="
|
||||
"@aws-sdk/core@3.975.3": {
|
||||
"integrity": "sha512-7ur3kCKuvPLqlsZ2XlvnNBVQ7KkpSu6Y6dOTwSPHLrFpTEfZM8isLBJc4cgv96WB7GifeVM436mpycwxBd2vEA==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/types",
|
||||
"@aws-sdk/xml-builder",
|
||||
"@aws/lambda-invoke-store",
|
||||
"@smithy/core",
|
||||
"@smithy/signature-v4",
|
||||
"@smithy/types",
|
||||
"bowser",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/credential-provider-env@3.972.59": {
|
||||
"integrity": "sha512-Ny5e4Mfh3QPmiAc0AiUe+cbTXDlxkU3Rc+EpWOfyWeWEy6yp7Fa1KmfNeCc+1a8by9zQ9gtohmiQUkMPScF3ng==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/credential-provider-http@3.972.61": {
|
||||
"integrity": "sha512-8jAjgStl5Ytq4+HF3X/9f+EmRinaRbGRRtQGktlPfBRVx73H+R1y48vIeXerQtYGFaUqkEp3fT6jP854rVO2yQ==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/fetch-http-handler",
|
||||
"@smithy/node-http-handler",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/credential-provider-ini@3.973.4": {
|
||||
"integrity": "sha512-e6ZvVsj90aRALf1kHP+J4iqC1496ZpVgqI/+u0LJ5HL7q7ATauGy4gdDvRCP13L1pN/fMiZLah162PGIYkbUVQ==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/credential-provider-env",
|
||||
"@aws-sdk/credential-provider-http",
|
||||
"@aws-sdk/credential-provider-login",
|
||||
"@aws-sdk/credential-provider-process",
|
||||
"@aws-sdk/credential-provider-sso",
|
||||
"@aws-sdk/credential-provider-web-identity",
|
||||
"@aws-sdk/nested-clients",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/credential-provider-imds",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/credential-provider-login@3.972.66": {
|
||||
"integrity": "sha512-g2fsqm87r/nKthLZ0VkkDBElkGg0PvSa8d97HQ6EilMbJTZ6hxa8FxkSZyJfgPfFdZn0TTmkOffQmTSUcAHIng==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/nested-clients",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/credential-provider-node@3.972.70": {
|
||||
"integrity": "sha512-3xzvkGdykBunxqh8WudmUpSyLWvIhfI6aBQo1b5rb3mDO5mNLadK+0hiI0qBQBMVynJbfLO+Ajy9dztMwy9O8w==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/credential-provider-env",
|
||||
"@aws-sdk/credential-provider-http",
|
||||
"@aws-sdk/credential-provider-ini",
|
||||
"@aws-sdk/credential-provider-process",
|
||||
"@aws-sdk/credential-provider-sso",
|
||||
"@aws-sdk/credential-provider-web-identity",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/credential-provider-imds",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/credential-provider-process@3.972.59": {
|
||||
"integrity": "sha512-DlZF2/MhLlatDdlrIy3CUCpfdbLrKx+3SMjVo+WyHnPpwzkc/M3vwAHw4OVJf7DMvO+4vfRqSCMc/E9I1auN0g==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/credential-provider-sso@3.973.3": {
|
||||
"integrity": "sha512-hmdDHoy2G5Es2e8IgelNMYUuSQI6uCIAKZMJ2u2PdKDhxvbk1uWD/g4+R7R5c/tJfKEB1+KjjWiaoCr/S+ZTiQ==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/nested-clients",
|
||||
"@aws-sdk/token-providers",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/credential-provider-web-identity@3.972.65": {
|
||||
"integrity": "sha512-gHQb/Kt0chjk/JQDa/GJDqmAvEuVn8n7z10wK2h0LFM9TUDRkohgOO4aEF+s2sBLM0br7Cl5W6P7phgjrrJvLQ==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/nested-clients",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/middleware-sdk-s3@3.972.64": {
|
||||
"integrity": "sha512-RBi43anhDBUv+HCfxCOXwGOE7GmT4n7ChV04Mwr22RhXTNcamW/iWnJlOotDPCZSrJ4dEvhZSiWWQMwLX+ZhFA==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/signature-v4-multi-region",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/nested-clients@3.997.33": {
|
||||
"integrity": "sha512-dVZOroI/r3/ENvqNGgjMPul+jjlz9GddfVusgTXlVjfZj5isibOxecLkGQbRPp8XOuX+RAfjXLFgPkD1JS5xrw==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/signature-v4-multi-region",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/fetch-http-handler",
|
||||
"@smithy/node-http-handler",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/signature-v4-multi-region@3.996.41": {
|
||||
"integrity": "sha512-QMUytg+FQMGouc8gHS00KoYih3+N6cqmVI/pQGOIo7Nr7OpQaiXjSYOuL+vsPZ1tymY4LAQ8MYcHJmws5LRxng==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/types",
|
||||
"@smithy/signature-v4",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/token-providers@3.1088.0": {
|
||||
"integrity": "sha512-4ObatWt2qpJg5FBk4LOOKrTQYzaqeewAtdO3r9ZO8lH9YqLtpTzLyIdy0mJ+nVdfYOnqISkKNfmzP22bNDhwyw==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/nested-clients",
|
||||
"@aws-sdk/types",
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/types@3.974.2": {
|
||||
"integrity": "sha512-3W6IUtSxFbH6X7Wb7DzGCV5QiFQsd0g8bOfntpmDxQlzBoKWUMBu/JPQR0DwkE+Hpnxd6db1tXbOwdeHddG6cA==",
|
||||
"dependencies": [
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws-sdk/xml-builder@3.972.36": {
|
||||
"integrity": "sha512-RdGmS1GLrtaTOLE1ElSluMldNrpk9Emq6uYs8SS8iHlu5xTAmM9rRkM91o48+rIRryBtyO9t+uLYCoMG6jVMVA==",
|
||||
"dependencies": [
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@aws/lambda-invoke-store@0.3.0": {
|
||||
"integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ=="
|
||||
},
|
||||
"@noble/secp256k1@3.1.0": {
|
||||
"integrity": "sha512-+F7iS7tUMaNGXcc9X3PjmjvuQnXEuSjCRNzVVA2xAcKXgCaP0dHYz4SFyt4FKNHef7sOP//xihowcySSS7PK9g=="
|
||||
},
|
||||
"@smithy/core@3.29.5": {
|
||||
"integrity": "sha512-i0dk2t5B+CwV/dcJdUHILYkOQF5lof8f44dFCfDWToGCxjT9YQ+CgHqTAvJxzc3+zqQwm2QtVoJ5IqiNar/CnQ==",
|
||||
"dependencies": [
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@smithy/credential-provider-imds@4.4.10": {
|
||||
"integrity": "sha512-MJenAe4OKRZUo1LdYYFDCsSHxaHvInIU/z52GsheO9vl1/VSySVCr0zkyKD6TFiGkSUaWGxvKZ/70OvgUZR5HQ==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@smithy/fetch-http-handler@5.6.7": {
|
||||
"integrity": "sha512-3zpg8yqqyXzoK2TsRDdkqVOj2RDBFfLXwCczOZ5c7TWB4eiaebfSCsbMjDPYB3PJ9ihV62QaeadZ+wLadZtNGA==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@smithy/md5-js@4.4.10": {
|
||||
"integrity": "sha512-XI5xhWxRkWuiLNj0/Z30vLTPpZe9UQcg57Ox/n4vzGmFiHSrD+xAmx6ubEcWt6u69IOH+4LAucpaZk5AMxB8oQ==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@smithy/middleware-apply-body-checksum@4.5.10": {
|
||||
"integrity": "sha512-1qFwlILFq+QnI1oqZIBpLda1W6oCkI667GPTyAn0eRan72ddQ/zA1CoKiIezTHLQKxINpPvDKVwsw/znLmKEbg==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@smithy/node-http-handler@4.9.7": {
|
||||
"integrity": "sha512-wCU8HCLjAtAVqxxe0j2xff9LcEPw3yjBbg5IdQDIYFnxnPxbxcSLc7rgex7kqm9L/WYOnJEgaWQlfDkZleozMA==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@smithy/signature-v4@5.6.6": {
|
||||
"integrity": "sha512-efP6DN3UTFrzIsGO42/xcabv8jU7+9nwEdphFUH7yL0k010ERyAWaO41KFQIDLcFZLZ8xzIQr4wplFxNzslSGQ==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/types",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@smithy/types@4.16.1": {
|
||||
"integrity": "sha512-0JFs3V2y2M9tKW5na/qxe69Zv+uxLMO7QBbhxF/FHu/Gp2NFZAAL9tWl9PU02xxo07pb3G9FTyjNc6D5uZrJIg==",
|
||||
"dependencies": [
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@smithy/util-retry@4.5.10": {
|
||||
"integrity": "sha512-hYu5ieq8myuO29xCQV0IIhicRm1aO0lcNBeMcF1mVVAVQC0oylPGKFliMq5NbxtdOvRxJWCMuir2gwKI91f1lw==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"tslib"
|
||||
]
|
||||
},
|
||||
"@trystero-p2p/core@0.25.3": {
|
||||
"integrity": "sha512-lQKNq/ha+vF6kQZrpaXJGzlzxLF/Fhizoy5dwJUYQlkqRrbPup/Jov2EpPX/CPr2X+f79HxVzonkeni3MxmCuQ=="
|
||||
},
|
||||
"@trystero-p2p/nostr@0.25.3": {
|
||||
"integrity": "sha512-nZV9Fl/GXuhIkJSQ+wIkdMoRLO1oSTUL/+vZorukaojeAdOpT/61e8b9Vzbt8L1ktMTaGPEJHw2BG/B5BCwBuw==",
|
||||
"dependencies": [
|
||||
"@noble/secp256k1",
|
||||
"@trystero-p2p/core"
|
||||
]
|
||||
},
|
||||
"@vrtmrz/livesync-commonlib@0.1.0-rc.4": {
|
||||
"integrity": "sha512-u4FdbjnYg7lAf38z7eUv4eq4vxEdrl4rFMxiDZiJ7T701awKiflkXGIJQnaHdLaMa3zkRBU15qqEo7GtextmlA==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/client-s3",
|
||||
"@smithy/fetch-http-handler",
|
||||
"@smithy/md5-js",
|
||||
"@smithy/middleware-apply-body-checksum",
|
||||
"@smithy/types",
|
||||
"@smithy/util-retry",
|
||||
"@trystero-p2p/nostr",
|
||||
"diff-match-patch",
|
||||
"events",
|
||||
"fflate",
|
||||
"idb",
|
||||
"markdown-it",
|
||||
"minimatch",
|
||||
"octagonal-wheels",
|
||||
"pouchdb-adapter-http",
|
||||
"pouchdb-adapter-idb",
|
||||
"pouchdb-adapter-indexeddb",
|
||||
"pouchdb-adapter-memory",
|
||||
"pouchdb-core",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-find",
|
||||
"pouchdb-mapreduce",
|
||||
"pouchdb-merge",
|
||||
"pouchdb-replication",
|
||||
"pouchdb-utils",
|
||||
"qrcode-generator",
|
||||
"transform-pouch",
|
||||
"xxhash-wasm-102@npm:xxhash-wasm@1.1.0"
|
||||
]
|
||||
},
|
||||
"abstract-leveldown@2.7.2": {
|
||||
"integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
|
||||
"dependencies": [
|
||||
"xtend"
|
||||
],
|
||||
"deprecated": true
|
||||
},
|
||||
"abstract-leveldown@6.2.3": {
|
||||
"integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==",
|
||||
"dependencies": [
|
||||
"buffer",
|
||||
"immediate",
|
||||
"level-concat-iterator",
|
||||
"level-supports",
|
||||
"xtend"
|
||||
],
|
||||
"deprecated": true
|
||||
},
|
||||
"argparse@2.0.1": {
|
||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
|
||||
},
|
||||
"balanced-match@4.0.4": {
|
||||
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="
|
||||
},
|
||||
"base64-js@1.5.1": {
|
||||
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
||||
},
|
||||
"bowser@2.14.1": {
|
||||
"integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg=="
|
||||
},
|
||||
"brace-expansion@5.0.7": {
|
||||
"integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==",
|
||||
"dependencies": [
|
||||
"balanced-match"
|
||||
]
|
||||
},
|
||||
"buffer@5.7.1": {
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||
"dependencies": [
|
||||
"base64-js",
|
||||
"ieee754"
|
||||
]
|
||||
},
|
||||
"core-util-is@1.0.3": {
|
||||
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
|
||||
},
|
||||
"deferred-leveldown@5.3.0": {
|
||||
"integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==",
|
||||
"dependencies": [
|
||||
"abstract-leveldown@6.2.3",
|
||||
"inherits"
|
||||
],
|
||||
"deprecated": true
|
||||
},
|
||||
"diff-match-patch@1.0.5": {
|
||||
"integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw=="
|
||||
},
|
||||
"double-ended-queue@2.1.0-0": {
|
||||
"integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ=="
|
||||
},
|
||||
"entities@4.5.0": {
|
||||
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
|
||||
},
|
||||
"errno@0.1.8": {
|
||||
"integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
|
||||
"dependencies": [
|
||||
"prr"
|
||||
],
|
||||
"bin": true
|
||||
},
|
||||
"events@3.3.0": {
|
||||
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
|
||||
},
|
||||
"fetch-cookie@2.2.0": {
|
||||
"integrity": "sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ==",
|
||||
"dependencies": [
|
||||
"set-cookie-parser",
|
||||
"tough-cookie"
|
||||
]
|
||||
},
|
||||
"fflate@0.8.3": {
|
||||
"integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA=="
|
||||
},
|
||||
"functional-red-black-tree@1.0.1": {
|
||||
"integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
|
||||
},
|
||||
"idb@8.0.3": {
|
||||
"integrity": "sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg=="
|
||||
},
|
||||
"ieee754@1.2.1": {
|
||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
|
||||
},
|
||||
"immediate@3.3.0": {
|
||||
"integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q=="
|
||||
},
|
||||
"inherits@2.0.4": {
|
||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||
},
|
||||
"isarray@0.0.1": {
|
||||
"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
|
||||
},
|
||||
"level-codec@9.0.2": {
|
||||
"integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==",
|
||||
"dependencies": [
|
||||
"buffer"
|
||||
],
|
||||
"deprecated": true
|
||||
},
|
||||
"level-concat-iterator@2.0.1": {
|
||||
"integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==",
|
||||
"deprecated": true
|
||||
},
|
||||
"level-errors@2.0.1": {
|
||||
"integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==",
|
||||
"dependencies": [
|
||||
"errno"
|
||||
],
|
||||
"deprecated": true
|
||||
},
|
||||
"level-iterator-stream@4.0.2": {
|
||||
"integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==",
|
||||
"dependencies": [
|
||||
"inherits",
|
||||
"readable-stream@3.6.2",
|
||||
"xtend"
|
||||
]
|
||||
},
|
||||
"level-supports@1.0.1": {
|
||||
"integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==",
|
||||
"dependencies": [
|
||||
"xtend"
|
||||
]
|
||||
},
|
||||
"levelup@4.4.0": {
|
||||
"integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==",
|
||||
"dependencies": [
|
||||
"deferred-leveldown",
|
||||
"level-errors",
|
||||
"level-iterator-stream",
|
||||
"level-supports",
|
||||
"xtend"
|
||||
],
|
||||
"deprecated": true
|
||||
},
|
||||
"linkify-it@5.0.2": {
|
||||
"integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==",
|
||||
"dependencies": [
|
||||
"uc.micro"
|
||||
]
|
||||
},
|
||||
"ltgt@2.2.1": {
|
||||
"integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA=="
|
||||
},
|
||||
"markdown-it@14.3.0": {
|
||||
"integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==",
|
||||
"dependencies": [
|
||||
"argparse",
|
||||
"entities",
|
||||
"linkify-it",
|
||||
"mdurl",
|
||||
"punycode.js",
|
||||
"uc.micro"
|
||||
],
|
||||
"bin": true
|
||||
},
|
||||
"mdurl@2.0.0": {
|
||||
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="
|
||||
},
|
||||
"memdown@1.4.1": {
|
||||
"integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==",
|
||||
"dependencies": [
|
||||
"abstract-leveldown@2.7.2",
|
||||
"functional-red-black-tree",
|
||||
"immediate",
|
||||
"inherits",
|
||||
"ltgt",
|
||||
"safe-buffer@5.1.2"
|
||||
],
|
||||
"deprecated": true
|
||||
},
|
||||
"minimatch@10.2.5": {
|
||||
"integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
|
||||
"dependencies": [
|
||||
"brace-expansion"
|
||||
]
|
||||
},
|
||||
"node-fetch@2.6.9": {
|
||||
"integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==",
|
||||
"dependencies": [
|
||||
"whatwg-url"
|
||||
]
|
||||
},
|
||||
"octagonal-wheels@0.1.51": {
|
||||
"integrity": "sha512-KTlfqKPjobHJg/t3A539srnFf+VHr1aXkHSmsNDDpiI5UFC7FamZ95dWpJfGE2EI/HULR5hveQDgkazmz8SAcg==",
|
||||
"dependencies": [
|
||||
"idb"
|
||||
]
|
||||
},
|
||||
"pouchdb-abstract-mapreduce@9.0.0": {
|
||||
"integrity": "sha512-SnTtqwAEiAa3uxKbc1J7LfiBViwEkKe2xkK92zxyTXPqWBvMnh4UU3GXxx7GrXTM4L9llsQ3lSjpbH4CNqG1Mw==",
|
||||
"dependencies": [
|
||||
"pouchdb-binary-utils",
|
||||
"pouchdb-collate",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-fetch",
|
||||
"pouchdb-mapreduce-utils",
|
||||
"pouchdb-md5",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-adapter-http@9.0.0": {
|
||||
"integrity": "sha512-2eL008XeRZkdyp3hMHHOhdIPqK9H6Mn4SLlQvit4zCbqnOFfAswzPjUmHULGMbDUCrQBTu6y82FnV6NHXv9kgw==",
|
||||
"dependencies": [
|
||||
"pouchdb-binary-utils",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-fetch",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-adapter-idb@9.0.0": {
|
||||
"integrity": "sha512-2oLlgwMyOQwdKuzrEmOv8T7jFVgX7JgT4Cr81zX3eiiRClp7xXGgjv41ZRdVCAbM530sIN8BudafaQRVFKRVmA==",
|
||||
"dependencies": [
|
||||
"pouchdb-adapter-utils",
|
||||
"pouchdb-binary-utils",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-json",
|
||||
"pouchdb-merge",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-adapter-indexeddb@9.0.0": {
|
||||
"integrity": "sha512-/mcCbnVR0VKwtVZWKf8lVSdADLD0yApjFudu4d+0jeLWAeBSGZBRKYlogz2PGs4uTA7GVc2TXjVCNGUdkCM9ZQ==",
|
||||
"dependencies": [
|
||||
"pouchdb-adapter-utils",
|
||||
"pouchdb-binary-utils",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-md5",
|
||||
"pouchdb-merge",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-adapter-leveldb-core@9.0.0": {
|
||||
"integrity": "sha512-b3ZGPtVXyivGL5SK3AIDG7PrNsZdoDpGFkmTytDTtctkVhxOg71gnXXP+CrupENPqSNG/eGbKW4w+bbMpxy6aA==",
|
||||
"dependencies": [
|
||||
"double-ended-queue",
|
||||
"levelup",
|
||||
"pouchdb-adapter-utils",
|
||||
"pouchdb-binary-utils",
|
||||
"pouchdb-core",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-json",
|
||||
"pouchdb-md5",
|
||||
"pouchdb-merge",
|
||||
"pouchdb-utils",
|
||||
"sublevel-pouchdb",
|
||||
"through2"
|
||||
]
|
||||
},
|
||||
"pouchdb-adapter-memory@9.0.0": {
|
||||
"integrity": "sha512-XbCwJ5f5U9dGdkiDikzYjTebdPHuA6Ghylx1Pq0lDe4y6l8R9xhjDSUy56pJ8G2F4Z+8QdB5FBY9EQoFlFSXWQ==",
|
||||
"dependencies": [
|
||||
"memdown",
|
||||
"pouchdb-adapter-leveldb-core"
|
||||
]
|
||||
},
|
||||
"pouchdb-adapter-utils@9.0.0": {
|
||||
"integrity": "sha512-hmbm4ey0HL0vtoY1tRTPIt2FfYjvMh3DWoGGSxXDTS73qTFQ+Fhhi5I0AnN9PcD2omfKQAVXiYks4kkMvlAHqA==",
|
||||
"dependencies": [
|
||||
"pouchdb-binary-utils",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-md5",
|
||||
"pouchdb-merge",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-binary-utils@9.0.0": {
|
||||
"integrity": "sha512-2OMtgDZi82vqs+zNDE0YiYjOaWkYCUcZJZKK3WkRr+XYRu+2B7umJrnygJFhUwoGedBbHSrlQBLhdNV3F1AX1A=="
|
||||
},
|
||||
"pouchdb-changes-filter@9.0.0": {
|
||||
"integrity": "sha512-ig0fo0WLgIjAniFJ19Uw1Y+oxiypqC+Skhd8BCETRVXOhLBzueRwEQR4thffyo0UayYVqldJfSR5wHSDvEVk/A==",
|
||||
"dependencies": [
|
||||
"pouchdb-errors",
|
||||
"pouchdb-selector-core",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-checkpointer@9.0.0": {
|
||||
"integrity": "sha512-yu1OlWw78oTHKOkg1GoxxF2qB7YUsjK3rUDJOChMs/sVlZwOTZ4mGdWFPBr3udxSGvR77E+g89kpdmAWhPpHvA==",
|
||||
"dependencies": [
|
||||
"pouchdb-collate",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-collate@9.0.0": {
|
||||
"integrity": "sha512-TrnEDNZEmIIl+W3xKUO8h+geqVLQ90oZe5ujPkl8myUzpREULWXWQBnV5EzPXVEKDBpJlb8T3I6oy/zdWGQpdA=="
|
||||
},
|
||||
"pouchdb-core@9.0.0": {
|
||||
"integrity": "sha512-98SJgs8bqXhr4gMGuOTR8yVeLlMYy797zlOtdlvlXIxIicvocyA8ColhVVhdBXPNOGxT2HwReIMywdIVAgibpg==",
|
||||
"dependencies": [
|
||||
"pouchdb-changes-filter",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-fetch",
|
||||
"pouchdb-merge",
|
||||
"pouchdb-utils",
|
||||
"uuid"
|
||||
]
|
||||
},
|
||||
"pouchdb-errors@9.0.0": {
|
||||
"integrity": "sha512-961PSMLhW0UqqdJ566g+CdLZ5pkBJRd6l4WWpCDdD0USvE4xYfYGzv43w7nZZBw1k3Xdy092yqPge7yX/tfnyw=="
|
||||
},
|
||||
"pouchdb-fetch@9.0.0": {
|
||||
"integrity": "sha512-TbE3cUcAJQrwb9kr44tDP0X+NAbcqgjsTvcL30L4xzBNJeCPTIRjukYX80s154SHJUXBxcWRiPsMmNqpXsjfCA==",
|
||||
"dependencies": [
|
||||
"fetch-cookie",
|
||||
"node-fetch"
|
||||
]
|
||||
},
|
||||
"pouchdb-find@9.0.0": {
|
||||
"integrity": "sha512-vvVhq4eEOmSkwSRwf2NBYtdhURB7ryJ7sUI4WDN00GuLUj2g8jAXBJuZIryVgdYt/5S5cfn70iRL6Eow+LFhpA==",
|
||||
"dependencies": [
|
||||
"pouchdb-abstract-mapreduce",
|
||||
"pouchdb-collate",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-fetch",
|
||||
"pouchdb-md5",
|
||||
"pouchdb-selector-core",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-generate-replication-id@9.0.0": {
|
||||
"integrity": "sha512-wetxjU0W/qNYtfHIoKwBO73ddUr0/eqzYOkoKHSFXCgOzYmTglDeqXiVY9LPysRXTgaHUJPKC5LoknZZw7e+Dw==",
|
||||
"dependencies": [
|
||||
"pouchdb-collate",
|
||||
"pouchdb-md5"
|
||||
]
|
||||
},
|
||||
"pouchdb-json@9.0.0": {
|
||||
"integrity": "sha512-aI41mYVyI195GXuT1Ys7mLIB/Mvrz11ihoTP6km6hYqVgSuaUxuZcFUozlyTJiZXr7H5kdhNgclhlVnjir4JAA==",
|
||||
"dependencies": [
|
||||
"vuvuzela"
|
||||
]
|
||||
},
|
||||
"pouchdb-mapreduce-utils@9.0.0": {
|
||||
"integrity": "sha512-Bjh8W6QXqp1j7MKmHhYYp5cYlcQsm5drD8Jd/F+ZlfNt18uiD2SQXWzGM5797+tiW/LszFGb8ttw0uHWjxufCQ==",
|
||||
"dependencies": [
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-mapreduce@9.0.0": {
|
||||
"integrity": "sha512-ZD8PleQ9atzQAzT2LZWsvooUVEfsen5QGv/SDfci20IleCaFW2A2q7OERrqY0YWKDCCNRsWhPWPmsFvZC9K8DQ==",
|
||||
"dependencies": [
|
||||
"pouchdb-abstract-mapreduce",
|
||||
"pouchdb-mapreduce-utils",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-md5@9.0.0": {
|
||||
"integrity": "sha512-58xUYBvW3/s+aH0j4uOhhN8yCk0LQ254cxBzI/gbKA9PrfwHpe4zrr0L/ia5ml3A30oH1f8aTnuVMwWDkFcuww==",
|
||||
"dependencies": [
|
||||
"pouchdb-binary-utils",
|
||||
"spark-md5"
|
||||
]
|
||||
},
|
||||
"pouchdb-merge@9.0.0": {
|
||||
"integrity": "sha512-Xh+TgOZCkGoZpI589btKf/cTiuQ5CsnPl9YpdW4h0cAPusniN6XNsR62F+/HbL9wirI6XTEPHUrk7MsQbk3S3A==",
|
||||
"dependencies": [
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-replication@9.0.0": {
|
||||
"integrity": "sha512-EZ68KJ3ZUWuPe35NxP6WnRw8J6Zudf0j/tZ/6mOSrCcp3EbtBNt8Ke2FaAThUgiFahVnHD5Y8nd53EGs2DLygg==",
|
||||
"dependencies": [
|
||||
"pouchdb-checkpointer",
|
||||
"pouchdb-errors",
|
||||
"pouchdb-generate-replication-id",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-selector-core@9.0.0": {
|
||||
"integrity": "sha512-ZYHYsdoedwm8j5tYofz+3+uUSK8i+7tRCBb01T0OuqDQb17+w5mzjHF8Ppi160xdPUPaWCo1Un+nLWGJzkmA3g==",
|
||||
"dependencies": [
|
||||
"pouchdb-collate",
|
||||
"pouchdb-utils"
|
||||
]
|
||||
},
|
||||
"pouchdb-utils@9.0.0": {
|
||||
"integrity": "sha512-xWZE5c+nAslgmLC8JBZbky8AYgdz7pKtv7KTSi6CD2tuQD0WyNKib0YnhZndeE84dksTeZlqlg56RQHsHoB2LQ==",
|
||||
"dependencies": [
|
||||
"pouchdb-errors",
|
||||
"pouchdb-md5",
|
||||
"uuid"
|
||||
]
|
||||
},
|
||||
"pouchdb-wrappers@5.0.0": {
|
||||
"integrity": "sha512-fXqsVn+rmlPtxaAIGaQP5TkiaT39OMwvMk+ScLLtHrmfXD2KBO6fe/qBl38N/rpTn0h/A058dPN4fLAHt550zA=="
|
||||
},
|
||||
"prr@1.0.1": {
|
||||
"integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw=="
|
||||
},
|
||||
"psl@1.15.0": {
|
||||
"integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
|
||||
"dependencies": [
|
||||
"punycode"
|
||||
]
|
||||
},
|
||||
"punycode.js@2.3.1": {
|
||||
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="
|
||||
},
|
||||
"punycode@2.3.1": {
|
||||
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
|
||||
},
|
||||
"qrcode-generator@1.5.2": {
|
||||
"integrity": "sha512-pItrW0Z9HnDBnFmgiNrY1uxRdri32Uh9EjNYLPVC2zZ3ZRIIEqBoDgm4DkvDwNNDHTK7FNkmr8zAa77BYc9xNw=="
|
||||
},
|
||||
"querystringify@2.2.0": {
|
||||
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
|
||||
},
|
||||
"readable-stream@1.1.14": {
|
||||
"integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
|
||||
"dependencies": [
|
||||
"core-util-is",
|
||||
"inherits",
|
||||
"isarray",
|
||||
"string_decoder@0.10.31"
|
||||
]
|
||||
},
|
||||
"readable-stream@3.6.2": {
|
||||
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
||||
"dependencies": [
|
||||
"inherits",
|
||||
"string_decoder@1.3.0",
|
||||
"util-deprecate"
|
||||
]
|
||||
},
|
||||
"requires-port@1.0.0": {
|
||||
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
|
||||
},
|
||||
"safe-buffer@5.1.2": {
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||
},
|
||||
"safe-buffer@5.2.1": {
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
|
||||
},
|
||||
"set-cookie-parser@2.7.2": {
|
||||
"integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw=="
|
||||
},
|
||||
"spark-md5@3.0.2": {
|
||||
"integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
|
||||
},
|
||||
"string_decoder@0.10.31": {
|
||||
"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
|
||||
},
|
||||
"string_decoder@1.3.0": {
|
||||
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
||||
"dependencies": [
|
||||
"safe-buffer@5.2.1"
|
||||
]
|
||||
},
|
||||
"sublevel-pouchdb@9.0.0": {
|
||||
"integrity": "sha512-pX4r8+F7wuts0C81kUJ341h4bl2aRe7qV572FE8X1FMz9VkKlmi2nPD1vfeiOJXz5Y09I4MHjGULAbqvTfQZEQ==",
|
||||
"dependencies": [
|
||||
"level-codec",
|
||||
"ltgt",
|
||||
"readable-stream@1.1.14"
|
||||
]
|
||||
},
|
||||
"through2@3.0.2": {
|
||||
"integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==",
|
||||
"dependencies": [
|
||||
"inherits",
|
||||
"readable-stream@3.6.2"
|
||||
]
|
||||
},
|
||||
"tough-cookie@4.1.4": {
|
||||
"integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
|
||||
"dependencies": [
|
||||
"psl",
|
||||
"punycode",
|
||||
"universalify",
|
||||
"url-parse"
|
||||
]
|
||||
},
|
||||
"tr46@0.0.3": {
|
||||
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
|
||||
},
|
||||
"transform-pouch@2.0.0": {
|
||||
"integrity": "sha512-nDZovo0U5o0UdMNL93fMQgGjrwH9h4F/a7qqRTnF6cVA+FfgyXiJPTrSuD+LmWSO7r2deZt0P0oeCD8hkgxl5g==",
|
||||
"dependencies": [
|
||||
"pouchdb-wrappers"
|
||||
]
|
||||
},
|
||||
"tslib@2.8.1": {
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
|
||||
},
|
||||
"uc.micro@2.1.0": {
|
||||
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
|
||||
},
|
||||
"universalify@0.2.0": {
|
||||
"integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
|
||||
},
|
||||
"url-parse@1.5.10": {
|
||||
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
|
||||
"dependencies": [
|
||||
"querystringify",
|
||||
"requires-port"
|
||||
]
|
||||
},
|
||||
"util-deprecate@1.0.2": {
|
||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||
},
|
||||
"uuid@8.3.2": {
|
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
||||
"deprecated": true,
|
||||
"bin": true
|
||||
},
|
||||
"vuvuzela@1.0.3": {
|
||||
"integrity": "sha512-Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ=="
|
||||
},
|
||||
"webidl-conversions@3.0.1": {
|
||||
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
|
||||
},
|
||||
"whatwg-url@5.0.0": {
|
||||
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
||||
"dependencies": [
|
||||
"tr46",
|
||||
"webidl-conversions"
|
||||
]
|
||||
},
|
||||
"xtend@4.0.2": {
|
||||
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
|
||||
},
|
||||
"xxhash-wasm@1.1.0": {
|
||||
"integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
#!/bin/bash
|
||||
## Script for deploy and automatic setup CouchDB onto fly.io.
|
||||
## We need Deno for generating the Setup-URI.
|
||||
## Deno is used for Commonlib-backed provisioning and Setup URI generation.
|
||||
|
||||
source setenv.sh $@
|
||||
set -euo pipefail
|
||||
|
||||
if ! command -v deno >/dev/null 2>&1; then
|
||||
echo "ERROR: Deno 2 is required for CouchDB provisioning and Setup URI generation." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source setenv.sh "$@"
|
||||
|
||||
export hostname="https://$appname.fly.dev"
|
||||
|
||||
@@ -14,30 +21,16 @@ echo "region : $region"
|
||||
echo ""
|
||||
echo "-- START DEPLOYING --> "
|
||||
|
||||
set -e
|
||||
fly launch --name=$appname --env="COUCHDB_USER=$username" --copy-config=true --detach --no-deploy --region ${region} --yes
|
||||
fly secrets set COUCHDB_PASSWORD=$password
|
||||
fly deploy
|
||||
|
||||
set +e
|
||||
../couchdb/couchdb-init.sh
|
||||
# flyctl deploy
|
||||
echo "OK!"
|
||||
|
||||
if command -v deno >/dev/null 2>&1; then
|
||||
echo "Setup finished! Also, we can set up Self-hosted LiveSync instantly, by the following setup uri."
|
||||
echo "Passphrase of setup-uri will be printed only one time. Keep it safe!"
|
||||
echo "--- configured ---"
|
||||
echo "database : ${database}"
|
||||
echo "E2EE passphrase: ${passphrase}"
|
||||
echo "--- setup uri ---"
|
||||
deno run -A generate_setupuri.ts
|
||||
else
|
||||
echo "Setup finished! Here is the configured values (reprise)!"
|
||||
echo "-- YOUR CONFIGURATION --"
|
||||
echo "URL : $hostname"
|
||||
echo "username: $username"
|
||||
echo "password: $password"
|
||||
echo "-- YOUR CONFIGURATION --"
|
||||
echo "If we had Deno, we would got the setup uri directly!"
|
||||
fi
|
||||
echo "Setup finished. The Commonlib-generated Setup URI follows."
|
||||
echo "Its passphrase is printed only once, so store it safely."
|
||||
echo "--- configured ---"
|
||||
echo "database: ${database}"
|
||||
echo "--- setup URI ---"
|
||||
deno run --minimum-dependency-age=0 --allow-env generate_setupuri.ts
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
import { decodeSettingsFromSetupURI } from "npm:@vrtmrz/livesync-commonlib@0.1.0-rc.4/compat/API/processSetting";
|
||||
import { DEFAULT_SETTINGS } from "npm:@vrtmrz/livesync-commonlib@0.1.0-rc.4/settings";
|
||||
|
||||
function assert(condition: unknown, message: string): asserts condition {
|
||||
if (!condition) throw new Error(message);
|
||||
}
|
||||
|
||||
Deno.test("generates a current self-hosted Setup URI through the published Commonlib contract", async () => {
|
||||
const scriptPath = new URL("./generate_setupuri.ts", import.meta.url);
|
||||
const command = new Deno.Command(Deno.execPath(), {
|
||||
args: ["run", "-A", scriptPath.pathname],
|
||||
env: {
|
||||
hostname: "https://couch.example.test",
|
||||
username: "alice",
|
||||
password: "couch-secret",
|
||||
database: "notes",
|
||||
passphrase: "vault-secret",
|
||||
uri_passphrase: "setup-secret",
|
||||
},
|
||||
stdout: "piped",
|
||||
stderr: "piped",
|
||||
});
|
||||
|
||||
const result = await command.output();
|
||||
const stdout = new TextDecoder().decode(result.stdout);
|
||||
const stderr = new TextDecoder().decode(result.stderr);
|
||||
assert(result.success, `generator failed:\n${stdout}\n${stderr}`);
|
||||
|
||||
const setupURI = stdout.match(/obsidian:\/\/setuplivesync\?settings=\S+/)
|
||||
?.[0];
|
||||
assert(setupURI, `generator did not print a Setup URI:\n${stdout}`);
|
||||
|
||||
const decoded = await decodeSettingsFromSetupURI(setupURI, "setup-secret");
|
||||
assert(decoded, "Commonlib could not decode the generated Setup URI");
|
||||
const effectiveSettings = { ...DEFAULT_SETTINGS, ...decoded };
|
||||
assert(
|
||||
effectiveSettings.customChunkSize === 60,
|
||||
"the Setup URI did not use the current self-hosted chunk-size recommendation",
|
||||
);
|
||||
assert(
|
||||
effectiveSettings.chunkSplitterVersion === "v3-rabin-karp",
|
||||
"the Setup URI did not use the current chunk splitter",
|
||||
);
|
||||
assert(
|
||||
effectiveSettings.E2EEAlgorithm === "v2",
|
||||
"the Setup URI did not use the current E2EE algorithm",
|
||||
);
|
||||
assert(
|
||||
!Object.hasOwn(decoded, "doNotUseFixedRevisionForChunks"),
|
||||
"the Setup URI serialised the obsolete fixed-revision compatibility setting",
|
||||
);
|
||||
|
||||
const profiles = Object.values(decoded.remoteConfigurations ?? {});
|
||||
assert(
|
||||
profiles.length === 1,
|
||||
"the Setup URI did not contain exactly one CouchDB remote profile",
|
||||
);
|
||||
assert(
|
||||
decoded.activeConfigurationId === profiles[0].id,
|
||||
"the CouchDB remote profile was not selected",
|
||||
);
|
||||
assert(
|
||||
profiles[0].uri.startsWith("sls+https://"),
|
||||
"the selected remote profile was not a CouchDB connection URI",
|
||||
);
|
||||
});
|
||||
@@ -1,175 +1,52 @@
|
||||
import { encrypt } from "npm:octagonal-wheels@0.1.30/encryption/encryption";
|
||||
import { encodeSettingsToSetupURI } from "npm:@vrtmrz/livesync-commonlib@0.1.0-rc.4/compat/API/processSetting";
|
||||
import { upsertRemoteConfigurationInPlace } from "npm:@vrtmrz/livesync-commonlib@0.1.0-rc.4/remote-configurations";
|
||||
import {
|
||||
createNewVaultSettings,
|
||||
PREFERRED_SETTING_SELF_HOSTED,
|
||||
} from "npm:@vrtmrz/livesync-commonlib@0.1.0-rc.4/settings";
|
||||
|
||||
const noun = [
|
||||
"waterfall",
|
||||
"river",
|
||||
"breeze",
|
||||
"moon",
|
||||
"rain",
|
||||
"wind",
|
||||
"sea",
|
||||
"morning",
|
||||
"snow",
|
||||
"lake",
|
||||
"sunset",
|
||||
"pine",
|
||||
"shadow",
|
||||
"leaf",
|
||||
"dawn",
|
||||
"glitter",
|
||||
"forest",
|
||||
"hill",
|
||||
"cloud",
|
||||
"meadow",
|
||||
"sun",
|
||||
"glade",
|
||||
"bird",
|
||||
"brook",
|
||||
"butterfly",
|
||||
"bush",
|
||||
"dew",
|
||||
"dust",
|
||||
"field",
|
||||
"fire",
|
||||
"flower",
|
||||
"firefly",
|
||||
"feather",
|
||||
"grass",
|
||||
"haze",
|
||||
"mountain",
|
||||
"night",
|
||||
"pond",
|
||||
"darkness",
|
||||
"snowflake",
|
||||
"silence",
|
||||
"sound",
|
||||
"sky",
|
||||
"shape",
|
||||
"surf",
|
||||
"thunder",
|
||||
"violet",
|
||||
"water",
|
||||
"wildflower",
|
||||
"wave",
|
||||
"water",
|
||||
"resonance",
|
||||
"sun",
|
||||
"log",
|
||||
"dream",
|
||||
"cherry",
|
||||
"tree",
|
||||
"fog",
|
||||
"frost",
|
||||
"voice",
|
||||
"paper",
|
||||
"frog",
|
||||
"smoke",
|
||||
"star",
|
||||
];
|
||||
const adjectives = [
|
||||
"autumn",
|
||||
"hidden",
|
||||
"bitter",
|
||||
"misty",
|
||||
"silent",
|
||||
"empty",
|
||||
"dry",
|
||||
"dark",
|
||||
"summer",
|
||||
"icy",
|
||||
"delicate",
|
||||
"quiet",
|
||||
"white",
|
||||
"cool",
|
||||
"spring",
|
||||
"winter",
|
||||
"patient",
|
||||
"twilight",
|
||||
"dawn",
|
||||
"crimson",
|
||||
"wispy",
|
||||
"weathered",
|
||||
"blue",
|
||||
"billowing",
|
||||
"broken",
|
||||
"cold",
|
||||
"damp",
|
||||
"falling",
|
||||
"frosty",
|
||||
"green",
|
||||
"long",
|
||||
"late",
|
||||
"lingering",
|
||||
"bold",
|
||||
"little",
|
||||
"morning",
|
||||
"muddy",
|
||||
"old",
|
||||
"red",
|
||||
"rough",
|
||||
"still",
|
||||
"small",
|
||||
"sparkling",
|
||||
"thrumming",
|
||||
"shy",
|
||||
"wandering",
|
||||
"withered",
|
||||
"wild",
|
||||
"black",
|
||||
"young",
|
||||
"holy",
|
||||
"solitary",
|
||||
"fragrant",
|
||||
"aged",
|
||||
"snowy",
|
||||
"proud",
|
||||
"floral",
|
||||
"restless",
|
||||
"divine",
|
||||
"polished",
|
||||
"ancient",
|
||||
"purple",
|
||||
"lively",
|
||||
"nameless",
|
||||
];
|
||||
function friendlyString() {
|
||||
return `${adjectives[Math.floor(Math.random() * adjectives.length)]}-${noun[Math.floor(Math.random() * noun.length)]}`;
|
||||
function requireEnvironment(name: string): string {
|
||||
const value = Deno.env.get(name)?.trim();
|
||||
if (!value) throw new Error(`${name} is required`);
|
||||
return value;
|
||||
}
|
||||
|
||||
const uri_passphrase = `${Deno.env.get("uri_passphrase") ?? friendlyString()}`;
|
||||
function generateSetupPassphrase(): string {
|
||||
const bytes = crypto.getRandomValues(new Uint8Array(24));
|
||||
return btoa(String.fromCharCode(...bytes)).replaceAll("+", "-").replaceAll(
|
||||
"/",
|
||||
"_",
|
||||
).replace(/=+$/, "");
|
||||
}
|
||||
|
||||
const URIBASE = "obsidian://setuplivesync?settings=";
|
||||
async function main() {
|
||||
const conf = {
|
||||
couchDB_URI: `${Deno.env.get("hostname")}`,
|
||||
couchDB_USER: `${Deno.env.get("username")}`,
|
||||
couchDB_PASSWORD: `${Deno.env.get("password")}`,
|
||||
couchDB_DBNAME: `${Deno.env.get("database")}`,
|
||||
syncOnStart: true,
|
||||
gcDelay: 0,
|
||||
periodicReplication: true,
|
||||
syncOnFileOpen: true,
|
||||
encrypt: true,
|
||||
passphrase: `${Deno.env.get("passphrase")}`,
|
||||
usePathObfuscation: true,
|
||||
batchSave: true,
|
||||
batch_size: 50,
|
||||
batches_limit: 50,
|
||||
useHistory: true,
|
||||
disableRequestURI: true,
|
||||
customChunkSize: 50,
|
||||
syncAfterMerge: false,
|
||||
concurrencyOfReadChunksOnline: 100,
|
||||
minimumIntervalOfReadChunksOnline: 100,
|
||||
handleFilenameCaseSensitive: false,
|
||||
doNotUseFixedRevisionForChunks: false,
|
||||
settingVersion: 10,
|
||||
notifyThresholdOfRemoteStorageSize: 800,
|
||||
};
|
||||
const encryptedConf = encodeURIComponent(await encrypt(JSON.stringify(conf), uri_passphrase, false));
|
||||
const theURI = `${URIBASE}${encryptedConf}`;
|
||||
console.log("\nYour passphrase of Setup-URI is: ", uri_passphrase);
|
||||
console.log("This passphrase is never shown again, so please note it in a safe place.");
|
||||
console.log(theURI);
|
||||
const setupPassphrase = Deno.env.get("uri_passphrase")?.trim() ||
|
||||
generateSetupPassphrase();
|
||||
const settings = createNewVaultSettings();
|
||||
Object.assign(settings, PREFERRED_SETTING_SELF_HOSTED, {
|
||||
couchDB_URI: requireEnvironment("hostname"),
|
||||
couchDB_USER: requireEnvironment("username"),
|
||||
couchDB_PASSWORD: requireEnvironment("password"),
|
||||
couchDB_DBNAME: requireEnvironment("database"),
|
||||
batchSave: true,
|
||||
periodicReplication: true,
|
||||
syncOnStart: true,
|
||||
syncOnFileOpen: true,
|
||||
syncAfterMerge: true,
|
||||
encrypt: true,
|
||||
passphrase: requireEnvironment("passphrase"),
|
||||
usePathObfuscation: true,
|
||||
});
|
||||
upsertRemoteConfigurationInPlace(settings, "couchdb", { activate: true });
|
||||
|
||||
const setupURI = await encodeSettingsToSetupURI(settings, setupPassphrase, [
|
||||
"pluginSyncExtendedSetting",
|
||||
"doNotUseFixedRevisionForChunks",
|
||||
], true);
|
||||
|
||||
console.log("\nYour passphrase for the Setup URI is:", setupPassphrase);
|
||||
console.log("This passphrase is never shown again, so store it safely.");
|
||||
console.log(setupURI.trim());
|
||||
}
|
||||
|
||||
await main();
|
||||
|
||||
+14
-10
@@ -1,19 +1,23 @@
|
||||
random_num() {
|
||||
echo $RANDOM
|
||||
echo "$RANDOM"
|
||||
}
|
||||
random_noun() {
|
||||
nouns=("waterfall" "river" "breeze" "moon" "rain" "wind" "sea" "morning" "snow" "lake" "sunset" "pine" "shadow" "leaf" "dawn" "glitter" "forest" "hill" "cloud" "meadow" "sun" "glade" "bird" "brook" "butterfly" "bush" "dew" "dust" "field" "fire" "flower" "firefly" "feather" "grass" "haze" "mountain" "night" "pond" "darkness" "snowflake" "silence" "sound" "sky" "shape" "surf" "thunder" "violet" "water" "wildflower" "wave" "water" "resonance" "sun" "log" "dream" "cherry" "tree" "fog" "frost" "voice" "paper" "frog" "smoke" "star")
|
||||
echo ${nouns[$(($RANDOM % ${#nouns[*]}))]}
|
||||
echo "${nouns[$((RANDOM % ${#nouns[*]}))]}"
|
||||
}
|
||||
|
||||
random_adjective() {
|
||||
adjectives=("autumn" "hidden" "bitter" "misty" "silent" "empty" "dry" "dark" "summer" "icy" "delicate" "quiet" "white" "cool" "spring" "winter" "patient" "twilight" "dawn" "crimson" "wispy" "weathered" "blue" "billowing" "broken" "cold" "damp" "falling" "frosty" "green" "long" "late" "lingering" "bold" "little" "morning" "muddy" "old" "red" "rough" "still" "small" "sparkling" "thrumming" "shy" "wandering" "withered" "wild" "black" "young" "holy" "solitary" "fragrant" "aged" "snowy" "proud" "floral" "restless" "divine" "polished" "ancient" "purple" "lively" "nameless")
|
||||
echo ${adjectives[$(($RANDOM % ${#adjectives[*]}))]}
|
||||
echo "${adjectives[$((RANDOM % ${#adjectives[*]}))]}"
|
||||
}
|
||||
|
||||
random_secret() {
|
||||
deno eval 'const bytes=crypto.getRandomValues(new Uint8Array(24));console.log(btoa(String.fromCharCode(...bytes)).replaceAll("+","-").replaceAll("/","_").replace(/=+$/, ""));'
|
||||
}
|
||||
|
||||
cp ./fly.template.toml ./fly.toml
|
||||
|
||||
if [ "$1" = "renew" ]; then
|
||||
if [ "${1:-}" = "renew" ]; then
|
||||
unset appname
|
||||
unset username
|
||||
unset password
|
||||
@@ -22,9 +26,9 @@ if [ "$1" = "renew" ]; then
|
||||
unset region
|
||||
fi
|
||||
|
||||
[ -z $appname ] && export appname=$(random_adjective)-$(random_noun)-$(random_num)
|
||||
[ -z $username ] && export username=$(random_adjective)-$(random_noun)-$(random_num)
|
||||
[ -z $password ] && export password=$(random_adjective)-$(random_noun)-$(random_num)
|
||||
[ -z $database ] && export database="obsidiannotes"
|
||||
[ -z $passphrase ] && export passphrase=$(random_adjective)-$(random_noun)-$(random_num)
|
||||
[ -z $region ] && export region="nrt"
|
||||
[ -z "${appname:-}" ] && export appname="$(random_adjective)-$(random_noun)-$(random_num)"
|
||||
[ -z "${username:-}" ] && export username="$(random_adjective)-$(random_noun)-$(random_num)"
|
||||
[ -z "${password:-}" ] && export password="$(random_secret)"
|
||||
[ -z "${database:-}" ] && export database="obsidiannotes"
|
||||
[ -z "${passphrase:-}" ] && export passphrase="$(random_secret)"
|
||||
[ -z "${region:-}" ] && export region="nrt"
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
fixture_dir="$(mktemp -d)"
|
||||
trap 'rm -rf "$fixture_dir"' EXIT
|
||||
cp "$(dirname "$0")/setenv.sh" "$(dirname "$0")/fly.template.toml" "$fixture_dir/"
|
||||
|
||||
(
|
||||
cd "$fixture_dir"
|
||||
appname=""
|
||||
username=""
|
||||
password=""
|
||||
database=""
|
||||
passphrase=""
|
||||
region=""
|
||||
source ./setenv.sh keep
|
||||
|
||||
[[ "$password" =~ ^[A-Za-z0-9_-]{32}$ ]] || {
|
||||
echo "generated CouchDB password is not a 32-character base64url secret" >&2
|
||||
exit 1
|
||||
}
|
||||
[[ "$passphrase" =~ ^[A-Za-z0-9_-]{32}$ ]] || {
|
||||
echo "generated Vault encryption passphrase is not a 32-character base64url secret" >&2
|
||||
exit 1
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user