stacker.news/package.json

135 lines
3.8 KiB
JSON
Raw Normal View History

2021-03-22 20:36:10 +00:00
{
"name": "stackernews",
"version": "0.1.0",
"private": true,
"scripts": {
2022-11-06 17:28:58 +00:00
"dev": "NODE_OPTIONS='--trace-warnings' next dev",
2021-06-06 00:34:48 +00:00
"build": "next build",
2021-06-06 14:09:01 +00:00
"migrate": "prisma migrate deploy",
2023-08-07 23:43:15 +00:00
"start": "NODE_OPTIONS='--trace-warnings' next start -p $PORT --keepAliveTimeout 120000",
2023-09-27 01:33:54 +00:00
"lint": "standard",
"test": "NODE_OPTIONS='--experimental-vm-modules' jest",
2024-03-20 01:06:33 +00:00
"worker": "tsx --tsconfig jsconfig.json --trace-warnings worker/index.js",
"worker:dev": "tsx --tsconfig jsconfig.json --trace-warnings --watch worker/index.js"
2021-03-22 20:36:10 +00:00
},
"dependencies": {
"@apollo/client": "^3.9.7",
2023-10-15 20:43:06 +00:00
"@apollo/server": "^4.9.4",
"@as-integrations/next": "^2.0.2",
"@auth/prisma-adapter": "^1.0.3",
2023-07-24 22:50:12 +00:00
"@graphql-tools/schema": "^10.0.0",
"@lightninglabs/lnc-web": "^0.3.2-alpha",
2023-10-15 20:43:06 +00:00
"@noble/curves": "^1.2.0",
"@opensearch-project/opensearch": "^2.4.0",
not-custodial zap beta (#1178) * not-custodial zap scaffolding * invoice forward state machine * small refinements to state machine * make wrap invoice work * get state machine working end to end * untested logic layout for paidAction invoice wraps * perform pessimisitic actions before outgoing payment * working end to end * remove unneeded params from wallets/server/createInvoice * fix cltv relative/absolute confusion + cancelling forwards * small refinements * add p2p wrap info to paidAction docs * fallback to SN invoice when wrap fails * fix paidAction retry description * consistent naming scheme for state machine * refinements * have sn pay bounded outbound fee * remove debug logging * reenable lnc permissions checks * don't p2p zap on item forward splits * make createInvoice params json encodeable * direct -> p2p badge on notifications * allow no tls in dev for core lightning * fix autowithdraw to create invoice with msats * fix autowithdraw msats/sats inconsitency * label p2p zaps properly in satistics * add fees to autowithdrawal notifications * add RETRYING as terminal paid action state * Update api/paidAction/README.md Co-authored-by: ekzyis <ek@stacker.news> * Update api/paidAction/README.md Co-authored-by: ekzyis <ek@stacker.news> * Update api/lnd/index.js Co-authored-by: ekzyis <ek@stacker.news> * ek suggestions * add bugetable to nwc card * get paranoid with numbers * better finalize retries and better max timeout height * refine forward failure transitions * more accurate satistics p2p status * make sure paidaction cancel in state machine only * dont drop bolt11s unless status is not null * only allow PENDING_HELD to transition to FORWARDING * add mermaid state machine diagrams to paid action doc * fix cancel transition name * cleanup readme * move forwarding outside of transition * refine testServerConnect and make sure ensureB64 transforms * remove unused params from testServerConnect --------- Co-authored-by: ekzyis <ek@stacker.news> Co-authored-by: k00b <k00b@stacker.news>
2024-08-13 14:48:30 +00:00
"@prisma/client": "^5.17.0",
"@slack/web-api": "^6.9.0",
"@svgr/webpack": "^8.1.0",
"@yudiel/react-qr-scanner": "^1.1.10",
"acorn": "^8.10.0",
"ajv": "^8.12.0",
"async-mutex": "^0.5.0",
2021-05-20 17:21:11 +00:00
"async-retry": "^1.3.1",
2023-10-15 20:43:06 +00:00
"aws-sdk": "^2.1473.0",
2021-06-27 03:09:39 +00:00
"bech32": "^2.0.0",
2023-07-24 22:50:12 +00:00
"bolt11": "^1.4.1",
2023-10-15 20:43:06 +00:00
"bootstrap": "^5.3.2",
2023-01-22 20:17:50 +00:00
"canonical-json": "0.0.4",
2024-02-23 15:32:20 +00:00
"classnames": "^2.5.1",
2021-05-06 21:15:22 +00:00
"clipboard-copy": "^4.0.1",
Account Switching (#644) * WIP: Account switching * Fix empty USER query ANON_USER_ID was undefined and thus the query for @anon had no variables. * Apply multiAuthMiddleware in /api/graphql * Fix 'you must be logged in' query error on switch to anon * Add smart 'switch account' button "smart" means that it only shows if there are accounts to which one can switch * Fix multiAuth not set in backend * Comment fixes, minor changes * Use fw-bold instead of 'selected' * Close dropdown and offcanvas Inside a dropdown, we can rely on autoClose but need to wrap the buttons with <Dropdown.Item> for that to work. For the offcanvas, we need to pass down handleClose. * Use button to add account * Some pages require hard reload on account switch * Reinit settings form on account switch * Also don't refetch WalletHistory * Formatting * Use width: fit-content for standalone SignUpButton * Remove unused className * Use fw-bold and text-underline on selected * Fix inconsistent padding of login buttons * Fix duplicate redirect from /settings on anon switch * Never throw during refetch * Throw errors which extend GraphQLError * Only use meAnonSats if logged out * Use reactive variable for meAnonSats The previous commit broke the UI update after anon zaps because we actually updated item.meSats in the cache and not item.meAnonSats. Updating item.meAnonSats was not possible because it's a local field. For that, one needs to use reactive variables. We do this now and thus also don't need the useEffect hack in item-info.js anymore. * Switch to new user * Fix missing cleanup during logout If we logged in but never switched to any other account, the 'multi_auth.user-id' cookie was not set. This meant that during logout, the other 'multi_auth.*' cookies were not deleted. This broke the account switch modal. This is fixed by setting the 'multi_auth.user-id' cookie on login. Additionally, we now cleanup if cookie pointer OR session is set (instead of only if both are set). * Fix comments in middleware * Remove unnecessary effect dependencies setState is stable and thus only noise in effect dependencies * Show but disable unavailable auth methods * make signup button consistent with others * Always reload page on switch * refine account switch styling * logout barrier --------- Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com> Co-authored-by: k00b <k00b@stacker.news>
2024-09-12 18:05:11 +00:00
"cookie": "^0.6.0",
2023-07-25 00:50:55 +00:00
"cross-fetch": "^4.0.0",
2023-12-14 17:30:51 +00:00
"csv-parser": "^3.0.0",
2021-08-22 15:25:17 +00:00
"domino": "^2.1.6",
2023-10-15 20:43:06 +00:00
"formik": "^2.4.5",
2023-07-25 00:50:55 +00:00
"github-slugger": "^2.0.0",
"google-protobuf": "^3.21.2",
2023-10-15 20:43:06 +00:00
"graphql": "^16.8.1",
2023-11-22 16:30:43 +00:00
"graphql-scalar": "^0.1.0",
"graphql-tag": "^2.12.6",
2022-05-12 18:44:21 +00:00
"graphql-type-json": "^0.3.2",
"isomorphic-ws": "^5.0.0",
2023-12-08 01:13:20 +00:00
"ln-service": "^57.1.3",
"macaroon": "^3.0.4",
2023-10-15 20:43:06 +00:00
"mathjs": "^11.11.2",
"mdast-util-find-and-replace": "^3.0.1",
2023-07-25 00:50:55 +00:00
"mdast-util-from-markdown": "^2.0.0",
2023-07-25 18:59:07 +00:00
"mdast-util-gfm": "^3.0.0",
2023-07-25 00:50:55 +00:00
"mdast-util-to-string": "^4.0.0",
2023-07-25 18:59:07 +00:00
"micromark-extension-gfm": "^3.0.0",
2023-10-15 20:43:06 +00:00
"next": "^13.5.4",
"next-auth": "^4.23.2",
"next-plausible": "^3.11.1",
2023-07-25 00:50:55 +00:00
"next-seo": "^6.1.0",
2022-02-05 17:29:41 +00:00
"node-s3-url-encode": "^0.0.4",
2023-10-15 20:43:06 +00:00
"nodemailer": "^6.9.6",
2023-07-24 22:50:12 +00:00
"nostr": "^0.2.8",
Support receiving with NWC (#1310) * Add NWC receives * Refactor sendPayment+createInvoice with nwcCall function * Update badge * Add method support checks * Add timeout to NWC test invoice * Fix NWC isConfigured state All NWC fields are marked as optional but NWC should only be considered configured if one of them is set. * Fix relay.fetch() throws 'crypto is not defined' in node nip04.encrypt() was failing in worker because 'crypto is not defined'. Updating to nostr-tools v2.7.2 fixed that. However, now crypto.randomUUID() in relay.fetch() was throwing 'crypto is not defined'. Importing crypto from 'crypto' fixed that. However, with the import, randomUUID() does not work so I switched to randomBytes(). Running relay.fetch() now works in browser and node. * recv must not support pay_invoice * Fix Relay connection check * this.url was undefined * error was an object * Fix additional isConfigured check runs always It was meant to only catch false positives, not turn negatives into false positives. * Rename testConnectServer to testCreateInvoice * Rename testConnectClient to testSendPayment * Only run testSendPayment if send is configured The return value of testSendPayment was used before but it only returned something for LNC. And for LNC, we only wanted to save the transformation during validation, so it was not needed. * Always use withTimeout in NWC test functions * Fix fragment name * Use get_info command exclusively * Check permissions more efficiently * Log NWC request-response flow * Fix variable name * Call ws.send after listener is added * Fix websocket not closed after timeout * Also check that pay_keysend etc. are not supported * fix lnc session key save --------- Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com> Co-authored-by: k00b <k00b@stacker.news>
2024-08-21 15:13:27 +00:00
"nostr-tools": "^2.7.2",
2023-08-02 02:06:15 +00:00
"nprogress": "^0.2.0",
2023-01-22 20:17:50 +00:00
"opentimestamps": "^0.4.9",
2021-08-22 15:25:17 +00:00
"page-metadata-parser": "^1.1.4",
2023-07-24 22:50:12 +00:00
"pg-boss": "^9.0.3",
"piexifjs": "^1.0.6",
not-custodial zap beta (#1178) * not-custodial zap scaffolding * invoice forward state machine * small refinements to state machine * make wrap invoice work * get state machine working end to end * untested logic layout for paidAction invoice wraps * perform pessimisitic actions before outgoing payment * working end to end * remove unneeded params from wallets/server/createInvoice * fix cltv relative/absolute confusion + cancelling forwards * small refinements * add p2p wrap info to paidAction docs * fallback to SN invoice when wrap fails * fix paidAction retry description * consistent naming scheme for state machine * refinements * have sn pay bounded outbound fee * remove debug logging * reenable lnc permissions checks * don't p2p zap on item forward splits * make createInvoice params json encodeable * direct -> p2p badge on notifications * allow no tls in dev for core lightning * fix autowithdraw to create invoice with msats * fix autowithdraw msats/sats inconsitency * label p2p zaps properly in satistics * add fees to autowithdrawal notifications * add RETRYING as terminal paid action state * Update api/paidAction/README.md Co-authored-by: ekzyis <ek@stacker.news> * Update api/paidAction/README.md Co-authored-by: ekzyis <ek@stacker.news> * Update api/lnd/index.js Co-authored-by: ekzyis <ek@stacker.news> * ek suggestions * add bugetable to nwc card * get paranoid with numbers * better finalize retries and better max timeout height * refine forward failure transitions * more accurate satistics p2p status * make sure paidaction cancel in state machine only * dont drop bolt11s unless status is not null * only allow PENDING_HELD to transition to FORWARDING * add mermaid state machine diagrams to paid action doc * fix cancel transition name * cleanup readme * move forwarding outside of transition * refine testServerConnect and make sure ensureB64 transforms * remove unused params from testServerConnect --------- Co-authored-by: ekzyis <ek@stacker.news> Co-authored-by: k00b <k00b@stacker.news>
2024-08-13 14:48:30 +00:00
"prisma": "^5.17.0",
2022-11-06 17:28:58 +00:00
"qrcode.react": "^3.1.0",
"react": "^18.2.0",
2022-05-16 20:51:22 +00:00
"react-avatar-editor": "^13.0.0",
2023-10-15 20:43:06 +00:00
"react-bootstrap": "^2.9.0",
2023-07-24 22:50:12 +00:00
"react-countdown": "^2.3.5",
2023-10-15 20:43:06 +00:00
"react-datepicker": "^4.20.0",
"react-dom": "^18.2.0",
2023-12-28 01:05:34 +00:00
"react-ios-pwa-prompt": "^1.8.4",
"react-markdown": "^9.0.1",
2023-07-25 00:50:55 +00:00
"react-string-replace": "^1.1.1",
2022-11-06 17:28:58 +00:00
"react-syntax-highlighter": "^15.5.0",
2023-10-15 20:43:06 +00:00
"react-textarea-autosize": "^8.5.3",
2022-02-12 14:06:41 +00:00
"react-twitter-embed": "^4.0.4",
2023-07-25 00:50:55 +00:00
"react-youtube": "^10.1.0",
2023-10-15 20:43:06 +00:00
"recharts": "^2.9.0",
2024-10-03 00:52:05 +00:00
"rehype-mathjax": "^6.0.0",
2023-10-15 20:43:06 +00:00
"remark-gfm": "^4.0.0",
2024-10-03 00:52:05 +00:00
"remark-math": "^6.0.0",
2023-07-25 00:50:55 +00:00
"remove-markdown": "^0.5.0",
2023-10-15 20:43:06 +00:00
"sass": "^1.69.3",
"serviceworker-storage": "^0.1.0",
"textarea-caret": "^3.1.0",
2023-10-15 20:43:06 +00:00
"tldts": "^6.0.16",
2023-09-27 01:33:54 +00:00
"tsx": "^3.13.0",
2023-07-25 00:50:55 +00:00
"unist-util-visit": "^5.0.0",
2023-12-14 17:30:51 +00:00
"unzipper": "^0.10.14",
2023-01-12 18:05:47 +00:00
"url-unshort": "^6.1.0",
2023-10-15 20:43:06 +00:00
"web-push": "^3.6.6",
2023-07-24 22:50:12 +00:00
"webln": "^0.3.2",
2023-10-15 20:43:06 +00:00
"webpack": "^5.89.0",
"workbox-navigation-preload": "^7.0.0",
Service worker rework, Web Target Share API & Web Push API (#324) * npm uninstall next-pwa next-pwa was last updated in August 2022. There is also an issue which mentions that next-pwa is abandoned (?): https://github.com/shadowwalker/next-pwa/issues/482 But the main reason for me uninstalling it is that it adds a lot of preconfigured stuff which is not necessary for us. It even lead to a bug since pages were cached without our knowledge. So I will go with a different PWA approach. This different approach should do the following: - make it more transparent what the service worker is doing - gives us more control to configure the service worker and thus making it easier * Use workbox-webpack-plugin Every other plugin (`next-offline`, `next-workbox-webpack-plugin`, `next-with-workbox`, ...) added unnecessary configuration which felt contrary to how PWAs should be built. (PWAs should progressivly enhance the website in small steps, see https://web.dev/learn/pwa/getting-started/#focus-on-a-feature) These default configurations even lead to worse UX since they made invalid assumptions about stacker.news: We _do not_ want to cache our start url and we _do not_ want to cache anything unless explicitly told to. Almost every page on SN should be fresh for the best UX. To achieve this, by default, the service worker falls back to the network (as if the service worker wasn't there). Therefore, this should be the simplest configuration with a valid precache and cache busting support. In the future, we can try to use prefetching to improve performance of navigation requests. * Add support for Web Share Target API See https://developer.chrome.com/articles/web-share-target/ * Use Web Push API for push notifications I followed this (very good!) guide: https://web.dev/notifications/ * Refactor code related to Web Push * Send push notification to users on events * Merge notifications * Send notification to author of every parent recursively * Remove unused userId param in savePushSubscription As it should be, the user id is retrieved from the authenticated user in the backend. * Resubscribe user if push subscription changed * Update old subscription if oldEndpoint was given * Allow users to unsubscribe * Use LTREE operator instead of recursive query * Always show checkbox for push notifications * Justify checkbox to end * Update title of first push notification * Fix warning from uncontrolled to controlled * Add comment about Notification.requestPermission * Fix timestamp * Catch error on push subscription toggle * Wrap function bodies in try/catch * Use Promise.allSettled * Filter subscriptions by user notification settings * Fix user notification filter * Use skipWaiting --------- Co-authored-by: ekzyis <ek@stacker.news>
2023-07-04 19:36:07 +00:00
"workbox-precaching": "^7.0.0",
"workbox-recipes": "^7.0.0",
"workbox-routing": "^7.0.0",
"workbox-strategies": "^7.0.0",
"workbox-webpack-plugin": "^7.0.0",
"workbox-window": "^7.0.0",
2023-10-15 20:43:06 +00:00
"yup": "^1.3.2"
2021-03-25 19:29:24 +00:00
},
2021-06-03 22:32:28 +00:00
"engines": {
2023-08-01 00:56:52 +00:00
"node": "18.17.0"
2021-06-03 22:32:28 +00:00
},
2021-03-25 19:29:24 +00:00
"standard": {
2023-07-25 14:14:45 +00:00
"plugins": [
"@next/next"
],
2021-03-25 19:29:24 +00:00
"extends": [
2023-07-25 00:50:55 +00:00
"next"
2023-08-16 00:52:55 +00:00
]
2021-03-25 19:29:24 +00:00
},
"devDependencies": {
2023-10-15 20:43:06 +00:00
"@next/eslint-plugin-next": "^13.5.4",
"eslint": "^8.51.0",
"jest": "^29.7.0",
2023-07-24 22:50:12 +00:00
"standard": "^17.1.0"
2024-09-07 17:45:17 +00:00
},
"jest": {
"moduleNameMapper": {
"@/(.*)": "<rootDir>/$1"
}
2021-03-22 20:36:10 +00:00
}
2024-10-03 00:52:05 +00:00
}