diff --git a/packages/models/src/identity/index.ts b/packages/models/src/identity/index.ts index b755b2f5..94948b04 100644 --- a/packages/models/src/identity/index.ts +++ b/packages/models/src/identity/index.ts @@ -117,6 +117,8 @@ export class IdentityModel extends BaseModel { const result = await this.query(params); + console.log('getIdentitiesByDisplayName: ', result); + return result.Items.map(parseDbObjectToIdentity); } @@ -376,6 +378,8 @@ export class IdentityModel extends BaseModel { const results = await Promise.all(ps); const dpResults = await Promise.all(dpp); + console.log('dpResults: ', dpResults); + if (dpResults.length > 0) { dpResults.forEach(a => { results.concat(a); diff --git a/services/rest/package.json b/services/rest/package.json index 3f9bb5a0..3573706b 100644 --- a/services/rest/package.json +++ b/services/rest/package.json @@ -23,8 +23,12 @@ "@packages/apitools": "^0.0.1", "@packages/crypto": "^0.0.1", "@packages/models": "^0.0.1", + "aws-appsync": "^4.0.3", "aws-lambda": "^1.0.6", - "aws-sdk": "^2.829.0", + "aws-sdk": "^2.852.0", + "cids": "^1.1.5", + "cross-fetch": "^3.0.6", + "graphql-tag": "^2.11.0", "ipfs-http-client": "^46.0.1", "jsonwebtoken": "^8.5.1", "shelljs": "^0.8.4", diff --git a/services/rest/serverless.yml b/services/rest/serverless.yml index d24cab2b..76cf7c33 100644 --- a/services/rest/serverless.yml +++ b/services/rest/serverless.yml @@ -26,10 +26,29 @@ provider: - SES:SendEmail - SES:SendRawEmail Resource: '*' + - Effect: Allow + Action: + - "appsync:Graphql" + Resource: + - "arn:aws:appsync:us-west-2:768127979193:apis/${self:provider.appSyncId.${self:provider.stage}}/types/*/fields/*" + - Effect: Allow + Action: + - kinesis:PutRecord + - kinesis:PutRecords + Resource: + - "arn:aws:kinesis:us-west-2:768127979193:stream/filecoin-archive-${self:provider.stage}" domain: dev: api-dev.space.storage stg: api-stg.space.storage prd: api.space.storage + appsyncUrl: + dev: https://7w65cjs2fnbwzdsltmxj427wfu.appsync-api.us-west-2.amazonaws.com/graphql + stg: https://h6qbvxquqjg5direndhm7ugaj4.appsync-api.us-west-2.amazonaws.com/graphql + prd: https://b6756lokszgovfg2lkge3t4kai.appsync-api.us-west-2.amazonaws.com/graphql + appSyncId: + dev: 5hfpy7azrrbwzfqlworbze5cqm + stg: eqz6jpndcvg27fhrcmzzdb7byi + prd: tbnqabijsrasxp6sokt4y3avxu plugins: - serverless-jetpack @@ -164,9 +183,41 @@ functions: identitySource: method.request.header.Authorization type: token resultTtlInSeconds: 0 - # request: - # schema: - # application/json: ${file(schemas/addEthAddress.json)} + + archiveHash: + memorySize: 128 + handler: dist/archiveHash.handler + environment: + REGION: ${self:provider.region} + ENV: ${opt:stage} + events: + - http: + path: /archiveHash + method: POST + cors: true + authorizer: + name: authorizer + identitySource: method.request.header.Authorization + type: token + resultTtlInSeconds: 0 + + dealStatus: + memorySize: 128 + handler: dist/getDealStatus.handler + environment: + REGION: ${self:provider.region} + ENV: ${opt:stage} + APPSYNC_URL: ${self:provider.appsyncUrl.${self:provider.stage}} + events: + - http: + path: /dealStatus + method: GET + cors: true + authorizer: + name: authorizer + identitySource: method.request.header.Authorization + type: token + resultTtlInSeconds: 0 uploadAvatar: memorySize: 128 diff --git a/services/rest/src/archiveHash.ts b/services/rest/src/archiveHash.ts new file mode 100644 index 00000000..8c9d6f06 --- /dev/null +++ b/services/rest/src/archiveHash.ts @@ -0,0 +1,72 @@ +import { APIGatewayProxyEventBase, APIGatewayProxyResult } from 'aws-lambda'; +import middy from '@middy/core'; +import cors from '@middy/http-cors'; +import CID from 'cids'; + +import AWS from 'aws-sdk'; +import { AuthContext } from './authorizer'; + +require('cross-fetch/polyfill'); + +AWS.config.update({ + region: 'us-west-2', +}); + +const kinesis = new AWS.Kinesis({ + apiVersion: '2013-12-02', +}); + +const STAGE = process.env.ENV; + +const streamName = `filecoin-archive-${STAGE}`; + +const formatIpfsHash = (cid: string): string => { + const cidObj = new CID(cid); + return cidObj.toV1().toString(); +}; + +// eslint-disable-next-line +export const handler = middy(async function( + event: APIGatewayProxyEventBase +): Promise { + const { hash, publicKey, size } = JSON.parse(event.body); + + try { + const payload = { + e: { + size, + hash: formatIpfsHash(hash), + spacePublicKey: publicKey, + requestedAt: Date.now(), + }, + }; + + const params = { + Data: JSON.stringify(payload), + StreamName: streamName, + PartitionKey: payload.e.hash.substr(-6), + }; + kinesis.putRecord(params, function(err, data) { + if (err) { + console.log(err, err.stack); + throw err; + } + // an error occurred + else console.log(data); // successful response + }); + } catch (e) { + return { + statusCode: 500, + body: JSON.stringify({ + error: `Unable to stage for archiving: ${e.toString()}`, + }), + }; + } + + const response = { + statusCode: 201, + body: 'Success', + }; + + return response; +}).use(cors()); diff --git a/services/rest/src/getDealStatus.ts b/services/rest/src/getDealStatus.ts new file mode 100644 index 00000000..fc58cf44 --- /dev/null +++ b/services/rest/src/getDealStatus.ts @@ -0,0 +1,64 @@ +import { APIGatewayProxyEventBase, APIGatewayProxyResult } from 'aws-lambda'; +import middy from '@middy/core'; +import cors from '@middy/http-cors'; + +import Appsync from 'aws-appsync'; +import gql from 'graphql-tag'; +import { AuthContext } from './authorizer'; + +require('cross-fetch/polyfill'); + +const graphqlClient = new Appsync({ + url: process.env.APPSYNC_URL, + region: process.env.AWS_REGION, + auth: { + type: 'AWS_IAM', + credentials: { + // is there a way to get these from the lambda role + accessKeyId: process.env.AWS_ACCESS_KEY_ID, + secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, + // is this needed? + // sessionToken: process.env.AWS_SESSION_TOKEN, + }, + }, + disableOffline: true, +}); + +// eslint-disable-next-line +export const handler = middy(async function( + event: APIGatewayProxyEventBase +): Promise { + const { hash } = JSON.parse(event.body); + + let res; + try { + const query = gql(`query getDealStatus($hash: String!) { + getDealStatus(hash: $hash) { + proposalCid + state + duration + dealId + creationTime + } + }`); + + res = await graphqlClient.query({ + query, + variables: { + hash, + }, + }); + } catch (e) { + return { + statusCode: 500, + body: JSON.stringify({ error: `Unable to fetch deal: ${e.toString()}` }), + }; + } + + const response = { + statusCode: 201, + body: JSON.stringify(res), + }; + + return response; +}).use(cors()); diff --git a/services/rest/src/sendShareEmail.ts b/services/rest/src/sendShareEmail.ts index 4bd53800..a6567d26 100644 --- a/services/rest/src/sendShareEmail.ts +++ b/services/rest/src/sendShareEmail.ts @@ -40,7 +40,7 @@ export const handler = middy(async function( }, Subject: { Data: emailBody.subject }, }, - Source: emailBody.from || 'Space ', + Source: emailBody.from || 'Space ', }; try { diff --git a/yarn.lock b/yarn.lock index 3e1bccc8..42af7d5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3188,6 +3188,14 @@ dependencies: tslib "^2.0.0" +"@redux-offline/redux-offline@2.5.2-native.3": + version "2.5.2-native.3" + resolved "https://registry.npmjs.org/@redux-offline/redux-offline/-/redux-offline-2.5.2-native.3.tgz#f444484ab8c7dad7533d0585a67cb4325f1d959f" + integrity sha512-xo1M4wFJDJjANn9w6faru0/8rerd28vQpbNTbEe7DX57RyRqSGsDilb0temH/kAg3GheQTlO59ipRum2bcmXvw== + dependencies: + "@babel/runtime" "^7.5.5" + redux-persist "^4.6.0" + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -3493,6 +3501,11 @@ resolved "https://registry.yarnpkg.com/@turist/time/-/time-0.0.1.tgz#57637d2a7d1860adb9f9cecbdcc966ce4f551d63" integrity sha512-M2BiThcbxMxSKX8W4z5u9jKZn6datnM3+FpEU+eYw0//l31E2xhqi7vTAuJ/Sf0P3yhp66SDJgPu3bRRpvrdQQ== +"@types/async@2.0.50": + version "2.0.50" + resolved "https://registry.npmjs.org/@types/async/-/async-2.0.50.tgz#117540e026d64e1846093abbd5adc7e27fda7bcb" + integrity sha512-VMhZMMQgV1zsR+lX/0IBfAk+8Eb7dPVMWiQGFAt3qjo5x7Ml6b77jUo0e1C3ToD+XRDXqtrfw+6AB0uUsPEr3Q== + "@types/aws-lambda@^8.10.56": version "8.10.61" resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.61.tgz#7471e08843dbdcf09b2494ac5b34c4d1a391e6d0" @@ -3929,6 +3942,16 @@ resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.2.tgz#efaf9e991a7390dc081a0b679185979a83a9639a" integrity sha512-S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw== +"@types/zen-observable@0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" + integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== + +"@types/zen-observable@^0.8.0": + version "0.8.2" + resolved "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.2.tgz#808c9fa7e4517274ed555fa158f2de4b4f468e71" + integrity sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg== + "@typescript-eslint/eslint-plugin@^2.12.0", "@typescript-eslint/eslint-plugin@^2.24.0": version "2.34.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" @@ -4124,6 +4147,13 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@wry/equality@^0.1.2": + version "0.1.11" + resolved "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" + integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== + dependencies: + tslib "^1.9.3" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -4143,6 +4173,11 @@ mkdirp-promise "^5.0.1" mz "^2.5.0" +"@zxing/text-encoding@0.9.0": + version "0.9.0" + resolved "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" + integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== + JSONStream@^1.0.4, JSONStream@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -4409,6 +4444,120 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +apollo-cache-inmemory@1.3.12: + version "1.3.12" + resolved "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.3.12.tgz#cf7ef7c15730d0b6787d79047d5c06087ac31991" + integrity sha512-jxWcW64QoYQZ09UH6v3syvCCl3MWr6bsxT3wYYL6ORi8svdJUpnNrHTcv5qXqJYVg/a+NHhfEt+eGjJUG2ytXA== + dependencies: + apollo-cache "^1.1.22" + apollo-utilities "^1.0.27" + optimism "^0.6.8" + +apollo-cache@1.1.20: + version "1.1.20" + resolved "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.20.tgz#6152cc4baf6a63e376efee79f75de4f5c84bf90e" + integrity sha512-+Du0/4kUSuf5PjPx0+pvgMGV12ezbHA8/hubYuqRQoy/4AWb4faa61CgJNI6cKz2mhDd9m94VTNKTX11NntwkQ== + dependencies: + apollo-utilities "^1.0.25" + +apollo-cache@^1.1.22: + version "1.3.5" + resolved "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz#9dbebfc8dbe8fe7f97ba568a224bca2c5d81f461" + integrity sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA== + dependencies: + apollo-utilities "^1.3.4" + tslib "^1.10.0" + +apollo-client@2.4.6: + version "2.4.6" + resolved "https://registry.npmjs.org/apollo-client/-/apollo-client-2.4.6.tgz#ba24a2def6ea9d487b41672652ca967cc7c05e4a" + integrity sha512-RsZVMYone7mu3Wj4sr7ehctN8pdaHsP4X1Sv6Ly4gZ/YDetCCVnhbmnk5q7kvDtfoo0jhhHblxgFyA3FLLImtA== + dependencies: + "@types/zen-observable" "^0.8.0" + apollo-cache "1.1.20" + apollo-link "^1.0.0" + apollo-link-dedup "^1.0.0" + apollo-utilities "1.0.25" + symbol-observable "^1.0.2" + zen-observable "^0.8.0" + optionalDependencies: + "@types/async" "2.0.50" + +apollo-link-context@1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/apollo-link-context/-/apollo-link-context-1.0.11.tgz#b0ba1918a7e32cf0e40004781ec267568caa2e47" + integrity sha512-aEM7zp3O1V4jVIm7me60T7Sw7vCuuGzE9ppE0ttGiud8slUbh7dTAgxirTEg3PjdPQA5ZoLCwqnGb+DzTxu+1g== + dependencies: + apollo-link "^1.2.5" + +apollo-link-dedup@^1.0.0: + version "1.0.21" + resolved "https://registry.npmjs.org/apollo-link-dedup/-/apollo-link-dedup-1.0.21.tgz#7fcbb209bdf11ce42e0e31f58f3f8008f960f240" + integrity sha512-r+mbfzMxj6m+oSKoNJTrTOTWbG4ysGscBla6ibdyvq/leLiroQw8HP9TtWRxVDtNlfkExEC548fUxr3LUgVssw== + dependencies: + apollo-link "^1.2.14" + tslib "^1.9.3" + +apollo-link-http-common@^0.2.7: + version "0.2.16" + resolved "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz#756749dafc732792c8ca0923f9a40564b7c59ecc" + integrity sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg== + dependencies: + apollo-link "^1.2.14" + ts-invariant "^0.4.0" + tslib "^1.9.3" + +apollo-link-http@1.5.8: + version "1.5.8" + resolved "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.8.tgz#1be551338ca00db4082114221b409e0470fcc7e6" + integrity sha512-wkmj9fL5B4QYjw7q7w0GyetfqQKnA0QXGoh+/UK+LXJ+jLEz6JP2eLxrwgpX7o4ID6Og7l1JfeVxJE5fV1j2bg== + dependencies: + apollo-link "^1.2.5" + apollo-link-http-common "^0.2.7" + +apollo-link-retry@2.2.7: + version "2.2.7" + resolved "https://registry.npmjs.org/apollo-link-retry/-/apollo-link-retry-2.2.7.tgz#d078847b593d1292bb01c4a72ee90cbb7d33cbcf" + integrity sha512-HlpeA09PZ6RL/l/nIYmJ+DjsdQ315HLLiSTLUo/Zq56wDuzlmbbEKUPkK5Sb92nFCwZOgm+TvHCrS6zUF33eQw== + dependencies: + "@types/zen-observable" "0.8.0" + apollo-link "^1.2.5" + +apollo-link@1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.5.tgz#f54932d6b8f1412a35e088bc199a116bce3f1f16" + integrity sha512-GJHEE4B06oEB58mpRRwW6ISyvgX2aCqCLjpcE3M/6/4e+ZVeX7fRGpMJJDq2zZ8n7qWdrEuY315JfxzpsJmUhA== + dependencies: + apollo-utilities "^1.0.0" + zen-observable-ts "^0.8.12" + +apollo-link@^1.0.0, apollo-link@^1.2.14, apollo-link@^1.2.5: + version "1.2.14" + resolved "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" + integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== + dependencies: + apollo-utilities "^1.3.0" + ts-invariant "^0.4.0" + tslib "^1.9.3" + zen-observable-ts "^0.8.21" + +apollo-utilities@1.0.25: + version "1.0.25" + resolved "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.25.tgz#899b00f5f990fb451675adf84cb3de82eb6372ea" + integrity sha512-AXvqkhni3Ir1ffm4SA1QzXn8k8I5BBl4PVKEyak734i4jFdp+xgfUyi2VCqF64TJlFTA/B73TRDUvO2D+tKtZg== + dependencies: + fast-json-stable-stringify "^2.0.0" + +apollo-utilities@^1.0.0, apollo-utilities@^1.0.25, apollo-utilities@^1.0.27, apollo-utilities@^1.3.0, apollo-utilities@^1.3.4: + version "1.3.4" + resolved "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" + integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== + dependencies: + "@wry/equality" "^0.1.2" + fast-json-stable-stringify "^2.0.0" + ts-invariant "^0.4.0" + tslib "^1.10.0" + application-config-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz#193c5f0a86541a4c66fba1e2dc38583362ea5e8f" @@ -4743,6 +4892,51 @@ autoprefixer@^9.8.4: postcss "^7.0.32" postcss-value-parser "^4.1.0" +aws-appsync-auth-link@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/aws-appsync-auth-link/-/aws-appsync-auth-link-2.0.3.tgz#1a2d5dc9d8712765354cacb906da27557267d2e2" + integrity sha512-CfXLILhhjMZvQ6OqKFAt6nd02T8YpQPyWS2H4Fmoe54RcQvYDBQDH9Gu1H3wFK77Wn866cwU3jd+W93UaZ7YXw== + dependencies: + apollo-link "1.2.5" + aws-sdk "^2.518.0" + debug "2.6.9" + +aws-appsync-subscription-link@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/aws-appsync-subscription-link/-/aws-appsync-subscription-link-2.2.1.tgz#712a2e3ad39aa693870a5802debbbb4b415b1406" + integrity sha512-dqr4P+Zc3oy7ttNzOwBhYuVH7XwEgPKAAOv79DjxzEcQIqSxAn+3HYMxn8gASrFcFNV1H04Cgd1wPxITZsJpnw== + dependencies: + apollo-link "1.2.5" + apollo-link-context "1.0.11" + apollo-link-http "1.5.8" + apollo-link-retry "2.2.7" + aws-appsync-auth-link "^2.0.3" + debug "2.6.9" + url "^0.11.0" + +aws-appsync@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/aws-appsync/-/aws-appsync-4.0.3.tgz#2233b482cce1d0316fb581e113d6fec22d91d3ea" + integrity sha512-ld6hgunSewQzTwQui9Rj2Adzj8ikVLaurPU732/Ci85edvyyYmqCoWZqG8EZZFvNdz7tIYFolJD7BsiggTTwJQ== + dependencies: + "@redux-offline/redux-offline" "2.5.2-native.3" + apollo-cache-inmemory "1.3.12" + apollo-client "2.4.6" + apollo-link "1.2.5" + apollo-link-context "1.0.11" + apollo-link-http "1.5.8" + apollo-link-retry "2.2.7" + aws-appsync-auth-link "^2.0.3" + aws-appsync-subscription-link "^2.2.1" + aws-sdk "^2.814.0" + debug "2.6.9" + graphql "0.13.0" + redux "^3.7.2" + redux-thunk "^2.2.0" + setimmediate "^1.0.5" + url "^0.11.0" + uuid "3.x" + aws-lambda@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/aws-lambda/-/aws-lambda-1.0.6.tgz#ba562478264646b51e9dc817d7d25ea468ed011b" @@ -4783,10 +4977,10 @@ aws-sdk@^2.490.0: uuid "3.3.2" xml2js "0.4.19" -aws-sdk@^2.775.0: - version "2.775.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.775.0.tgz#707c369e84b79cf3b136819c01f849b93fb44eab" - integrity sha512-rlej1sgHmfhl+PJqpQ2qOOsbHEEnLBIKBmanMTUNGiEAfuS0MpFjXECXTpJIOrbUzl3OZuAYrGuBkg2qrBwRbQ== +aws-sdk@^2.518.0, aws-sdk@^2.814.0, aws-sdk@^2.852.0: + version "2.852.0" + resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.852.0.tgz#f6639bf8e70258e77f7e8ce454c403cdcb23ecd9" + integrity sha512-Oj3ZWsHly5o+TiayKDbuWZSq5SkqoNZF/wLxmqolP3tlQ55zfGme1s/5J7vcuVIz4+PlISMlgE5kAhxhjAieyg== dependencies: buffer "4.9.2" events "1.1.1" @@ -4798,10 +4992,10 @@ aws-sdk@^2.775.0: uuid "3.3.2" xml2js "0.4.19" -aws-sdk@^2.829.0: - version "2.829.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.829.0.tgz#da70407a8bddc21b1dc1c9ba61ac3daea39b9364" - integrity sha512-0LV0argbcE1HhOeCeCZWUbpP4rWzwqe+0WmnR+jCJPY0w0n/ntGU/GW8obzhhhUej8pS4AkuAJNgzbwlTnxUmw== +aws-sdk@^2.775.0: + version "2.775.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.775.0.tgz#707c369e84b79cf3b136819c01f849b93fb44eab" + integrity sha512-rlej1sgHmfhl+PJqpQ2qOOsbHEEnLBIKBmanMTUNGiEAfuS0MpFjXECXTpJIOrbUzl3OZuAYrGuBkg2qrBwRbQ== dependencies: buffer "4.9.2" events "1.1.1" @@ -6009,6 +6203,16 @@ cids@^1.0.0, cids@^1.0.2: multihashes "^3.0.1" uint8arrays "^1.1.0" +cids@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/cids/-/cids-1.1.5.tgz#778bf8b70de3a0bf70989fd7d89c28fe23c685cb" + integrity sha512-i0V7tF2Jf78BKXyy2rpy1H/ozaJEP8b3Z7ZcHe9J86RRvJZ4e7daaJP3xwL09e14/Bl/mYX5WVc36fbQtjH7Sg== + dependencies: + multibase "^3.0.1" + multicodec "^2.1.0" + multihashes "^3.1.0" + uint8arrays "^2.0.5" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -6730,6 +6934,13 @@ cross-fetch@2.2.2: node-fetch "2.1.2" whatwg-fetch "2.0.4" +cross-fetch@^3.0.6: + version "3.0.6" + resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c" + integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ== + dependencies: + node-fetch "2.6.1" + cross-spawn@5.1.0, cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -10248,6 +10459,11 @@ graphql-subscriptions@^1.1.0: dependencies: iterall "^1.2.1" +graphql-tag@^2.11.0: + version "2.11.0" + resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz#1deb53a01c46a7eb401d6cb59dec86fa1cccbffd" + integrity sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA== + graphql-type-json@^0.2.4: version "0.2.4" resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.2.4.tgz#545af27903e40c061edd30840a272ea0a49992f9" @@ -10258,6 +10474,13 @@ graphql-type-json@^0.3.2: resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== +graphql@0.13.0: + version "0.13.0" + resolved "https://registry.npmjs.org/graphql/-/graphql-0.13.0.tgz#d1b44a282279a9ce0a6ec1037329332f4c1079b6" + integrity sha512-WlO+ZJT9aY3YrBT+H5Kk+eVb3OVVehB9iRD/xqeHdmrrn4AFl5FIcOpfHz/vnBr6Y6JthGMlnFqU8XRnDjSR7A== + dependencies: + iterall "1.1.x" + graphql@^14.6.0: version "14.7.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" @@ -10866,6 +11089,11 @@ imagemin@^7.0.1: p-pipe "^3.0.0" replace-ext "^1.0.0" +immutable-tuple@^0.4.9: + version "0.4.10" + resolved "https://registry.npmjs.org/immutable-tuple/-/immutable-tuple-0.4.10.tgz#e0b1625384f514084a7a84b749a3bb26e9179929" + integrity sha512-45jheDbc3Kr5Cw8EtDD+4woGRUV0utIrJBZT8XH0TPZRfm8tzT0/sLGGzyyCCFqFMG5Pv5Igf3WY/arn6+8V9Q== + import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" @@ -11993,6 +12221,11 @@ it-to-stream@^0.1.1: p-fifo "^1.0.0" readable-stream "^3.6.0" +iterall@1.1.x: + version "1.1.4" + resolved "https://registry.npmjs.org/iterall/-/iterall-1.1.4.tgz#0db40d38fdcf53ae14dc8ec674e62ab190d52cfc" + integrity sha512-eaDsM/PY8D/X5mYQhecVc5/9xvSHED7yPON+ffQroBeTuqUVm7dfphMkK8NksXuImqZlVRoKtrNfMIVCYIqaUQ== + iterall@^1.2.1, iterall@^1.2.2: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" @@ -12907,6 +13140,11 @@ lodash-es@^4.17.14: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.15.tgz#21bd96839354412f23d7a10340e5eac6ee455d78" integrity sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ== +lodash-es@^4.17.4, lodash-es@^4.2.1: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -13879,6 +14117,14 @@ multicodec@^2.0.1: uint8arrays "1.0.0" varint "^5.0.0" +multicodec@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/multicodec/-/multicodec-2.1.0.tgz#b66dff2184e91e74ac68981e0deba2591bbf1f87" + integrity sha512-7AYpK/avswOWvnqQ9/jOkQCS7Fp4aKxw5ojvn5gyK2VQTZz3YVXeLMzoIZDBy745JSfJMXkTS0ptnHci5Mt1mA== + dependencies: + uint8arrays "1.1.0" + varint "^6.0.0" + multihashes@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.19.tgz#d7493cf028e48747122f350908ea13d12d204813" @@ -13906,6 +14152,15 @@ multihashes@^3.0.1: uint8arrays "^1.0.0" varint "^6.0.0" +multihashes@^3.1.0: + version "3.1.2" + resolved "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz#ffa5e50497aceb7911f7b4a3b6cada9b9730edfc" + integrity sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ== + dependencies: + multibase "^3.1.0" + uint8arrays "^2.0.5" + varint "^6.0.0" + multihashing-async@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-1.0.0.tgz#578a5dffc0d47caac9b255406eae24f02bff4e55" @@ -14096,6 +14351,11 @@ node-fetch@2.1.2: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + node-fetch@^1.0.1: version "1.7.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" @@ -14596,6 +14856,13 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" +optimism@^0.6.8: + version "0.6.9" + resolved "https://registry.npmjs.org/optimism/-/optimism-0.6.9.tgz#19258ff8b3be0cea29ac35f06bff818e026e30bb" + integrity sha512-xoQm2lvXbCA9Kd7SCx6y713Y7sZ6fUc5R6VYpoL5M6svKJbTuvtNopexK8sO8K4s0EOUYHuPN2+yAEsNyRggkQ== + dependencies: + immutable-tuple "^0.4.9" + optimize-css-assets-webpack-plugin@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" @@ -16511,11 +16778,30 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -redux-thunk@^2.3.0: +redux-persist@^4.6.0: + version "4.10.2" + resolved "https://registry.npmjs.org/redux-persist/-/redux-persist-4.10.2.tgz#8efdb16cfe882c521a78a6d0bfdfef2437f49f96" + integrity sha512-U+e0ieMGC69Zr72929iJW40dEld7Mflh6mu0eJtVMLGfMq/aJqjxUM1hzyUWMR1VUyAEEdPHuQmeq5ti9krIgg== + dependencies: + json-stringify-safe "^5.0.1" + lodash "^4.17.4" + lodash-es "^4.17.4" + +redux-thunk@^2.2.0, redux-thunk@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== +redux@^3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" + integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.3" + redux@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" @@ -18319,7 +18605,7 @@ svgo@1.3.2, svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-observable@^1.0.4, symbol-observable@^1.2.0: +symbol-observable@^1.0.2, symbol-observable@^1.0.3, symbol-observable@^1.0.4, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -18773,6 +19059,13 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf" integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q== +ts-invariant@^0.4.0: + version "0.4.4" + resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" + integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== + dependencies: + tslib "^1.9.3" + ts-jest@^24.2.0: version "24.3.0" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.3.0.tgz#b97814e3eab359ea840a1ac112deae68aa440869" @@ -18933,7 +19226,7 @@ uint8arrays@1.0.0: multibase "^3.0.0" web-encoding "^1.0.2" -uint8arrays@^1.0.0, uint8arrays@^1.1.0: +uint8arrays@1.1.0, uint8arrays@^1.0.0, uint8arrays@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-1.1.0.tgz#d034aa65399a9fd213a1579e323f0b29f67d0ed2" integrity sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA== @@ -18941,6 +19234,14 @@ uint8arrays@^1.0.0, uint8arrays@^1.1.0: multibase "^3.0.0" web-encoding "^1.0.2" +uint8arrays@^2.0.5: + version "2.1.2" + resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.2.tgz#7b4ff064e0d033bae3ecbf15860dd60458d6aebd" + integrity sha512-/VcLZbPMs/dk23u22IZlPWycfBxntpwrvISHQs93/OdRlUTnQw9Uzmzaoq7DgJAZl1SlP/kw+NhbjFAEED42rQ== + dependencies: + multibase "^3.0.0" + web-encoding "^1.0.5" + umask@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" @@ -19355,7 +19656,7 @@ uuid@3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: +uuid@3.x, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -19529,6 +19830,13 @@ web-encoding@^1.0.4: resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.0.4.tgz#0398d39ce2cbef5ed2617080750ed874e6153aea" integrity sha512-DcXs2lbVPzuJmn2kuDEwul2oZg7p4YMa5J2f0YzsOBHaAnBYGPNUB/rJ74DTjTKpw7F0+lSsVM8sFHE2UyBixg== +web-encoding@^1.0.5: + version "1.1.0" + resolved "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.0.tgz#b8ed50f0e23ba239542ba11ebe885b75a0b95bea" + integrity sha512-KzYonGdJnZB3qvhK8hKca5qXk/wp+hgwGNTY1TnqtF2CzDzpN8szOC3ejhX9+wbhCq3vQs/TjM8BykS1kor0lQ== + optionalDependencies: + "@zxing/text-encoding" "0.9.0" + web-namespaces@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" @@ -20208,6 +20516,19 @@ yurnalist@^1.1.2: strip-ansi "^5.2.0" strip-bom "^4.0.0" +zen-observable-ts@^0.8.12, zen-observable-ts@^0.8.21: + version "0.8.21" + resolved "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" + integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== + dependencies: + tslib "^1.9.3" + zen-observable "^0.8.0" + +zen-observable@^0.8.0: + version "0.8.15" + resolved "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + zip-stream@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.3.tgz#26cc4bdb93641a8590dd07112e1f77af1758865b"