Merge branch 'main' into cristi/2022-may_monitoring

This commit is contained in:
cristi8
2022-05-05 12:58:57 +03:00
76 changed files with 61002 additions and 51246 deletions
-21
View File
@@ -1044,20 +1044,6 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -3643,13 +3629,6 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+42613 -42640
View File
File diff suppressed because it is too large Load Diff
+2 -3
View File
@@ -7,15 +7,14 @@ const express = require('express')
// `express-async-errors` patches express to catch errors in async handlers. no variable needed
require('express-async-errors')
const compression = require('compression')
const appRoot = require('app-root-path')
const logger = require('morgan-debug')
const bodyParser = require('body-parser')
const debug = require('debug')
const { createTerminus } = require('@godaddy/terminus')
const Sentry = require('@sentry/node')
const Logging = require(`${appRoot}/logging`)
const { errorLoggingMiddleware } = require(`${appRoot}/logging/errorLogging`)
const Logging = require('@/logging')
const { errorLoggingMiddleware } = require('@/logging/errorLogging')
const prometheusClient = require('prom-client')
const { ApolloServer, ForbiddenError } = require('apollo-server-express')
+5 -1
View File
@@ -5,11 +5,11 @@
// Initializing module aliases for absolute import paths
require('module-alias')({ base: __dirname })
const appRoot = __dirname
// Initializing env vars
const dotenv = require('dotenv')
const { isTestEnv } = require('./modules/core/helpers/envHelper')
const appRoot = require('app-root-path')
// If running in test env, load .env.test first
// (appRoot necessary, cause env files aren't loaded through require() calls)
@@ -25,3 +25,7 @@ if (isTestEnv()) {
}
dotenv.config({ path: `${appRoot}/.env` })
module.exports = {
appRoot
}
@@ -1,7 +1,6 @@
'use strict'
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const { dispatchStreamEvent } = require('../../webhooks/services/webhooks')
const StreamActivity = () => knex('stream_activity')
@@ -1,14 +1,13 @@
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const { createUser } = require('../../core/services/users')
const { createPersonalAccessToken } = require('../../core/services/tokens')
const { createObject } = require('../../core/services/objects')
const { getUserActivity } = require('../services')
const { beforeEachContext, initializeTestServer } = require(`${appRoot}/test/hooks`)
const { noErrors } = require(`${appRoot}/test/helpers`)
const { beforeEachContext, initializeTestServer } = require('@/test/hooks')
const { noErrors } = require('@/test/helpers')
let sendRequest
+1 -2
View File
@@ -1,14 +1,13 @@
/* istanbul ignore file */
'use strict'
const debug = require('debug')
const appRoot = require('app-root-path')
exports.init = (app) => {
debug('speckle:modules')('💅 Init graphql api explorer module')
// sweet and simple
app.get('/explorer', (req, res) => {
res.sendFile(`${appRoot}/modules/apiexplorer/explorer.html`)
res.sendFile(require.resolve('@/modules/apiexplorer/explorer.html'))
})
}
+1 -2
View File
@@ -1,6 +1,5 @@
'use strict'
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const Scopes = () => knex('scopes')
const Apps = () => knex('server_apps')
const AppScopes = () => knex('server_apps_scopes')
+1 -2
View File
@@ -1,7 +1,6 @@
'use strict'
const debug = require('debug')
const appRoot = require('app-root-path')
const { registerOrUpdateScope } = require(`${appRoot}/modules/shared`)
const { registerOrUpdateScope } = require('@/modules/shared')
exports.init = async (app) => {
debug('speckle:modules')('🔑 Init auth module')
+1 -2
View File
@@ -1,12 +1,11 @@
'use strict'
const appRoot = require('app-root-path')
const redis = require('redis')
const ExpressSession = require('express-session')
const RedisStore = require('connect-redis')(ExpressSession)
const passport = require('passport')
const sentry = require(`${appRoot}/logging/sentryHelper`)
const sentry = require('@/logging/sentryHelper')
const { createAuthorizationCode } = require('./services/apps')
module.exports = async (app) => {
@@ -5,16 +5,9 @@ const passport = require('passport')
const OIDCStrategy = require('passport-azure-ad').OIDCStrategy
const URL = require('url').URL
const debug = require('debug')
const appRoot = require('app-root-path')
const {
findOrCreateUser,
getUserByEmail
} = require(`${appRoot}/modules/core/services/users`)
const { getServerInfo } = require(`${appRoot}/modules/core/services/generic`)
const {
validateInvite,
useInvite
} = require(`${appRoot}/modules/serverinvites/services`)
const { findOrCreateUser, getUserByEmail } = require('@/modules/core/services/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const { validateInvite, useInvite } = require('@/modules/serverinvites/services')
module.exports = async (app, session, sessionStorage, finalizeAuth) => {
const strategy = new OIDCStrategy(
@@ -5,16 +5,9 @@ const passport = require('passport')
const GithubStrategy = require('passport-github2')
const URL = require('url').URL
const debug = require('debug')
const appRoot = require('app-root-path')
const {
findOrCreateUser,
getUserByEmail
} = require(`${appRoot}/modules/core/services/users`)
const { getServerInfo } = require(`${appRoot}/modules/core/services/generic`)
const {
validateInvite,
useInvite
} = require(`${appRoot}/modules/serverinvites/services`)
const { findOrCreateUser, getUserByEmail } = require('@/modules/core/services/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const { validateInvite, useInvite } = require('@/modules/serverinvites/services')
module.exports = async (app, session, sessionStorage, finalizeAuth) => {
const strategy = {
@@ -3,16 +3,9 @@
const passport = require('passport')
const GoogleStrategy = require('passport-google-oauth20').Strategy
const debug = require('debug')
const appRoot = require('app-root-path')
const {
findOrCreateUser,
getUserByEmail
} = require(`${appRoot}/modules/core/services/users`)
const { getServerInfo } = require(`${appRoot}/modules/core/services/generic`)
const {
validateInvite,
useInvite
} = require(`${appRoot}/modules/serverinvites/services`)
const { findOrCreateUser, getUserByEmail } = require('@/modules/core/services/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const { validateInvite, useInvite } = require('@/modules/serverinvites/services')
module.exports = async (app, session, sessionStorage, finalizeAuth) => {
const strategy = {
@@ -1,18 +1,14 @@
'use strict'
const appRoot = require('app-root-path')
const debug = require('debug')
const {
createUser,
updateUser,
validatePasssword,
getUserByEmail
} = require(`${appRoot}/modules/core/services/users`)
const { getServerInfo } = require(`${appRoot}/modules/core/services/generic`)
const {
validateInvite,
useInvite
} = require(`${appRoot}/modules/serverinvites/services`)
const { respectsLimits } = require(`${appRoot}/modules/core/services/ratelimits`)
} = require('@/modules/core/services/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const { validateInvite, useInvite } = require('@/modules/serverinvites/services')
const { respectsLimits } = require('@/modules/core/services/ratelimits')
module.exports = async (app, session, sessionAppId, finalizeAuth) => {
const strategy = {
@@ -1,10 +1,9 @@
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const { createUser } = require(`${appRoot}/modules/core/services/users`)
const { validateToken } = require(`${appRoot}/modules/core/services/tokens`)
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { createUser } = require('@/modules/core/services/users')
const { validateToken } = require('@/modules/core/services/tokens')
const { beforeEachContext } = require('@/test/hooks')
const {
getApp,
getAllPublicApps,
@@ -1,13 +1,12 @@
/* eslint-disable camelcase */
/* istanbul ignore file */
const chai = require('chai')
const appRoot = require('app-root-path')
const expect = chai.expect
const { createUser } = require(`${appRoot}/modules/core/services/users`)
const { createPersonalAccessToken } = require(`${appRoot}/modules/core/services/tokens`)
const { beforeEachContext, initializeTestServer } = require(`${appRoot}/test/hooks`)
const { createUser } = require('@/modules/core/services/users')
const { createPersonalAccessToken } = require('@/modules/core/services/tokens')
const { beforeEachContext, initializeTestServer } = require('@/test/hooks')
const {
createAuthorizationCode,
createAppTokenFromAccessCode
@@ -2,14 +2,13 @@
const crs = require('crypto-random-string')
const chai = require('chai')
const request = require('supertest')
const appRoot = require('app-root-path')
const { createStream, getStream } = require(`${appRoot}/modules/core/services/streams`)
const { createStream, getStream } = require('@/modules/core/services/streams')
const { updateServerInfo } = require(`${appRoot}/modules/core/services/generic`)
const { getUserByEmail } = require(`${appRoot}/modules/core/services/users`)
const { LIMITS } = require(`${appRoot}/modules/core/services/ratelimits`)
const { createAndSendInvite } = require(`${appRoot}/modules/serverinvites/services`)
const { beforeEachContext, initializeTestServer } = require(`${appRoot}/test/hooks`)
const { updateServerInfo } = require('@/modules/core/services/generic')
const { getUserByEmail } = require('@/modules/core/services/users')
const { LIMITS } = require('@/modules/core/services/ratelimits')
const { createAndSendInvite } = require('@/modules/serverinvites/services')
const { beforeEachContext, initializeTestServer } = require('@/test/hooks')
const expect = chai.expect
let app
@@ -1,5 +1,5 @@
const knex = require('@/db/knex')
const appRoot = require('app-root-path')
const { appRoot } = require('@/bootstrap')
const fs = require('fs/promises')
/** @type {import('yargs').CommandModule} */
@@ -1,7 +1,6 @@
const appRoot = require('app-root-path')
const { authorizeResolver, pubsub } = require(`${appRoot}/modules/shared`)
const { authorizeResolver, pubsub } = require('@/modules/shared')
const { ForbiddenError, ApolloError, withFilter } = require('apollo-server-express')
const { getStream } = require(`${appRoot}/modules/core/services/streams`)
const { getStream } = require('@/modules/core/services/streams')
const {
getComment,
@@ -14,7 +13,7 @@ const {
archiveComment,
editComment,
streamResourceCheck
} = require(`${appRoot}/modules/comments/services`)
} = require('@/modules/comments/services')
const authorizeStreamAccess = async ({ streamId, userId, auth }) => {
const stream = await getStream({ streamId, userId })
@@ -1,7 +1,6 @@
'use strict'
const crs = require('crypto-random-string')
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const Comments = () => knex('comments')
const CommentLinks = () => knex('comment_links')
@@ -2,13 +2,12 @@
const expect = require('chai').expect
const crs = require('crypto-random-string')
const appRoot = require('app-root-path')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { createUser } = require(`${appRoot}/modules/core/services/users`)
const { createStream } = require(`${appRoot}/modules/core/services/streams`)
const { createCommitByBranchName } = require(`${appRoot}/modules/core/services/commits`)
const { beforeEachContext } = require('@/test/hooks')
const { createUser } = require('@/modules/core/services/users')
const { createStream } = require('@/modules/core/services/streams')
const { createCommitByBranchName } = require('@/modules/core/services/commits')
const { createObject } = require(`${appRoot}/modules/core/services/objects`)
const { createObject } = require('@/modules/core/services/objects')
const {
createComment,
getComments,
@@ -1,7 +1,6 @@
const { SchemaDirectiveVisitor } = require('apollo-server-express')
const { defaultFieldResolver } = require('graphql')
const appRoot = require('app-root-path')
const { validateServerRole } = require(`${appRoot}/modules/shared`)
const { validateServerRole } = require('@/modules/shared')
module.exports = {
hasRole: class HasRoleDirective extends SchemaDirectiveVisitor {
@@ -1,7 +1,6 @@
const { SchemaDirectiveVisitor } = require('apollo-server-express')
const { defaultFieldResolver } = require('graphql')
const appRoot = require('app-root-path')
const { validateScopes } = require(`${appRoot}/modules/shared`)
const { validateScopes } = require('@/modules/shared')
module.exports = {
hasScope: class HasScopeDirective extends SchemaDirectiveVisitor {
@@ -1,13 +1,12 @@
'use strict'
const appRoot = require('app-root-path')
const {
ForbiddenError,
UserInputError,
ApolloError,
withFilter
} = require('apollo-server-express')
const { authorizeResolver, pubsub } = require(`${appRoot}/modules/shared`)
const { authorizeResolver, pubsub } = require('@/modules/shared')
const {
createBranch,
@@ -19,7 +18,7 @@ const {
} = require('../../services/branches')
const { getUserById } = require('../../services/users')
const { saveActivity } = require(`${appRoot}/modules/activitystream/services`)
const { saveActivity } = require('@/modules/activitystream/services')
// subscription events
const BRANCH_CREATED = 'BRANCH_CREATED'
@@ -1,14 +1,13 @@
'use strict'
const appRoot = require('app-root-path')
const {
ForbiddenError,
UserInputError,
ApolloError,
withFilter
} = require('apollo-server-express')
const { authorizeResolver, pubsub } = require(`${appRoot}/modules/shared`)
const { saveActivity } = require(`${appRoot}/modules/activitystream/services`)
const { authorizeResolver, pubsub } = require('@/modules/shared')
const { saveActivity } = require('@/modules/activitystream/services')
const {
createCommitByBranchName,
@@ -1,10 +1,9 @@
'use strict'
const appRoot = require('app-root-path')
const {
validateServerRole,
validateScopes,
authorizeResolver
} = require(`${appRoot}/modules/shared`)
} = require('@/modules/shared')
const {
createObjects,
@@ -1,6 +1,5 @@
'use strict'
const appRoot = require('app-root-path')
const { validateServerRole, validateScopes } = require(`${appRoot}/modules/shared`)
const { validateServerRole, validateScopes } = require('@/modules/shared')
const {
updateServerInfo,
getServerInfo,
@@ -1,5 +1,4 @@
'use strict'
const appRoot = require('app-root-path')
const { UserInputError } = require('apollo-server-express')
const {
getUser,
@@ -15,7 +14,7 @@ const {
unmakeUserAdmin,
archiveUser
} = require('../../services/users')
const { saveActivity } = require(`${appRoot}/modules/activitystream/services`)
const { saveActivity } = require('@/modules/activitystream/services')
const { validateServerRole, validateScopes } = require(`@/modules/shared`)
const zxcvbn = require('zxcvbn')
+1 -5
View File
@@ -1,10 +1,6 @@
'use strict'
const debug = require('debug')
const appRoot = require('app-root-path')
const {
registerOrUpdateScope,
registerOrUpdateRole
} = require(`${appRoot}/modules/shared`)
const { registerOrUpdateScope, registerOrUpdateRole } = require('@/modules/shared')
exports.init = async (app) => {
debug('speckle:modules')('💥 Init core module')
@@ -5,8 +5,7 @@ https://speckle.community/t/error-in-grasshopper-while-receiving-data-you-dont-h
*/
exports.up = async (knex) => {
const appRoot = require('app-root-path')
const roles = require(`${appRoot}/modules/core/roles.js`)
const roles = require('@/modules/core/roles.js')
const Users = () => knex('users')
@@ -1,10 +1,9 @@
'use strict'
const appRoot = require('app-root-path')
const {
validateScopes,
validateServerRole,
authorizeResolver
} = require(`${appRoot}/modules/shared`)
} = require('@/modules/shared')
const { getStream } = require('../services/streams')
@@ -1,10 +1,9 @@
'use strict'
const zlib = require('zlib')
const debug = require('debug')
const appRoot = require('app-root-path')
const cors = require('cors')
const { contextMiddleware } = require(`${appRoot}/modules/shared`)
const { contextMiddleware } = require('@/modules/shared')
const { validatePermissionsReadStream } = require('./authUtils')
const { SpeckleObjectsStream } = require('./speckleObjectsStream')
const { getObjectsStream } = require('../services/objects')
@@ -2,9 +2,8 @@
const zlib = require('zlib')
const cors = require('cors')
const debug = require('debug')
const appRoot = require('app-root-path')
const { contextMiddleware } = require(`${appRoot}/modules/shared`)
const { contextMiddleware } = require('@/modules/shared')
const { validatePermissionsWriteStream } = require('./authUtils')
const { hasObjects } = require('../services/objects')
@@ -1,10 +1,9 @@
'use strict'
const zlib = require('zlib')
const debug = require('debug')
const appRoot = require('app-root-path')
const cors = require('cors')
const { contextMiddleware } = require(`${appRoot}/modules/shared`)
const { contextMiddleware } = require('@/modules/shared')
const { validatePermissionsReadStream } = require('./authUtils')
const { getObject, getObjectChildrenStream } = require('../services/objects')
+1 -2
View File
@@ -3,9 +3,8 @@ const zlib = require('zlib')
const cors = require('cors')
const Busboy = require('busboy')
const debug = require('debug')
const appRoot = require('app-root-path')
const { contextMiddleware } = require(`${appRoot}/modules/shared`)
const { contextMiddleware } = require('@/modules/shared')
const { validatePermissionsWriteStream } = require('./authUtils')
const { createObjectsBatched } = require('../services/objects')
@@ -1,7 +1,6 @@
'use strict'
const crs = require('crypto-random-string')
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const Streams = () => knex('streams')
const Branches = () => knex('branches')
@@ -1,7 +1,6 @@
'use strict'
const crs = require('crypto-random-string')
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const Streams = () => knex('streams')
const Commits = () => knex('commits')
@@ -1,6 +1,5 @@
'use strict'
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const Roles = () => knex('user_roles')
const Scopes = () => knex('scopes')
@@ -1,6 +1,5 @@
'use strict'
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const RatelimitActions = () => knex('ratelimit_actions')
const prometheusClient = require('prom-client')
@@ -1,8 +1,7 @@
'use strict'
const bcrypt = require('bcrypt')
const crs = require('crypto-random-string')
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const ApiTokens = () => knex('api_tokens')
const PersonalApiTokens = () => knex('personal_api_tokens')
@@ -1,9 +1,8 @@
'use strict'
const bcrypt = require('bcrypt')
const crs = require('crypto-random-string')
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const { saveActivity } = require(`${appRoot}/modules/activitystream/services`)
const knex = require('@/db/knex')
const { saveActivity } = require('@/modules/activitystream/services')
const Users = () => knex('users')
const Acl = () => knex('server_acl')
@@ -2,8 +2,7 @@
const chai = require('chai')
const assert = require('assert')
const appRoot = require('app-root-path')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { beforeEachContext } = require('@/test/hooks')
const expect = chai.expect
@@ -1,8 +1,7 @@
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { beforeEachContext } = require('@/test/hooks')
const { createUser } = require('../services/users')
const { createStream } = require('../services/streams')
@@ -1,8 +1,7 @@
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { beforeEachContext } = require('@/test/hooks')
const {
validateServerRole,
@@ -1,7 +1,6 @@
/* eslint-disable no-undef */
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const request = require('supertest')
const gql = require('graphql-tag')
const { execute } = require('apollo-link')
@@ -13,7 +12,8 @@ const { createUser } = require('../services/users')
const { createPersonalAccessToken } = require('../services/tokens')
const { beforeEachContext } = require(`@/test/hooks`)
const { sleep, noErrors } = require(`${appRoot}/test/helpers`)
const { sleep, noErrors } = require('@/test/helpers')
const { appRoot } = require('@/bootstrap')
let addr
let wsAddr
@@ -1,10 +1,9 @@
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const { init } = require(`${appRoot}/app`)
const knex = require(`${appRoot}/db/knex`)
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { init } = require('@/app')
const knex = require('@/db/knex')
const { beforeEachContext } = require('@/test/hooks')
// NOTE:
// These tests check that the initialization routine of the whole server
@@ -3,10 +3,8 @@
const expect = require('chai').expect
const assert = require('assert')
const appRoot = require('app-root-path')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { getAnIdForThisOnePlease } = require(`${appRoot}/test/helpers`)
const { beforeEachContext } = require('@/test/hooks')
const { getAnIdForThisOnePlease } = require('@/test/helpers')
const { createUser } = require('../services/users')
const { createStream } = require('../services/streams')
@@ -4,10 +4,9 @@ const request = require('supertest')
const assert = require('assert')
const crypto = require('crypto')
const appRoot = require('app-root-path')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { createManyObjects } = require(`${appRoot}/test/helpers`)
const { beforeEachContext } = require('@/test/hooks')
const { createManyObjects } = require('@/test/helpers')
const { createUser } = require('../services/users')
const { createPersonalAccessToken } = require('../services/tokens')
@@ -1,8 +1,6 @@
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const { createUser } = require('../services/users')
const {
createStream,
@@ -22,8 +20,8 @@ const {
const { createObject } = require('../services/objects')
const { createCommitByBranchName } = require('../services/commits')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { sleep } = require(`${appRoot}/test/helpers`)
const { beforeEachContext } = require('@/test/hooks')
const { sleep } = require('@/test/helpers')
describe('Streams @core-streams', () => {
const userOne = {
@@ -3,9 +3,8 @@ const bcrypt = require('bcrypt')
const crs = require('crypto-random-string')
const expect = require('chai').expect
const assert = require('assert')
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const {
archiveUser,
@@ -41,7 +40,7 @@ const {
} = require('../services/commits')
const { createObject } = require('../services/objects')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { beforeEachContext } = require('@/test/hooks')
describe('Actors & Tokens @user-services', () => {
const myTestActor = {
@@ -1,7 +1,6 @@
/* istanbul ignore file */
const expect = require('chai').expect
const assert = require('assert')
const appRoot = require('app-root-path')
const {
createUser,
@@ -12,7 +11,7 @@ const {
unmakeUserAdmin,
makeUserAdmin
} = require('../services/users')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { beforeEachContext } = require('@/test/hooks')
describe('User admin @user-services', () => {
const myTestActor = {
+3 -4
View File
@@ -1,8 +1,7 @@
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const { getUserByEmail } = require(`${appRoot}/modules/core/services/users`)
const { contextMiddleware } = require(`${appRoot}/modules/shared`)
const { getUserByEmail } = require('@/modules/core/services/users')
const { contextMiddleware } = require('@/modules/shared')
const {
sendEmailVerification,
isVerificationValid
@@ -1,11 +1,10 @@
const appRoot = require('app-root-path')
const crs = require('crypto-random-string')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const Verifications = () => knex('email_verifications')
const { getServerInfo } = require(`${appRoot}/modules/core/services/generic`)
const { sendEmail } = require(`${appRoot}/modules/emails`)
const { getServerInfo } = require('@/modules/core/services/generic')
const { sendEmail } = require('@/modules/emails')
const sendEmailVerification = async ({ recipient }) => {
// we need to validate email here, since we'll send it out,
@@ -1,18 +1,15 @@
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { beforeEachContext } = require('@/test/hooks')
const request = require('supertest')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const { createUser } = require(`${appRoot}/modules/core/services/users`)
const { createPersonalAccessToken } = require(`${appRoot}/modules/core/services/tokens`)
const { createUser } = require('@/modules/core/services/users')
const { createPersonalAccessToken } = require('@/modules/core/services/tokens')
const {
sendEmailVerification
} = require(`${appRoot}/modules/emails/services/verification`)
const { sendEmailVerification } = require('@/modules/emails/services/verification')
const Verifications = () => knex('email_verifications')
+1 -2
View File
@@ -2,14 +2,13 @@
'use strict'
const debug = require('debug')
const appRoot = require('app-root-path')
const Busboy = require('busboy')
const {
contextMiddleware,
validateScopes,
authorizeResolver
} = require(`${appRoot}/modules/shared`)
} = require('@/modules/shared')
const {
checkBucket,
@@ -1,9 +1,8 @@
/* istanbul ignore file */
'use strict'
const appRoot = require('app-root-path')
const crs = require('crypto-random-string')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const S3 = require('aws-sdk/clients/s3')
const FileUploads = () => knex('file_uploads')
+1 -1
View File
@@ -1,7 +1,7 @@
'use strict'
const fs = require('fs')
const path = require('path')
const appRoot = require('app-root-path')
const { appRoot } = require('@/bootstrap')
const autoload = require('auto-load')
const { values, merge } = require('lodash')
const { scalarResolvers, scalarSchemas } = require('./core/graph/scalars')
+24 -28
View File
@@ -2,13 +2,12 @@
'use strict'
const debug = require('debug')
const appRoot = require('app-root-path')
const {
contextMiddleware,
validateScopes,
authorizeResolver
} = require(`${appRoot}/modules/shared`)
} = require('@/modules/shared')
const { getStream } = require('../core/services/streams')
const { getObject } = require('../core/services/objects')
@@ -25,6 +24,12 @@ const {
const { makeOgImage } = require('./ogImage')
const httpErrorImage = (httpErrorCode) =>
require.resolve(`@/modules/previews/assets/preview_${httpErrorCode}.png`)
const noPreviewImage = require.resolve('@/modules/previews/assets/no_preview.png')
const previewErrorImage = require.resolve('@/modules/previews/assets/preview_error.png')
exports.init = (app) => {
if (process.env.DISABLE_PREVIEWS) {
debug('speckle:modules')('📸 Object preview module is DISABLED')
@@ -36,7 +41,10 @@ exports.init = (app) => {
const getObjectPreviewBufferOrFilepath = async ({ streamId, objectId, angle }) => {
if (process.env.DISABLE_PREVIEWS) {
return { type: 'file', file: `${appRoot}/modules/previews/assets/no_preview.png` }
return {
type: 'file',
file: noPreviewImage
}
}
// Check if objectId is valid
@@ -44,7 +52,7 @@ exports.init = (app) => {
if (!dbObj) {
return {
type: 'file',
file: `${appRoot}/modules/previews/assets/preview_404.png`
file: require.resolve('@/modules/previews/assets/preview_404.png')
}
}
@@ -55,7 +63,7 @@ exports.init = (app) => {
}
if (!previewInfo || previewInfo.previewStatus !== 2 || !previewInfo.preview) {
return { type: 'file', file: `${appRoot}/modules/previews/assets/no_preview.png` }
return { type: 'file', file: noPreviewImage }
}
const previewImgId = previewInfo.preview[angle]
@@ -65,7 +73,7 @@ exports.init = (app) => {
)
return {
type: 'file',
file: `${appRoot}/modules/previews/assets/preview_error.png`
file: previewErrorImage
}
}
const previewImg = await getPreviewImage({ previewId: previewImgId })
@@ -73,7 +81,7 @@ exports.init = (app) => {
debug('speckle:errors')(`Error: Preview image not found: ${previewImgId}`)
return {
type: 'file',
file: `${appRoot}/modules/previews/assets/preview_error.png`
file: previewErrorImage
}
}
return { type: 'buffer', buffer: previewImg }
@@ -154,9 +162,7 @@ exports.init = (app) => {
const { hasPermissions, httpErrorCode } = await checkStreamPermissions(req)
if (!hasPermissions) {
// return res.status( httpErrorCode ).end()
return res.sendFile(
`${appRoot}/modules/previews/assets/preview_${httpErrorCode}.png`
)
return res.sendFile(httpErrorImage(httpErrorCode))
}
return sendObjectPreview(
@@ -173,9 +179,7 @@ exports.init = (app) => {
const { hasPermissions, httpErrorCode } = await checkStreamPermissions(req)
if (!hasPermissions) {
// return res.status( httpErrorCode ).end()
return res.sendFile(
`${appRoot}/modules/previews/assets/preview_${httpErrorCode}.png`
)
return res.sendFile(httpErrorImage(httpErrorCode))
}
const { commits } = await getCommitsByStreamId({
@@ -184,7 +188,7 @@ exports.init = (app) => {
ignoreGlobalsBranch: true
})
if (!commits || commits.length === 0) {
return res.sendFile(`${appRoot}/modules/previews/assets/no_preview.png`)
return res.sendFile(noPreviewImage)
}
const lastCommit = commits[0]
@@ -204,9 +208,7 @@ exports.init = (app) => {
const { hasPermissions, httpErrorCode } = await checkStreamPermissions(req)
if (!hasPermissions) {
// return res.status( httpErrorCode ).end()
return res.sendFile(
`${appRoot}/modules/previews/assets/preview_${httpErrorCode}.png`
)
return res.sendFile(httpErrorImage(httpErrorCode))
}
let commitsObj
@@ -221,7 +223,7 @@ exports.init = (app) => {
}
const { commits } = commitsObj
if (!commits || commits.length === 0) {
return res.sendFile(`${appRoot}/modules/previews/assets/no_preview.png`)
return res.sendFile(noPreviewImage)
}
const lastCommit = commits[0]
@@ -242,18 +244,14 @@ exports.init = (app) => {
const { hasPermissions, httpErrorCode } = await checkStreamPermissions(req)
if (!hasPermissions) {
// return res.status( httpErrorCode ).end()
return res.sendFile(
`${appRoot}/modules/previews/assets/preview_${httpErrorCode}.png`
)
return res.sendFile(httpErrorImage(httpErrorCode))
}
const commit = await getCommitById({
streamId: req.params.streamId,
id: req.params.commitId
})
if (!commit) {
return res.sendFile(`${appRoot}/modules/previews/assets/no_preview.png`)
}
if (!commit) return res.sendFile(noPreviewImage)
return sendObjectPreview(
req,
@@ -269,12 +267,10 @@ exports.init = (app) => {
'/preview/:streamId/objects/:objectId',
contextMiddleware,
async (req, res) => {
const { hasPermissions, httpErrorCode } = await checkStreamPermissions(req)
const { hasPermissions } = await checkStreamPermissions(req)
if (!hasPermissions) {
// return res.status( httpErrorCode ).end()
return res.sendFile(
`${appRoot}/modules/previews/assets/preview_${httpErrorCode}.png`
)
return res.sendFile()
}
return sendObjectPreview(
+1 -2
View File
@@ -1,7 +1,6 @@
/* istanbul ignore file */
'use strict'
const appRoot = require('app-root-path')
const sharp = require('sharp')
const xmlescape = require('xml-escape')
const pixelWidth = require('string-pixel-width')
@@ -26,7 +25,7 @@ module.exports = {
// console.log( streamName, pixelWidth( title, { font: 'open sans', size: 48 } ), ' / ', imgWidth - 2 * panelPadding - 305 )
const logo = await sharp(
`${appRoot}/modules/previews/assets/speckle_logo_and_text.png`
require.resolve('@/modules/previews/assets/speckle_logo_and_text.png')
)
.resize({ height: panelHeight })
.toBuffer()
@@ -1,8 +1,7 @@
/* istanbul ignore file */
'use strict'
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const ObjectPreview = () => knex('object_preview')
const Previews = () => knex('previews')
@@ -1,14 +1,10 @@
'use strict'
const appRoot = require('app-root-path')
const crs = require('crypto-random-string')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const {
getUserByEmail,
updateUserPassword
} = require(`${appRoot}/modules/core/services/users`)
const { getServerInfo } = require(`${appRoot}/modules/core/services/generic`)
const { sendEmail } = require(`${appRoot}/modules/emails`)
const { getUserByEmail, updateUserPassword } = require('@/modules/core/services/users')
const { getServerInfo } = require('@/modules/core/services/generic')
const { sendEmail } = require('@/modules/emails')
const ResetTokens = () => knex('pwdreset_tokens')
const RefreshTokens = () => knex('refresh_tokens')
@@ -1,12 +1,11 @@
/* istanbul ignore file */
const request = require('supertest')
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const ResetTokens = () => knex('pwdreset_tokens')
const { beforeEachContext } = require(`${appRoot}/test/hooks`)
const { createUser } = require(`${appRoot}/modules/core/services/users`)
const { beforeEachContext } = require('@/test/hooks')
const { createUser } = require('@/modules/core/services/users')
describe('Password reset requests @passwordresets', () => {
let app
@@ -1,8 +1,7 @@
'use strict'
const appRoot = require('app-root-path')
const { createAndSendInvite } = require(`${appRoot}/modules/serverinvites/services`)
const { authorizeResolver } = require(`${appRoot}/modules/shared`)
const { createAndSendInvite } = require('@/modules/serverinvites/services')
const { authorizeResolver } = require('@/modules/shared')
module.exports = {
Mutation: {
@@ -1,7 +1,6 @@
'use strict'
const debug = require('debug')
const appRoot = require('app-root-path')
const { registerOrUpdateScope } = require(`${appRoot}/modules/shared`)
const { registerOrUpdateScope } = require('@/modules/shared')
exports.init = async () => {
debug('speckle:modules')('💌 Init invites module')
@@ -1,18 +1,14 @@
'use strict'
const appRoot = require('app-root-path')
const crs = require('crypto-random-string')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const sanitizeHtml = require('sanitize-html')
const {
getUserByEmail,
getUserById
} = require(`${appRoot}/modules/core/services/users`)
const { getUserByEmail, getUserById } = require('@/modules/core/services/users')
const { getServerInfo } = require(`${appRoot}/modules/core/services/generic`)
const { sendEmail } = require(`${appRoot}/modules/emails`)
const { getServerInfo } = require('@/modules/core/services/generic')
const { sendEmail } = require('@/modules/emails')
const { grantPermissionsStream } = require(`${appRoot}/modules/core/services/streams`)
const { grantPermissionsStream } = require('@/modules/core/services/streams')
const Invites = () => knex('server_invites')
@@ -1,8 +1,7 @@
/* istanbul ignore file */
const expect = require('chai').expect
const appRoot = require('app-root-path')
const { createUser } = require(`${appRoot}/modules/core/services/users`)
const { createUser } = require('@/modules/core/services/users')
const {
createAndSendInvite,
@@ -11,14 +10,11 @@ const {
validateInvite,
useInvite,
sanitizeMessage
} = require(`${appRoot}/modules/serverinvites/services`)
const {
createStream,
getUserStreams
} = require(`${appRoot}/modules/core/services/streams`)
const { createPersonalAccessToken } = require(`${appRoot}/modules/core/services/tokens`)
} = require('@/modules/serverinvites/services')
const { createStream, getUserStreams } = require('@/modules/core/services/streams')
const { createPersonalAccessToken } = require('@/modules/core/services/tokens')
const { beforeEachContext, initializeTestServer } = require(`${appRoot}/test/hooks`)
const { beforeEachContext, initializeTestServer } = require('@/test/hooks')
describe('Server Invites @server-invites', () => {
describe('Services @server-invites-services', () => {
@@ -1,6 +1,5 @@
'use strict'
const appRoot = require('app-root-path')
const { validateServerRole, validateScopes } = require(`${appRoot}/modules/shared`)
const { validateServerRole, validateScopes } = require('@/modules/shared')
const {
getStreamHistory,
getCommitHistory,
@@ -1,6 +1,5 @@
'use strict'
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
module.exports = {
async getTotalStreamCount() {
@@ -1,7 +1,6 @@
const appRoot = require('app-root-path')
const { ForbiddenError } = require('apollo-server-express')
const { authorizeResolver } = require(`${appRoot}/modules/shared`)
const { authorizeResolver } = require('@/modules/shared')
const {
createWebhook,
getWebhook,
@@ -1,7 +1,6 @@
'use strict'
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const knex = require('@/db/knex')
const crs = require('crypto-random-string')
const WebhooksConfig = () => knex('webhooks_config')
@@ -2,9 +2,8 @@
const expect = require('chai').expect
const assert = require('assert')
const appRoot = require('app-root-path')
const { beforeEachContext, initializeTestServer } = require(`${appRoot}/test/hooks`)
const { noErrors } = require(`${appRoot}/test/helpers`)
const { beforeEachContext, initializeTestServer } = require('@/test/hooks')
const { noErrors } = require('@/test/helpers')
const { createPersonalAccessToken } = require('../../core/services/tokens')
const {
createWebhook,
+1177 -815
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -15,7 +15,7 @@
"node": "^16.0.0"
},
"scripts": {
"dev": "cross-env NODE_ENV=development DEBUG=speckle:* nodemon ./bin/www --watch . --watch ./bin/www -e js,graphql,env",
"dev": "cross-env 'NODE_ENV=development' 'DEBUG=speckle:*' nodemon ./bin/www --watch . --watch ./bin/www -e js,graphql,env",
"dev:server:test": "cross-env NODE_ENV=test DEBUG=speckle:* node ./bin/www",
"test": "cross-env NODE_ENV=test mocha",
"test:coverage": "cross-env NODE_ENV=test nyc --reporter lcov mocha",
@@ -28,7 +28,6 @@
"@sentry/tracing": "^6.17.9",
"apollo-server-express": "^2.19.0",
"apollo-server-testing": "^2.19.0",
"app-root-path": "^3.0.0",
"auto-load": "^3.0.4",
"aws-sdk": "^2.1075.0",
"bcrypt": "^5.0.0",
@@ -1,6 +1,5 @@
const appRoot = require('app-root-path')
const knex = require(`${appRoot}/db/knex`)
const roles = require(`${appRoot}/modules/core/roles.js`)
const knex = require('@/db/knex')
const roles = require('@/modules/core/roles.js')
const Users = () => knex('users')
+2 -2
View File
@@ -1,5 +1,5 @@
const appRoot = require('app-root-path')
const { createUser } = require(`${appRoot}/modules/core/services/users`)
require('../bootstrap')
const { createUser } = require('@/modules/core/services/users')
const axios = require('axios').default
const main = async () => {
+17052 -7507
View File
File diff suppressed because it is too large Load Diff