diff options
| author | Adam Soltys <[email protected]> | 2022-09-05 20:38:22 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-09-05 20:38:22 -0700 |
| commit | 39fd8f38c7c9e3d231f7347ea51f79812fd524da (patch) | |
| tree | f6deb8c7a8cd6539c46e3331e3b4b6e953c4bef6 | |
| parent | a5080abb26a1dbb65c6d0889d30ad58f2098dae7 (diff) | |
| download | coinos-server-39fd8f38c7c9e3d231f7347ea51f79812fd524da.tar.gz coinos-server-39fd8f38c7c9e3d231f7347ea51f79812fd524da.zip | |
custom loader
46 files changed, 99 insertions, 91 deletions
diff --git a/db/index.js b/db/index.js index 9f34884e..e37bae2a 100644 --- a/db/index.js +++ b/db/index.js @@ -1,21 +1,21 @@ import Sequelize from '@sequelize/core'; -import db from "./db.js"; +import db from "/db"; db.authenticate().catch((err) => { console.debug("Error connecting to database: " + err.message); console.log(dbOptions.connection.database + "." + dbOptions.connection.user); }); -import './models/accounts.js'; -import './models/codes.js'; -import './models/deposits.js'; -import './models/invoices.js'; -import './models/keys.js'; -import './models/payments.js'; -import './models/orders.js'; -import './models/users.js'; -import './models/withdrawals.js'; +import '/db/models/accounts'; +import '/db/models/codes'; +import '/db/models/deposits'; +import '/db/models/invoices'; +import '/db/models/keys'; +import '/db/models/payments'; +import '/db/models/orders'; +import '/db/models/users'; +import '/db/models/withdrawals'; // Require models in order (to enable FK relationship specs in models) @@ -23,9 +23,9 @@ import './models/withdrawals.js'; // require("./normalized/user_keys.js"); // require("./normalized/user_preferences.js"); -import './models/referrals.js'; +import '/db/models/referrals'; -import './models/waiting_list.js'; +import '/db/models/waiting_list'; // require("./normalized/subscriptions.js"); // require("./normalized/user_subscriptions.js"); diff --git a/db/models/accounts.js b/db/models/accounts.js index c7e76277..2bcdbe61 100644 --- a/db/models/accounts.js +++ b/db/models/accounts.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/codes.js b/db/models/codes.js index 57edfb35..1f15135e 100644 --- a/db/models/codes.js +++ b/db/models/codes.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/deposits.js b/db/models/deposits.js index 0d030bf2..5053e60a 100644 --- a/db/models/deposits.js +++ b/db/models/deposits.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/invoices.js b/db/models/invoices.js index c405b122..9ecb63a4 100644 --- a/db/models/invoices.js +++ b/db/models/invoices.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/keys.js b/db/models/keys.js index 8807e00e..5d32c880 100644 --- a/db/models/keys.js +++ b/db/models/keys.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/orders.js b/db/models/orders.js index 60fd539b..71483a64 100644 --- a/db/models/orders.js +++ b/db/models/orders.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/payments.js b/db/models/payments.js index 31ce4855..5e063397 100644 --- a/db/models/payments.js +++ b/db/models/payments.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/referrals.js b/db/models/referrals.js index 2d1e8d8c..561135dc 100644 --- a/db/models/referrals.js +++ b/db/models/referrals.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/users.js b/db/models/users.js index 50b8941c..46577074 100644 --- a/db/models/users.js +++ b/db/models/users.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/waiting_list.js b/db/models/waiting_list.js index 76fb9e3f..f1a4de3d 100644 --- a/db/models/waiting_list.js +++ b/db/models/waiting_list.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/db/models/withdrawals.js b/db/models/withdrawals.js index 53863cbf..a9b02654 100644 --- a/db/models/withdrawals.js +++ b/db/models/withdrawals.js @@ -1,4 +1,4 @@ -import db from "../db.js"; +import db from "/db"; import { DataTypes } from '@sequelize/core'; const attributes = { diff --git a/lib/binance.js b/lib/binance.js index 1dc1facd..df33f298 100644 --- a/lib/binance.js +++ b/lib/binance.js @@ -1,4 +1,4 @@ -import app from "../app.js"; +import app from "$app.js"; import WebSocket from "ws"; import { err } from "./logging.js"; import store from "./store.js"; diff --git a/lib/bitcoin.js b/lib/bitcoin.js index 275abc04..461b9594 100644 --- a/lib/bitcoin.js +++ b/lib/bitcoin.js @@ -1,3 +1,3 @@ -import config from "../config/index.js"; +import config from "$config/index.js"; import rpc from "./rpc.js"; export default rpc(config.bitcoin); diff --git a/lib/liquid.js b/lib/liquid.js index d93bb5a1..26abc542 100644 --- a/lib/liquid.js +++ b/lib/liquid.js @@ -1,4 +1,4 @@ -import config from "../config/index.js"; +import config from "$config/index.js"; import rpc from "./rpc.js"; export default rpc(config.liquid); @@ -1,4 +1,4 @@ -import config from "../config/index.js"; +import config from "$config/index.js"; let ln; if (config.lna.clightning) { @@ -1,4 +1,4 @@ -import config from "../config/index.js"; +import config from "$config/index.js"; import { authenticatedLndGrpc } from 'lightning'; const { cert, macaroon, socket } = config.lna; diff --git a/lib/mail.js b/lib/mail.js index d826b845..a2088ecc 100644 --- a/lib/mail.js +++ b/lib/mail.js @@ -1,5 +1,5 @@ -import app from "../app.js"; -import config from "../config/index.js"; +import app from "$app.js"; +import config from "$config/index.js"; import fs from "fs"; import Imap from "imap"; import { inspect } from "util"; diff --git a/lib/notifications.js b/lib/notifications.js index 40d227c8..e6a4e534 100644 --- a/lib/notifications.js +++ b/lib/notifications.js @@ -1,4 +1,4 @@ -import config from "../config/index.js"; +import config from "$config/index.js"; import webpush from 'web-push'; if (config.vapid) { diff --git a/lib/passport.js b/lib/passport.js index 36057ade..90fc2dc9 100644 --- a/lib/passport.js +++ b/lib/passport.js @@ -1,10 +1,10 @@ -import app from "../app.js"; +import app from "$app.js"; import Passport from "passport"; import jwt from "passport-jwt"; import { Op } from "@sequelize/core"; import fastifyPassport from "@fastify/passport"; import fastifySecureSession from '@fastify/secure-session' -import config from "../config/index.js"; +import config from "$config/index.js"; import fs from "fs"; import path from "path"; diff --git a/lib/rates.js b/lib/rates.js index d22bf2f5..8811e260 100644 --- a/lib/rates.js +++ b/lib/rates.js @@ -1,4 +1,4 @@ -import app from "../app.js"; +import app from "$app.js"; import axios from "axios"; import fs from "fs"; import binanceFactory from "./binance.js"; diff --git a/lib/sockets.js b/lib/sockets.js index de6986b1..fb121bdd 100644 --- a/lib/sockets.js +++ b/lib/sockets.js @@ -1,5 +1,5 @@ import store from "./store.js"; -import app from "../app.js"; +import app from "$app.js"; import jwt from "jsonwebtoken"; import { v4 } from "uuid"; import WebSocket from "ws"; diff --git a/lib/sync.js b/lib/sync.js index 30d5b007..f3d6baa5 100644 --- a/lib/sync.js +++ b/lib/sync.js @@ -1,5 +1,5 @@ -import db from "../db/index.js"; -import app from "../app.js"; +import db from "$db/db"; +import app from "$app.js"; import { differenceInDays } from "date-fns"; import fs from "fs"; import read from "./read.js"; diff --git a/lib/upload.js b/lib/upload.js index f48a3d94..c60c9ab1 100644 --- a/lib/upload.js +++ b/lib/upload.js @@ -1,5 +1,5 @@ import { auth } from "./passport.js"; -import app from "../app.js"; +import app from "$app.js"; import multer from "multer"; const storage = multer.diskStorage({ diff --git a/loader.js b/loader.js new file mode 100644 index 00000000..7deda005 --- /dev/null +++ b/loader.js @@ -0,0 +1,8 @@ +import path from 'path' +import fs from 'fs' + +export function resolve (specifier, parentModuleURL, defaultResolver) { + specifier = specifier.replace(/^\$/, path.resolve('.') + "/") + specifier = fs.existsSync(specifier) && fs.lstatSync(specifier).isDirectory() ? `${specifier}/index` : specifier + return defaultResolver(specifier, parentModuleURL) +} diff --git a/package.json b/package.json index d72602a0..531c37b3 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "private": true, "scripts": { - "start": "NODE_OPTIONS=--openssl-legacy-provider nodemon index.js", + "start": "NODE_OPTIONS=\"--es-module-specifier-resolution=node --experimental-modules --loader ./loader.js --openssl-legacy-provider\" nodemon index.js", "generate": "sequelize-automate -c config/index.js", "min": "DEBUG=debug SCOPE=MIN nodemon index.js", "debug": "DEBUG=debug nodemon index.js" diff --git a/routes/assets.js b/routes/assets.js index baf915e7..f942cf12 100644 --- a/routes/assets.js +++ b/routes/assets.js @@ -1,6 +1,6 @@ -import store from "../lib/store.js"; -import app from "../app.js"; -import { auth } from "../lib/passport.js"; +import store from "$lib/store.js"; +import app from "$app.js"; +import { auth } from "$lib/passport.js"; import axios from 'axios'; import crypto from 'crypto'; import fs from 'fs'; diff --git a/routes/bitcoin/broadcast.js b/routes/bitcoin/broadcast.js index 185db283..2bf61049 100644 --- a/routes/bitcoin/broadcast.js +++ b/routes/bitcoin/broadcast.js @@ -1,4 +1,4 @@ -import store from "../../lib/store.js"; +import store from "$lib/store.js"; export default async (req, res) => { try { const { user } = req; diff --git a/routes/bitcoin/fee.js b/routes/bitcoin/fee.js index 35ca4e3d..f701752d 100644 --- a/routes/bitcoin/fee.js +++ b/routes/bitcoin/fee.js @@ -1,4 +1,4 @@ -import buildTx from "../../lib/buildtx.js"; +import buildTx from "$lib/buildtx.js"; export default async (req, res) => { let { user } = req; diff --git a/routes/bitcoin/receive.js b/routes/bitcoin/receive.js index 449e3984..1391a7d6 100644 --- a/routes/bitcoin/receive.js +++ b/routes/bitcoin/receive.js @@ -1,6 +1,6 @@ -import { rates } from "../../lib/store.js"; -import { notify } from "../../lib/notifications.js"; -import { callWebhook } from "../../lib/webhooks.js"; +import { rates } from "$lib/store.js"; +import { notify } from "$lib/notifications.js"; +import { callWebhook } from "$lib/webhooks.js"; import reverse from 'buffer-reverse'; import zmq from 'zeromq/v5-compat.js'; import { Op } from '@sequelize/core'; diff --git a/routes/bitcoin/send.js b/routes/bitcoin/send.js index 5cecde32..34f27ac8 100644 --- a/routes/bitcoin/send.js +++ b/routes/bitcoin/send.js @@ -1,5 +1,5 @@ -import store from "../../lib/store.js"; -import config from "../../config/index.js"; +import store from "$lib/store.js"; +import config from "$config/index.js"; const btc = config.liquid.btcasset; import { computeConversionFee, diff --git a/routes/bitcoin/sweep.js b/routes/bitcoin/sweep.js index eecfebe4..4d399c0d 100644 --- a/routes/bitcoin/sweep.js +++ b/routes/bitcoin/sweep.js @@ -1,5 +1,5 @@ -import config from "../../config/index.js"; -import { prod } from "../../lib/utils.js"; +import config from "$config/index.js"; +import { prod } from "$lib/utils.js"; import axios from "axios"; import bitcoin from "bitcoinjs-lib"; import coinselect from "coinselect"; diff --git a/routes/funding.js b/routes/funding.js index 692fe2f8..6dc4939e 100644 --- a/routes/funding.js +++ b/routes/funding.js @@ -1,5 +1,5 @@ -import app from "../app.js"; -import config from "../config/index.js"; +import app from "$app.js"; +import config from "$config/index.js"; import mailgunFactory from 'mailgun-js'; const mailgun = mailgunFactory(config.mailgun); diff --git a/routes/info.js b/routes/info.js index 970cbb2a..84f61fa1 100644 --- a/routes/info.js +++ b/routes/info.js @@ -1,4 +1,4 @@ -import app from "../app.js"; +import app from "$app.js"; import sequelize from '@sequelize/core'; const { Op } = sequelize; diff --git a/routes/invoices.js b/routes/invoices.js index 814363b0..721fbc39 100644 --- a/routes/invoices.js +++ b/routes/invoices.js @@ -1,6 +1,6 @@ -import store from "../lib/store.js"; -import app from "../app.js"; -import { optionalAuth } from "../lib/passport.js"; +import store from "$lib/store.js"; +import app from "$app.js"; +import { optionalAuth } from "$lib/passport.js"; import { Op } from "@sequelize/core"; import axios from "axios"; diff --git a/routes/lightning/channelRequest.js b/routes/lightning/channelRequest.js index 11c76abf..a2a29d4d 100644 --- a/routes/lightning/channelRequest.js +++ b/routes/lightning/channelRequest.js @@ -1,4 +1,4 @@ -import { lnurlServer } from "../lnurl.js"; +import { lnurlServer } from "$lnurl.js"; export default async (req, res) => { let { localAmt, pushAmt } = req.body; diff --git a/routes/lightning/receive.js b/routes/lightning/receive.js index f013efd7..e5e93e91 100644 --- a/routes/lightning/receive.js +++ b/routes/lightning/receive.js @@ -1,9 +1,9 @@ -import config from "../../config/index.js"; -import { notify } from "../../lib/notifications.js"; -import { callWebhook } from "../../lib/webhooks.js"; +import config from "$config/index.js"; +import { notify } from "$lib/notifications.js"; +import { callWebhook } from "$lib/webhooks.js"; import { computeConversionFee } from './conversionFee.js'; -import { sendLiquid } from "../liquid/send.js"; -import ln from "../../lib/ln.js"; +import { sendLiquid } from "$liquid/send.js"; +import ln from "$lib/ln.js"; const handlePayment = async (msg) => { l("incoming lightning payment", msg.value, msg.payment_request, msg.settled); diff --git a/routes/liquid/broadcast.js b/routes/liquid/broadcast.js index 5deb846f..5d8e751b 100644 --- a/routes/liquid/broadcast.js +++ b/routes/liquid/broadcast.js @@ -1,4 +1,4 @@ -import store from "../../lib/store.js"; +import store from "$lib/store.js"; export default async (req, res) => { try { const { user } = req; diff --git a/routes/liquid/fee.js b/routes/liquid/fee.js index 9d8a5bad..055a60ed 100644 --- a/routes/liquid/fee.js +++ b/routes/liquid/fee.js @@ -1,4 +1,4 @@ -import buildTx from "../../lib/buildliquidtx.js"; +import buildTx from "$lib/buildliquidtx.js"; liquidTx = async ({ address, asset, amount, feeRate, replaceable, user }) => { let tx, fee; diff --git a/routes/liquid/receive.js b/routes/liquid/receive.js index 624108cf..0d8fa22d 100644 --- a/routes/liquid/receive.js +++ b/routes/liquid/receive.js @@ -1,7 +1,7 @@ -import store from "../../lib/store.js"; +import store from "$lib/store.js"; import { sendLiquid } from "./send.js"; -import { notify } from "../../lib/notifications.js"; -import { callWebhook } from "../../lib/webhooks.js"; +import { notify } from "$lib/notifications.js"; +import { callWebhook } from "$lib/webhooks.js"; import reverse from 'buffer-reverse'; import zmq from 'zeromq/v5-compat.js'; import { Op } from '@sequelize/core'; diff --git a/routes/liquid/send.js b/routes/liquid/send.js index 5b4db184..00fb9d10 100644 --- a/routes/liquid/send.js +++ b/routes/liquid/send.js @@ -1,5 +1,5 @@ -import store from "../../lib/store.js"; -import config from "../../config/index.js"; +import store from "$lib/store.js"; +import config from "$config/index.js"; const btc = config.liquid.btcasset; const lcad = config.liquid.cadasset; // import { Transaction } from 'liquidjs-lib'; diff --git a/routes/lnurl.js b/routes/lnurl.js index 3e5b0fd8..62f83233 100644 --- a/routes/lnurl.js +++ b/routes/lnurl.js @@ -1,13 +1,13 @@ -import store from "../lib/store.js"; -import app from "../app.js"; -import config from "../config/index.js"; +import store from "$lib/store.js"; +import app from "$app.js"; +import config from "$config/index.js"; import axios from "axios"; import lnurl from "lnurl"; import jwt from "jsonwebtoken"; import qs from "query-string"; -import persist from "../lib/persist.js"; +import persist from "$lib/persist.js"; import bolt11 from "bolt11"; -import { optionalAuth, auth } from "../lib/passport.js"; +import { optionalAuth, auth } from "$lib/passport.js"; export const logins = persist("data/logins.json"); export const recipients = persist("data/recipients.json"); diff --git a/routes/payments.js b/routes/payments.js index f6e28f18..0bffffed 100644 --- a/routes/payments.js +++ b/routes/payments.js @@ -1,13 +1,13 @@ -import store from "../lib/store.js"; -import bc from "../lib/bitcoin.js"; -import app from "../app.js"; -import config from "../config/index.js"; -import { auth, adminAuth, optionalAuth } from "../lib/passport.js"; +import store from "$lib/store.js"; +import bc from "$lib/bitcoin.js"; +import app from "$app.js"; +import config from "$config/index.js"; +import { auth, adminAuth, optionalAuth } from "$lib/passport.js"; import fs from "fs"; import { join } from "path"; import { Op } from "@sequelize/core"; import send from "./send.js"; -import { warn } from "../lib/logging.js"; +import { warn } from "$lib/logging.js"; import btcRoutes from "./bitcoin/index.js"; import lnRoutes from "./lightning/index.js"; diff --git a/routes/send.js b/routes/send.js index 778d3534..a55c70b4 100644 --- a/routes/send.js +++ b/routes/send.js @@ -1,8 +1,8 @@ -import store from "../lib/store.js"; -import { callWebhook } from "../lib/webhooks.js"; +import store from "$lib/store.js"; +import { callWebhook } from "$lib/webhooks.js"; import axios from "axios"; import { v4 } from "uuid"; -import { notify } from "../lib/notifications.js"; +import { notify } from "$lib/notifications.js"; import { sendLiquid } from "./liquid/send.js"; export default async (req, res, next) => { diff --git a/routes/swaps.js b/routes/swaps.js index 89cc2188..fa8dbfab 100644 --- a/routes/swaps.js +++ b/routes/swaps.js @@ -1,10 +1,10 @@ -import { rates } from "../lib/store.js"; +import { rates } from "$lib/store.js"; import axios from 'axios'; import crypto from 'crypto'; import fs from 'fs'; import getAccount from '../lib/account.js'; import { Op, col } from '@sequelize/core'; -import { rates } from "../lib/store.js"; +import { rates } from "$lib/store.js"; const shallow = a => { let b = {}; diff --git a/routes/users.js b/routes/users.js index 2222741f..cdc51174 100644 --- a/routes/users.js +++ b/routes/users.js @@ -1,18 +1,18 @@ -import app from "../app.js"; -import { auth, optionalAuth } from "../lib/passport.js"; -import { getUser } from "../lib/utils.js"; +import app from "$app.js"; +import { auth, optionalAuth } from "$lib/passport.js"; +import { getUser } from "$lib/utils.js"; import axios from "axios"; import bcrypt from "bcrypt"; import jwt from "jsonwebtoken"; import { authenticator } from "otplib"; -import getAccount from "../lib/account.js"; +import getAccount from "$lib/account.js"; import Sequelize from "@sequelize/core"; import bitcoin from "bitcoinjs-lib"; // import liquid from 'liquidjs-lib'; import { fromBase58, fromPrivateKey } from "bip32"; import { Mutex } from "async-mutex"; import bip32 from "bip32"; -import whitelist from "../lib/whitelist.js"; +import whitelist from "$lib/whitelist.js"; const pick = (O, ...K) => K.reduce((o, k) => ((o[k] = O[k]), o), {}); |
