A microsite explaining the word "Miriscient"

Swap to standard IPFS deploy

Changed files
+24 -649
.github
-101
.github/deploy/deploy.js
··· 1 - const { 2 - PINATA_API_KEY, 3 - PINATA_API_SECRET, 4 - 5 - CLOUDFLARE_TOKEN, 6 - CLOUDFLARE_DNS_ZONE_ID, 7 - CLOUDFLARE_DNS_IDENTIFIER, 8 - 9 - GITHUB_RUN_ID, 10 - } = process.env 11 - 12 - const buildURL = `https://www.github.com/jphastings/miriscient.org/actions/runs/${GITHUB_RUN_ID}` 13 - const pinataPinName = 'miriscient.org' 14 - const domain = 'www.miriscient.org' 15 - 16 - const path = require('path') 17 - const pinata = require('@pinata/sdk')(PINATA_API_KEY, PINATA_API_SECRET) 18 - const cloudflare = require('cloudflare')({ token: CLOUDFLARE_TOKEN }) 19 - 20 - build().then(pinataPin).then(cloudflareUpdate).then(pinataUnpinPrevious).catch(console.error) 21 - 22 - async function build() { 23 - return path.join(__dirname, '..', '..', 'public') 24 - } 25 - 26 - async function pinataPin(rootPath) { 27 - console.log(`Pinning new version:`) 28 - const response = await pinata.pinFromFS(rootPath, { 29 - pinataMetadata: { 30 - name: pinataPinName, 31 - keyvalues: { buildURL } 32 - }, 33 - pinataOptions: { 34 - cidVerson: 1, 35 - wrapWithDirectory: false, 36 - customPinPolicy: { 37 - regions: [ 38 - { 39 - id: 'FRA1', 40 - desiredReplicationCount: 1 41 - }, 42 - { 43 - id: 'NYC1', 44 - desiredReplicationCount: 1 45 - } 46 - ] 47 - } 48 - } 49 - }) 50 - 51 - console.log(` ✅ ${response.IpfsHash}`) 52 - 53 - return response.IpfsHash 54 - } 55 - 56 - async function cloudflareUpdate(rootHash) { 57 - const txtRecord = `dnslink=/ipfs/${rootHash}` 58 - 59 - const opts = { 60 - type: 'TXT', 61 - name: `_dnslink.${domain}`, 62 - content: `dnslink=/ipfs/${rootHash}`, 63 - ttl: 1, 64 - } 65 - 66 - 67 - const response = await cloudflare.dnsRecords.edit( 68 - CLOUDFLARE_DNS_ZONE_ID, 69 - CLOUDFLARE_DNS_IDENTIFIER, 70 - opts 71 - ) 72 - 73 - if (!response.success) { 74 - throw new Error("Failed to update Cloudflare: " + response.errors) 75 - } 76 - 77 - return rootHash 78 - } 79 - 80 - async function pinataUnpinPrevious(rootHash) { 81 - console.log("Finding old versions to unpin:") 82 - const response = await pinata.pinList({ 83 - metadata: { name: pinataPinName } 84 - }) 85 - 86 - const deletes = [] 87 - 88 - response.rows.forEach((pin) => { 89 - if (pin.ipfs_pin_hash == rootHash) { 90 - return 91 - } 92 - 93 - deletes.push( 94 - pinata.unpin(pin.ipfs_pin_hash) 95 - .then(() => console.log(` 👍 Unpinned ${pin.ipfs_pin_hash}`)) 96 - .catch(() => console.log(` 👍 Already unpinned ${pin.ipfs_pin_hash}`)) 97 - ) 98 - }) 99 - 100 - return Promise.all(deletes) 101 - }
-521
.github/deploy/package-lock.json
··· 1 - { 2 - "name": "deploy", 3 - "requires": true, 4 - "lockfileVersion": 1, 5 - "dependencies": { 6 - "@pinata/sdk": { 7 - "version": "1.1.10", 8 - "resolved": "https://registry.npmjs.org/@pinata/sdk/-/sdk-1.1.10.tgz", 9 - "integrity": "sha512-9obonY9Hu9VI8Dhkz4GM9rFaPoaOdhnLM63vB4DbwY6EUQL/QBmXF6G6i8PLJNHggz6ucxGeynsSXjEgB4psSQ==", 10 - "dev": true, 11 - "requires": { 12 - "axios": "^0.18.1", 13 - "base-path-converter": "^1.0.2", 14 - "form-data": "^2.3.3", 15 - "is-ipfs": "^0.6.0", 16 - "recursive-fs": "^1.1.2" 17 - } 18 - }, 19 - "agent-base": { 20 - "version": "4.3.0", 21 - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", 22 - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", 23 - "dev": true, 24 - "requires": { 25 - "es6-promisify": "^5.0.0" 26 - } 27 - }, 28 - "asynckit": { 29 - "version": "0.4.0", 30 - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 31 - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 32 - "dev": true 33 - }, 34 - "autocreate": { 35 - "version": "1.2.0", 36 - "resolved": "https://registry.npmjs.org/autocreate/-/autocreate-1.2.0.tgz", 37 - "integrity": "sha1-UiFnmSxBcsFUeeX4jzSGpFKkDLo=", 38 - "dev": true 39 - }, 40 - "axios": { 41 - "version": "0.18.1", 42 - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", 43 - "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", 44 - "dev": true, 45 - "requires": { 46 - "follow-redirects": "1.5.10", 47 - "is-buffer": "^2.0.2" 48 - } 49 - }, 50 - "base-path-converter": { 51 - "version": "1.0.2", 52 - "resolved": "https://registry.npmjs.org/base-path-converter/-/base-path-converter-1.0.2.tgz", 53 - "integrity": "sha512-51R8JiuXadknn6ouVUteOhDpmI3G5u5GqjruL7bPJpfxUHVgosaO5uPAvRP4FeR4VyyH4sSvsN78Ci6ouoRYqQ==", 54 - "dev": true 55 - }, 56 - "base-x": { 57 - "version": "3.0.8", 58 - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", 59 - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", 60 - "dev": true, 61 - "requires": { 62 - "safe-buffer": "^5.0.1" 63 - } 64 - }, 65 - "base64-js": { 66 - "version": "1.3.1", 67 - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", 68 - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", 69 - "dev": true 70 - }, 71 - "bs58": { 72 - "version": "4.0.1", 73 - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", 74 - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", 75 - "dev": true, 76 - "requires": { 77 - "base-x": "^3.0.2" 78 - } 79 - }, 80 - "buffer": { 81 - "version": "5.6.0", 82 - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", 83 - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", 84 - "dev": true, 85 - "requires": { 86 - "base64-js": "^1.0.2", 87 - "ieee754": "^1.1.4" 88 - } 89 - }, 90 - "capture-stack-trace": { 91 - "version": "1.0.1", 92 - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", 93 - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", 94 - "dev": true 95 - }, 96 - "cids": { 97 - "version": "0.7.5", 98 - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", 99 - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", 100 - "dev": true, 101 - "requires": { 102 - "buffer": "^5.5.0", 103 - "class-is": "^1.1.0", 104 - "multibase": "~0.6.0", 105 - "multicodec": "^1.0.0", 106 - "multihashes": "~0.4.15" 107 - } 108 - }, 109 - "class-is": { 110 - "version": "1.1.0", 111 - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", 112 - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==", 113 - "dev": true 114 - }, 115 - "cloudflare": { 116 - "version": "2.7.0", 117 - "resolved": "https://registry.npmjs.org/cloudflare/-/cloudflare-2.7.0.tgz", 118 - "integrity": "sha512-yhroBpn2VBczFwiRLpyUc431XiWE+xNs8YvtjAsj1vEA1pVwhpje6BzgLW5iZbulmCuPX48lvX8HizeMWk713g==", 119 - "dev": true, 120 - "requires": { 121 - "autocreate": "^1.1.0", 122 - "es-class": "^2.1.1", 123 - "got": "^6.3.0", 124 - "https-proxy-agent": "^2.1.1", 125 - "object-assign": "^4.1.0", 126 - "should-proxy": "^1.0.4", 127 - "url-pattern": "^1.0.3" 128 - } 129 - }, 130 - "combined-stream": { 131 - "version": "1.0.8", 132 - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 133 - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 134 - "dev": true, 135 - "requires": { 136 - "delayed-stream": "~1.0.0" 137 - } 138 - }, 139 - "create-error-class": { 140 - "version": "3.0.2", 141 - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", 142 - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", 143 - "dev": true, 144 - "requires": { 145 - "capture-stack-trace": "^1.0.0" 146 - } 147 - }, 148 - "debug": { 149 - "version": "3.1.0", 150 - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", 151 - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", 152 - "dev": true, 153 - "requires": { 154 - "ms": "2.0.0" 155 - } 156 - }, 157 - "delayed-stream": { 158 - "version": "1.0.0", 159 - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 160 - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 161 - "dev": true 162 - }, 163 - "duplexer3": { 164 - "version": "0.1.4", 165 - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 166 - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 167 - "dev": true 168 - }, 169 - "es-class": { 170 - "version": "2.1.1", 171 - "resolved": "https://registry.npmjs.org/es-class/-/es-class-2.1.1.tgz", 172 - "integrity": "sha1-bsIkO1oeNYHAt+7O4BMMnA1vsrc=", 173 - "dev": true 174 - }, 175 - "es6-promise": { 176 - "version": "4.2.8", 177 - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", 178 - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", 179 - "dev": true 180 - }, 181 - "es6-promisify": { 182 - "version": "5.0.0", 183 - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 184 - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", 185 - "dev": true, 186 - "requires": { 187 - "es6-promise": "^4.0.3" 188 - } 189 - }, 190 - "follow-redirects": { 191 - "version": "1.5.10", 192 - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", 193 - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", 194 - "dev": true, 195 - "requires": { 196 - "debug": "=3.1.0" 197 - } 198 - }, 199 - "form-data": { 200 - "version": "2.5.1", 201 - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", 202 - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", 203 - "dev": true, 204 - "requires": { 205 - "asynckit": "^0.4.0", 206 - "combined-stream": "^1.0.6", 207 - "mime-types": "^2.1.12" 208 - } 209 - }, 210 - "get-stream": { 211 - "version": "3.0.0", 212 - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 213 - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", 214 - "dev": true 215 - }, 216 - "got": { 217 - "version": "6.7.1", 218 - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 219 - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", 220 - "dev": true, 221 - "requires": { 222 - "create-error-class": "^3.0.0", 223 - "duplexer3": "^0.1.4", 224 - "get-stream": "^3.0.0", 225 - "is-redirect": "^1.0.0", 226 - "is-retry-allowed": "^1.0.0", 227 - "is-stream": "^1.0.0", 228 - "lowercase-keys": "^1.0.0", 229 - "safe-buffer": "^5.0.1", 230 - "timed-out": "^4.0.0", 231 - "unzip-response": "^2.0.1", 232 - "url-parse-lax": "^1.0.0" 233 - } 234 - }, 235 - "https-proxy-agent": { 236 - "version": "2.2.4", 237 - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", 238 - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", 239 - "dev": true, 240 - "requires": { 241 - "agent-base": "^4.3.0", 242 - "debug": "^3.1.0" 243 - } 244 - }, 245 - "ieee754": { 246 - "version": "1.1.13", 247 - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", 248 - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", 249 - "dev": true 250 - }, 251 - "ip-regex": { 252 - "version": "4.1.0", 253 - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.1.0.tgz", 254 - "integrity": "sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA==", 255 - "dev": true 256 - }, 257 - "is-buffer": { 258 - "version": "2.0.4", 259 - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", 260 - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", 261 - "dev": true 262 - }, 263 - "is-ip": { 264 - "version": "3.1.0", 265 - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", 266 - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", 267 - "dev": true, 268 - "requires": { 269 - "ip-regex": "^4.0.0" 270 - } 271 - }, 272 - "is-ipfs": { 273 - "version": "0.6.3", 274 - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-0.6.3.tgz", 275 - "integrity": "sha512-HyRot1dvLcxImtDqPxAaY1miO6WsiP/z7Yxpg2qpaLWv5UdhAPtLvHJ4kMLM0w8GSl8AFsVF23PHe1LzuWrUlQ==", 276 - "dev": true, 277 - "requires": { 278 - "bs58": "^4.0.1", 279 - "cids": "~0.7.0", 280 - "mafmt": "^7.0.0", 281 - "multiaddr": "^7.2.1", 282 - "multibase": "~0.6.0", 283 - "multihashes": "~0.4.13" 284 - } 285 - }, 286 - "is-redirect": { 287 - "version": "1.0.0", 288 - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 289 - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", 290 - "dev": true 291 - }, 292 - "is-retry-allowed": { 293 - "version": "1.2.0", 294 - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", 295 - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", 296 - "dev": true 297 - }, 298 - "is-stream": { 299 - "version": "1.1.0", 300 - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 301 - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", 302 - "dev": true 303 - }, 304 - "lowercase-keys": { 305 - "version": "1.0.1", 306 - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 307 - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 308 - "dev": true 309 - }, 310 - "mafmt": { 311 - "version": "7.1.0", 312 - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-7.1.0.tgz", 313 - "integrity": "sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA==", 314 - "dev": true, 315 - "requires": { 316 - "multiaddr": "^7.3.0" 317 - } 318 - }, 319 - "mime-db": { 320 - "version": "1.44.0", 321 - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 322 - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", 323 - "dev": true 324 - }, 325 - "mime-types": { 326 - "version": "2.1.27", 327 - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 328 - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 329 - "dev": true, 330 - "requires": { 331 - "mime-db": "1.44.0" 332 - } 333 - }, 334 - "ms": { 335 - "version": "2.0.0", 336 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 337 - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 338 - "dev": true 339 - }, 340 - "multiaddr": { 341 - "version": "7.5.0", 342 - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-7.5.0.tgz", 343 - "integrity": "sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw==", 344 - "dev": true, 345 - "requires": { 346 - "buffer": "^5.5.0", 347 - "cids": "~0.8.0", 348 - "class-is": "^1.1.0", 349 - "is-ip": "^3.1.0", 350 - "multibase": "^0.7.0", 351 - "varint": "^5.0.0" 352 - }, 353 - "dependencies": { 354 - "cids": { 355 - "version": "0.8.3", 356 - "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.3.tgz", 357 - "integrity": "sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA==", 358 - "dev": true, 359 - "requires": { 360 - "buffer": "^5.6.0", 361 - "class-is": "^1.1.0", 362 - "multibase": "^1.0.0", 363 - "multicodec": "^1.0.1", 364 - "multihashes": "^1.0.1" 365 - }, 366 - "dependencies": { 367 - "multibase": { 368 - "version": "1.0.1", 369 - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", 370 - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", 371 - "dev": true, 372 - "requires": { 373 - "base-x": "^3.0.8", 374 - "buffer": "^5.5.0" 375 - } 376 - } 377 - } 378 - }, 379 - "multibase": { 380 - "version": "0.7.0", 381 - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", 382 - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", 383 - "dev": true, 384 - "requires": { 385 - "base-x": "^3.0.8", 386 - "buffer": "^5.5.0" 387 - } 388 - }, 389 - "multihashes": { 390 - "version": "1.0.1", 391 - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-1.0.1.tgz", 392 - "integrity": "sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw==", 393 - "dev": true, 394 - "requires": { 395 - "buffer": "^5.6.0", 396 - "multibase": "^1.0.1", 397 - "varint": "^5.0.0" 398 - }, 399 - "dependencies": { 400 - "multibase": { 401 - "version": "1.0.1", 402 - "resolved": "https://registry.npmjs.org/multibase/-/multibase-1.0.1.tgz", 403 - "integrity": "sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw==", 404 - "dev": true, 405 - "requires": { 406 - "base-x": "^3.0.8", 407 - "buffer": "^5.5.0" 408 - } 409 - } 410 - } 411 - } 412 - } 413 - }, 414 - "multibase": { 415 - "version": "0.6.1", 416 - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", 417 - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", 418 - "dev": true, 419 - "requires": { 420 - "base-x": "^3.0.8", 421 - "buffer": "^5.5.0" 422 - } 423 - }, 424 - "multicodec": { 425 - "version": "1.0.4", 426 - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", 427 - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", 428 - "dev": true, 429 - "requires": { 430 - "buffer": "^5.6.0", 431 - "varint": "^5.0.0" 432 - } 433 - }, 434 - "multihashes": { 435 - "version": "0.4.21", 436 - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", 437 - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", 438 - "dev": true, 439 - "requires": { 440 - "buffer": "^5.5.0", 441 - "multibase": "^0.7.0", 442 - "varint": "^5.0.0" 443 - }, 444 - "dependencies": { 445 - "multibase": { 446 - "version": "0.7.0", 447 - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", 448 - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", 449 - "dev": true, 450 - "requires": { 451 - "base-x": "^3.0.8", 452 - "buffer": "^5.5.0" 453 - } 454 - } 455 - } 456 - }, 457 - "object-assign": { 458 - "version": "4.1.1", 459 - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 460 - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 461 - "dev": true 462 - }, 463 - "prepend-http": { 464 - "version": "1.0.4", 465 - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 466 - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 467 - "dev": true 468 - }, 469 - "recursive-fs": { 470 - "version": "1.1.2", 471 - "resolved": "https://registry.npmjs.org/recursive-fs/-/recursive-fs-1.1.2.tgz", 472 - "integrity": "sha512-QPFEt5EwzwlHoqYsZc+NkUSyDTQf1Hvq7c/kpQJHi77OSCAiDXI3wfB0J04ZG+ekGHmv37mdR8MDPEshD3/RlQ==", 473 - "dev": true 474 - }, 475 - "safe-buffer": { 476 - "version": "5.2.1", 477 - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 478 - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 479 - "dev": true 480 - }, 481 - "should-proxy": { 482 - "version": "1.0.4", 483 - "resolved": "https://registry.npmjs.org/should-proxy/-/should-proxy-1.0.4.tgz", 484 - "integrity": "sha1-yAWlAav2lTlgBjSAnmL78ji6NeQ=", 485 - "dev": true 486 - }, 487 - "timed-out": { 488 - "version": "4.0.1", 489 - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 490 - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", 491 - "dev": true 492 - }, 493 - "unzip-response": { 494 - "version": "2.0.1", 495 - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", 496 - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", 497 - "dev": true 498 - }, 499 - "url-parse-lax": { 500 - "version": "1.0.0", 501 - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 502 - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 503 - "dev": true, 504 - "requires": { 505 - "prepend-http": "^1.0.1" 506 - } 507 - }, 508 - "url-pattern": { 509 - "version": "1.0.3", 510 - "resolved": "https://registry.npmjs.org/url-pattern/-/url-pattern-1.0.3.tgz", 511 - "integrity": "sha1-BAkpJHGyTyPFDWWkeTF5PStaz8E=", 512 - "dev": true 513 - }, 514 - "varint": { 515 - "version": "5.0.0", 516 - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", 517 - "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=", 518 - "dev": true 519 - } 520 - } 521 - }
-9
.github/deploy/package.json
··· 1 - { 2 - "name": "deploy", 3 - "description": "Deploys the contents of this repo to miriscient.org", 4 - "main": "deploy.js", 5 - "devDependencies": { 6 - "@pinata/sdk": "^1.1.10", 7 - "cloudflare": "^2.7.0" 8 - } 9 - }
+24 -18
.github/workflows/deploy.yml
··· 1 - name: Deploy to IPFS 2 - on: 3 - push: 4 - branches: 5 - - main 1 + name: Ship to IPFS 2 + on: [push] 6 3 7 4 jobs: 8 - tag: 5 + Deploy: 9 6 runs-on: ubuntu-latest 10 7 steps: 11 - - uses: actions/checkout@v2 12 - - name: Use Node.js 13 - uses: actions/setup-node@v1 14 - with: 15 - node-version: '12.x' 16 - - run: cd .github/deploy && npm install --silent && node --no-warnings deploy.js 17 - env: 18 - PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }} 19 - PINATA_API_SECRET: ${{ secrets.PINATA_API_SECRET }} 20 - CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }} 21 - CLOUDFLARE_DNS_ZONE_ID: ${{ secrets.CLOUDFLARE_DNS_ZONE_ID }} 22 - CLOUDFLARE_DNS_IDENTIFIER: ${{ secrets.CLOUDFLARE_DNS_IDENTIFIER }} 8 + - name: Check out repository code 9 + uses: actions/checkout@v3 10 + - name: Publish to IPFS 11 + id: Publish 12 + uses: aquiladev/ipfs-action@master 13 + with: 14 + path: ./public 15 + service: filebase 16 + pinName: ${{ github.event.repository.name }} 17 + filebaseBucket: microsites 18 + filebaseKey: ${{ secrets.FILEBASE_KEY }} 19 + filebaseSecret: ${{ secrets.FILEBASE_SECRET }} 20 + - name: Update DNSLink 21 + env: 22 + CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }} 23 + RECORD_DOMAIN: ${{ github.event.repository.name }} 24 + CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }} 25 + id: dnslink 26 + uses: GoodDollar/cloudflare-update-web3-hostname@v1.2 27 + with: 28 + cid: ${{ steps.Publish.outputs.cid }}