diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e900bfac3..b6e0f99c8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Thank you for reading this! Speckle's a rather wide network of parts that depend > **Speckle** is a quite large ecosystem of moving parts. Any changes may have unintended effects, that can cause problems quickly for many people (and processes) that rely on Speckle. -This means that what might look like a simple quick change in one repo may have a big hidden cost that propagates around other parts of the project. We're all here to help each other, and this guide is meant to help you get started and promote a framework that can untangle all these dependecies through discussion! +This means that what might look like a simple quick change in one repo may have a big hidden cost that propagates around other parts of the project. We're all here to help each other, and this guide is meant to help you get started and promote a framework that can untangle all these dependencies through discussion! ## Bugs & Issues 🐞 @@ -45,7 +45,7 @@ Changes that are cosmetic in nature and do not add anything substantial to the s Why? However trivial the changes might seem, there might be subtle reasons for the original code to be as it is. Furthermore, there are a lot of potential hidden costs (that even maintainers themselves are not aware of fully!) and they eat up review time unncessarily. -> **Examples**: modifying the colour of an UI element in one client may have a big hidden cost and need propagation in several other clients that implement a similar ui element. Changing the default port or specifiying `localhost` instead of `0.0.0.0` breaks cross-vm debugging and developing. +> **Examples**: modifying the colour of an UI element in one client may have a big hidden cost and need propagation in several other clients that implement a similar ui element. Changing the default port or specifying `localhost` instead of `0.0.0.0` breaks cross-vm debugging and developing. ## Wrap up diff --git a/packages/frontend/src/components/GettingStartedSteps.vue b/packages/frontend/src/components/GettingStartedSteps.vue index 178b7bf9b..f0c92b1e2 100644 --- a/packages/frontend/src/components/GettingStartedSteps.vue +++ b/packages/frontend/src/components/GettingStartedSteps.vue @@ -123,7 +123,7 @@ Connectors are plugins for design and analysis software, they let you exchange - geometry and BIM data dirctly from the tools you use. + geometry and BIM data directly from the tools you use.

Install our connectors and you'll instantly be able to @@ -194,8 +194,8 @@

Commits can also be organized in branches, - for instace, to have multiple design options or to store data by discipline. The - dafault branch is called + for instance, to have multiple design options or to store data by discipline. The + default branch is called main .

diff --git a/packages/frontend/src/components/dialogs/AppNewDialog.vue b/packages/frontend/src/components/dialogs/AppNewDialog.vue index 867a89c66..4f6401335 100644 --- a/packages/frontend/src/components/dialogs/AppNewDialog.vue +++ b/packages/frontend/src/components/dialogs/AppNewDialog.vue @@ -42,7 +42,7 @@ v-model="description" label="Description" persistent-hint - hint="A short description of your applicaiton." + hint="A short description of your application." > diff --git a/packages/objectloader/readme.md b/packages/objectloader/readme.md index d9ad8f78f..3230dd963 100644 --- a/packages/objectloader/readme.md +++ b/packages/objectloader/readme.md @@ -10,7 +10,7 @@ Comprehensive developer and user documentation can be found in our: ## Getting started -This is a small utility class that helps you stream an object and all its sub-components from the Speckle Server API. It is inteded to be used in contexts where you want to "download" the whole object, or iteratively traverse its whole tree. +This is a small utility class that helps you stream an object and all its sub-components from the Speckle Server API. It is intended to be used in contexts where you want to "download" the whole object, or iteratively traverse its whole tree. Here's a sample way on how to use it, pfilfered from the [3d viewer package](../viewer): diff --git a/packages/server/app.js b/packages/server/app.js index cc934c74e..9a5fd5d05 100644 --- a/packages/server/app.js +++ b/packages/server/app.js @@ -28,7 +28,7 @@ let graphqlServer /** * Initialises the express application together with the graphql server middleware. - * @return {[type]} an express applicaiton and the graphql server + * @return {[type]} an express application and the graphql server */ exports.init = async ( ) => { const app = express( ) diff --git a/packages/server/modules/auth/strategies/github.js b/packages/server/modules/auth/strategies/github.js index 62e2e3cb9..57d8d9ed2 100644 --- a/packages/server/modules/auth/strategies/github.js +++ b/packages/server/modules/auth/strategies/github.js @@ -45,7 +45,7 @@ module.exports = async ( app, session, sessionStorage, finalizeAuth ) => { existingUser = await getUserByEmail( { email: user.email } ) // if there is an existing user, go ahead and log them in (regardless of - // wether the server is invite only or not). + // whether the server is invite only or not). if ( existingUser ) { let myUser = await findOrCreateUser( { user: user, rawProfile: profile._raw } ) return done( null, myUser ) diff --git a/packages/server/modules/auth/strategies/google.js b/packages/server/modules/auth/strategies/google.js index 56a765c3c..edbe249e1 100644 --- a/packages/server/modules/auth/strategies/google.js +++ b/packages/server/modules/auth/strategies/google.js @@ -42,7 +42,7 @@ module.exports = async ( app, session, sessionStorage, finalizeAuth ) => { existingUser = await getUserByEmail( { email: user.email } ) // if there is an existing user, go ahead and log them in (regardless of - // wether the server is invite only or not). + // whether the server is invite only or not). if ( existingUser ) { let myUser = await findOrCreateUser( { user: user, rawProfile: profile._raw } ) return done( null, myUser ) diff --git a/packages/server/modules/auth/tests/apps.spec.js b/packages/server/modules/auth/tests/apps.spec.js index bf0eba904..85dd2ceeb 100644 --- a/packages/server/modules/auth/tests/apps.spec.js +++ b/packages/server/modules/auth/tests/apps.spec.js @@ -161,7 +161,7 @@ describe( 'Apps @apps', ( ) => { let usedAccessCode = await createAuthorizationCode( { appId: myTestApp.id, userId: actor.id, challenge } ) let apiTokenResponse = await createAppTokenFromAccessCode( { appId: myTestApp.id, appSecret: myTestApp.secret, accessCode: usedAccessCode, challenge: challenge } ) - // We now have one unused acces code, an api token and a refresh token. + // We now have one unused access code, an api token and a refresh token. // Proceed to update the app: const res = await updateApp( { app: { name: 'updated test application', id: myTestApp.id, scopes: [ 'streams:write', 'users:read' ] } } ) diff --git a/packages/server/modules/core/graph/schemas/streams.graphql b/packages/server/modules/core/graph/schemas/streams.graphql index 63ed874c4..ac966b84e 100644 --- a/packages/server/modules/core/graph/schemas/streams.graphql +++ b/packages/server/modules/core/graph/schemas/streams.graphql @@ -17,7 +17,7 @@ type Stream { description: String isPublic: Boolean! """ - Your role for this stream. `null` if request is not authenticated, or the stream is not explictely shared with you. + Your role for this stream. `null` if request is not authenticated, or the stream is not explicitly shared with you. """ role: String createdAt: DateTime! diff --git a/packages/server/modules/core/migrations/000-core.js b/packages/server/modules/core/migrations/000-core.js index e3011732b..6a06e160c 100644 --- a/packages/server/modules/core/migrations/000-core.js +++ b/packages/server/modules/core/migrations/000-core.js @@ -37,7 +37,7 @@ exports.up = async knex => { // Roles. // Roles keep track of their name and the target resource they are applied to. // The target resource must be a table name. - // The heigher the weight, the bigger the permissions. + // The higher the weight, the bigger the permissions. await knex.schema.createTable( 'user_roles', table => { table.string( 'name', 256 ).primary( ) table.string( 'description', 256 ).notNullable( ) diff --git a/packages/server/modules/core/roles.js b/packages/server/modules/core/roles.js index b6b54eaac..58c69348b 100644 --- a/packages/server/modules/core/roles.js +++ b/packages/server/modules/core/roles.js @@ -3,7 +3,7 @@ // Conventions: // "weight: 1000" => resource owner // "weight: 100" => resource viewer / basic user -// Anything in between 100 and 1000 can be used for escalating priviliges. +// Anything in between 100 and 1000 can be used for escalating privileges. module.exports = [ /** diff --git a/packages/server/modules/core/services/objects.js b/packages/server/modules/core/services/objects.js index 1393a3e76..67319170b 100644 --- a/packages/server/modules/core/services/objects.js +++ b/packages/server/modules/core/services/objects.js @@ -87,7 +87,7 @@ module.exports = { let closureBatchSize = 1000 let objectsBatchSize = 500 - // step 1: insert objecs + // step 1: insert objects if ( objsToInsert.length > 0 ) { let batches = chunk( objsToInsert, objectsBatchSize ) for ( const batch of batches ) { @@ -270,7 +270,7 @@ module.exports = { cursor = JSON.parse( Buffer.from( cursor, 'base64' ).toString( 'binary' ) ) } - // Flag that keeps track of wether we select the whole "data" part of an object or not + // Flag that keeps track of whether we select the whole "data" part of an object or not let fullObjectSelect = false if ( Array.isArray( select ) ) { // if we order by a field that we do not select, select it! @@ -332,7 +332,7 @@ module.exports = { else whereClause = 'andWhere' // Note: castType is generated from the statement's value and operators are matched against a whitelist. - // If comparing with strings, the jsonb_path_query(_first) func returns json encoded strings (ie, `bar` is actually `"bar"`), hence we need to add the qoutes manually to the raw provided comparison value. + // If comparing with strings, the jsonb_path_query(_first) func returns json encoded strings (ie, `bar` is actually `"bar"`), hence we need to add the quotes manually to the raw provided comparison value. nestedWhereQuery[ whereClause ]( knex.raw( `jsonb_path_query_first( data, ? )::${castType} ${statement.operator} ? `, [ '$.' + statement.field, castType === 'text' ? `"${statement.value}"` : statement.value ] ) ) } ) } ) @@ -358,7 +358,7 @@ module.exports = { if ( typeof cursor.value === 'boolean' ) castType = 'boolean' if ( typeof cursor.value === 'number' ) castType = 'numeric' - // When strings are used inside an order clause, as mentioned above, we need to add qoutes around the comparison value, as the jsonb_path_query funcs return json encoded strings (`{"test":"foo"}` => test is returned as `"foo"`) + // When strings are used inside an order clause, as mentioned above, we need to add quotes around the comparison value, as the jsonb_path_query funcs return json encoded strings (`{"test":"foo"}` => test is returned as `"foo"`) if ( castType === 'text' ) cursor.value = `"${cursor.value}"` @@ -423,7 +423,7 @@ module.exports = { cursorObj.lastSeenId = rows[ rows.length - 1 ].id } - // Cursor objetcs should be client-side opaque, hence we encode them to base64. + // Cursor objects should be client-side opaque, hence we encode them to base64. let cursorEncoded = Buffer.from( JSON.stringify( cursorObj ), 'binary' ).toString( 'base64' ) return { totalCount, objects: rows, cursor: rows.length === limit ? cursorEncoded : null } }, diff --git a/packages/server/modules/core/tests/objects.spec.js b/packages/server/modules/core/tests/objects.spec.js index aaf84967a..a71ce7d0c 100644 --- a/packages/server/modules/core/tests/objects.spec.js +++ b/packages/server/modules/core/tests/objects.spec.js @@ -305,7 +305,7 @@ describe( 'Objects @core-objects', ( ) => { } ) - it( 'should query childern and sort them by a boolean value ', async ( ) => { + it( 'should query children and sort them by a boolean value ', async ( ) => { let test = await getObjectChildrenQuery( { streamId: stream.id, objectId: parentObjectId, @@ -330,7 +330,7 @@ describe( 'Objects @core-objects', ( ) => { } ) - it( 'should query childern and sort them by a string value ', async ( ) => { + it( 'should query children and sort them by a string value ', async ( ) => { let limVal = 20 let test = await getObjectChildrenQuery( { @@ -355,13 +355,13 @@ describe( 'Objects @core-objects', ( ) => { expect( test.objects[ 0 ].data.name ).to.equal( 'mr. 0' ) expect( test.objects[ 1 ].data.name ).to.equal( 'mr. 1' ) - expect( test.objects[ 2 ].data.name ).to.equal( 'mr. 10' ) // remeber kids, this is a lexicographical sort + expect( test.objects[ 2 ].data.name ).to.equal( 'mr. 10' ) // remember kids, this is a lexicographical sort expect( test.objects[ 4 ].data.name ).to.equal( 'mr. 12' ) expect( test2.objects[ 0 ].data.name ).to.equal( 'mr. 13' ) } ) - it( 'should query childern and sort them by id by default ', async ( ) => { + it( 'should query children and sort them by id by default ', async ( ) => { let test = await getObjectChildrenQuery( { streamId: stream.id, objectId: parentObjectId, diff --git a/packages/server/modules/core/tests/rest.spec.js b/packages/server/modules/core/tests/rest.spec.js index 1d6dd7d8e..da845327b 100644 --- a/packages/server/modules/core/tests/rest.spec.js +++ b/packages/server/modules/core/tests/rest.spec.js @@ -140,7 +140,7 @@ describe( 'Upload/Download Routes @api-rest', ( ) => { .attach( 'batch2', Buffer.from( JSON.stringify( objBatches[ 1 ] ), 'utf8' ) ) .attach( 'batch3', Buffer.from( JSON.stringify( objBatches[ 2 ] ), 'utf8' ) ) - // TODO: test gziped uploads. They work. Current blocker: cannot set content-type for each part in the 'multipart' request. + // TODO: test gzipped uploads. They work. Current blocker: cannot set content-type for each part in the 'multipart' request. // .attach( 'batch1', zlib.gzipSync( Buffer.from( JSON.stringify( objBatches[ 0 ] ) ), 'utf8' ) ) // .attach( 'batch2', zlib.gzipSync( Buffer.from( JSON.stringify( objBatches[ 1 ] ) ), 'utf8' ) ) // .attach( 'batch3', zlib.gzipSync( Buffer.from( JSON.stringify( objBatches[ 2 ] ) ), 'utf8' ) ) diff --git a/packages/server/modules/pwdreset/tests/pwdrest.spec.js b/packages/server/modules/pwdreset/tests/pwdrest.spec.js index 5e71a13e4..65efcf83e 100644 --- a/packages/server/modules/pwdreset/tests/pwdrest.spec.js +++ b/packages/server/modules/pwdreset/tests/pwdrest.spec.js @@ -41,7 +41,7 @@ describe( 'Password reset requests @passwordresets', ( ) => { .post( '/auth/pwdreset/request' ) .expect( 400 ) - // non-existant user + // non-existent user await request( expressApp ) .post( '/auth/pwdreset/request' ) .send( { email: 'doesnot@exist.here' } ) diff --git a/packages/server/modules/shared/index.js b/packages/server/modules/shared/index.js index 6a71086d2..cab2cfcc7 100644 --- a/packages/server/modules/shared/index.js +++ b/packages/server/modules/shared/index.js @@ -42,7 +42,7 @@ async function contextApiTokenHelper( { req, res, connection } ) { return { auth: true, userId, role, token, scopes } } catch ( e ) { - // TODO: Think wether perhaps it's better to throw the error + // TODO: Think whether perhaps it's better to throw the error return { auth: false, err: e } } diff --git a/packages/viewer/src/modules/Converter.js b/packages/viewer/src/modules/Converter.js index 954e4aa5e..8dc772f26 100644 --- a/packages/viewer/src/modules/Converter.js +++ b/packages/viewer/src/modules/Converter.js @@ -19,8 +19,8 @@ export default class Coverter { } /** - * If the object is convertable (there is a direct conversion routine), it will invoke the callback with the conversion result. - * If the object is not convertable, it will recursively iterate through it (arrays & objects) and invoke the callback on any postive conversion result. + * If the object is convertible (there is a direct conversion routine), it will invoke the callback with the conversion result. + * If the object is not convertible, it will recursively iterate through it (arrays & objects) and invoke the callback on any positive conversion result. * @param {[type]} obj [description] * @param {Function} callback [description] * @return {[type]} [description] @@ -236,7 +236,7 @@ export default class Coverter { if ( !obj ) return let { bufferGeometry } = await this.MeshToBufferGeometry( await this.resolveReference( obj.displayValue || obj.displayMesh ), scale ) - // deletes known uneeded fields + // deletes known unneeded fields // delete obj.displayMesh // delete obj.displayValue delete obj.Edges @@ -476,7 +476,7 @@ export default class Coverter { const xAxis = this.PointToVector3( plane.xdir ) const yAxis = this.PointToVector3( plane.ydir ) - // Make sure plane axis are unit lenght!!!! + // Make sure plane axis are unit length!!!! xAxis.normalize() yAxis.normalize() diff --git a/packages/viewer/src/modules/external/TransformControls.js b/packages/viewer/src/modules/external/TransformControls.js index f52eaf7c8..2955e291f 100644 --- a/packages/viewer/src/modules/external/TransformControls.js +++ b/packages/viewer/src/modules/external/TransformControls.js @@ -185,7 +185,7 @@ var TransformControls = function ( camera, domElement, translationDotsOnly ) { }; - // Detatch from object + // Detach from object this.detach = function () { this.object = undefined;