forked from LaconicNetwork/icns-frontend
Refactor logic of twitter oauth
This commit is contained in:
parent
3ebae75689
commit
0fc5ac8f0c
435
.pnp.cjs
generated
435
.pnp.cjs
generated
@ -35,6 +35,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
["@types/react-dom", "npm:18.0.9"],\
|
["@types/react-dom", "npm:18.0.9"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
["@typescript-eslint/eslint-plugin", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
||||||
["@typescript-eslint/parser", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
["@typescript-eslint/parser", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
||||||
|
["crypto", "npm:1.0.1"],\
|
||||||
["eslint", "npm:8.28.0"],\
|
["eslint", "npm:8.28.0"],\
|
||||||
["eslint-config-next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
["eslint-config-next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
||||||
["eslint-config-prettier", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:8.5.0"],\
|
["eslint-config-prettier", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:8.5.0"],\
|
||||||
@ -45,11 +46,11 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
["eslint-plugin-react", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.31.11"],\
|
["eslint-plugin-react", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.31.11"],\
|
||||||
["eslint-plugin-react-hooks", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:4.6.0"],\
|
["eslint-plugin-react-hooks", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:4.6.0"],\
|
||||||
["eslint-plugin-unicorn", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:45.0.1"],\
|
["eslint-plugin-unicorn", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:45.0.1"],\
|
||||||
|
["iron-session", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:6.3.1"],\
|
||||||
["next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
["next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
||||||
["prettier", "npm:2.8.0"],\
|
["prettier", "npm:2.8.0"],\
|
||||||
["react", "npm:18.2.0"],\
|
["react", "npm:18.2.0"],\
|
||||||
["react-dom", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:18.2.0"],\
|
["react-dom", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:18.2.0"],\
|
||||||
["twitter-api-sdk", "npm:1.2.1"],\
|
|
||||||
["typescript", "patch:typescript@npm%3A4.9.3#~builtin<compat/typescript>::version=4.9.3&hash=d73830"]\
|
["typescript", "patch:typescript@npm%3A4.9.3#~builtin<compat/typescript>::version=4.9.3&hash=d73830"]\
|
||||||
],\
|
],\
|
||||||
"linkType": "SOFT"\
|
"linkType": "SOFT"\
|
||||||
@ -345,6 +346,42 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["@peculiar/asn1-schema", [\
|
||||||
|
["npm:2.3.3", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@peculiar-asn1-schema-npm-2.3.3-7c2b9469c4-2b1902543e.zip/node_modules/@peculiar/asn1-schema/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@peculiar/asn1-schema", "npm:2.3.3"],\
|
||||||
|
["asn1js", "npm:3.0.5"],\
|
||||||
|
["pvtsutils", "npm:1.3.2"],\
|
||||||
|
["tslib", "npm:2.4.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@peculiar/json-schema", [\
|
||||||
|
["npm:1.1.12", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@peculiar-json-schema-npm-1.1.12-f914d2ea65-b26ececdc2.zip/node_modules/@peculiar/json-schema/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@peculiar/json-schema", "npm:1.1.12"],\
|
||||||
|
["tslib", "npm:2.4.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@peculiar/webcrypto", [\
|
||||||
|
["npm:1.4.1", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@peculiar-webcrypto-npm-1.4.1-3595f492d1-cfcd49f6bd.zip/node_modules/@peculiar/webcrypto/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@peculiar/webcrypto", "npm:1.4.1"],\
|
||||||
|
["@peculiar/asn1-schema", "npm:2.3.3"],\
|
||||||
|
["@peculiar/json-schema", "npm:1.1.12"],\
|
||||||
|
["pvtsutils", "npm:1.3.2"],\
|
||||||
|
["tslib", "npm:2.4.1"],\
|
||||||
|
["webcrypto-core", "npm:1.7.5"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["@pkgr/utils", [\
|
["@pkgr/utils", [\
|
||||||
["npm:2.3.1", {\
|
["npm:2.3.1", {\
|
||||||
"packageLocation": "./.yarn/cache/@pkgr-utils-npm-2.3.1-c89c217c08-118a197112.zip/node_modules/@pkgr/utils/",\
|
"packageLocation": "./.yarn/cache/@pkgr-utils-npm-2.3.1-c89c217c08-118a197112.zip/node_modules/@pkgr/utils/",\
|
||||||
@ -379,6 +416,68 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["@types/accepts", [\
|
||||||
|
["npm:1.3.5", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-accepts-npm-1.3.5-1d59cd2a7a-590b758057.zip/node_modules/@types/accepts/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/accepts", "npm:1.3.5"],\
|
||||||
|
["@types/node", "npm:18.11.9"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/body-parser", [\
|
||||||
|
["npm:1.19.2", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-body-parser-npm-1.19.2-f845b7b538-e17840c7d7.zip/node_modules/@types/body-parser/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/body-parser", "npm:1.19.2"],\
|
||||||
|
["@types/connect", "npm:3.4.35"],\
|
||||||
|
["@types/node", "npm:18.11.9"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/connect", [\
|
||||||
|
["npm:3.4.35", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-connect-npm-3.4.35-7337eee0a3-fe81351470.zip/node_modules/@types/connect/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/connect", "npm:3.4.35"],\
|
||||||
|
["@types/node", "npm:18.11.9"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/content-disposition", [\
|
||||||
|
["npm:0.5.5", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-content-disposition-npm-0.5.5-2219aba782-fdf7379db1.zip/node_modules/@types/content-disposition/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/content-disposition", "npm:0.5.5"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/cookie", [\
|
||||||
|
["npm:0.5.1", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-cookie-npm-0.5.1-4b655a0ac0-9a8d60fc84.zip/node_modules/@types/cookie/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/cookie", "npm:0.5.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/cookies", [\
|
||||||
|
["npm:0.7.7", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-cookies-npm-0.7.7-0fbdd53be5-d3759efc11.zip/node_modules/@types/cookies/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/cookies", "npm:0.7.7"],\
|
||||||
|
["@types/connect", "npm:3.4.35"],\
|
||||||
|
["@types/express", "npm:4.17.14"],\
|
||||||
|
["@types/keygrip", "npm:1.0.2"],\
|
||||||
|
["@types/node", "npm:18.11.9"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["@types/eslint", [\
|
["@types/eslint", [\
|
||||||
["npm:8.4.10", {\
|
["npm:8.4.10", {\
|
||||||
"packageLocation": "./.yarn/cache/@types-eslint-npm-8.4.10-9df5f4bc78-21e009ed9e.zip/node_modules/@types/eslint/",\
|
"packageLocation": "./.yarn/cache/@types-eslint-npm-8.4.10-9df5f4bc78-21e009ed9e.zip/node_modules/@types/eslint/",\
|
||||||
@ -399,6 +498,31 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["@types/express", [\
|
||||||
|
["npm:4.17.14", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-express-npm-4.17.14-076e1b4711-15c1af46d0.zip/node_modules/@types/express/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/express", "npm:4.17.14"],\
|
||||||
|
["@types/body-parser", "npm:1.19.2"],\
|
||||||
|
["@types/express-serve-static-core", "npm:4.17.31"],\
|
||||||
|
["@types/qs", "npm:6.9.7"],\
|
||||||
|
["@types/serve-static", "npm:1.15.0"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/express-serve-static-core", [\
|
||||||
|
["npm:4.17.31", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-express-serve-static-core-npm-4.17.31-846873f446-009bfbe107.zip/node_modules/@types/express-serve-static-core/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/express-serve-static-core", "npm:4.17.31"],\
|
||||||
|
["@types/node", "npm:18.11.9"],\
|
||||||
|
["@types/qs", "npm:6.9.7"],\
|
||||||
|
["@types/range-parser", "npm:1.2.4"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["@types/glob", [\
|
["@types/glob", [\
|
||||||
["npm:7.2.0", {\
|
["npm:7.2.0", {\
|
||||||
"packageLocation": "./.yarn/cache/@types-glob-npm-7.2.0-772334bf9a-6ae717fedf.zip/node_modules/@types/glob/",\
|
"packageLocation": "./.yarn/cache/@types-glob-npm-7.2.0-772334bf9a-6ae717fedf.zip/node_modules/@types/glob/",\
|
||||||
@ -410,6 +534,24 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["@types/http-assert", [\
|
||||||
|
["npm:1.5.3", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-http-assert-npm-1.5.3-d45bf58309-9553e5a0b8.zip/node_modules/@types/http-assert/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/http-assert", "npm:1.5.3"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/http-errors", [\
|
||||||
|
["npm:2.0.1", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-http-errors-npm-2.0.1-c59d5079a7-3bb0c50b0a.zip/node_modules/@types/http-errors/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/http-errors", "npm:2.0.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["@types/json-schema", [\
|
["@types/json-schema", [\
|
||||||
["npm:7.0.11", {\
|
["npm:7.0.11", {\
|
||||||
"packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.11-79462ae5ca-527bddfe62.zip/node_modules/@types/json-schema/",\
|
"packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.11-79462ae5ca-527bddfe62.zip/node_modules/@types/json-schema/",\
|
||||||
@ -428,6 +570,51 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["@types/keygrip", [\
|
||||||
|
["npm:1.0.2", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-keygrip-npm-1.0.2-2e57be51bc-60bc2738a4.zip/node_modules/@types/keygrip/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/keygrip", "npm:1.0.2"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/koa", [\
|
||||||
|
["npm:2.13.5", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-koa-npm-2.13.5-ee6d93204c-e3b634d934.zip/node_modules/@types/koa/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/koa", "npm:2.13.5"],\
|
||||||
|
["@types/accepts", "npm:1.3.5"],\
|
||||||
|
["@types/content-disposition", "npm:0.5.5"],\
|
||||||
|
["@types/cookies", "npm:0.7.7"],\
|
||||||
|
["@types/http-assert", "npm:1.5.3"],\
|
||||||
|
["@types/http-errors", "npm:2.0.1"],\
|
||||||
|
["@types/keygrip", "npm:1.0.2"],\
|
||||||
|
["@types/koa-compose", "npm:3.2.5"],\
|
||||||
|
["@types/node", "npm:18.11.9"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/koa-compose", [\
|
||||||
|
["npm:3.2.5", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-koa-compose-npm-3.2.5-b9ab25d904-5d1147c4b0.zip/node_modules/@types/koa-compose/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/koa-compose", "npm:3.2.5"],\
|
||||||
|
["@types/koa", "npm:2.13.5"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/mime", [\
|
||||||
|
["npm:3.0.1", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-mime-npm-3.0.1-dec03536dc-4040fac73f.zip/node_modules/@types/mime/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/mime", "npm:3.0.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["@types/minimatch", [\
|
["@types/minimatch", [\
|
||||||
["npm:5.1.2", {\
|
["npm:5.1.2", {\
|
||||||
"packageLocation": "./.yarn/cache/@types-minimatch-npm-5.1.2-aab9c394d3-0391a28286.zip/node_modules/@types/minimatch/",\
|
"packageLocation": "./.yarn/cache/@types-minimatch-npm-5.1.2-aab9c394d3-0391a28286.zip/node_modules/@types/minimatch/",\
|
||||||
@ -438,6 +625,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["@types/node", [\
|
["@types/node", [\
|
||||||
|
["npm:17.0.45", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-node-npm-17.0.45-fdb38d1624-aa04366b91.zip/node_modules/@types/node/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/node", "npm:17.0.45"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}],\
|
||||||
["npm:18.11.9", {\
|
["npm:18.11.9", {\
|
||||||
"packageLocation": "./.yarn/cache/@types-node-npm-18.11.9-d21dd6ec05-cc0aae109e.zip/node_modules/@types/node/",\
|
"packageLocation": "./.yarn/cache/@types-node-npm-18.11.9-d21dd6ec05-cc0aae109e.zip/node_modules/@types/node/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
@ -464,6 +658,24 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["@types/qs", [\
|
||||||
|
["npm:6.9.7", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-qs-npm-6.9.7-4a3e6ca0d0-7fd6f9c250.zip/node_modules/@types/qs/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/qs", "npm:6.9.7"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["@types/range-parser", [\
|
||||||
|
["npm:1.2.4", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-range-parser-npm-1.2.4-23d797fbde-b7c0dfd508.zip/node_modules/@types/range-parser/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/range-parser", "npm:1.2.4"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["@types/react", [\
|
["@types/react", [\
|
||||||
["npm:18.0.25", {\
|
["npm:18.0.25", {\
|
||||||
"packageLocation": "./.yarn/cache/@types-react-npm-18.0.25-0d729c976f-231d658c45.zip/node_modules/@types/react/",\
|
"packageLocation": "./.yarn/cache/@types-react-npm-18.0.25-0d729c976f-231d658c45.zip/node_modules/@types/react/",\
|
||||||
@ -504,6 +716,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["@types/serve-static", [\
|
||||||
|
["npm:1.15.0", {\
|
||||||
|
"packageLocation": "./.yarn/cache/@types-serve-static-npm-1.15.0-ec80a4ac87-b6ac93d471.zip/node_modules/@types/serve-static/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["@types/serve-static", "npm:1.15.0"],\
|
||||||
|
["@types/mime", "npm:3.0.1"],\
|
||||||
|
["@types/node", "npm:18.11.9"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["@typescript-eslint/eslint-plugin", [\
|
["@typescript-eslint/eslint-plugin", [\
|
||||||
["npm:5.45.0", {\
|
["npm:5.45.0", {\
|
||||||
"packageLocation": "./.yarn/cache/@typescript-eslint-eslint-plugin-npm-5.45.0-af83fa2940-7cff671a9b.zip/node_modules/@typescript-eslint/eslint-plugin/",\
|
"packageLocation": "./.yarn/cache/@typescript-eslint-eslint-plugin-npm-5.45.0-af83fa2940-7cff671a9b.zip/node_modules/@typescript-eslint/eslint-plugin/",\
|
||||||
@ -713,16 +936,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["abort-controller", [\
|
|
||||||
["npm:3.0.0", {\
|
|
||||||
"packageLocation": "./.yarn/cache/abort-controller-npm-3.0.0-2f3a9a2bcb-170bdba9b4.zip/node_modules/abort-controller/",\
|
|
||||||
"packageDependencies": [\
|
|
||||||
["abort-controller", "npm:3.0.0"],\
|
|
||||||
["event-target-shim", "npm:5.0.1"]\
|
|
||||||
],\
|
|
||||||
"linkType": "HARD"\
|
|
||||||
}]\
|
|
||||||
]],\
|
|
||||||
["acorn", [\
|
["acorn", [\
|
||||||
["npm:8.8.1", {\
|
["npm:8.8.1", {\
|
||||||
"packageLocation": "./.yarn/cache/acorn-npm-8.8.1-20e4aea981-4079b67283.zip/node_modules/acorn/",\
|
"packageLocation": "./.yarn/cache/acorn-npm-8.8.1-20e4aea981-4079b67283.zip/node_modules/acorn/",\
|
||||||
@ -877,6 +1090,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["asn1js", [\
|
||||||
|
["npm:3.0.5", {\
|
||||||
|
"packageLocation": "./.yarn/cache/asn1js-npm-3.0.5-cf5558af33-3b6af1bbad.zip/node_modules/asn1js/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["asn1js", "npm:3.0.5"],\
|
||||||
|
["pvtsutils", "npm:1.3.2"],\
|
||||||
|
["pvutils", "npm:1.1.3"],\
|
||||||
|
["tslib", "npm:2.4.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["ast-types-flow", [\
|
["ast-types-flow", [\
|
||||||
["npm:0.0.7", {\
|
["npm:0.0.7", {\
|
||||||
"packageLocation": "./.yarn/cache/ast-types-flow-npm-0.0.7-7d32a3abf5-a26dcc2182.zip/node_modules/ast-types-flow/",\
|
"packageLocation": "./.yarn/cache/ast-types-flow-npm-0.0.7-7d32a3abf5-a26dcc2182.zip/node_modules/ast-types-flow/",\
|
||||||
@ -913,6 +1138,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["base64-js", [\
|
||||||
|
["npm:1.5.1", {\
|
||||||
|
"packageLocation": "./.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip/node_modules/base64-js/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["base64-js", "npm:1.5.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["brace-expansion", [\
|
["brace-expansion", [\
|
||||||
["npm:1.1.11", {\
|
["npm:1.1.11", {\
|
||||||
"packageLocation": "./.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip/node_modules/brace-expansion/",\
|
"packageLocation": "./.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip/node_modules/brace-expansion/",\
|
||||||
@ -934,6 +1168,17 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["buffer", [\
|
||||||
|
["npm:6.0.3", {\
|
||||||
|
"packageLocation": "./.yarn/cache/buffer-npm-6.0.3-cd90dfedfe-5ad23293d9.zip/node_modules/buffer/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["buffer", "npm:6.0.3"],\
|
||||||
|
["base64-js", "npm:1.5.1"],\
|
||||||
|
["ieee754", "npm:1.2.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["builtin-modules", [\
|
["builtin-modules", [\
|
||||||
["npm:3.3.0", {\
|
["npm:3.3.0", {\
|
||||||
"packageLocation": "./.yarn/cache/builtin-modules-npm-3.3.0-db4f3d32de-db021755d7.zip/node_modules/builtin-modules/",\
|
"packageLocation": "./.yarn/cache/builtin-modules-npm-3.3.0-db4f3d32de-db021755d7.zip/node_modules/builtin-modules/",\
|
||||||
@ -1073,6 +1318,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["cookie", [\
|
||||||
|
["npm:0.5.0", {\
|
||||||
|
"packageLocation": "./.yarn/cache/cookie-npm-0.5.0-e2d58a161a-1f4bd2ca57.zip/node_modules/cookie/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["cookie", "npm:0.5.0"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["core-js-pure", [\
|
["core-js-pure", [\
|
||||||
["npm:3.26.1", {\
|
["npm:3.26.1", {\
|
||||||
"packageLocation": "./.yarn/unplugged/core-js-pure-npm-3.26.1-d78c7431c6/node_modules/core-js-pure/",\
|
"packageLocation": "./.yarn/unplugged/core-js-pure-npm-3.26.1-d78c7431c6/node_modules/core-js-pure/",\
|
||||||
@ -1094,6 +1348,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["crypto", [\
|
||||||
|
["npm:1.0.1", {\
|
||||||
|
"packageLocation": "./.yarn/cache/crypto-npm-1.0.1-7cb8e3dca6-087fe3165b.zip/node_modules/crypto/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["crypto", "npm:1.0.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["csstype", [\
|
["csstype", [\
|
||||||
["npm:3.1.1", {\
|
["npm:3.1.1", {\
|
||||||
"packageLocation": "./.yarn/cache/csstype-npm-3.1.1-3857baf48b-1f7b4f5fdd.zip/node_modules/csstype/",\
|
"packageLocation": "./.yarn/cache/csstype-npm-3.1.1-3857baf48b-1f7b4f5fdd.zip/node_modules/csstype/",\
|
||||||
@ -1912,15 +2175,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["event-target-shim", [\
|
|
||||||
["npm:5.0.1", {\
|
|
||||||
"packageLocation": "./.yarn/cache/event-target-shim-npm-5.0.1-cb48709025-1ffe3bb22a.zip/node_modules/event-target-shim/",\
|
|
||||||
"packageDependencies": [\
|
|
||||||
["event-target-shim", "npm:5.0.1"]\
|
|
||||||
],\
|
|
||||||
"linkType": "HARD"\
|
|
||||||
}]\
|
|
||||||
]],\
|
|
||||||
["fast-deep-equal", [\
|
["fast-deep-equal", [\
|
||||||
["npm:3.1.3", {\
|
["npm:3.1.3", {\
|
||||||
"packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip/node_modules/fast-deep-equal/",\
|
"packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-e21a9d8d84.zip/node_modules/fast-deep-equal/",\
|
||||||
@ -2341,6 +2595,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
["@types/react-dom", "npm:18.0.9"],\
|
["@types/react-dom", "npm:18.0.9"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
["@typescript-eslint/eslint-plugin", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
||||||
["@typescript-eslint/parser", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
["@typescript-eslint/parser", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:5.45.0"],\
|
||||||
|
["crypto", "npm:1.0.1"],\
|
||||||
["eslint", "npm:8.28.0"],\
|
["eslint", "npm:8.28.0"],\
|
||||||
["eslint-config-next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
["eslint-config-next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
||||||
["eslint-config-prettier", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:8.5.0"],\
|
["eslint-config-prettier", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:8.5.0"],\
|
||||||
@ -2351,16 +2606,25 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
["eslint-plugin-react", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.31.11"],\
|
["eslint-plugin-react", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:7.31.11"],\
|
||||||
["eslint-plugin-react-hooks", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:4.6.0"],\
|
["eslint-plugin-react-hooks", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:4.6.0"],\
|
||||||
["eslint-plugin-unicorn", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:45.0.1"],\
|
["eslint-plugin-unicorn", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:45.0.1"],\
|
||||||
|
["iron-session", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:6.3.1"],\
|
||||||
["next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
["next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"],\
|
||||||
["prettier", "npm:2.8.0"],\
|
["prettier", "npm:2.8.0"],\
|
||||||
["react", "npm:18.2.0"],\
|
["react", "npm:18.2.0"],\
|
||||||
["react-dom", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:18.2.0"],\
|
["react-dom", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:18.2.0"],\
|
||||||
["twitter-api-sdk", "npm:1.2.1"],\
|
|
||||||
["typescript", "patch:typescript@npm%3A4.9.3#~builtin<compat/typescript>::version=4.9.3&hash=d73830"]\
|
["typescript", "patch:typescript@npm%3A4.9.3#~builtin<compat/typescript>::version=4.9.3&hash=d73830"]\
|
||||||
],\
|
],\
|
||||||
"linkType": "SOFT"\
|
"linkType": "SOFT"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["ieee754", [\
|
||||||
|
["npm:1.2.1", {\
|
||||||
|
"packageLocation": "./.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip/node_modules/ieee754/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["ieee754", "npm:1.2.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["ignore", [\
|
["ignore", [\
|
||||||
["npm:5.2.1", {\
|
["npm:5.2.1", {\
|
||||||
"packageLocation": "./.yarn/cache/ignore-npm-5.2.1-208dc99ae8-7251d00cba.zip/node_modules/ignore/",\
|
"packageLocation": "./.yarn/cache/ignore-npm-5.2.1-208dc99ae8-7251d00cba.zip/node_modules/ignore/",\
|
||||||
@ -2431,6 +2695,49 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["iron-session", [\
|
||||||
|
["npm:6.3.1", {\
|
||||||
|
"packageLocation": "./.yarn/cache/iron-session-npm-6.3.1-3d184d9b5e-65f534187b.zip/node_modules/iron-session/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["iron-session", "npm:6.3.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "SOFT"\
|
||||||
|
}],\
|
||||||
|
["virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:6.3.1", {\
|
||||||
|
"packageLocation": "./.yarn/__virtual__/iron-session-virtual-46f542dab9/0/cache/iron-session-npm-6.3.1-3d184d9b5e-65f534187b.zip/node_modules/iron-session/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["iron-session", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:6.3.1"],\
|
||||||
|
["@peculiar/webcrypto", "npm:1.4.1"],\
|
||||||
|
["@types/cookie", "npm:0.5.1"],\
|
||||||
|
["@types/express", "npm:4.17.14"],\
|
||||||
|
["@types/koa", "npm:2.13.5"],\
|
||||||
|
["@types/next", null],\
|
||||||
|
["@types/node", "npm:17.0.45"],\
|
||||||
|
["cookie", "npm:0.5.0"],\
|
||||||
|
["express", null],\
|
||||||
|
["iron-webcrypto", "npm:0.2.6"],\
|
||||||
|
["koa", null],\
|
||||||
|
["next", "virtual:4b77e00d446246df1ed27001550885fbf1b51be18c660c1b5c357d3d763078ecef2a676194291a120f149b87573081e5af0621dc83cf1f83383639f39ac133c7#npm:13.0.5"]\
|
||||||
|
],\
|
||||||
|
"packagePeers": [\
|
||||||
|
"@types/next",\
|
||||||
|
"express",\
|
||||||
|
"koa",\
|
||||||
|
"next"\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["iron-webcrypto", [\
|
||||||
|
["npm:0.2.6", {\
|
||||||
|
"packageLocation": "./.yarn/cache/iron-webcrypto-npm-0.2.6-8c13b11192-8b32e4f494.zip/node_modules/iron-webcrypto/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["iron-webcrypto", "npm:0.2.6"],\
|
||||||
|
["buffer", "npm:6.0.3"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["is-arrayish", [\
|
["is-arrayish", [\
|
||||||
["npm:0.2.1", {\
|
["npm:0.2.1", {\
|
||||||
"packageLocation": "./.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip/node_modules/is-arrayish/",\
|
"packageLocation": "./.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip/node_modules/is-arrayish/",\
|
||||||
@ -3027,29 +3334,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["node-fetch", [\
|
|
||||||
["npm:2.6.7", {\
|
|
||||||
"packageLocation": "./.yarn/cache/node-fetch-npm-2.6.7-777aa2a6df-8d816ffd1e.zip/node_modules/node-fetch/",\
|
|
||||||
"packageDependencies": [\
|
|
||||||
["node-fetch", "npm:2.6.7"]\
|
|
||||||
],\
|
|
||||||
"linkType": "SOFT"\
|
|
||||||
}],\
|
|
||||||
["virtual:15e88f013aab7f0ee21b80b2aacd9c758bcffd83a3a22c6e1971f032f68acc65ca544062c16a8bf5a5d2be6356f854582c1d469e633c7c65852e00a36d721d5f#npm:2.6.7", {\
|
|
||||||
"packageLocation": "./.yarn/__virtual__/node-fetch-virtual-7f26b10931/0/cache/node-fetch-npm-2.6.7-777aa2a6df-8d816ffd1e.zip/node_modules/node-fetch/",\
|
|
||||||
"packageDependencies": [\
|
|
||||||
["node-fetch", "virtual:15e88f013aab7f0ee21b80b2aacd9c758bcffd83a3a22c6e1971f032f68acc65ca544062c16a8bf5a5d2be6356f854582c1d469e633c7c65852e00a36d721d5f#npm:2.6.7"],\
|
|
||||||
["@types/encoding", null],\
|
|
||||||
["encoding", null],\
|
|
||||||
["whatwg-url", "npm:5.0.0"]\
|
|
||||||
],\
|
|
||||||
"packagePeers": [\
|
|
||||||
"@types/encoding",\
|
|
||||||
"encoding"\
|
|
||||||
],\
|
|
||||||
"linkType": "HARD"\
|
|
||||||
}]\
|
|
||||||
]],\
|
|
||||||
["normalize-package-data", [\
|
["normalize-package-data", [\
|
||||||
["npm:2.5.0", {\
|
["npm:2.5.0", {\
|
||||||
"packageLocation": "./.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-7999112efc.zip/node_modules/normalize-package-data/",\
|
"packageLocation": "./.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-7999112efc.zip/node_modules/normalize-package-data/",\
|
||||||
@ -3397,6 +3681,25 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
|
["pvtsutils", [\
|
||||||
|
["npm:1.3.2", {\
|
||||||
|
"packageLocation": "./.yarn/cache/pvtsutils-npm-1.3.2-e1483da905-9b81556113.zip/node_modules/pvtsutils/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["pvtsutils", "npm:1.3.2"],\
|
||||||
|
["tslib", "npm:2.4.1"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
|
["pvutils", [\
|
||||||
|
["npm:1.1.3", {\
|
||||||
|
"packageLocation": "./.yarn/cache/pvutils-npm-1.1.3-da8b07d6cf-2ee26a9e51.zip/node_modules/pvutils/",\
|
||||||
|
"packageDependencies": [\
|
||||||
|
["pvutils", "npm:1.1.3"]\
|
||||||
|
],\
|
||||||
|
"linkType": "HARD"\
|
||||||
|
}]\
|
||||||
|
]],\
|
||||||
["queue-microtask", [\
|
["queue-microtask", [\
|
||||||
["npm:1.2.3", {\
|
["npm:1.2.3", {\
|
||||||
"packageLocation": "./.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip/node_modules/queue-microtask/",\
|
"packageLocation": "./.yarn/cache/queue-microtask-npm-1.2.3-fcc98e4e2d-b676f8c040.zip/node_modules/queue-microtask/",\
|
||||||
@ -3946,15 +4249,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["tr46", [\
|
|
||||||
["npm:0.0.3", {\
|
|
||||||
"packageLocation": "./.yarn/cache/tr46-npm-0.0.3-de53018915-726321c5ea.zip/node_modules/tr46/",\
|
|
||||||
"packageDependencies": [\
|
|
||||||
["tr46", "npm:0.0.3"]\
|
|
||||||
],\
|
|
||||||
"linkType": "HARD"\
|
|
||||||
}]\
|
|
||||||
]],\
|
|
||||||
["tsconfig-paths", [\
|
["tsconfig-paths", [\
|
||||||
["npm:3.14.1", {\
|
["npm:3.14.1", {\
|
||||||
"packageLocation": "./.yarn/cache/tsconfig-paths-npm-3.14.1-17a815b5c5-8afa01c673.zip/node_modules/tsconfig-paths/",\
|
"packageLocation": "./.yarn/cache/tsconfig-paths-npm-3.14.1-17a815b5c5-8afa01c673.zip/node_modules/tsconfig-paths/",\
|
||||||
@ -4021,17 +4315,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["twitter-api-sdk", [\
|
|
||||||
["npm:1.2.1", {\
|
|
||||||
"packageLocation": "./.yarn/cache/twitter-api-sdk-npm-1.2.1-15e88f013a-e931578087.zip/node_modules/twitter-api-sdk/",\
|
|
||||||
"packageDependencies": [\
|
|
||||||
["twitter-api-sdk", "npm:1.2.1"],\
|
|
||||||
["abort-controller", "npm:3.0.0"],\
|
|
||||||
["node-fetch", "virtual:15e88f013aab7f0ee21b80b2aacd9c758bcffd83a3a22c6e1971f032f68acc65ca544062c16a8bf5a5d2be6356f854582c1d469e633c7c65852e00a36d721d5f#npm:2.6.7"]\
|
|
||||||
],\
|
|
||||||
"linkType": "HARD"\
|
|
||||||
}]\
|
|
||||||
]],\
|
|
||||||
["type-check", [\
|
["type-check", [\
|
||||||
["npm:0.4.0", {\
|
["npm:0.4.0", {\
|
||||||
"packageLocation": "./.yarn/cache/type-check-npm-0.4.0-60565800ce-ec688ebfc9.zip/node_modules/type-check/",\
|
"packageLocation": "./.yarn/cache/type-check-npm-0.4.0-60565800ce-ec688ebfc9.zip/node_modules/type-check/",\
|
||||||
@ -4108,22 +4391,16 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
|||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["webidl-conversions", [\
|
["webcrypto-core", [\
|
||||||
["npm:3.0.1", {\
|
["npm:1.7.5", {\
|
||||||
"packageLocation": "./.yarn/cache/webidl-conversions-npm-3.0.1-60310f6a2b-c92a0a6ab9.zip/node_modules/webidl-conversions/",\
|
"packageLocation": "./.yarn/cache/webcrypto-core-npm-1.7.5-4734fab0f3-f6e529ca5c.zip/node_modules/webcrypto-core/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["webidl-conversions", "npm:3.0.1"]\
|
["webcrypto-core", "npm:1.7.5"],\
|
||||||
],\
|
["@peculiar/asn1-schema", "npm:2.3.3"],\
|
||||||
"linkType": "HARD"\
|
["@peculiar/json-schema", "npm:1.1.12"],\
|
||||||
}]\
|
["asn1js", "npm:3.0.5"],\
|
||||||
]],\
|
["pvtsutils", "npm:1.3.2"],\
|
||||||
["whatwg-url", [\
|
["tslib", "npm:2.4.1"]\
|
||||||
["npm:5.0.0", {\
|
|
||||||
"packageLocation": "./.yarn/cache/whatwg-url-npm-5.0.0-374fb45e60-b8daed4ad3.zip/node_modules/whatwg-url/",\
|
|
||||||
"packageDependencies": [\
|
|
||||||
["whatwg-url", "npm:5.0.0"],\
|
|
||||||
["tr46", "npm:0.0.3"],\
|
|
||||||
["webidl-conversions", "npm:3.0.1"]\
|
|
||||||
],\
|
],\
|
||||||
"linkType": "HARD"\
|
"linkType": "HARD"\
|
||||||
}]\
|
}]\
|
||||||
|
BIN
.yarn/cache/@peculiar-asn1-schema-npm-2.3.3-7c2b9469c4-2b1902543e.zip
vendored
Normal file
BIN
.yarn/cache/@peculiar-asn1-schema-npm-2.3.3-7c2b9469c4-2b1902543e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@peculiar-json-schema-npm-1.1.12-f914d2ea65-b26ececdc2.zip
vendored
Normal file
BIN
.yarn/cache/@peculiar-json-schema-npm-1.1.12-f914d2ea65-b26ececdc2.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@peculiar-webcrypto-npm-1.4.1-3595f492d1-cfcd49f6bd.zip
vendored
Normal file
BIN
.yarn/cache/@peculiar-webcrypto-npm-1.4.1-3595f492d1-cfcd49f6bd.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-accepts-npm-1.3.5-1d59cd2a7a-590b758057.zip
vendored
Normal file
BIN
.yarn/cache/@types-accepts-npm-1.3.5-1d59cd2a7a-590b758057.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-body-parser-npm-1.19.2-f845b7b538-e17840c7d7.zip
vendored
Normal file
BIN
.yarn/cache/@types-body-parser-npm-1.19.2-f845b7b538-e17840c7d7.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-connect-npm-3.4.35-7337eee0a3-fe81351470.zip
vendored
Normal file
BIN
.yarn/cache/@types-connect-npm-3.4.35-7337eee0a3-fe81351470.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-content-disposition-npm-0.5.5-2219aba782-fdf7379db1.zip
vendored
Normal file
BIN
.yarn/cache/@types-content-disposition-npm-0.5.5-2219aba782-fdf7379db1.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-cookie-npm-0.5.1-4b655a0ac0-9a8d60fc84.zip
vendored
Normal file
BIN
.yarn/cache/@types-cookie-npm-0.5.1-4b655a0ac0-9a8d60fc84.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-cookies-npm-0.7.7-0fbdd53be5-d3759efc11.zip
vendored
Normal file
BIN
.yarn/cache/@types-cookies-npm-0.7.7-0fbdd53be5-d3759efc11.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-express-npm-4.17.14-076e1b4711-15c1af46d0.zip
vendored
Normal file
BIN
.yarn/cache/@types-express-npm-4.17.14-076e1b4711-15c1af46d0.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-express-serve-static-core-npm-4.17.31-846873f446-009bfbe107.zip
vendored
Normal file
BIN
.yarn/cache/@types-express-serve-static-core-npm-4.17.31-846873f446-009bfbe107.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-http-assert-npm-1.5.3-d45bf58309-9553e5a0b8.zip
vendored
Normal file
BIN
.yarn/cache/@types-http-assert-npm-1.5.3-d45bf58309-9553e5a0b8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-http-errors-npm-2.0.1-c59d5079a7-3bb0c50b0a.zip
vendored
Normal file
BIN
.yarn/cache/@types-http-errors-npm-2.0.1-c59d5079a7-3bb0c50b0a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-keygrip-npm-1.0.2-2e57be51bc-60bc2738a4.zip
vendored
Normal file
BIN
.yarn/cache/@types-keygrip-npm-1.0.2-2e57be51bc-60bc2738a4.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-koa-compose-npm-3.2.5-b9ab25d904-5d1147c4b0.zip
vendored
Normal file
BIN
.yarn/cache/@types-koa-compose-npm-3.2.5-b9ab25d904-5d1147c4b0.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-koa-npm-2.13.5-ee6d93204c-e3b634d934.zip
vendored
Normal file
BIN
.yarn/cache/@types-koa-npm-2.13.5-ee6d93204c-e3b634d934.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-mime-npm-3.0.1-dec03536dc-4040fac73f.zip
vendored
Normal file
BIN
.yarn/cache/@types-mime-npm-3.0.1-dec03536dc-4040fac73f.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-node-npm-17.0.45-fdb38d1624-aa04366b91.zip
vendored
Normal file
BIN
.yarn/cache/@types-node-npm-17.0.45-fdb38d1624-aa04366b91.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-qs-npm-6.9.7-4a3e6ca0d0-7fd6f9c250.zip
vendored
Normal file
BIN
.yarn/cache/@types-qs-npm-6.9.7-4a3e6ca0d0-7fd6f9c250.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-range-parser-npm-1.2.4-23d797fbde-b7c0dfd508.zip
vendored
Normal file
BIN
.yarn/cache/@types-range-parser-npm-1.2.4-23d797fbde-b7c0dfd508.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@types-serve-static-npm-1.15.0-ec80a4ac87-b6ac93d471.zip
vendored
Normal file
BIN
.yarn/cache/@types-serve-static-npm-1.15.0-ec80a4ac87-b6ac93d471.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/asn1js-npm-3.0.5-cf5558af33-3b6af1bbad.zip
vendored
Normal file
BIN
.yarn/cache/asn1js-npm-3.0.5-cf5558af33-3b6af1bbad.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip
vendored
Normal file
BIN
.yarn/cache/base64-js-npm-1.5.1-b2f7275641-669632eb37.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/buffer-npm-6.0.3-cd90dfedfe-5ad23293d9.zip
vendored
Normal file
BIN
.yarn/cache/buffer-npm-6.0.3-cd90dfedfe-5ad23293d9.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/cookie-npm-0.5.0-e2d58a161a-1f4bd2ca57.zip
vendored
Normal file
BIN
.yarn/cache/cookie-npm-0.5.0-e2d58a161a-1f4bd2ca57.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/crypto-npm-1.0.1-7cb8e3dca6-087fe3165b.zip
vendored
Normal file
BIN
.yarn/cache/crypto-npm-1.0.1-7cb8e3dca6-087fe3165b.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip
vendored
Normal file
BIN
.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/iron-session-npm-6.3.1-3d184d9b5e-65f534187b.zip
vendored
Normal file
BIN
.yarn/cache/iron-session-npm-6.3.1-3d184d9b5e-65f534187b.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/iron-webcrypto-npm-0.2.6-8c13b11192-8b32e4f494.zip
vendored
Normal file
BIN
.yarn/cache/iron-webcrypto-npm-0.2.6-8c13b11192-8b32e4f494.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/pvtsutils-npm-1.3.2-e1483da905-9b81556113.zip
vendored
Normal file
BIN
.yarn/cache/pvtsutils-npm-1.3.2-e1483da905-9b81556113.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/pvutils-npm-1.1.3-da8b07d6cf-2ee26a9e51.zip
vendored
Normal file
BIN
.yarn/cache/pvutils-npm-1.1.3-da8b07d6cf-2ee26a9e51.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/tr46-npm-0.0.3-de53018915-726321c5ea.zip
vendored
BIN
.yarn/cache/tr46-npm-0.0.3-de53018915-726321c5ea.zip
vendored
Binary file not shown.
Binary file not shown.
BIN
.yarn/cache/webcrypto-core-npm-1.7.5-4734fab0f3-f6e529ca5c.zip
vendored
Normal file
BIN
.yarn/cache/webcrypto-core-npm-1.7.5-4734fab0f3-f6e529ca5c.zip
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,8 +0,0 @@
|
|||||||
import { auth } from "twitter-api-sdk";
|
|
||||||
|
|
||||||
export const authClient = new auth.OAuth2User({
|
|
||||||
client_id: process.env.TWITTER_CLIENT_ID ?? "",
|
|
||||||
client_secret: process.env.TWITTER_CLIENT_SECRET,
|
|
||||||
callback: process.env.TWITTER_AUTH_CALLBACK_URI ?? "",
|
|
||||||
scopes: ["users.read", "offline.access"],
|
|
||||||
});
|
|
9
constants/twitter.ts
Normal file
9
constants/twitter.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
export const twitterOAuthBaseUrl = "https://twitter.com/i/oauth2/authorize";
|
||||||
|
|
||||||
|
export const twitterOAuthScopes = [
|
||||||
|
"users.read",
|
||||||
|
"tweet.read",
|
||||||
|
"offline.access",
|
||||||
|
];
|
||||||
|
|
||||||
|
export const twitterApiBaseUrl = "https://api.twitter.com/2";
|
7
iron.config.ts
Normal file
7
iron.config.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
export const ironOptions = {
|
||||||
|
cookieName: "twitter_verifier",
|
||||||
|
password: process.env.IRON_PASSWORD ?? "",
|
||||||
|
cookieOptions: {
|
||||||
|
secure: process.env.NODE_ENV === "production",
|
||||||
|
},
|
||||||
|
};
|
@ -10,10 +10,11 @@
|
|||||||
"lint": "next lint"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"crypto": "^1.0.1",
|
||||||
|
"iron-session": "^6.3.1",
|
||||||
"next": "13.0.5",
|
"next": "13.0.5",
|
||||||
"react": "18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "18.2.0",
|
"react-dom": "18.2.0"
|
||||||
"twitter-api-sdk": "^1.2.1"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@next/eslint-plugin-next": "^13.0.5",
|
"@next/eslint-plugin-next": "^13.0.5",
|
||||||
|
@ -1,18 +1,66 @@
|
|||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
import { authClient } from "../../../client/twitter";
|
import { withIronSessionApiRoute } from "iron-session/next";
|
||||||
|
import { request } from "../../../utils/url";
|
||||||
|
import { ironOptions } from "../../../iron.config";
|
||||||
|
import { twitterApiBaseUrl } from "../../../constants/twitter";
|
||||||
|
|
||||||
export default async function handler(
|
interface TwitterOAuth2TokenData {
|
||||||
|
token_type: string;
|
||||||
|
expires_in: number;
|
||||||
|
access_token: string;
|
||||||
|
scope: string;
|
||||||
|
refresh_token: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default withIronSessionApiRoute(async function handler(
|
||||||
req: NextApiRequest,
|
req: NextApiRequest,
|
||||||
res: NextApiResponse,
|
res: NextApiResponse,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
|
if (
|
||||||
|
!process.env.TWITTER_CLIENT_ID ||
|
||||||
|
!process.env.TWITTER_CLIENT_SECRET ||
|
||||||
|
!process.env.TWITTER_AUTH_CALLBACK_URI
|
||||||
|
) {
|
||||||
|
return res
|
||||||
|
.status(500)
|
||||||
|
.send(
|
||||||
|
"Twitter app client id or client secret or callback URI is not set",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!req.session.code_verifier) {
|
||||||
|
return res.status(401).send("No OAuth2.0 code verifier");
|
||||||
|
}
|
||||||
|
|
||||||
const { code, state } = req.query;
|
const { code, state } = req.query;
|
||||||
if (state !== process.env.TWITTER_AUTH_STATE) {
|
if (state !== process.env.TWITTER_AUTH_STATE) {
|
||||||
return res.status(500).send("State isn't matching");
|
return res.status(401).send("State isn't matching");
|
||||||
}
|
}
|
||||||
const { token } = await authClient.requestAccessToken(code as string);
|
|
||||||
res.status(200).json(token);
|
const params = new URLSearchParams();
|
||||||
|
params.append("grant_type", "authorization_code");
|
||||||
|
params.append("code", code as string);
|
||||||
|
params.append("redirect_uri", process.env.TWITTER_AUTH_CALLBACK_URI);
|
||||||
|
params.append("code_verifier", req.session.code_verifier);
|
||||||
|
const tokenData = await request<TwitterOAuth2TokenData>(
|
||||||
|
`${twitterApiBaseUrl}/oauth2/token`,
|
||||||
|
{
|
||||||
|
method: "post",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/x-www-form-urlencoded",
|
||||||
|
Authorization: `Basic ${Buffer.from(
|
||||||
|
`${process.env.TWITTER_CLIENT_ID}:${process.env.TWITTER_CLIENT_SECRET}`,
|
||||||
|
).toString("base64")}`,
|
||||||
|
},
|
||||||
|
body: params,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
res.status(200).json({
|
||||||
|
accessToken: tokenData.access_token,
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
ironOptions);
|
||||||
|
@ -1,7 +1,18 @@
|
|||||||
import type { NextApiRequest, NextApiResponse } from "next";
|
import type { NextApiRequest, NextApiResponse } from "next";
|
||||||
import { authClient } from "../../../client/twitter";
|
import crypto from "crypto";
|
||||||
|
import { withIronSessionApiRoute } from "iron-session/next";
|
||||||
|
import { base64URLEncode } from "../../../utils/encoding";
|
||||||
|
import { buildQueryString } from "../../../utils/url";
|
||||||
|
import { ironOptions } from "../../../iron.config";
|
||||||
|
import {
|
||||||
|
twitterOAuthBaseUrl,
|
||||||
|
twitterOAuthScopes,
|
||||||
|
} from "../../../constants/twitter";
|
||||||
|
|
||||||
export default function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default withIronSessionApiRoute(async function handler(
|
||||||
|
req: NextApiRequest,
|
||||||
|
res: NextApiResponse,
|
||||||
|
) {
|
||||||
if (
|
if (
|
||||||
!process.env.TWITTER_AUTH_STATE ||
|
!process.env.TWITTER_AUTH_STATE ||
|
||||||
!process.env.TWITTER_AUTH_CODE_CHALLENGE
|
!process.env.TWITTER_AUTH_CODE_CHALLENGE
|
||||||
@ -9,10 +20,30 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
|
|||||||
return res.status(500).send("No state or code_challenge");
|
return res.status(500).send("No state or code_challenge");
|
||||||
}
|
}
|
||||||
|
|
||||||
const authUrl = authClient.generateAuthURL({
|
const codeVerifier = base64URLEncode(crypto.randomBytes(32));
|
||||||
|
req.session.code_verifier = codeVerifier;
|
||||||
|
await req.session.save();
|
||||||
|
const codeChallenge = base64URLEncode(
|
||||||
|
crypto.createHash("sha256").update(codeVerifier).digest(),
|
||||||
|
);
|
||||||
|
const authUrlObj = new URL(twitterOAuthBaseUrl);
|
||||||
|
authUrlObj.search = buildQueryString({
|
||||||
|
client_id: process.env.TWITTER_CLIENT_ID,
|
||||||
|
redirect_uri: process.env.TWITTER_AUTH_CALLBACK_URI,
|
||||||
state: process.env.TWITTER_AUTH_STATE,
|
state: process.env.TWITTER_AUTH_STATE,
|
||||||
code_challenge: process.env.TWITTER_AUTH_CODE_CHALLENGE,
|
scope: twitterOAuthScopes.join(" "),
|
||||||
code_challenge_method: "plain",
|
response_type: "code",
|
||||||
|
code_challenge_method: "s256",
|
||||||
|
code_challenge: codeChallenge,
|
||||||
});
|
});
|
||||||
|
const authUrl = authUrlObj.toString();
|
||||||
|
|
||||||
res.status(200).json({ authUrl });
|
res.status(200).json({ authUrl });
|
||||||
|
},
|
||||||
|
ironOptions);
|
||||||
|
|
||||||
|
declare module "iron-session" {
|
||||||
|
interface IronSessionData {
|
||||||
|
code_verifier?: string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import styles from "../styles/Home.module.css";
|
import styles from "../styles/Home.module.css";
|
||||||
import { useEffect } from "react";
|
|
||||||
|
|
||||||
interface AuthResponse {
|
interface AuthResponse {
|
||||||
authUrl: string;
|
authUrl: string;
|
||||||
@ -7,9 +6,9 @@ interface AuthResponse {
|
|||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
const handleSignInWithTwitter = async () => {
|
const handleSignInWithTwitter = async () => {
|
||||||
const response: AuthResponse = await (await fetch("/api/auth")).json();
|
const { authUrl }: AuthResponse = await (await fetch("/api/auth")).json();
|
||||||
|
|
||||||
window.location.href = response.authUrl;
|
window.location.href = authUrl;
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
|
|
||||||
interface AccessTokenResponse {
|
interface AccessTokenResponse {
|
||||||
access_token: string;
|
accessToken: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function VerificationPage() {
|
export default function VerificationPage() {
|
||||||
const [accessToken, setAccessToken] = useState<string>();
|
const [accessToken, setAccessToken] = useState<string>();
|
||||||
|
|
||||||
const fetchAccessToken = async (state: string, code: string) => {
|
const fetchAccessToken = async (state: string, code: string) => {
|
||||||
const response: AccessTokenResponse = await (
|
const { accessToken }: AccessTokenResponse = await (
|
||||||
await fetch(`/api/auth/access-token?state=${state}&code=${code}`)
|
await fetch(`/api/auth/access-token?state=${state}&code=${code}`)
|
||||||
).json();
|
).json();
|
||||||
|
|
||||||
setAccessToken(response.access_token);
|
setAccessToken(accessToken);
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
7
utils/encoding.ts
Normal file
7
utils/encoding.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
export function base64URLEncode(str: Buffer) {
|
||||||
|
return str
|
||||||
|
.toString("base64")
|
||||||
|
.replace(/\+/g, "-")
|
||||||
|
.replace(/\//g, "_")
|
||||||
|
.replace(/=/g, "");
|
||||||
|
}
|
18
utils/url.ts
Normal file
18
utils/url.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
export function request<TResponse>(
|
||||||
|
url: string,
|
||||||
|
config: RequestInit = {},
|
||||||
|
): Promise<TResponse> {
|
||||||
|
return fetch(url, config)
|
||||||
|
.then((response) => response.json())
|
||||||
|
.then((data) => data as TResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildQueryString(query: Record<string, any>): string {
|
||||||
|
return Object.entries(query)
|
||||||
|
.map(([key, value]) =>
|
||||||
|
key && value
|
||||||
|
? `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
|
||||||
|
: "",
|
||||||
|
)
|
||||||
|
.join("&");
|
||||||
|
}
|
368
yarn.lock
368
yarn.lock
@ -238,6 +238,39 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@peculiar/asn1-schema@npm:^2.1.6, @peculiar/asn1-schema@npm:^2.3.0":
|
||||||
|
version: 2.3.3
|
||||||
|
resolution: "@peculiar/asn1-schema@npm:2.3.3"
|
||||||
|
dependencies:
|
||||||
|
asn1js: ^3.0.5
|
||||||
|
pvtsutils: ^1.3.2
|
||||||
|
tslib: ^2.4.0
|
||||||
|
checksum: 2b1902543ec65d677c709f05a6a845b033490444dd7c9cbfba22290a26623c55f53a13995f8401cdb67e36b8182d55ca9278d50dd3f2d9ae757fbd9ddadab927
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@peculiar/json-schema@npm:^1.1.12":
|
||||||
|
version: 1.1.12
|
||||||
|
resolution: "@peculiar/json-schema@npm:1.1.12"
|
||||||
|
dependencies:
|
||||||
|
tslib: ^2.0.0
|
||||||
|
checksum: b26ececdc23c5ef25837f8be8d1eb5e1c8bb6e9ae7227ac59ffea57fff56bd05137734e7685e9100595d3d88d906dff638ef8d1df54264c388d3eac1b05aa060
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@peculiar/webcrypto@npm:^1.4.0":
|
||||||
|
version: 1.4.1
|
||||||
|
resolution: "@peculiar/webcrypto@npm:1.4.1"
|
||||||
|
dependencies:
|
||||||
|
"@peculiar/asn1-schema": ^2.3.0
|
||||||
|
"@peculiar/json-schema": ^1.1.12
|
||||||
|
pvtsutils: ^1.3.2
|
||||||
|
tslib: ^2.4.1
|
||||||
|
webcrypto-core: ^1.7.4
|
||||||
|
checksum: cfcd49f6bd199016de83445f1786b17c49d02aee74b400e7e03ba3bc3707457bdebd23bbaba0e2ff3becdcd769d71b79ec64ae35e0acb80b4ab3ed6326ab111c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@pkgr/utils@npm:^2.3.1":
|
"@pkgr/utils@npm:^2.3.1":
|
||||||
version: 2.3.1
|
version: 2.3.1
|
||||||
resolution: "@pkgr/utils@npm:2.3.1"
|
resolution: "@pkgr/utils@npm:2.3.1"
|
||||||
@ -268,6 +301,60 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/accepts@npm:*":
|
||||||
|
version: 1.3.5
|
||||||
|
resolution: "@types/accepts@npm:1.3.5"
|
||||||
|
dependencies:
|
||||||
|
"@types/node": "*"
|
||||||
|
checksum: 590b7580570534a640510c071e09074cf63b5958b237a728f94322567350aea4d239f8a9d897a12b15c856b992ee4d7907e9812bb079886af2c00714e7fb3f60
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/body-parser@npm:*":
|
||||||
|
version: 1.19.2
|
||||||
|
resolution: "@types/body-parser@npm:1.19.2"
|
||||||
|
dependencies:
|
||||||
|
"@types/connect": "*"
|
||||||
|
"@types/node": "*"
|
||||||
|
checksum: e17840c7d747a549f00aebe72c89313d09fbc4b632b949b2470c5cb3b1cb73863901ae84d9335b567a79ec5efcfb8a28ff8e3f36bc8748a9686756b6d5681f40
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/connect@npm:*":
|
||||||
|
version: 3.4.35
|
||||||
|
resolution: "@types/connect@npm:3.4.35"
|
||||||
|
dependencies:
|
||||||
|
"@types/node": "*"
|
||||||
|
checksum: fe81351470f2d3165e8b12ce33542eef89ea893e36dd62e8f7d72566dfb7e448376ae962f9f3ea888547ce8b55a40020ca0e01d637fab5d99567673084542641
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/content-disposition@npm:*":
|
||||||
|
version: 0.5.5
|
||||||
|
resolution: "@types/content-disposition@npm:0.5.5"
|
||||||
|
checksum: fdf7379db1d509990bcf9a21d85f05aad878596f28b1418f9179f6436cb22513262c670ce88c6055054a7f5804a9303eeacb70aa59a5e11ffdc1434559db9692
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/cookie@npm:^0.5.1":
|
||||||
|
version: 0.5.1
|
||||||
|
resolution: "@types/cookie@npm:0.5.1"
|
||||||
|
checksum: 9a8d60fc84797122bc399d6bd330fe5780dc7aab032321de705049ea925339f74658bfa418de483a625d51858770efef58df633ff2e20f1bdf7fbd74a52847e2
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/cookies@npm:*":
|
||||||
|
version: 0.7.7
|
||||||
|
resolution: "@types/cookies@npm:0.7.7"
|
||||||
|
dependencies:
|
||||||
|
"@types/connect": "*"
|
||||||
|
"@types/express": "*"
|
||||||
|
"@types/keygrip": "*"
|
||||||
|
"@types/node": "*"
|
||||||
|
checksum: d3759efc1182cb0651808570ae13638677b67b0ea724eef7b174e58ffe6ea044b62c7c2715e532f76f88fce4dd8101ed32ac6fbb73226db654017924e8a2a1e6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@types/eslint@npm:^8.4.10":
|
"@types/eslint@npm:^8.4.10":
|
||||||
version: 8.4.10
|
version: 8.4.10
|
||||||
resolution: "@types/eslint@npm:8.4.10"
|
resolution: "@types/eslint@npm:8.4.10"
|
||||||
@ -285,6 +372,29 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/express-serve-static-core@npm:^4.17.18":
|
||||||
|
version: 4.17.31
|
||||||
|
resolution: "@types/express-serve-static-core@npm:4.17.31"
|
||||||
|
dependencies:
|
||||||
|
"@types/node": "*"
|
||||||
|
"@types/qs": "*"
|
||||||
|
"@types/range-parser": "*"
|
||||||
|
checksum: 009bfbe1070837454a1056aa710d0390ee5fb8c05dfe5a1691cc3e2ca88dc256f80e1ca27cb51a978681631d2f6431bfc9ec352ea46dd0c6eb183d0170bde5df
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/express@npm:*, @types/express@npm:^4.17.13":
|
||||||
|
version: 4.17.14
|
||||||
|
resolution: "@types/express@npm:4.17.14"
|
||||||
|
dependencies:
|
||||||
|
"@types/body-parser": "*"
|
||||||
|
"@types/express-serve-static-core": ^4.17.18
|
||||||
|
"@types/qs": "*"
|
||||||
|
"@types/serve-static": "*"
|
||||||
|
checksum: 15c1af46d02de834e4a225eccaa9d85c0370fdbb3ed4e1bc2d323d24872309961542b993ae236335aeb3e278630224a6ea002078d39e651d78a3b0356b1eaa79
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@types/glob@npm:^7.1.1":
|
"@types/glob@npm:^7.1.1":
|
||||||
version: 7.2.0
|
version: 7.2.0
|
||||||
resolution: "@types/glob@npm:7.2.0"
|
resolution: "@types/glob@npm:7.2.0"
|
||||||
@ -295,6 +405,20 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/http-assert@npm:*":
|
||||||
|
version: 1.5.3
|
||||||
|
resolution: "@types/http-assert@npm:1.5.3"
|
||||||
|
checksum: 9553e5a0b8bcfdac4b51d3fa3b89a91b5450171861a667a5b4c47204e0f4a1ca865d97396e6ceaf220e87b64d06b7a8bad7bfba15ef97acb41a87507c9940dbc
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/http-errors@npm:*":
|
||||||
|
version: 2.0.1
|
||||||
|
resolution: "@types/http-errors@npm:2.0.1"
|
||||||
|
checksum: 3bb0c50b0a652e679a84c30cd0340d696c32ef6558518268c238840346c077f899315daaf1c26c09c57ddd5dc80510f2a7f46acd52bf949e339e35ed3ee9654f
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.9":
|
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.9":
|
||||||
version: 7.0.11
|
version: 7.0.11
|
||||||
resolution: "@types/json-schema@npm:7.0.11"
|
resolution: "@types/json-schema@npm:7.0.11"
|
||||||
@ -309,6 +433,45 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/keygrip@npm:*":
|
||||||
|
version: 1.0.2
|
||||||
|
resolution: "@types/keygrip@npm:1.0.2"
|
||||||
|
checksum: 60bc2738a4f107070ee3d96f44709cb38f3a96c7ccabab09f56c1b2b4d85f869fd8fb9f1f2937e863d0e9e781f005c2223b823bf32b859185b4f52370c352669
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/koa-compose@npm:*":
|
||||||
|
version: 3.2.5
|
||||||
|
resolution: "@types/koa-compose@npm:3.2.5"
|
||||||
|
dependencies:
|
||||||
|
"@types/koa": "*"
|
||||||
|
checksum: 5d1147c4b057eb158195f442f0384f06503f3e69dba99fb517b30a05261a9f92928945c12bb1cfc17a5b7d60db003f38b455a3a9b125f12e4fc81fffa396b3cf
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/koa@npm:*, @types/koa@npm:^2.13.5":
|
||||||
|
version: 2.13.5
|
||||||
|
resolution: "@types/koa@npm:2.13.5"
|
||||||
|
dependencies:
|
||||||
|
"@types/accepts": "*"
|
||||||
|
"@types/content-disposition": "*"
|
||||||
|
"@types/cookies": "*"
|
||||||
|
"@types/http-assert": "*"
|
||||||
|
"@types/http-errors": "*"
|
||||||
|
"@types/keygrip": "*"
|
||||||
|
"@types/koa-compose": "*"
|
||||||
|
"@types/node": "*"
|
||||||
|
checksum: e3b634d934b79ce8f394bf4130511596081f9c073dbfb4309aa32e4c421c47049a002b65111f8d9687eabec55d5a27b1b9ae0699afa83894cb7032c3536bfa17
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/mime@npm:*":
|
||||||
|
version: 3.0.1
|
||||||
|
resolution: "@types/mime@npm:3.0.1"
|
||||||
|
checksum: 4040fac73fd0cea2460e29b348c1a6173da747f3a87da0dbce80dd7a9355a3d0e51d6d9a401654f3e5550620e3718b5a899b2ec1debf18424e298a2c605346e7
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@types/minimatch@npm:*":
|
"@types/minimatch@npm:*":
|
||||||
version: 5.1.2
|
version: 5.1.2
|
||||||
resolution: "@types/minimatch@npm:5.1.2"
|
resolution: "@types/minimatch@npm:5.1.2"
|
||||||
@ -323,6 +486,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/node@npm:^17.0.41":
|
||||||
|
version: 17.0.45
|
||||||
|
resolution: "@types/node@npm:17.0.45"
|
||||||
|
checksum: aa04366b9103b7d6cfd6b2ef64182e0eaa7d4462c3f817618486ea0422984c51fc69fd0d436eae6c9e696ddfdbec9ccaa27a917f7c2e8c75c5d57827fe3d95e8
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@types/normalize-package-data@npm:^2.4.0":
|
"@types/normalize-package-data@npm:^2.4.0":
|
||||||
version: 2.4.1
|
version: 2.4.1
|
||||||
resolution: "@types/normalize-package-data@npm:2.4.1"
|
resolution: "@types/normalize-package-data@npm:2.4.1"
|
||||||
@ -337,6 +507,20 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/qs@npm:*":
|
||||||
|
version: 6.9.7
|
||||||
|
resolution: "@types/qs@npm:6.9.7"
|
||||||
|
checksum: 7fd6f9c25053e9b5bb6bc9f9f76c1d89e6c04f7707a7ba0e44cc01f17ef5284adb82f230f542c2d5557d69407c9a40f0f3515e8319afd14e1e16b5543ac6cdba
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/range-parser@npm:*":
|
||||||
|
version: 1.2.4
|
||||||
|
resolution: "@types/range-parser@npm:1.2.4"
|
||||||
|
checksum: b7c0dfd5080a989d6c8bb0b6750fc0933d9acabeb476da6fe71d8bdf1ab65e37c136169d84148034802f48378ab94e3c37bb4ef7656b2bec2cb9c0f8d4146a95
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@types/react-dom@npm:18.0.9":
|
"@types/react-dom@npm:18.0.9":
|
||||||
version: 18.0.9
|
version: 18.0.9
|
||||||
resolution: "@types/react-dom@npm:18.0.9"
|
resolution: "@types/react-dom@npm:18.0.9"
|
||||||
@ -371,6 +555,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@types/serve-static@npm:*":
|
||||||
|
version: 1.15.0
|
||||||
|
resolution: "@types/serve-static@npm:1.15.0"
|
||||||
|
dependencies:
|
||||||
|
"@types/mime": "*"
|
||||||
|
"@types/node": "*"
|
||||||
|
checksum: b6ac93d471fb0f53ddcac1f9b67572a09cd62806f7db5855244b28f6f421139626f24799392566e97d1ffc61b12f9de7f30380c39fcae3c8a161fe161d44edf2
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@npm:^5.45.0":
|
"@typescript-eslint/eslint-plugin@npm:^5.45.0":
|
||||||
version: 5.45.0
|
version: 5.45.0
|
||||||
resolution: "@typescript-eslint/eslint-plugin@npm:5.45.0"
|
resolution: "@typescript-eslint/eslint-plugin@npm:5.45.0"
|
||||||
@ -491,15 +685,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"abort-controller@npm:^3.0.0":
|
|
||||||
version: 3.0.0
|
|
||||||
resolution: "abort-controller@npm:3.0.0"
|
|
||||||
dependencies:
|
|
||||||
event-target-shim: ^5.0.0
|
|
||||||
checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"acorn-jsx@npm:^5.3.2":
|
"acorn-jsx@npm:^5.3.2":
|
||||||
version: 5.3.2
|
version: 5.3.2
|
||||||
resolution: "acorn-jsx@npm:5.3.2"
|
resolution: "acorn-jsx@npm:5.3.2"
|
||||||
@ -629,6 +814,17 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"asn1js@npm:^3.0.1, asn1js@npm:^3.0.5":
|
||||||
|
version: 3.0.5
|
||||||
|
resolution: "asn1js@npm:3.0.5"
|
||||||
|
dependencies:
|
||||||
|
pvtsutils: ^1.3.2
|
||||||
|
pvutils: ^1.1.3
|
||||||
|
tslib: ^2.4.0
|
||||||
|
checksum: 3b6af1bbadd5762ef8ead5daf2f6bda1bc9e23bc825c4dcc996aa1f9521ad7390a64028565d95d98090d69c8431f004c71cccb866004759169d7c203cf9075eb
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"ast-types-flow@npm:^0.0.7":
|
"ast-types-flow@npm:^0.0.7":
|
||||||
version: 0.0.7
|
version: 0.0.7
|
||||||
resolution: "ast-types-flow@npm:0.0.7"
|
resolution: "ast-types-flow@npm:0.0.7"
|
||||||
@ -657,6 +853,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"base64-js@npm:^1.3.1":
|
||||||
|
version: 1.5.1
|
||||||
|
resolution: "base64-js@npm:1.5.1"
|
||||||
|
checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"brace-expansion@npm:^1.1.7":
|
"brace-expansion@npm:^1.1.7":
|
||||||
version: 1.1.11
|
version: 1.1.11
|
||||||
resolution: "brace-expansion@npm:1.1.11"
|
resolution: "brace-expansion@npm:1.1.11"
|
||||||
@ -676,6 +879,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"buffer@npm:^6":
|
||||||
|
version: 6.0.3
|
||||||
|
resolution: "buffer@npm:6.0.3"
|
||||||
|
dependencies:
|
||||||
|
base64-js: ^1.3.1
|
||||||
|
ieee754: ^1.2.1
|
||||||
|
checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"builtin-modules@npm:^3.3.0":
|
"builtin-modules@npm:^3.3.0":
|
||||||
version: 3.3.0
|
version: 3.3.0
|
||||||
resolution: "builtin-modules@npm:3.3.0"
|
resolution: "builtin-modules@npm:3.3.0"
|
||||||
@ -797,6 +1010,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"cookie@npm:^0.5.0":
|
||||||
|
version: 0.5.0
|
||||||
|
resolution: "cookie@npm:0.5.0"
|
||||||
|
checksum: 1f4bd2ca5765f8c9689a7e8954183f5332139eb72b6ff783d8947032ec1fdf43109852c178e21a953a30c0dd42257828185be01b49d1eb1a67fd054ca588a180
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"core-js-pure@npm:^3.25.1":
|
"core-js-pure@npm:^3.25.1":
|
||||||
version: 3.26.1
|
version: 3.26.1
|
||||||
resolution: "core-js-pure@npm:3.26.1"
|
resolution: "core-js-pure@npm:3.26.1"
|
||||||
@ -815,6 +1035,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"crypto@npm:^1.0.1":
|
||||||
|
version: 1.0.1
|
||||||
|
resolution: "crypto@npm:1.0.1"
|
||||||
|
checksum: 087fe3165bd94c333a49e6ed66a0193911f63eac38a24f379b3001a5fe260a59c413646e53a0f67875ba13902b2686d81dc703cb2c147a4ec727dcdc04e5645e
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"csstype@npm:^3.0.2":
|
"csstype@npm:^3.0.2":
|
||||||
version: 3.1.1
|
version: 3.1.1
|
||||||
resolution: "csstype@npm:3.1.1"
|
resolution: "csstype@npm:3.1.1"
|
||||||
@ -1380,13 +1607,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"event-target-shim@npm:^5.0.0":
|
|
||||||
version: 5.0.1
|
|
||||||
resolution: "event-target-shim@npm:5.0.1"
|
|
||||||
checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
|
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
|
||||||
version: 3.1.3
|
version: 3.1.3
|
||||||
resolution: "fast-deep-equal@npm:3.1.3"
|
resolution: "fast-deep-equal@npm:3.1.3"
|
||||||
@ -1759,6 +1979,7 @@ __metadata:
|
|||||||
"@types/react-dom": 18.0.9
|
"@types/react-dom": 18.0.9
|
||||||
"@typescript-eslint/eslint-plugin": ^5.45.0
|
"@typescript-eslint/eslint-plugin": ^5.45.0
|
||||||
"@typescript-eslint/parser": ^5.45.0
|
"@typescript-eslint/parser": ^5.45.0
|
||||||
|
crypto: ^1.0.1
|
||||||
eslint: 8.28.0
|
eslint: 8.28.0
|
||||||
eslint-config-next: 13.0.5
|
eslint-config-next: 13.0.5
|
||||||
eslint-config-prettier: ^8.5.0
|
eslint-config-prettier: ^8.5.0
|
||||||
@ -1769,15 +1990,22 @@ __metadata:
|
|||||||
eslint-plugin-react: ^7.31.11
|
eslint-plugin-react: ^7.31.11
|
||||||
eslint-plugin-react-hooks: ^4.6.0
|
eslint-plugin-react-hooks: ^4.6.0
|
||||||
eslint-plugin-unicorn: ^45.0.1
|
eslint-plugin-unicorn: ^45.0.1
|
||||||
|
iron-session: ^6.3.1
|
||||||
next: 13.0.5
|
next: 13.0.5
|
||||||
prettier: ^2.8.0
|
prettier: ^2.8.0
|
||||||
react: 18.2.0
|
react: 18.2.0
|
||||||
react-dom: 18.2.0
|
react-dom: 18.2.0
|
||||||
twitter-api-sdk: ^1.2.1
|
|
||||||
typescript: 4.9.3
|
typescript: 4.9.3
|
||||||
languageName: unknown
|
languageName: unknown
|
||||||
linkType: soft
|
linkType: soft
|
||||||
|
|
||||||
|
"ieee754@npm:^1.2.1":
|
||||||
|
version: 1.2.1
|
||||||
|
resolution: "ieee754@npm:1.2.1"
|
||||||
|
checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"ignore@npm:^5.1.1, ignore@npm:^5.2.0":
|
"ignore@npm:^5.1.1, ignore@npm:^5.2.0":
|
||||||
version: 5.2.1
|
version: 5.2.1
|
||||||
resolution: "ignore@npm:5.2.1"
|
resolution: "ignore@npm:5.2.1"
|
||||||
@ -1837,6 +2065,41 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"iron-session@npm:^6.3.1":
|
||||||
|
version: 6.3.1
|
||||||
|
resolution: "iron-session@npm:6.3.1"
|
||||||
|
dependencies:
|
||||||
|
"@peculiar/webcrypto": ^1.4.0
|
||||||
|
"@types/cookie": ^0.5.1
|
||||||
|
"@types/express": ^4.17.13
|
||||||
|
"@types/koa": ^2.13.5
|
||||||
|
"@types/node": ^17.0.41
|
||||||
|
cookie: ^0.5.0
|
||||||
|
iron-webcrypto: ^0.2.5
|
||||||
|
peerDependencies:
|
||||||
|
express: ">=4"
|
||||||
|
koa: ">=2"
|
||||||
|
next: ">=10"
|
||||||
|
peerDependenciesMeta:
|
||||||
|
express:
|
||||||
|
optional: true
|
||||||
|
koa:
|
||||||
|
optional: true
|
||||||
|
next:
|
||||||
|
optional: true
|
||||||
|
checksum: 65f534187bd972a5fe6000bd24767e9f9718d7ee3bf071fb352836b553d1c01d83d3e34eb57d111c8275d30e81b741a94a38fb2a4104c8480018391016656636
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"iron-webcrypto@npm:^0.2.5":
|
||||||
|
version: 0.2.6
|
||||||
|
resolution: "iron-webcrypto@npm:0.2.6"
|
||||||
|
dependencies:
|
||||||
|
buffer: ^6
|
||||||
|
checksum: 8b32e4f494976ce3e44718df1f03ffd2e0168fbb79910797d1caca5899f55e854c1f3fd0baf8580fc1eba4d693b3228de85363bb38dd8d9a9721db19f83d1e7c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"is-arrayish@npm:^0.2.1":
|
"is-arrayish@npm:^0.2.1":
|
||||||
version: 0.2.1
|
version: 0.2.1
|
||||||
resolution: "is-arrayish@npm:0.2.1"
|
resolution: "is-arrayish@npm:0.2.1"
|
||||||
@ -2380,20 +2643,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"node-fetch@npm:^2.6.1":
|
|
||||||
version: 2.6.7
|
|
||||||
resolution: "node-fetch@npm:2.6.7"
|
|
||||||
dependencies:
|
|
||||||
whatwg-url: ^5.0.0
|
|
||||||
peerDependencies:
|
|
||||||
encoding: ^0.1.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
encoding:
|
|
||||||
optional: true
|
|
||||||
checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"normalize-package-data@npm:^2.5.0":
|
"normalize-package-data@npm:^2.5.0":
|
||||||
version: 2.5.0
|
version: 2.5.0
|
||||||
resolution: "normalize-package-data@npm:2.5.0"
|
resolution: "normalize-package-data@npm:2.5.0"
|
||||||
@ -2699,6 +2948,22 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"pvtsutils@npm:^1.3.2":
|
||||||
|
version: 1.3.2
|
||||||
|
resolution: "pvtsutils@npm:1.3.2"
|
||||||
|
dependencies:
|
||||||
|
tslib: ^2.4.0
|
||||||
|
checksum: 9b8155611363e2f40276879f2454e60204b45be0cd0482f9373f369308a2e9c76d5d74cdf661a3f5aae8022d75ea159eb0ba38ee78fc782ee3051e4722db98d0
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"pvutils@npm:^1.1.3":
|
||||||
|
version: 1.1.3
|
||||||
|
resolution: "pvutils@npm:1.1.3"
|
||||||
|
checksum: 2ee26a9e5176c348977d6ec00d8ee80bff62f51743b1c5fe8abeeb4c5d29d9959cdfe0ce146707a9e6801bce88190fed3002d720b072dc87d031c692820b44c9
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"queue-microtask@npm:^1.2.2":
|
"queue-microtask@npm:^1.2.2":
|
||||||
version: 1.2.3
|
version: 1.2.3
|
||||||
resolution: "queue-microtask@npm:1.2.3"
|
resolution: "queue-microtask@npm:1.2.3"
|
||||||
@ -3205,13 +3470,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"tr46@npm:~0.0.3":
|
|
||||||
version: 0.0.3
|
|
||||||
resolution: "tr46@npm:0.0.3"
|
|
||||||
checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"tsconfig-paths@npm:^3.14.1":
|
"tsconfig-paths@npm:^3.14.1":
|
||||||
version: 3.14.1
|
version: 3.14.1
|
||||||
resolution: "tsconfig-paths@npm:3.14.1"
|
resolution: "tsconfig-paths@npm:3.14.1"
|
||||||
@ -3231,7 +3489,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"tslib@npm:^2.4.0":
|
"tslib@npm:^2.0.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1":
|
||||||
version: 2.4.1
|
version: 2.4.1
|
||||||
resolution: "tslib@npm:2.4.1"
|
resolution: "tslib@npm:2.4.1"
|
||||||
checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca
|
checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca
|
||||||
@ -3249,16 +3507,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"twitter-api-sdk@npm:^1.2.1":
|
|
||||||
version: 1.2.1
|
|
||||||
resolution: "twitter-api-sdk@npm:1.2.1"
|
|
||||||
dependencies:
|
|
||||||
abort-controller: ^3.0.0
|
|
||||||
node-fetch: ^2.6.1
|
|
||||||
checksum: e93157808725f3affb3de0d963a118ea418bb93345875ba6d360f891c889c3a65f70038d5d3c561bba140c3b202bb255af417ef698868b41d54a4ee9ff81437d
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
|
"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
|
||||||
version: 0.4.0
|
version: 0.4.0
|
||||||
resolution: "type-check@npm:0.4.0"
|
resolution: "type-check@npm:0.4.0"
|
||||||
@ -3340,20 +3588,16 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"webidl-conversions@npm:^3.0.0":
|
"webcrypto-core@npm:^1.7.4":
|
||||||
version: 3.0.1
|
version: 1.7.5
|
||||||
resolution: "webidl-conversions@npm:3.0.1"
|
resolution: "webcrypto-core@npm:1.7.5"
|
||||||
checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"whatwg-url@npm:^5.0.0":
|
|
||||||
version: 5.0.0
|
|
||||||
resolution: "whatwg-url@npm:5.0.0"
|
|
||||||
dependencies:
|
dependencies:
|
||||||
tr46: ~0.0.3
|
"@peculiar/asn1-schema": ^2.1.6
|
||||||
webidl-conversions: ^3.0.0
|
"@peculiar/json-schema": ^1.1.12
|
||||||
checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c
|
asn1js: ^3.0.1
|
||||||
|
pvtsutils: ^1.3.2
|
||||||
|
tslib: ^2.4.0
|
||||||
|
checksum: f6e529ca5c1175b8ccead3547f60efa7a1f8e247aaeab3bd4f096eb9fda11cfc8e6b6fb574bbc5696f608958c491a27e9682c89204412f73fb430e5fcbe9ebac
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user