mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-19 19:21:33 +10:00
Merge remote-tracking branch 'upstream/develop' into develop
This commit is contained in:
8
.env
Normal file
8
.env
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
FIREBASE_APIKEY=""
|
||||||
|
FIREBASE_APPID=""
|
||||||
|
FIREBASE_AUTHDOMAIN=""
|
||||||
|
FIREBASE_DATABASEURL=""
|
||||||
|
FIREBASE_MEASUREMENTID=""
|
||||||
|
FIREBASE_MESSAGINGSENDERID=""
|
||||||
|
FIREBASE_PROJECTID=""
|
||||||
|
FIREBASE_STORAGEBUCKET=""
|
||||||
@ -1,19 +1,17 @@
|
|||||||
{
|
{
|
||||||
"hosting": [{
|
"hosting": [
|
||||||
|
{
|
||||||
"site": "rxresume",
|
"site": "rxresume",
|
||||||
"public": "public",
|
"public": "public",
|
||||||
"ignore": [
|
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
|
||||||
"firebase.json",
|
|
||||||
"**/.*",
|
|
||||||
"**/node_modules/**"
|
|
||||||
],
|
|
||||||
"rewrites": [
|
"rewrites": [
|
||||||
{
|
{
|
||||||
"source": "**",
|
"source": "**",
|
||||||
"destination": "/index.html"
|
"destination": "/index.html"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}],
|
}
|
||||||
|
],
|
||||||
"emulators": {
|
"emulators": {
|
||||||
"functions": {
|
"functions": {
|
||||||
"port": 5001
|
"port": 5001
|
||||||
|
|||||||
@ -17,7 +17,9 @@ async function asyncForEach(array, callback) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.deleteUser = functions.https.onCall((_, { auth }) => {
|
exports.deleteUser = functions
|
||||||
|
.runWith({ memory: '256MB' })
|
||||||
|
.https.onCall((_, { auth }) => {
|
||||||
if (!auth) {
|
if (!auth) {
|
||||||
throw new functions.https.HttpsError(
|
throw new functions.https.HttpsError(
|
||||||
'failed-precondition',
|
'failed-precondition',
|
||||||
@ -44,7 +46,9 @@ exports.deleteUser = functions.https.onCall((_, { auth }) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
exports.printResume = functions.https.onCall(async ({ id, type }, { auth }) => {
|
exports.printResume = functions
|
||||||
|
.runWith({ memory: '1GB' })
|
||||||
|
.https.onCall(async ({ id, type }, { auth }) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
throw new functions.https.HttpsError(
|
throw new functions.https.HttpsError(
|
||||||
'invalid-argument',
|
'invalid-argument',
|
||||||
@ -68,6 +72,7 @@ exports.printResume = functions.https.onCall(async ({ id, type }, { auth }) => {
|
|||||||
|
|
||||||
const browser = await puppeteer.launch({
|
const browser = await puppeteer.launch({
|
||||||
headless: true,
|
headless: true,
|
||||||
|
args: ['--no-sandbox'],
|
||||||
});
|
});
|
||||||
const page = await browser.newPage();
|
const page = await browser.newPage();
|
||||||
await page.goto(BASE_URL + id, {
|
await page.goto(BASE_URL + id, {
|
||||||
|
|||||||
382
functions/package-lock.json
generated
382
functions/package-lock.json
generated
@ -58,9 +58,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@google-cloud/common": {
|
"@google-cloud/common": {
|
||||||
"version": "3.4.0",
|
"version": "3.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.5.0.tgz",
|
||||||
"integrity": "sha512-bVMQlK4aZEeopo2oJwDUJiBhPVjRRQHfFCCv9JowmKS3L//PBHNDJzC/LxJixGZEU3fh3YXkUwm67JZ5TBCCNQ==",
|
"integrity": "sha512-10d7ZAvKhq47L271AqvHEd8KzJqGU45TY+rwM2Z3JHuB070FeTi7oJJd7elfrnKaEvaktw3hH2wKnRWxk/3oWQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@google-cloud/projectify": "^2.0.0",
|
"@google-cloud/projectify": "^2.0.0",
|
||||||
@ -69,20 +69,20 @@
|
|||||||
"duplexify": "^4.1.1",
|
"duplexify": "^4.1.1",
|
||||||
"ent": "^2.2.0",
|
"ent": "^2.2.0",
|
||||||
"extend": "^3.0.2",
|
"extend": "^3.0.2",
|
||||||
"google-auth-library": "^6.0.0",
|
"google-auth-library": "^6.1.1",
|
||||||
"retry-request": "^4.1.1",
|
"retry-request": "^4.1.1",
|
||||||
"teeny-request": "^7.0.0"
|
"teeny-request": "^7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@google-cloud/firestore": {
|
"@google-cloud/firestore": {
|
||||||
"version": "4.4.0",
|
"version": "4.8.0",
|
||||||
"resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-4.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-4.8.0.tgz",
|
||||||
"integrity": "sha512-nixsumd4C7eL+hHEgyihspzhBBNe3agsvNFRX0xfqO3uR/6ro4CUj9XdcCvdnSSd3yTyqKfdBSRK2fEj1jIbYg==",
|
"integrity": "sha512-cBPo7QQG+aUhS7AIr6fDlA9KIX0/U26rKZyL2K/L68LArDQzgBk1/xOiMoflHRNDQARwCQ0PAZmw8V8CXg7vTg==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fast-deep-equal": "^3.1.1",
|
"fast-deep-equal": "^3.1.1",
|
||||||
"functional-red-black-tree": "^1.0.1",
|
"functional-red-black-tree": "^1.0.1",
|
||||||
"google-gax": "^2.2.0"
|
"google-gax": "^2.9.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@google-cloud/paginator": {
|
"@google-cloud/paginator": {
|
||||||
@ -108,22 +108,22 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"@google-cloud/storage": {
|
"@google-cloud/storage": {
|
||||||
"version": "5.3.0",
|
"version": "5.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.6.0.tgz",
|
||||||
"integrity": "sha512-3t5UF3SZ14Bw2kcBHubCai6EIugU2GnQOstYWVSFuoO8IJ94RAaIOPq/dtexvQbUTpBTAGpd5smVR9WPL1mJVw==",
|
"integrity": "sha512-nLcym8IuCzy1O7tNTXNFuMHfX900sTM3kSTqbKe7oFSoKUiaIM+FHuuuDimMMlieY6StA1xYNPRFFHz57Nv8YQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@google-cloud/common": "^3.3.0",
|
"@google-cloud/common": "^3.5.0",
|
||||||
"@google-cloud/paginator": "^3.0.0",
|
"@google-cloud/paginator": "^3.0.0",
|
||||||
"@google-cloud/promisify": "^2.0.0",
|
"@google-cloud/promisify": "^2.0.0",
|
||||||
"arrify": "^2.0.0",
|
"arrify": "^2.0.0",
|
||||||
"compressible": "^2.0.12",
|
"compressible": "^2.0.12",
|
||||||
"concat-stream": "^2.0.0",
|
|
||||||
"date-and-time": "^0.14.0",
|
"date-and-time": "^0.14.0",
|
||||||
"duplexify": "^3.5.0",
|
"duplexify": "^4.0.0",
|
||||||
"extend": "^3.0.2",
|
"extend": "^3.0.2",
|
||||||
"gaxios": "^3.0.0",
|
"gaxios": "^4.0.0",
|
||||||
"gcs-resumable-upload": "^3.1.0",
|
"gcs-resumable-upload": "^3.1.0",
|
||||||
|
"get-stream": "^6.0.0",
|
||||||
"hash-stream-validation": "^0.2.2",
|
"hash-stream-validation": "^0.2.2",
|
||||||
"mime": "^2.2.0",
|
"mime": "^2.2.0",
|
||||||
"mime-types": "^2.0.8",
|
"mime-types": "^2.0.8",
|
||||||
@ -135,63 +135,21 @@
|
|||||||
"xdg-basedir": "^4.0.0"
|
"xdg-basedir": "^4.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"duplexify": {
|
|
||||||
"version": "3.7.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
|
|
||||||
"integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
|
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
|
||||||
"end-of-stream": "^1.0.0",
|
|
||||||
"inherits": "^2.0.1",
|
|
||||||
"readable-stream": "^2.0.0",
|
|
||||||
"stream-shift": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"p-limit": {
|
"p-limit": {
|
||||||
"version": "3.0.2",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||||
"integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==",
|
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"p-try": "^2.0.0"
|
"yocto-queue": "^0.1.0"
|
||||||
}
|
|
||||||
},
|
|
||||||
"readable-stream": {
|
|
||||||
"version": "2.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
|
|
||||||
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
|
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
|
||||||
"core-util-is": "~1.0.0",
|
|
||||||
"inherits": "~2.0.3",
|
|
||||||
"isarray": "~1.0.0",
|
|
||||||
"process-nextick-args": "~2.0.0",
|
|
||||||
"safe-buffer": "~5.1.1",
|
|
||||||
"string_decoder": "~1.1.1",
|
|
||||||
"util-deprecate": "~1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"safe-buffer": {
|
|
||||||
"version": "5.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
|
||||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"string_decoder": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
|
||||||
"safe-buffer": "~5.1.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@grpc/grpc-js": {
|
"@grpc/grpc-js": {
|
||||||
"version": "1.1.7",
|
"version": "1.1.8",
|
||||||
"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.8.tgz",
|
||||||
"integrity": "sha512-EuxMstI0u778dp0nk6Fe3gHXYPeV6FYsWOe0/QFwxv1NQ6bc5Wl/0Yxa4xl9uBlKElL6AIxuASmSfu7KEJhqiw==",
|
"integrity": "sha512-64hg5rmEm6F/NvlWERhHmmgxbWU8nD2TMWE+9TvG7/WcOrFT3fzg/Uu631pXRFwmJ4aWO/kp9vVSlr8FUjBDLA==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@grpc/proto-loader": "^0.6.0-pre14",
|
"@grpc/proto-loader": "^0.6.0-pre14",
|
||||||
@ -214,9 +172,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "12.12.62",
|
"version": "12.19.8",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.62.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.8.tgz",
|
||||||
"integrity": "sha512-qAfo81CsD7yQIM9mVyh6B/U47li5g7cfpVQEDMfQeF8pSZVwzbhwU3crc0qG4DmpsebpJPR49AKOExQyJ05Cpg==",
|
"integrity": "sha512-D4k2kNi0URNBxIRCb1khTnkWNHv8KSL1owPmS/K5e5t8B2GzMReY7AsJIY1BnP5KdlgC4rj9jk2IkDMasIE7xg==",
|
||||||
"optional": true
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -310,16 +268,10 @@
|
|||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/color-name": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"@types/connect": {
|
"@types/connect": {
|
||||||
"version": "3.4.33",
|
"version": "3.4.34",
|
||||||
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz",
|
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz",
|
||||||
"integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==",
|
"integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
@ -335,9 +287,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/express-serve-static-core": {
|
"@types/express-serve-static-core": {
|
||||||
"version": "4.17.13",
|
"version": "4.17.15",
|
||||||
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz",
|
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.15.tgz",
|
||||||
"integrity": "sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==",
|
"integrity": "sha512-pb71P0BrBAx7cQE+/7QnA1HTQUkdBKMlkPY7lHUMn0YvPJkL2UA+KW3BdWQ309IT+i9En/qm45ZxpjIcpgEhNQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"@types/qs": "*",
|
"@types/qs": "*",
|
||||||
@ -345,9 +297,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/lodash": {
|
"@types/lodash": {
|
||||||
"version": "4.14.161",
|
"version": "4.14.165",
|
||||||
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz",
|
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz",
|
||||||
"integrity": "sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==",
|
"integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/long": {
|
"@types/long": {
|
||||||
@ -362,9 +314,9 @@
|
|||||||
"integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q=="
|
"integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q=="
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "10.17.35",
|
"version": "10.17.48",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.35.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz",
|
||||||
"integrity": "sha512-gXx7jAWpMddu0f7a+L+txMplp3FnHl53OhQIF9puXKq3hDGY/GjH+MF04oWnV/adPSCrbtHumDCFwzq2VhltWA=="
|
"integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag=="
|
||||||
},
|
},
|
||||||
"@types/qs": {
|
"@types/qs": {
|
||||||
"version": "6.9.5",
|
"version": "6.9.5",
|
||||||
@ -377,12 +329,12 @@
|
|||||||
"integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
|
"integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
|
||||||
},
|
},
|
||||||
"@types/serve-static": {
|
"@types/serve-static": {
|
||||||
"version": "1.13.5",
|
"version": "1.13.8",
|
||||||
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.5.tgz",
|
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz",
|
||||||
"integrity": "sha512-6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==",
|
"integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/express-serve-static-core": "*",
|
"@types/mime": "*",
|
||||||
"@types/mime": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/yauzl": {
|
"@types/yauzl": {
|
||||||
@ -413,9 +365,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"agent-base": {
|
"agent-base": {
|
||||||
"version": "6.0.1",
|
"version": "6.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
|
||||||
"integrity": "sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==",
|
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "4"
|
"debug": "4"
|
||||||
@ -428,12 +380,11 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"ansi-styles": {
|
"ansi-styles": {
|
||||||
"version": "4.2.1",
|
"version": "4.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||||
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
|
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/color-name": "^1.1.1",
|
|
||||||
"color-convert": "^2.0.1"
|
"color-convert": "^2.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -454,9 +405,9 @@
|
|||||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||||
},
|
},
|
||||||
"base64-js": {
|
"base64-js": {
|
||||||
"version": "1.3.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
|
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
||||||
},
|
},
|
||||||
"bignumber.js": {
|
"bignumber.js": {
|
||||||
"version": "9.0.1",
|
"version": "9.0.1",
|
||||||
@ -516,12 +467,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"buffer": {
|
"buffer": {
|
||||||
"version": "5.6.0",
|
"version": "5.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||||
"integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
|
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"base64-js": "^1.0.2",
|
"base64-js": "^1.3.1",
|
||||||
"ieee754": "^1.1.4"
|
"ieee754": "^1.1.13"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"buffer-crc32": {
|
"buffer-crc32": {
|
||||||
@ -534,12 +485,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
|
||||||
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
|
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
|
||||||
},
|
},
|
||||||
"buffer-from": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"bytes": {
|
"bytes": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
|
||||||
@ -596,18 +541,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||||
},
|
},
|
||||||
"concat-stream": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
|
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
|
||||||
"buffer-from": "^1.0.0",
|
|
||||||
"inherits": "^2.0.3",
|
|
||||||
"readable-stream": "^3.0.2",
|
|
||||||
"typedarray": "^0.0.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"configstore": {
|
"configstore": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
|
||||||
@ -652,12 +585,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
||||||
},
|
},
|
||||||
"core-util-is": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
|
||||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"cors": {
|
"cors": {
|
||||||
"version": "2.8.5",
|
"version": "2.8.5",
|
||||||
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
|
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
|
||||||
@ -680,9 +607,9 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"debug": {
|
"debug": {
|
||||||
"version": "4.2.0",
|
"version": "4.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||||
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
|
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ms": "2.1.2"
|
"ms": "2.1.2"
|
||||||
}
|
}
|
||||||
@ -704,9 +631,9 @@
|
|||||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||||
},
|
},
|
||||||
"devtools-protocol": {
|
"devtools-protocol": {
|
||||||
"version": "0.0.799653",
|
"version": "0.0.818844",
|
||||||
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.799653.tgz",
|
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz",
|
||||||
"integrity": "sha512-t1CcaZbvm8pOlikqrsIM9GOa7Ipp07+4h/q9u0JXBWjPCjHdBl9KkddX87Vv9vBHoBGtwV79sYQNGnQM6iS5gg=="
|
"integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg=="
|
||||||
},
|
},
|
||||||
"dicer": {
|
"dicer": {
|
||||||
"version": "0.3.0",
|
"version": "0.3.0",
|
||||||
@ -863,6 +790,16 @@
|
|||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
"get-stream": "^5.1.0",
|
"get-stream": "^5.1.0",
|
||||||
"yauzl": "^2.10.0"
|
"yauzl": "^2.10.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"get-stream": {
|
||||||
|
"version": "5.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
|
||||||
|
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
||||||
|
"requires": {
|
||||||
|
"pump": "^3.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fast-deep-equal": {
|
"fast-deep-equal": {
|
||||||
@ -932,13 +869,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"firebase-admin": {
|
"firebase-admin": {
|
||||||
"version": "9.2.0",
|
"version": "9.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.4.1.tgz",
|
||||||
"integrity": "sha512-LhnMYl71B4gP1FlTLfwaYlOWhBCAcNF+byb2CPTfaW/T4hkp4qlXOgo2bws/zbAv5X9GTFqGir3KexMslVGsIA==",
|
"integrity": "sha512-y9r2Mz2x1WTr60YrCDqz8Lw70DlwIvRIieVltP+UdRogkVpfnvyd+bi4D0KPlujW3teqcFPmxuzsXB+DP5vGfQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@firebase/database": "^0.6.10",
|
"@firebase/database": "^0.6.10",
|
||||||
"@firebase/database-types": "^0.5.2",
|
"@firebase/database-types": "^0.5.2",
|
||||||
"@google-cloud/firestore": "^4.0.0",
|
"@google-cloud/firestore": "^4.5.0",
|
||||||
"@google-cloud/storage": "^5.3.0",
|
"@google-cloud/storage": "^5.3.0",
|
||||||
"@types/node": "^10.10.0",
|
"@types/node": "^10.10.0",
|
||||||
"dicer": "^0.3.0",
|
"dicer": "^0.3.0",
|
||||||
@ -947,9 +884,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"firebase-functions": {
|
"firebase-functions": {
|
||||||
"version": "3.11.0",
|
"version": "3.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-3.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/firebase-functions/-/firebase-functions-3.13.0.tgz",
|
||||||
"integrity": "sha512-i1uMhZ/M6i5SCI3ulKo7EWX0/LD+I5o6N+sk0HbOWfzyWfOl0iJTvQkR3BVDcjrlhPVC4xG1bDTLxd+DTkLqaw==",
|
"integrity": "sha512-tnltJL5KlGtbeBD9scsVjoKTSTMeo6EAy1gsdOfRlrwAu6idgLRKYVdmw0YymS8N7SwJ3CXo+3fuvSSihKhXbA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/express": "4.17.3",
|
"@types/express": "4.17.3",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
@ -958,9 +895,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"firebase-functions-test": {
|
"firebase-functions-test": {
|
||||||
"version": "0.2.2",
|
"version": "0.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/firebase-functions-test/-/firebase-functions-test-0.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/firebase-functions-test/-/firebase-functions-test-0.2.3.tgz",
|
||||||
"integrity": "sha512-SlHLnpKRn5nMsg4Y0CUTGs/R8NatghJCYZGw3fHzaS/5xDqwWPWuxmdHHc+MSuxrSrUROEwOrDTwrbjmRaSNjw==",
|
"integrity": "sha512-zYX0QTm53wCazuej7O0xqbHl90r/v1PTXt/hwa0jo1YF8nDM+iBKnLDlkIoW66MDd0R6aGg4BvKzTTdJpvigUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/lodash": "^4.14.104",
|
"@types/lodash": "^4.14.104",
|
||||||
@ -994,9 +931,9 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"gaxios": {
|
"gaxios": {
|
||||||
"version": "3.2.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.1.0.tgz",
|
||||||
"integrity": "sha512-+6WPeVzPvOshftpxJwRi2Ozez80tn/hdtOUag7+gajDHRJvAblKxTFSSMPtr2hmnLy7p0mvYz0rMXLBl8pSO7Q==",
|
"integrity": "sha512-vb0to8xzGnA2qcgywAjtshOKKVDf2eQhJoiL6fHhgW5tVN7wNk7egnYIO9zotfn3lQ3De1VPdf7V5/BWfCtCmg==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"abort-controller": "^3.0.0",
|
"abort-controller": "^3.0.0",
|
||||||
@ -1007,12 +944,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gcp-metadata": {
|
"gcp-metadata": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz",
|
||||||
"integrity": "sha512-vQZD57cQkqIA6YPGXM/zc+PIZfNRFdukWGsGZ5+LcJzesi5xp6Gn7a02wRJi4eXPyArNMIYpPET4QMxGqtlk6Q==",
|
"integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"gaxios": "^3.0.0",
|
"gaxios": "^4.0.0",
|
||||||
"json-bigint": "^1.0.0"
|
"json-bigint": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1029,6 +966,21 @@
|
|||||||
"google-auth-library": "^6.0.0",
|
"google-auth-library": "^6.0.0",
|
||||||
"pumpify": "^2.0.0",
|
"pumpify": "^2.0.0",
|
||||||
"stream-events": "^1.0.4"
|
"stream-events": "^1.0.4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"gaxios": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-+6WPeVzPvOshftpxJwRi2Ozez80tn/hdtOUag7+gajDHRJvAblKxTFSSMPtr2hmnLy7p0mvYz0rMXLBl8pSO7Q==",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"abort-controller": "^3.0.0",
|
||||||
|
"extend": "^3.0.2",
|
||||||
|
"https-proxy-agent": "^5.0.0",
|
||||||
|
"is-stream": "^2.0.0",
|
||||||
|
"node-fetch": "^2.3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"get-caller-file": {
|
"get-caller-file": {
|
||||||
@ -1038,12 +990,10 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"get-stream": {
|
"get-stream": {
|
||||||
"version": "5.2.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz",
|
||||||
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
"integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==",
|
||||||
"requires": {
|
"optional": true
|
||||||
"pump": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"glob": {
|
"glob": {
|
||||||
"version": "7.1.6",
|
"version": "7.1.6",
|
||||||
@ -1059,26 +1009,26 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"google-auth-library": {
|
"google-auth-library": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.3.tgz",
|
||||||
"integrity": "sha512-GbalszIADE1YPWhUyfFMrkLhFHnlAgoRcqGVW+MsLDPsuaOB5MRPk7NNafPDv9SherNE4EKzcYuxMJjaxzXMOw==",
|
"integrity": "sha512-m9mwvY3GWbr7ZYEbl61isWmk+fvTmOt0YNUfPOUY2VH8K5pZlAIWJjxEi0PqR3OjMretyiQLI6GURMrPSwHQ2g==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"arrify": "^2.0.0",
|
"arrify": "^2.0.0",
|
||||||
"base64-js": "^1.3.0",
|
"base64-js": "^1.3.0",
|
||||||
"ecdsa-sig-formatter": "^1.0.11",
|
"ecdsa-sig-formatter": "^1.0.11",
|
||||||
"fast-text-encoding": "^1.0.0",
|
"fast-text-encoding": "^1.0.0",
|
||||||
"gaxios": "^3.0.0",
|
"gaxios": "^4.0.0",
|
||||||
"gcp-metadata": "^4.1.0",
|
"gcp-metadata": "^4.2.0",
|
||||||
"gtoken": "^5.0.0",
|
"gtoken": "^5.0.4",
|
||||||
"jws": "^4.0.0",
|
"jws": "^4.0.0",
|
||||||
"lru-cache": "^6.0.0"
|
"lru-cache": "^6.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"google-gax": {
|
"google-gax": {
|
||||||
"version": "2.9.0",
|
"version": "2.9.2",
|
||||||
"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.9.2.tgz",
|
||||||
"integrity": "sha512-MFMwA7Fb8PEwjnYwfGXjZMidCNyMl3gSnvS/+kS8TQioJZQDpzK+W3dmwyNyig/U13+kbABqDnbkkAXJ5NiUkw==",
|
"integrity": "sha512-Pve4osEzNKpBZqFXMfGKBbKCtgnHpUe5IQMh5Ou+Xtg8nLcba94L3gF0xgM5phMdGRRqJn0SMjcuEVmOYu7EBg==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@grpc/grpc-js": "~1.1.1",
|
"@grpc/grpc-js": "~1.1.1",
|
||||||
@ -1086,7 +1036,7 @@
|
|||||||
"@types/long": "^4.0.0",
|
"@types/long": "^4.0.0",
|
||||||
"abort-controller": "^3.0.0",
|
"abort-controller": "^3.0.0",
|
||||||
"duplexify": "^4.0.0",
|
"duplexify": "^4.0.0",
|
||||||
"google-auth-library": "^6.0.0",
|
"google-auth-library": "^6.1.3",
|
||||||
"is-stream-ended": "^0.1.4",
|
"is-stream-ended": "^0.1.4",
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
"protobufjs": "^6.9.0",
|
"protobufjs": "^6.9.0",
|
||||||
@ -1109,13 +1059,13 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"gtoken": {
|
"gtoken": {
|
||||||
"version": "5.0.3",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.1.0.tgz",
|
||||||
"integrity": "sha512-Nyd1wZCMRc2dj/mAD0LlfQLcAO06uKdpKJXvK85SGrF5+5+Bpfil9u/2aw35ltvEHjvl0h5FMKN5knEU+9JrOg==",
|
"integrity": "sha512-4d8N6Lk8TEAHl9vVoRVMh9BNOKWVgl2DdNtr3428O75r3QFrF/a5MMu851VmK0AA8+iSvbwRv69k5XnMLURGhg==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"gaxios": "^3.0.0",
|
"gaxios": "^4.0.0",
|
||||||
"google-p12-pem": "^3.0.0",
|
"google-p12-pem": "^3.0.3",
|
||||||
"jws": "^4.0.0",
|
"jws": "^4.0.0",
|
||||||
"mime": "^2.2.0"
|
"mime": "^2.2.0"
|
||||||
}
|
}
|
||||||
@ -1180,9 +1130,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ieee754": {
|
"ieee754": {
|
||||||
"version": "1.1.13",
|
"version": "1.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
|
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||||
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
|
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
|
||||||
},
|
},
|
||||||
"imurmurhash": {
|
"imurmurhash": {
|
||||||
"version": "0.1.4",
|
"version": "0.1.4",
|
||||||
@ -1239,12 +1189,6 @@
|
|||||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"isarray": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"json-bigint": {
|
"json-bigint": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
|
||||||
@ -1470,8 +1414,7 @@
|
|||||||
"node-fetch": {
|
"node-fetch": {
|
||||||
"version": "2.6.1",
|
"version": "2.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
|
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"node-forge": {
|
"node-forge": {
|
||||||
"version": "0.10.0",
|
"version": "0.10.0",
|
||||||
@ -1562,21 +1505,15 @@
|
|||||||
"find-up": "^4.0.0"
|
"find-up": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"process-nextick-args": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"progress": {
|
"progress": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
||||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
|
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
|
||||||
},
|
},
|
||||||
"protobufjs": {
|
"protobufjs": {
|
||||||
"version": "6.10.1",
|
"version": "6.10.2",
|
||||||
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.1.tgz",
|
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz",
|
||||||
"integrity": "sha512-pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ==",
|
"integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@protobufjs/aspromise": "^1.1.2",
|
"@protobufjs/aspromise": "^1.1.2",
|
||||||
@ -1595,9 +1532,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "13.13.21",
|
"version": "13.13.35",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.21.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.35.tgz",
|
||||||
"integrity": "sha512-tlFWakSzBITITJSxHV4hg4KvrhR/7h3xbJdSFbYJBVzKubrASbnnIFuSgolUh7qKGo/ZeJPKUfbZ0WS6Jp14DQ==",
|
"integrity": "sha512-q9aeOGwv+RRou/ca4aJVUM/jD5u7LBexu+rq9PkA/NhHNn8JifcMo94soKm0b6JGSfw/PSNdqtc428OscMvEYA==",
|
||||||
"optional": true
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1637,14 +1574,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"puppeteer": {
|
"puppeteer": {
|
||||||
"version": "5.3.1",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.5.0.tgz",
|
||||||
"integrity": "sha512-YTM1RaBeYrj6n7IlRXRYLqJHF+GM7tasbvrNFx6w1S16G76NrPq7oYFKLDO+BQsXNtS8kW2GxWCXjIMPvfDyaQ==",
|
"integrity": "sha512-OM8ZvTXAhfgFA7wBIIGlPQzvyEETzDjeRa4mZRCRHxYL+GNH5WAuYUQdja3rpWZvkX/JKqmuVgbsxDNsDFjMEg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "^4.1.0",
|
"debug": "^4.1.0",
|
||||||
"devtools-protocol": "0.0.799653",
|
"devtools-protocol": "0.0.818844",
|
||||||
"extract-zip": "^2.0.0",
|
"extract-zip": "^2.0.0",
|
||||||
"https-proxy-agent": "^4.0.0",
|
"https-proxy-agent": "^4.0.0",
|
||||||
|
"node-fetch": "^2.6.1",
|
||||||
"pkg-dir": "^4.2.0",
|
"pkg-dir": "^4.2.0",
|
||||||
"progress": "^2.0.1",
|
"progress": "^2.0.1",
|
||||||
"proxy-from-env": "^1.0.0",
|
"proxy-from-env": "^1.0.0",
|
||||||
@ -1887,14 +1825,14 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"tar-fs": {
|
"tar-fs": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
|
||||||
"integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==",
|
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"chownr": "^1.1.1",
|
"chownr": "^1.1.1",
|
||||||
"mkdirp-classic": "^0.5.2",
|
"mkdirp-classic": "^0.5.2",
|
||||||
"pump": "^3.0.0",
|
"pump": "^3.0.0",
|
||||||
"tar-stream": "^2.0.0"
|
"tar-stream": "^2.1.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tar-stream": {
|
"tar-stream": {
|
||||||
@ -1933,9 +1871,9 @@
|
|||||||
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
||||||
},
|
},
|
||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "1.13.0",
|
"version": "1.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||||
"integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
|
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||||
},
|
},
|
||||||
"type-is": {
|
"type-is": {
|
||||||
"version": "1.6.18",
|
"version": "1.6.18",
|
||||||
@ -1946,12 +1884,6 @@
|
|||||||
"mime-types": "~2.1.24"
|
"mime-types": "~2.1.24"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"typedarray": {
|
|
||||||
"version": "0.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
|
||||||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"typedarray-to-buffer": {
|
"typedarray-to-buffer": {
|
||||||
"version": "3.1.5",
|
"version": "3.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
|
||||||
@ -1995,9 +1927,9 @@
|
|||||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
||||||
},
|
},
|
||||||
"uuid": {
|
"uuid": {
|
||||||
"version": "8.3.0",
|
"version": "8.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||||
"integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==",
|
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"vary": {
|
"vary": {
|
||||||
@ -2055,9 +1987,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ws": {
|
"ws": {
|
||||||
"version": "7.3.1",
|
"version": "7.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz",
|
||||||
"integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA=="
|
"integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ=="
|
||||||
},
|
},
|
||||||
"xdg-basedir": {
|
"xdg-basedir": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
@ -2066,9 +1998,9 @@
|
|||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"y18n": {
|
"y18n": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
|
||||||
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
|
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
@ -2114,6 +2046,12 @@
|
|||||||
"buffer-crc32": "~0.2.3",
|
"buffer-crc32": "~0.2.3",
|
||||||
"fd-slicer": "~1.1.0"
|
"fd-slicer": "~1.1.0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"yocto-queue": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
||||||
|
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
|
||||||
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,15 +9,15 @@
|
|||||||
"logs": "firebase functions:log"
|
"logs": "firebase functions:log"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "10"
|
"node": "12"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"firebase-admin": "^9.2.0",
|
"firebase-admin": "^9.4.1",
|
||||||
"firebase-functions": "^3.11.0",
|
"firebase-functions": "^3.13.0",
|
||||||
"puppeteer": "5.3.1"
|
"puppeteer": "5.5.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"firebase-functions-test": "^0.2.2"
|
"firebase-functions-test": "^0.2.3"
|
||||||
},
|
},
|
||||||
"private": true
|
"private": true
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@ module.exports = {
|
|||||||
title: 'Reactive Resume',
|
title: 'Reactive Resume',
|
||||||
siteUrl: 'https://rxresu.me',
|
siteUrl: 'https://rxresu.me',
|
||||||
description: 'A free and open source resume builder.',
|
description: 'A free and open source resume builder.',
|
||||||
version: '2.3',
|
version: '2.3.3',
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
'gatsby-plugin-react-helmet',
|
'gatsby-plugin-react-helmet',
|
||||||
|
|||||||
5922
package-lock.json
generated
5922
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
29
package.json
29
package.json
@ -7,28 +7,27 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"lint:fix": "eslint --fix .",
|
"lint:fix": "eslint --fix .",
|
||||||
"prebuild": "npm run test",
|
|
||||||
"build": "gatsby build",
|
"build": "gatsby build",
|
||||||
"develop": "gatsby develop",
|
"develop": "gatsby develop",
|
||||||
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\"",
|
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\"",
|
||||||
"start": "npm run develop",
|
"start": "npm run develop",
|
||||||
"serve": "gatsby serve",
|
"serve": "gatsby serve",
|
||||||
"clean": "gatsby clean",
|
"clean": "gatsby clean",
|
||||||
"test": "jest"
|
"test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@material-ui/core": "^4.11.2",
|
"@material-ui/core": "^4.11.2",
|
||||||
"@reach/router": "^1.3.4",
|
"@reach/router": "^1.3.4",
|
||||||
"animate.css": "^4.1.1",
|
"animate.css": "^4.1.1",
|
||||||
"array-move": "^3.0.1",
|
"array-move": "^3.0.1",
|
||||||
"autoprefixer": "^10.0.4",
|
"autoprefixer": "^10.1.0",
|
||||||
"classnames": "^2.2.6",
|
"classnames": "^2.2.6",
|
||||||
"dayjs": "^1.9.6",
|
"dayjs": "^1.9.7",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"downloadjs": "^1.4.7",
|
"downloadjs": "^1.4.7",
|
||||||
"firebase": "^8.1.2",
|
"firebase": "^8.1.2",
|
||||||
"formik": "^2.2.5",
|
"formik": "^2.2.5",
|
||||||
"gatsby": "^2.28.0",
|
"gatsby": "^2.28.1",
|
||||||
"gatsby-image": "^2.7.0",
|
"gatsby-image": "^2.7.0",
|
||||||
"gatsby-plugin-create-client-paths": "^2.6.0",
|
"gatsby-plugin-create-client-paths": "^2.6.0",
|
||||||
"gatsby-plugin-firebase": "^0.2.0-beta.4",
|
"gatsby-plugin-firebase": "^0.2.0-beta.4",
|
||||||
@ -37,7 +36,7 @@
|
|||||||
"gatsby-plugin-offline": "^3.6.0",
|
"gatsby-plugin-offline": "^3.6.0",
|
||||||
"gatsby-plugin-postcss": "^3.3.0",
|
"gatsby-plugin-postcss": "^3.3.0",
|
||||||
"gatsby-plugin-react-helmet": "^3.6.0",
|
"gatsby-plugin-react-helmet": "^3.6.0",
|
||||||
"gatsby-plugin-sharp": "^2.10.0",
|
"gatsby-plugin-sharp": "^2.10.1",
|
||||||
"gatsby-plugin-sitemap": "^2.8.0",
|
"gatsby-plugin-sitemap": "^2.8.0",
|
||||||
"gatsby-plugin-webfonts": "^1.1.3",
|
"gatsby-plugin-webfonts": "^1.1.3",
|
||||||
"gatsby-source-filesystem": "^2.7.0",
|
"gatsby-source-filesystem": "^2.7.0",
|
||||||
@ -47,35 +46,29 @@
|
|||||||
"i18next": "^19.8.4",
|
"i18next": "^19.8.4",
|
||||||
"lodash": "^4.17.20",
|
"lodash": "^4.17.20",
|
||||||
"nanoevents": "^5.1.10",
|
"nanoevents": "^5.1.10",
|
||||||
"postcss": "^8.1.14",
|
"postcss": "^8.2.0",
|
||||||
"react": "^17.0.1",
|
"react": "^17.0.1",
|
||||||
"react-beautiful-dnd": "^13.0.0",
|
"react-beautiful-dnd": "^13.0.0",
|
||||||
"react-dom": "^17.0.1",
|
"react-dom": "^17.0.1",
|
||||||
"react-helmet": "^6.1.0",
|
"react-helmet": "^6.1.0",
|
||||||
"react-i18next": "^11.7.4",
|
"react-i18next": "^11.8.1",
|
||||||
"react-icons": "^4.1.0",
|
"react-icons": "^4.1.0",
|
||||||
"react-markdown": "^5.0.3",
|
"react-markdown": "^5.0.3",
|
||||||
"react-scroll": "^1.8.1",
|
"react-scroll": "^1.8.1",
|
||||||
"react-toastify": "^6.1.0",
|
"react-toastify": "^6.2.0",
|
||||||
"short-unique-id": "^3.2.0",
|
"short-unique-id": "^3.2.0",
|
||||||
"uuid": "^8.3.1",
|
"uuid": "^8.3.2",
|
||||||
"yup": "^0.32.1"
|
"yup": "^0.32.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@testing-library/jest-dom": "^5.11.6",
|
|
||||||
"@testing-library/react": "^11.2.2",
|
|
||||||
"babel-jest": "^26.6.3",
|
|
||||||
"babel-preset-gatsby": "^0.8.0",
|
|
||||||
"eslint": "^7.15.0",
|
"eslint": "^7.15.0",
|
||||||
"eslint-config-airbnb": "^18.2.1",
|
"eslint-config-airbnb": "^18.2.1",
|
||||||
"eslint-config-prettier": "^6.15.0",
|
"eslint-config-prettier": "^7.0.0",
|
||||||
"eslint-loader": "^4.0.2",
|
"eslint-loader": "^4.0.2",
|
||||||
"eslint-plugin-jsx-a11y": "^6.4.1",
|
"eslint-plugin-jsx-a11y": "^6.4.1",
|
||||||
"eslint-plugin-prettier": "^3.2.0",
|
"eslint-plugin-prettier": "^3.2.0",
|
||||||
"eslint-plugin-react": "^7.21.5",
|
"eslint-plugin-react": "^7.21.5",
|
||||||
"gatsby-plugin-eslint": "^2.0.8",
|
"gatsby-plugin-eslint": "^2.0.8",
|
||||||
"identity-obj-proxy": "^3.0.0",
|
|
||||||
"jest": "^26.6.3",
|
|
||||||
"prettier": "2.2.1",
|
"prettier": "2.2.1",
|
||||||
"stylelint": "^13.8.0",
|
"stylelint": "^13.8.0",
|
||||||
"stylelint-config-standard": "^20.0.0",
|
"stylelint-config-standard": "^20.0.0",
|
||||||
|
|||||||
@ -60,8 +60,7 @@ const SidebarSection = ({ id, event }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const LeftSidebar = () => {
|
const LeftSidebar = () => (
|
||||||
return (
|
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
<LeftNavbar />
|
<LeftNavbar />
|
||||||
|
|
||||||
@ -70,6 +69,5 @@ const LeftSidebar = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(LeftSidebar);
|
export default memo(LeftSidebar);
|
||||||
|
|||||||
@ -4,8 +4,7 @@ import SectionIcon from '../../shared/SectionIcon';
|
|||||||
import styles from './RightNavbar.module.css';
|
import styles from './RightNavbar.module.css';
|
||||||
import SyncIndicator from './SyncIndicator';
|
import SyncIndicator from './SyncIndicator';
|
||||||
|
|
||||||
const RightNavbar = () => {
|
const RightNavbar = () => (
|
||||||
return (
|
|
||||||
<div className={styles.container}>
|
<div className={styles.container}>
|
||||||
<div className="grid grid-cols-1 gap-4 text-primary-500">
|
<div className="grid grid-cols-1 gap-4 text-primary-500">
|
||||||
{sections.map((x) => (
|
{sections.map((x) => (
|
||||||
@ -23,6 +22,5 @@ const RightNavbar = () => {
|
|||||||
<SyncIndicator />
|
<SyncIndicator />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(RightNavbar);
|
export default memo(RightNavbar);
|
||||||
|
|||||||
@ -45,8 +45,7 @@ const SidebarSection = ({ id, event }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const RightSidebar = () => {
|
const RightSidebar = () => (
|
||||||
return (
|
|
||||||
<div className="flex">
|
<div className="flex">
|
||||||
<div id="RightSidebar" className={styles.container}>
|
<div id="RightSidebar" className={styles.container}>
|
||||||
{sections.map(SidebarSection)}
|
{sections.map(SidebarSection)}
|
||||||
@ -55,6 +54,5 @@ const RightSidebar = () => {
|
|||||||
<RightNavbar />
|
<RightNavbar />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(RightSidebar);
|
export default memo(RightSidebar);
|
||||||
|
|||||||
@ -4,8 +4,7 @@ import Avatar from '../shared/Avatar';
|
|||||||
import Logo from '../shared/Logo';
|
import Logo from '../shared/Logo';
|
||||||
import styles from './TopNavbar.module.css';
|
import styles from './TopNavbar.module.css';
|
||||||
|
|
||||||
const TopNavbar = () => {
|
const TopNavbar = () => (
|
||||||
return (
|
|
||||||
<div className={styles.navbar}>
|
<div className={styles.navbar}>
|
||||||
<div className="container">
|
<div className="container">
|
||||||
<Link to="/">
|
<Link to="/">
|
||||||
@ -16,6 +15,5 @@ const TopNavbar = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(TopNavbar);
|
export default memo(TopNavbar);
|
||||||
|
|||||||
@ -3,8 +3,7 @@ import React, { memo } from 'react';
|
|||||||
import { getRandomTip } from '../../data/tips';
|
import { getRandomTip } from '../../data/tips';
|
||||||
import Logo from '../shared/Logo';
|
import Logo from '../shared/Logo';
|
||||||
|
|
||||||
const LoadingScreen = () => {
|
const LoadingScreen = () => (
|
||||||
return (
|
|
||||||
<Modal open hideBackdrop>
|
<Modal open hideBackdrop>
|
||||||
<Fade in>
|
<Fade in>
|
||||||
<div className="w-screen h-screen flex justify-center items-center outline-none">
|
<div className="w-screen h-screen flex justify-center items-center outline-none">
|
||||||
@ -16,6 +15,5 @@ const LoadingScreen = () => {
|
|||||||
</Fade>
|
</Fade>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(LoadingScreen);
|
export default memo(LoadingScreen);
|
||||||
|
|||||||
@ -8,13 +8,9 @@ const defaultState = { events: ModalEvents, emitter };
|
|||||||
|
|
||||||
const ModalContext = createContext(defaultState);
|
const ModalContext = createContext(defaultState);
|
||||||
|
|
||||||
const ModalProvider = ({ children }) => {
|
const ModalProvider = ({ children }) => (
|
||||||
return (
|
<ModalContext.Provider value={defaultState}>{children}</ModalContext.Provider>
|
||||||
<ModalContext.Provider value={defaultState}>
|
|
||||||
{children}
|
|
||||||
</ModalContext.Provider>
|
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default ModalContext;
|
export default ModalContext;
|
||||||
|
|
||||||
|
|||||||
@ -83,6 +83,10 @@ const languages = [
|
|||||||
code: 'tr',
|
code: 'tr',
|
||||||
name: 'Turkish (Türkçe)',
|
name: 'Turkish (Türkçe)',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
code: 'uk',
|
||||||
|
name: 'Ukrainian (Українська)',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
i18n.use(initReactI18next).init({
|
i18n.use(initReactI18next).init({
|
||||||
|
|||||||
@ -96,7 +96,7 @@
|
|||||||
"photograph": "صورة فوتوغرافية",
|
"photograph": "صورة فوتوغرافية",
|
||||||
"firstName": "الاسم الاول",
|
"firstName": "الاسم الاول",
|
||||||
"lastName": "اسم العائلة",
|
"lastName": "اسم العائلة",
|
||||||
"birthDate": "تاريخ الولادة",
|
"birthDate": "تاريخ الميلاد",
|
||||||
"address": {
|
"address": {
|
||||||
"line1": "العنوان الأول",
|
"line1": "العنوان الأول",
|
||||||
"line2": "العنوان الثاني",
|
"line2": "العنوان الثاني",
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import ptPt from './pt-pt.json';
|
|||||||
import ru from './ru.json';
|
import ru from './ru.json';
|
||||||
import sv from './sv.json';
|
import sv from './sv.json';
|
||||||
import tr from './tr.json';
|
import tr from './tr.json';
|
||||||
|
import uk from './uk.json';
|
||||||
import zh from './zh.json';
|
import zh from './zh.json';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -39,5 +40,6 @@ export default {
|
|||||||
ru: { translation: ru },
|
ru: { translation: ru },
|
||||||
sv: { translation: sv },
|
sv: { translation: sv },
|
||||||
tr: { translation: tr },
|
tr: { translation: tr },
|
||||||
|
uk: { translation: uk },
|
||||||
zh: { translation: zh },
|
zh: { translation: zh },
|
||||||
};
|
};
|
||||||
|
|||||||
@ -96,7 +96,7 @@
|
|||||||
"photograph": "Fotografia",
|
"photograph": "Fotografia",
|
||||||
"firstName": "Nome",
|
"firstName": "Nome",
|
||||||
"lastName": "Cognome",
|
"lastName": "Cognome",
|
||||||
"birthDate": "Data di Nascita",
|
"birthDate": "Data di nascita",
|
||||||
"address": {
|
"address": {
|
||||||
"line1": "Riga Indirizzo 1",
|
"line1": "Riga Indirizzo 1",
|
||||||
"line2": "Riga Indirizzo 2",
|
"line2": "Riga Indirizzo 2",
|
||||||
|
|||||||
@ -96,7 +96,7 @@
|
|||||||
"photograph": "Fotografia",
|
"photograph": "Fotografia",
|
||||||
"firstName": "Imię",
|
"firstName": "Imię",
|
||||||
"lastName": "Nazwisko",
|
"lastName": "Nazwisko",
|
||||||
"birthDate": "Data urodzenia",
|
"birthDate": "Data urodzin",
|
||||||
"address": {
|
"address": {
|
||||||
"line1": "Pole adresowe 1",
|
"line1": "Pole adresowe 1",
|
||||||
"line2": "Pole adresowe 2",
|
"line2": "Pole adresowe 2",
|
||||||
|
|||||||
252
src/i18n/locales/uk.json
Normal file
252
src/i18n/locales/uk.json
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
{
|
||||||
|
"shared": {
|
||||||
|
"appName": "Reactive Resume",
|
||||||
|
"shortDescription": "Безкоштовний, open source конструктор резюме.",
|
||||||
|
"forms": {
|
||||||
|
"name": "Назва",
|
||||||
|
"title": "Заголовок",
|
||||||
|
"subtitle": "Підзаголовок",
|
||||||
|
"required": "обов'язково",
|
||||||
|
"website": "Веб сайт",
|
||||||
|
"date": "Дата",
|
||||||
|
"present": "теперішній час",
|
||||||
|
"position": "Посада",
|
||||||
|
"startDate": "Дата початку",
|
||||||
|
"endDate": "Дата завершення",
|
||||||
|
"address": "Адреса",
|
||||||
|
"phone": "Номер телефону",
|
||||||
|
"email": "E-mail адреса",
|
||||||
|
"summary": "Резюме",
|
||||||
|
"markdown": "Цей текстовий блок підтримує <1> markdown </1>.",
|
||||||
|
"validation": {
|
||||||
|
"min": "Будь ласка, введіть мінімум {{number}} знаки.",
|
||||||
|
"dateRange": "Дата закінчення має бути пізніше, ніж дата початку.",
|
||||||
|
"email": "Адреса ел. пошти повинна бути дійсною.",
|
||||||
|
"required": "Це поле є обов`язковим.",
|
||||||
|
"url": "Повинен бути діючий URL."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"buttons": {
|
||||||
|
"add": "Додати",
|
||||||
|
"edit": "Змінити",
|
||||||
|
"cancel": "Скасувати",
|
||||||
|
"delete": "Видалити",
|
||||||
|
"loading": "Завантаження...",
|
||||||
|
"confirmation": "Ви впевнені?",
|
||||||
|
"login": "Вхід",
|
||||||
|
"logout": "Вихід"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"landing": {
|
||||||
|
"hero": {
|
||||||
|
"goToApp": "Перейти до додатка"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dashboard": {
|
||||||
|
"title": "Панель управління",
|
||||||
|
"createResume": "Створити Резюме",
|
||||||
|
"editResume": "Редагувати Резюме",
|
||||||
|
"lastUpdated": "Останнє оновлення {{timestamp}}",
|
||||||
|
"toasts": {
|
||||||
|
"deleted": "{{name}} був успішно видалений"
|
||||||
|
},
|
||||||
|
"buttons": {
|
||||||
|
"duplicate": "Дублювати",
|
||||||
|
"rename": "Перейменувати"
|
||||||
|
},
|
||||||
|
"helpText": "Ви збираєтеся створити нове резюме з нуля, але спочатку давайте дамо йому ім'я. Це може бути назва посади, на яку ви хочете подати заявку, або, якщо ви складаєте резюме для друга, ви можете назвати його «Резюме Алекса»."
|
||||||
|
},
|
||||||
|
"builder": {
|
||||||
|
"toasts": {
|
||||||
|
"formErrors": "Можливо, вам буде потрібно заповнити всі обов'язкові поля перед відправкою цієї форми.",
|
||||||
|
"doesNotExist": "Резюме, яке ви шукали, більше не існує ... або, може бути, його ніколи не було?",
|
||||||
|
"loadDemoData": "Не впевнений, з чого почати? Спробуйте завантажити демо-дані, щоб дізнатися, що може запропонувати Reactive Resume.",
|
||||||
|
"printError": "У хмарної функції виникли проблеми, спробуйте ще раз пізніше або скористайтеся функцією друку браузера."
|
||||||
|
},
|
||||||
|
"sections": {
|
||||||
|
"heading": "Заголовок",
|
||||||
|
"profile": "Профіль",
|
||||||
|
"social": "Соціальна мережа",
|
||||||
|
"objective": "Завдання",
|
||||||
|
"work": "Досвід роботи",
|
||||||
|
"education": "Освіта",
|
||||||
|
"project": "Проект",
|
||||||
|
"projects": "Проекти",
|
||||||
|
"award": "Нагорода",
|
||||||
|
"awards": "Нагороди",
|
||||||
|
"certification": "Сертифікат",
|
||||||
|
"certifications": "Сертифікати",
|
||||||
|
"skill": "Навичка",
|
||||||
|
"skills": "Навички",
|
||||||
|
"hobby": "Хобі",
|
||||||
|
"hobbies": "Хобі",
|
||||||
|
"language": "Мова",
|
||||||
|
"languages": "Мови",
|
||||||
|
"reference": "Посилання",
|
||||||
|
"references": "Посилання",
|
||||||
|
"templates": "Шаблони",
|
||||||
|
"layout": "Розмітка",
|
||||||
|
"colors": "Кольори",
|
||||||
|
"fonts": "Шрифти",
|
||||||
|
"actions": "Дії",
|
||||||
|
"settings": "Налаштування",
|
||||||
|
"about": "Про програму"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"photograph": "Фотографія",
|
||||||
|
"firstName": "Ім'я",
|
||||||
|
"lastName": "Прізвище",
|
||||||
|
"birthDate": "Дата народження",
|
||||||
|
"address": {
|
||||||
|
"line1": "Адреса, рядок 1",
|
||||||
|
"line2": "Адреса, рядок 2",
|
||||||
|
"city": "Місто",
|
||||||
|
"pincode": "Індекс"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"social": {
|
||||||
|
"network": "Мережа",
|
||||||
|
"username": "Ім'я користувача",
|
||||||
|
"url": "URL"
|
||||||
|
},
|
||||||
|
"work": {
|
||||||
|
"company": "Організація"
|
||||||
|
},
|
||||||
|
"education": {
|
||||||
|
"institution": "Установа",
|
||||||
|
"field": "Область дослідження",
|
||||||
|
"degree": "Тип ступеня",
|
||||||
|
"gpa": "Середній бал"
|
||||||
|
},
|
||||||
|
"awards": {
|
||||||
|
"awarder": "Нагороджений"
|
||||||
|
},
|
||||||
|
"certifications": {
|
||||||
|
"issuer": "Ким виданий"
|
||||||
|
},
|
||||||
|
"skills": {
|
||||||
|
"level": "Рівень"
|
||||||
|
},
|
||||||
|
"languages": {
|
||||||
|
"fluency": "Вільне володіння"
|
||||||
|
},
|
||||||
|
"layout": {
|
||||||
|
"block": "Блокувати",
|
||||||
|
"reset": "Скинути макет",
|
||||||
|
"text": "Цей шаблон підтримує {{count}} блоків."
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"primary": "Основний колір",
|
||||||
|
"text": "Колір тексту",
|
||||||
|
"background": "Колір фону"
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"import": {
|
||||||
|
"heading": "Імпортувати Резюме",
|
||||||
|
"text": "Ви можете імпортувати свою інформацію з різних джерел, таких як JSON Resume або LinkedIn, щоб автоматично заповнювати більшу частину даних для свого резюме.",
|
||||||
|
"button": "Імпорт"
|
||||||
|
},
|
||||||
|
"export": {
|
||||||
|
"heading": "Експорт Вашого Резюме",
|
||||||
|
"text": "Експортуйте своє резюме в форматі PDF, щоб поділитися з рекрутерами, або в форматі JSON, який ви зможете імпортувати назад в цей додаток на іншому комп'ютері.",
|
||||||
|
"button": "Експорт"
|
||||||
|
},
|
||||||
|
"share": {
|
||||||
|
"heading": "Поділитися Вашим Резюме",
|
||||||
|
"text": "Посилання нижче буде доступна для всіх, якщо ви вирішите поділитися нею, і глядачі побачать останню версію вашого резюме в будь-який час."
|
||||||
|
},
|
||||||
|
"loadDemoData": {
|
||||||
|
"text": "Незрозуміло, що робити зі свіжої порожньою сторінкою? Завантажте демо-дані, щоб побачити, як має виглядати резюме, і можете починати редагування звідти.",
|
||||||
|
"button": "Завантажити демо-дані"
|
||||||
|
},
|
||||||
|
"resetEverything": {
|
||||||
|
"text": "Схоже, ви зробили дуже багато помилок? Не турбуйтеся, очистіть все одним клацанням миші, але будьте обережні, якщо немає резервних копій.",
|
||||||
|
"button": "Скинути все"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"theme": "Тема",
|
||||||
|
"language": "Мова",
|
||||||
|
"translate": "Якщо ви хочете внести свій внесок, надавши переклади на свою мову, <1> перейдіть за цим посиланням </ 1>.",
|
||||||
|
"dangerZone": {
|
||||||
|
"heading": "Небезпечна зона",
|
||||||
|
"text": "Якщо ви хочете видалити свій обліковий запис і стерти всі свої резюме, це всього лише одна кнопка. Будьте обережні, це незворотний процес.",
|
||||||
|
"button": "Видалити акаунт"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"about": {
|
||||||
|
"donate": {
|
||||||
|
"heading": "Пожертвувати на Reactive Resume",
|
||||||
|
"text": "Я намагаюся робити все, що в моїх силах, але якщо ви знайшли додаток корисним або ви перебуваєте в кращому становищі, ніж інші, які залежать від цього проекту в своїй першій роботі, <1> розгляньте можливість пожертвувати всього 5 доларів, щоб допомогти зберегти проект живим </ 1> :)",
|
||||||
|
"button": "Купіть мені кави!"
|
||||||
|
},
|
||||||
|
"bugFeature": {
|
||||||
|
"heading": "Помилка? Пропозиція?",
|
||||||
|
"text": "Щось заважає вам скласти резюме? Знайшли набридливу помилку, яка просто не зникне? Обговоріть це в розділі GitHub Issues, використовуючи такі дії.",
|
||||||
|
"button": "Підняти питання"
|
||||||
|
},
|
||||||
|
"appreciate": {
|
||||||
|
"heading": "Подобається Reactive Resume?",
|
||||||
|
"text": "Я ніколи не втомлююся чути історії про те, як цей додаток допоміг людям, і якщо він допоміг вам, або ви просто виявили, що Reactive Resume - відмінний інструмент, дайте мені знати. Ви можете зв'язатися зі мною на моєму веб-сайті."
|
||||||
|
},
|
||||||
|
"sourceCode": {
|
||||||
|
"heading": "Вихідний код",
|
||||||
|
"text": "Хочете запустити проект з вихідного коду? Ви розробник, який бажає внести свій вклад в розробку цього проекту з відкритим вихідним кодом? Натисніть кнопку нижче.",
|
||||||
|
"button": "GitHub репозиторій"
|
||||||
|
},
|
||||||
|
"footer": "Зроблено з любов'ю <1> Амрут Піллаі </ 1>"
|
||||||
|
},
|
||||||
|
"tooltips": {
|
||||||
|
"uploadPhotograph": "Завантажити фотографію",
|
||||||
|
"backToDashboard": "Повернутися до панелі управління"
|
||||||
|
},
|
||||||
|
"emptyList": "Цей список порожній."
|
||||||
|
},
|
||||||
|
"modals": {
|
||||||
|
"auth": {
|
||||||
|
"whoAreYou": "Хто ви?",
|
||||||
|
"welcome": "Ласкаво просимо, {{name}}!",
|
||||||
|
"loggedOutText": "Reactive Resume має знати, хто ви, щоб безпечно аутентифицировать вас в додатку і відображати тільки вашу інформацію. Як тільки ви ввійдете, ви можете почати створювати своє резюме, редагувати його, щоб додати нові навички або ділитися ним з усім світом!",
|
||||||
|
"loggedInText": "Приголомшливо. Тепер, коли ви пройшли аутентифікацію, ми можемо розібратися, чому ви тут. Натисніть кнопку «Перейти в додаток», щоб почати створювати своє резюме!",
|
||||||
|
"buttons": {
|
||||||
|
"google": "Ввійти за допомогою Google",
|
||||||
|
"anonymous": "Ввійти анонімно"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"button": "Вибрати Файл",
|
||||||
|
"reactiveResume": {
|
||||||
|
"heading": "Імпорт з Reactive Resume",
|
||||||
|
"text": "Reactive Resume має свій власний формат схеми, щоб максимально використовувати всі можливості налаштувань, які воно може запропонувати. Якщо ви хочете імпортувати резервну копію свого резюме, зробленого за допомогою цього додатка, просто завантажте файл, використовуючи кнопку нижче."
|
||||||
|
},
|
||||||
|
"jsonResume": {
|
||||||
|
"heading": "Імпорт з резюме JSON",
|
||||||
|
"text": "JSON Resume - це відкритий стандарт структури схеми резюме. Якщо ви один з багатьох ентузіастів, у яких готове своє резюме в цьому форматі, досить одного клацання мишки, щоб почати роботу з Reactive Resume."
|
||||||
|
},
|
||||||
|
"linkedIn": {
|
||||||
|
"heading": "Імпорт з LinkedIn",
|
||||||
|
"text": "Ви можете імпортувати JSON, який був експортований з LinkedIn, натиснувши кнопку нижче і вибравши відповідний файл."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"export": {
|
||||||
|
"printDialog": {
|
||||||
|
"heading": "Використовуйте діалогове вікно друку браузера",
|
||||||
|
"text": "Тим з вас, хто хоче знайти швидке рішення, не потрібно шукати далі свого браузера. Все, що вам потрібно зробити, це натиснути Ctrl / Cmd + P, відкрити діалогове вікно друку в браузері і відразу ж роздрукувати своє резюме.",
|
||||||
|
"button": "Роздрукувати резюме"
|
||||||
|
},
|
||||||
|
"downloadPDF": {
|
||||||
|
"heading": "Завантажити PDF",
|
||||||
|
"text": "Ці параметри дозволяють вам надрукувати необмежену версію вашого резюме, що ідеально підходить для тих, у кого багато контенту. Крім того, ви можете завантажити багатосторінкову версію свого резюме одним кліком миші.",
|
||||||
|
"buttons": {
|
||||||
|
"single": "Односторінкове Резюме",
|
||||||
|
"multi": "Багатосторінкове Резюме"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"jsonFormat": {
|
||||||
|
"heading": "Експорт в формат JSON",
|
||||||
|
"text": "Ви також можете експортувати свої дані в формат JSON для безпечного зберігання, щоб ви могли легко імпортувати їх назад в Reactive Resume, коли захочете відредагувати або згенерувати резюме.",
|
||||||
|
"button": "Експорт JSON"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -14,8 +14,7 @@ import SkillModal from './sections/SkillModal';
|
|||||||
import SocialModal from './sections/SocialModal';
|
import SocialModal from './sections/SocialModal';
|
||||||
import WorkModal from './sections/WorkModal';
|
import WorkModal from './sections/WorkModal';
|
||||||
|
|
||||||
const ModalRegistrar = () => {
|
const ModalRegistrar = () => (
|
||||||
return (
|
|
||||||
<>
|
<>
|
||||||
<AuthModal />
|
<AuthModal />
|
||||||
<ResumeModal />
|
<ResumeModal />
|
||||||
@ -33,6 +32,5 @@ const ModalRegistrar = () => {
|
|||||||
<ExportModal />
|
<ExportModal />
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(ModalRegistrar);
|
export default memo(ModalRegistrar);
|
||||||
|
|||||||
@ -4,8 +4,7 @@ import { Helmet } from 'react-helmet';
|
|||||||
import { MdKeyboardArrowLeft } from 'react-icons/md';
|
import { MdKeyboardArrowLeft } from 'react-icons/md';
|
||||||
import Wrapper from '../components/shared/Wrapper';
|
import Wrapper from '../components/shared/Wrapper';
|
||||||
|
|
||||||
const FrequentlyAskedQuestions = () => {
|
const FrequentlyAskedQuestions = () => (
|
||||||
return (
|
|
||||||
<Wrapper>
|
<Wrapper>
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<title>Frequently Asked Questions | Reactive Resume</title>
|
<title>Frequently Asked Questions | Reactive Resume</title>
|
||||||
@ -25,15 +24,15 @@ const FrequentlyAskedQuestions = () => {
|
|||||||
<div>
|
<div>
|
||||||
<p className="leading-loose">
|
<p className="leading-loose">
|
||||||
This is aimed to be the world's simplest privacy policy. This
|
This is aimed to be the world's simplest privacy policy. This
|
||||||
document should explain to you why the app collects some
|
document should explain to you why the app collects some information,
|
||||||
information, what happens when your account is deleted and some
|
what happens when your account is deleted and some other frequently
|
||||||
other frequently asked questions answered regarding your privacy.
|
asked questions answered regarding your privacy.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p className="mt-6 leading-loose">
|
<p className="mt-6 leading-loose">
|
||||||
If you have any more questions, please raise an issue regarding the
|
If you have any more questions, please raise an issue regarding the
|
||||||
same on GitHub and I'll answer as honest and quickly as
|
same on GitHub and I'll answer as honest and quickly as possible
|
||||||
possible :)
|
:)
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -68,10 +67,10 @@ const FrequentlyAskedQuestions = () => {
|
|||||||
|
|
||||||
<p className="mt-6 leading-loose">
|
<p className="mt-6 leading-loose">
|
||||||
Also, a lot of users were having trouble printing their resumes on
|
Also, a lot of users were having trouble printing their resumes on
|
||||||
their browsers, so with the help of Cloud Functions from Firebase,
|
their browsers, so with the help of Cloud Functions from Firebase, you
|
||||||
you can now print your resumes remotely. None of the resumes are
|
can now print your resumes remotely. None of the resumes are stored,
|
||||||
stored, and they are sent to you immediately after generation, which
|
and they are sent to you immediately after generation, which can be
|
||||||
can be verified by looking through the source code.
|
verified by looking through the source code.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -82,13 +81,13 @@ const FrequentlyAskedQuestions = () => {
|
|||||||
How is this all free? There must be a catch!
|
How is this all free? There must be a catch!
|
||||||
</h4>
|
</h4>
|
||||||
<p className="leading-loose">
|
<p className="leading-loose">
|
||||||
<strong>Absolutely no catch to this freebie.</strong> This project
|
<strong>Absolutely no catch to this freebie.</strong> This project is
|
||||||
is just my way of giving back to the community that I've
|
just my way of giving back to the community that I've learned so
|
||||||
learned so much from. If you'd like to show your appreciation
|
much from. If you'd like to show your appreciation however, you
|
||||||
however, you can follow me on my social media and let me know how
|
can follow me on my social media and let me know how much it helped
|
||||||
much it helped you, or donate to help pay the cloud bills, or if you
|
you, or donate to help pay the cloud bills, or if you are a fellow
|
||||||
are a fellow developer, you can head to GitHub and contribute to the
|
developer, you can head to GitHub and contribute to the code and
|
||||||
code and raising a PR.
|
raising a PR.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -99,17 +98,16 @@ const FrequentlyAskedQuestions = () => {
|
|||||||
Is there a mobile app for Reactive Resume?
|
Is there a mobile app for Reactive Resume?
|
||||||
</h4>
|
</h4>
|
||||||
<p className="leading-loose">
|
<p className="leading-loose">
|
||||||
<strong>Not yet. But soon, maybe?</strong> One of the main
|
<strong>Not yet. But soon, maybe?</strong> One of the main motivations
|
||||||
motivations for me to shift to a centralized database approach was
|
for me to shift to a centralized database approach was that I could
|
||||||
that I could one day build a mobile app as well that could let users
|
one day build a mobile app as well that could let users jump from
|
||||||
jump from editing on their desktops to editing on their phones. It
|
editing on their desktops to editing on their phones. It requires a
|
||||||
requires a lot of time, so I would not expect it any time soon, but
|
lot of time, so I would not expect it any time soon, but it's
|
||||||
it's definitely in the pipeline.
|
definitely in the pipeline.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Wrapper>
|
</Wrapper>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default FrequentlyAskedQuestions;
|
export default FrequentlyAskedQuestions;
|
||||||
|
|||||||
@ -127,8 +127,7 @@ const Home = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const Feature = ({ icon: Icon, title, children }) => {
|
const Feature = ({ icon: Icon, title, children }) => (
|
||||||
return (
|
|
||||||
<div className="mt-16">
|
<div className="mt-16">
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<Icon size="18px" className="text-primary-900 mr-4" />
|
<Icon size="18px" className="text-primary-900 mr-4" />
|
||||||
@ -137,6 +136,5 @@ const Feature = ({ icon: Icon, title, children }) => {
|
|||||||
<p className="mt-6 text-lg leading-loose">{children}</p>
|
<p className="mt-6 text-lg leading-loose">{children}</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(Home);
|
export default memo(Home);
|
||||||
|
|||||||
@ -52,7 +52,6 @@ const ResumeViewer = ({ id }) => {
|
|||||||
</Helmet>
|
</Helmet>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
id="page"
|
|
||||||
className={styles.page}
|
className={styles.page}
|
||||||
style={{ backgroundColor: resume.metadata.colors.background }}
|
style={{ backgroundColor: resume.metadata.colors.background }}
|
||||||
>
|
>
|
||||||
|
|||||||
@ -76,6 +76,7 @@ section {
|
|||||||
#page {
|
#page {
|
||||||
width: 21cm;
|
width: 21cm;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
text-align: start;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
|
|||||||
@ -55,6 +55,7 @@ const Castform = ({ data }) => {
|
|||||||
return (
|
return (
|
||||||
<PageContext.Provider value={{ data, heading: HeadingD }}>
|
<PageContext.Provider value={{ data, heading: HeadingD }}>
|
||||||
<div
|
<div
|
||||||
|
id="page"
|
||||||
className="rounded"
|
className="rounded"
|
||||||
style={{
|
style={{
|
||||||
fontFamily: data.metadata.font,
|
fontFamily: data.metadata.font,
|
||||||
|
|||||||
@ -86,6 +86,7 @@ const Celebi = ({ data }) => {
|
|||||||
return (
|
return (
|
||||||
<PageContext.Provider value={{ data, heading: HeadingE }}>
|
<PageContext.Provider value={{ data, heading: HeadingE }}>
|
||||||
<div
|
<div
|
||||||
|
id="page"
|
||||||
className="relative rounded"
|
className="relative rounded"
|
||||||
style={{
|
style={{
|
||||||
fontFamily: data.metadata.font,
|
fontFamily: data.metadata.font,
|
||||||
|
|||||||
@ -59,6 +59,7 @@ const Gengar = ({ data }) => {
|
|||||||
return (
|
return (
|
||||||
<PageContext.Provider value={{ data, heading: HeadingC }}>
|
<PageContext.Provider value={{ data, heading: HeadingC }}>
|
||||||
<div
|
<div
|
||||||
|
id="page"
|
||||||
className="rounded"
|
className="rounded"
|
||||||
style={{
|
style={{
|
||||||
fontFamily: data.metadata.font,
|
fontFamily: data.metadata.font,
|
||||||
|
|||||||
@ -54,6 +54,7 @@ const Glalie = ({ data }) => {
|
|||||||
return (
|
return (
|
||||||
<PageContext.Provider value={{ data, heading: HeadingB }}>
|
<PageContext.Provider value={{ data, heading: HeadingB }}>
|
||||||
<div
|
<div
|
||||||
|
id="page"
|
||||||
className="rounded"
|
className="rounded"
|
||||||
style={{
|
style={{
|
||||||
fontFamily: data.metadata.font,
|
fontFamily: data.metadata.font,
|
||||||
|
|||||||
@ -33,6 +33,7 @@ const Onyx = ({ data }) => {
|
|||||||
return (
|
return (
|
||||||
<PageContext.Provider value={{ data, heading: HeadingA }}>
|
<PageContext.Provider value={{ data, heading: HeadingA }}>
|
||||||
<div
|
<div
|
||||||
|
id="page"
|
||||||
className="p-8 rounded"
|
className="p-8 rounded"
|
||||||
style={{
|
style={{
|
||||||
fontFamily: data.metadata.font,
|
fontFamily: data.metadata.font,
|
||||||
|
|||||||
@ -32,6 +32,7 @@ const Pikachu = ({ data }) => {
|
|||||||
return (
|
return (
|
||||||
<PageContext.Provider value={{ data, heading: HeadingB }}>
|
<PageContext.Provider value={{ data, heading: HeadingB }}>
|
||||||
<div
|
<div
|
||||||
|
id="page"
|
||||||
className="p-8 rounded"
|
className="p-8 rounded"
|
||||||
style={{
|
style={{
|
||||||
fontFamily: data.metadata.font,
|
fontFamily: data.metadata.font,
|
||||||
|
|||||||
@ -3,8 +3,8 @@ import { useTranslation } from 'react-i18next';
|
|||||||
import PageContext from '../../../contexts/PageContext';
|
import PageContext from '../../../contexts/PageContext';
|
||||||
import { safetyCheck } from '../../../utils';
|
import { safetyCheck } from '../../../utils';
|
||||||
|
|
||||||
const ContactItem = ({ value, label, link }) => {
|
const ContactItem = ({ value, label, link }) =>
|
||||||
return value ? (
|
value ? (
|
||||||
<div className="flex flex-col">
|
<div className="flex flex-col">
|
||||||
<h6 className="capitalize font-semibold">{label}</h6>
|
<h6 className="capitalize font-semibold">{label}</h6>
|
||||||
{link ? (
|
{link ? (
|
||||||
@ -16,7 +16,6 @@ const ContactItem = ({ value, label, link }) => {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
) : null;
|
) : null;
|
||||||
};
|
|
||||||
|
|
||||||
const ContactC = () => {
|
const ContactC = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|||||||
@ -4,8 +4,8 @@ import { MdFlare } from 'react-icons/md';
|
|||||||
import PageContext from '../../../contexts/PageContext';
|
import PageContext from '../../../contexts/PageContext';
|
||||||
import { safetyCheck } from '../../../utils';
|
import { safetyCheck } from '../../../utils';
|
||||||
|
|
||||||
const ContactItem = ({ value, label, link }) => {
|
const ContactItem = ({ value, label, link }) =>
|
||||||
return value ? (
|
value ? (
|
||||||
<div className="flex flex-col">
|
<div className="flex flex-col">
|
||||||
<h6 className="capitalize font-semibold">{label}</h6>
|
<h6 className="capitalize font-semibold">{label}</h6>
|
||||||
{link ? (
|
{link ? (
|
||||||
@ -17,7 +17,6 @@ const ContactItem = ({ value, label, link }) => {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
) : null;
|
) : null;
|
||||||
};
|
|
||||||
|
|
||||||
const ContactD = () => {
|
const ContactD = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|||||||
@ -1,11 +1,7 @@
|
|||||||
import React, { memo } from 'react';
|
import React, { memo } from 'react';
|
||||||
|
|
||||||
const HeadingC = ({ children }) => {
|
const HeadingC = ({ children }) => (
|
||||||
return (
|
<h6 className="font-bold text-xs uppercase tracking-wide mb-1">{children}</h6>
|
||||||
<h6 className="font-bold text-xs uppercase tracking-wide mb-1">
|
|
||||||
{children}
|
|
||||||
</h6>
|
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(HeadingC);
|
export default memo(HeadingC);
|
||||||
|
|||||||
@ -1,11 +1,9 @@
|
|||||||
import React, { memo } from 'react';
|
import React, { memo } from 'react';
|
||||||
|
|
||||||
const HeadingC = ({ children }) => {
|
const HeadingC = ({ children }) => (
|
||||||
return (
|
|
||||||
<h6 className="my-2 text-md uppercase font-semibold tracking-wider pb-1 border-b-2 border-gray-800">
|
<h6 className="my-2 text-md uppercase font-semibold tracking-wider pb-1 border-b-2 border-gray-800">
|
||||||
{children}
|
{children}
|
||||||
</h6>
|
</h6>
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
export default memo(HeadingC);
|
export default memo(HeadingC);
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import 'dayjs/locale/nl';
|
|||||||
import 'dayjs/locale/pl';
|
import 'dayjs/locale/pl';
|
||||||
import 'dayjs/locale/pt';
|
import 'dayjs/locale/pt';
|
||||||
import 'dayjs/locale/tr';
|
import 'dayjs/locale/tr';
|
||||||
|
import 'dayjs/locale/uk';
|
||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
|
|
||||||
dayjs.extend(relativeTime);
|
dayjs.extend(relativeTime);
|
||||||
|
|||||||
@ -1,15 +1,13 @@
|
|||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { get, isEmpty } from 'lodash';
|
import { get, isEmpty } from 'lodash';
|
||||||
|
|
||||||
export const getModalText = (isEditMode, type, t) => {
|
export const getModalText = (isEditMode, type, t) =>
|
||||||
return isEditMode
|
isEditMode
|
||||||
? `${t('shared.buttons.edit')} ${type}`
|
? `${t('shared.buttons.edit')} ${type}`
|
||||||
: `${t('shared.buttons.add')} ${type}`;
|
: `${t('shared.buttons.add')} ${type}`;
|
||||||
};
|
|
||||||
|
|
||||||
export const safetyCheck = (section, path = 'items') => {
|
export const safetyCheck = (section, path = 'items') =>
|
||||||
return !!(section && section.visible === true && !isEmpty(section[path]));
|
!!(section && section.visible === true && !isEmpty(section[path]));
|
||||||
};
|
|
||||||
|
|
||||||
export const handleKeyUp = (event, action) => {
|
export const handleKeyUp = (event, action) => {
|
||||||
(event.which === 13 || event.which === 32) && action();
|
(event.which === 13 || event.which === 32) && action();
|
||||||
|
|||||||
Reference in New Issue
Block a user