From bf903d352494c2fbd233c3eaf5699720ba2b4c57 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Fri, 18 Oct 2024 06:45:25 +0100 Subject: [PATCH] Update Types --- .gitignore | 2 + engine/engine/addUsersTableToDb.js | 4 +- engine/query/get.js | 2 +- engine/query/post.js | 2 +- engine/query/utils/addDbEntry.js | 2 +- engine/query/utils/deleteDbEntry.js | 2 +- engine/query/utils/runQuery.js | 2 +- engine/query/utils/updateDbEntry.js | 2 +- engine/user/add-user.js | 4 +- engine/user/social/github-auth.js | 2 +- engine/user/social/google-auth.js | 2 +- engine/user/social/utils/handleSocialDb.js | 2 +- engine/user/update-user.js | 2 +- package-shared/types/database-schema.td.js | 117 ------ package-shared/types/engine.td.js | 0 package-shared/types/general.td.js | 37 -- package-shared/types/index.d.ts | 317 +++++++++++++++++ package-shared/types/index.js | 355 +++++++++++++++++++ package-shared/types/mysql.td.js | 48 --- package-shared/types/package-shared-index.js | 38 -- package-shared/types/user.td.js | 119 ------- package.json | 2 +- tsconfig.json | 5 +- users/add-user.js | 6 +- users/login-user.js | 8 +- users/reauth-user.js | 4 +- users/send-email-code.js | 4 +- users/social/github-auth.js | 2 +- users/social/google-auth.js | 4 +- users/update-user.js | 4 +- users/user-auth.js | 2 +- users/validate-token.js | 2 +- utils/functions/serialize-query.js | 2 +- utils/get-schema.js | 2 +- utils/get.js | 6 +- utils/post.js | 2 +- 36 files changed, 717 insertions(+), 399 deletions(-) delete mode 100644 package-shared/types/database-schema.td.js delete mode 100644 package-shared/types/engine.td.js delete mode 100644 package-shared/types/general.td.js create mode 100644 package-shared/types/index.d.ts create mode 100644 package-shared/types/index.js delete mode 100644 package-shared/types/mysql.td.js delete mode 100644 package-shared/types/package-shared-index.js delete mode 100644 package-shared/types/user.td.js diff --git a/.gitignore b/.gitignore index b32ca36..c228638 100644 --- a/.gitignore +++ b/.gitignore @@ -141,3 +141,5 @@ test/ # NPM # .npmrc + +/dump diff --git a/engine/engine/addUsersTableToDb.js b/engine/engine/addUsersTableToDb.js index 755ec07..31aad98 100644 --- a/engine/engine/addUsersTableToDb.js +++ b/engine/engine/addUsersTableToDb.js @@ -22,7 +22,7 @@ const updateApiSchemaFromLocalDb = require("../query/update-api-schema-from-loca * ============================================================================== * * @param {object} params - Single object passed - * @param {DSQL_DatabaseSchemaType | undefined} params.dbSchema - Database Schema Object + * @param {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} params.dbSchema - Database Schema Object * * @returns {Promise<*>} new user auth object payload */ @@ -33,7 +33,7 @@ module.exports = async function addUsersTableToDb({ dbSchema }) { * @description Initialize */ const database = process.env.DSQL_DB_NAME || ""; - /** @type {DSQL_TableSchemaType} */ + /** @type {import("@/package-shared/types").DSQL_TableSchemaType} */ const userPreset = require("./data/presets/users.json"); try { diff --git a/engine/query/get.js b/engine/query/get.js index c089fdf..a42f5a4 100644 --- a/engine/query/get.js +++ b/engine/query/get.js @@ -29,7 +29,7 @@ const runQuery = require("./utils/runQuery"); * * @param {Object} params - Single object passed * @param {LocalQueryObject} params.options - SQL Query - * @param {DSQL_DatabaseSchemaType | undefined} [params.dbSchema] - Name of the table to query + * @param {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} [params.dbSchema] - Name of the table to query * * @returns { Promise } - Return Object */ diff --git a/engine/query/post.js b/engine/query/post.js index 42925c3..7a03c25 100644 --- a/engine/query/post.js +++ b/engine/query/post.js @@ -24,7 +24,7 @@ const runQuery = require("./utils/runQuery"); * * @param {Object} params - Single object passed * @param {LocalPostQueryObject} params.options - SQL Query - * @param {DSQL_DatabaseSchemaType | undefined} [params.dbSchema] - Name of the table to query + * @param {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} [params.dbSchema] - Name of the table to query * * @returns { Promise } - Return Object */ diff --git a/engine/query/utils/addDbEntry.js b/engine/query/utils/addDbEntry.js index 2234fa6..561e56e 100644 --- a/engine/query/utils/addDbEntry.js +++ b/engine/query/utils/addDbEntry.js @@ -19,7 +19,7 @@ const updateDbEntry = require("./updateDbEntry"); * @param {string} params.dbFullName - Database full name * @param {string} params.tableName - Table name * @param {*} params.data - Data to add - * @param {DSQL_TableSchemaType} [params.tableSchema] - Table schema + * @param {import("@/package-shared/types").DSQL_TableSchemaType} [params.tableSchema] - Table schema * @param {string} [params.duplicateColumnName] - Duplicate column name * @param {string} [params.duplicateColumnValue] - Duplicate column value * @param {boolean} [params.update] - Update this row if it exists diff --git a/engine/query/utils/deleteDbEntry.js b/engine/query/utils/deleteDbEntry.js index 2ee498e..357e9b0 100644 --- a/engine/query/utils/deleteDbEntry.js +++ b/engine/query/utils/deleteDbEntry.js @@ -19,7 +19,7 @@ const dbHandler = require("../../engine/utils/dbHandler"); * "Read only" or "Full Access"? Defaults to "Read Only" * @param {string} params.dbFullName - Database full name * @param {string} params.tableName - Table name - * @param {DSQL_TableSchemaType} [params.tableSchema] - Table schema + * @param {import("@/package-shared/types").DSQL_TableSchemaType} [params.tableSchema] - Table schema * @param {string} params.identifierColumnName - Update row identifier column name * @param {string|number} params.identifierValue - Update row identifier column value * diff --git a/engine/query/utils/runQuery.js b/engine/query/utils/runQuery.js index 38dfac3..198a578 100644 --- a/engine/query/utils/runQuery.js +++ b/engine/query/utils/runQuery.js @@ -31,7 +31,7 @@ const varDatabaseDbHandler = require("../../engine/utils/varDatabaseDbHandler"); * @param {string} params.dbFullName - Database full name. Eg. "datasquire_user_2_test" * @param {*} params.query - Query string or object * @param {boolean} [params.readOnly] - Is this operation read only? - * @param {DSQL_DatabaseSchemaType} [params.dbSchema] - Database schema + * @param {import("@/package-shared/types").DSQL_DatabaseSchemaType} [params.dbSchema] - Database schema * @param {string[]} [params.queryValuesArray] - An optional array of query values if "?" is used in the query string * @param {string} [params.tableName] - Table Name * diff --git a/engine/query/utils/updateDbEntry.js b/engine/query/utils/updateDbEntry.js index 076f347..170f894 100644 --- a/engine/query/utils/updateDbEntry.js +++ b/engine/query/utils/updateDbEntry.js @@ -21,7 +21,7 @@ const dbHandler = require("../../engine/utils/dbHandler"); * @param {string} params.dbFullName - Database full name * @param {string} params.tableName - Table name * @param {*} params.data - Data to add - * @param {DSQL_TableSchemaType} [params.tableSchema] - Table schema + * @param {import("@/package-shared/types").DSQL_TableSchemaType} [params.tableSchema] - Table schema * @param {string} params.identifierColumnName - Update row identifier column name * @param {string | number} params.identifierValue - Update row identifier column value * @param {string} params.encryptionKey - Encryption key diff --git a/engine/user/add-user.js b/engine/user/add-user.js index 3d9c25c..3285c32 100644 --- a/engine/user/add-user.js +++ b/engine/user/add-user.js @@ -20,8 +20,8 @@ const runQuery = require("../query/utils/runQuery"); * @async * * @param {Object} params - Single object passed - * @param {UserDataPayload} params.payload - SQL Query - * @param {DSQL_DatabaseSchemaType | undefined} params.dbSchema - Name of the table to query + * @param {import("@/package-shared/types").UserDataPayload} params.payload - SQL Query + * @param {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} params.dbSchema - Name of the table to query * @param {string} [params.encryptionKey] * @param {string} [params.encryptionSalt] * diff --git a/engine/user/social/github-auth.js b/engine/user/social/github-auth.js index 1f34fce..b29b95f 100644 --- a/engine/user/social/github-auth.js +++ b/engine/user/social/github-auth.js @@ -36,7 +36,7 @@ const encryptionSalt = process.env.DSQL_ENCRYPTION_SALT || ""; * @param {string} params.clientId * @param {string} params.clientSecret * @param {object} [params.additionalFields] - * @param {DSQL_DatabaseSchemaType} params.dbSchema + * @param {import("@/package-shared/types").DSQL_DatabaseSchemaType} params.dbSchema */ async function localGithubAuth({ res, diff --git a/engine/user/social/google-auth.js b/engine/user/social/google-auth.js index 1b4176e..fefcae1 100644 --- a/engine/user/social/google-auth.js +++ b/engine/user/social/google-auth.js @@ -44,7 +44,7 @@ const encryptionSalt = process.env.DSQL_ENCRYPTION_SALT || ""; * @param {string} params.clientId - Google client id * @param {http.ServerResponse} params.response - HTTPS response object * @param {object} [params.additionalFields] - Additional Fields to be added to the user object - * @param {DSQL_DatabaseSchemaType} [params.dbSchema] - Database Schema + * @param {import("@/package-shared/types").DSQL_DatabaseSchemaType} [params.dbSchema] - Database Schema * * @returns { Promise } */ diff --git a/engine/user/social/utils/handleSocialDb.js b/engine/user/social/utils/handleSocialDb.js index 71cf238..43530f4 100644 --- a/engine/user/social/utils/handleSocialDb.js +++ b/engine/user/social/utils/handleSocialDb.js @@ -74,7 +74,7 @@ const encryptionSalt = process.env.DSQL_ENCRYPTION_SALT || ""; * res: http.ServerResponse, * supEmail?: string | null, * additionalFields?: object, - * dbSchema: DSQL_DatabaseSchemaType | undefined + * dbSchema: import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined * }} params - function parameters inside an object * * @returns {Promise} - Response object diff --git a/engine/user/update-user.js b/engine/user/update-user.js index b4d43f1..41b5332 100644 --- a/engine/user/update-user.js +++ b/engine/user/update-user.js @@ -17,7 +17,7 @@ const updateDbEntry = require("../query/utils/updateDbEntry"); * * @param {Object} params - Single object passed * @param {*} params.payload - SQL Query - * @param {DSQL_DatabaseSchemaType | undefined} params.dbSchema - Name of the table to query + * @param {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} params.dbSchema - Name of the table to query * * @returns { Promise } - Return Object */ diff --git a/package-shared/types/database-schema.td.js b/package-shared/types/database-schema.td.js deleted file mode 100644 index 04b8ee1..0000000 --- a/package-shared/types/database-schema.td.js +++ /dev/null @@ -1,117 +0,0 @@ -// @ts-check - -/** - * @typedef {string} DSQL_DatabaseFullName - Database full name(slug) including datasquirel data => "datasquirel_user_7_new_database" - */ - -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - -/** - * @typedef {object} DSQL_DatabaseSchemaType - * @property {string} dbName - Database Full name with spaces => "New Database" - * @property {string} dbSlug - Database Slug => "new_database" - * @property {string} dbFullName - Database full name(slug) including datasquirel data => "datasquirel_user_7_new_database" - * @property {string} [dbDescription] - Database brief description - * @property {string} [dbImage] - Database image - Defaults to "/images/default.png" - * @property {DSQL_TableSchemaType[]} tables - List of database tables - * @property {DSQL_ChildrenDatabaseObject[]} [childrenDatabases] - List of children databases for current database which is parent - * @property {boolean} [childDatabase] - If current database is a child of a different parent database - * @property {string} [childDatabaseDbFullName] - Parent database full name => "datasquirel_user_7_new_database" - * @property {boolean} [updateData] - Should the child database data update when the parent database data is updated? - */ - -/** - * @typedef {object} DSQL_ChildrenDatabaseObject - * @property {string} dbFullName - Database Full name => "datasquirel_user_4_db_name" - */ - -//////////////////////////////////////// - -/** - * @typedef {object} DSQL_TableSchemaType - * @property {string} tableName - Table slug (blog_posts) - * @property {string} tableFullName - Table full name with spaces => "Blog Posts" - * @property {string} [tableDescription] - Brief description of table - * @property {DSQL_FieldSchemaType[]} fields - List of table Fields - * @property {DSQL_IndexSchemaType[]} [indexes] - List of table indexes, if available - * @property {DSQL_ChildrenTablesType[]} [childrenTables] - List of children tables - * @property {boolean} [childTable] -If current table is a child clone - * @property {boolean} [updateData] -If the current table data updates with the parent table - * @property {string} [childTableName] - Table slug of parent table => "blog_posts" - * @property {string} [childTableDbFullName] - Database full name(slug) including datasquirel data => "datasquirel_user_7_new_database" - * @property {string} [tableNameOld] - Old table name, incase of renaming table - */ - -/** - * @typedef {object} DSQL_ChildrenTablesType - * @property {string} dbNameFull - Database full name(slug) including datasquirel data => "datasquirel_user_7_new_database" - * @property {string} tableName - Table slug => "blog_posts" - * @property {string} [tableNameFull] - */ - -//////////////////////////////////////// - -/** - * @typedef {object} DSQL_FieldSchemaType - * @property {string} [fieldName] - Field Name(slug) => "long_description" - * @property {string} [originName] - Field origin name(optional) - * @property {boolean} [updatedField] - Has this field been renamed? - * @property {string} [dataType] - Field Data type => "BIGIN" | "LONGTEXT" | "VARCHAR(***)" | ... - * @property {boolean} [nullValue] - Is this a null value or not? - * @property {boolean} [notNullValue] - Is this NOT a null value? - * @property {boolean} [primaryKey] - Is this the primary key for table? - * @property {boolean} [encrypted] - Is this field value encrypted? - * @property {boolean} [autoIncrement] - Does this table primary key increment automatically? - * @property {string|number} [defaultValue] - Value of field by default - * @property {string} [defaultValueLiteral] - SQL key word which generates value automatically => "CURRENT_TIMESTAMP" - * @property {DSQL_ForeignKeyType} [foreignKey] - Field foreign key reference object - * @property {boolean} [richText] - Rich text field - * @property {boolean} [json] - * @property {boolean} [yaml] - * @property {boolean} [html] - * @property {boolean} [css] - * @property {boolean} [javascript] - * @property {boolean} [shell] - * @property {boolean} [newTempField] - * @property {boolean} [defaultField] - * @property {boolean} [plainText] - * @property {boolean} [unique] - * @property {string} [pattern] - * @property {string} [patternFlags] - * @property {string} [onUpdate] - * @property {string} [onUpdateLiteral] - * @property {string} [onDelete] - * @property {string} [onDeleteLiteral] - * @property {string[]} [cssFiles] - */ - -/** - * @typedef {object} DSQL_ForeignKeyType - * @property {string} [foreignKeyName] - Unique Name of foreign key - * @property {string} [destinationTableName] - Reference table name(slug) => "blog_posts" - * @property {string} [destinationTableColumnName] - Reference column name(slug) => "id" - * @property {string} [destinationTableColumnType] - Reference table field type => "BIGINT" | "VARCHAR(***)" | ... - * @property {boolean} [cascadeDelete] - Does the reference table entry delete when this key is deleted? - * @property {boolean} [cascadeUpdate] - Does the reference table entry update when this key is updated? - */ - -//////////////////////////////////////// - -/** - * @typedef {object} DSQL_IndexSchemaType - * @property {string} [indexName] - Unique Name of index => "blog_text_index" - * @property {string} [indexType] - "regular" or "fullText" - * @property {DSQL_IndexTableFieldType[]} [indexTableFields] - List of Index table fields - * @property {string} [alias] - List of Index table fields - * @property {boolean} [newTempIndex] - */ - -/** - * @typedef {object} DSQL_IndexTableFieldType - * @property {string} value - Table Field Name - * @property {string} dataType - Table Field data type "VARCHAR(***)" | "BIGINT" | ... - */ diff --git a/package-shared/types/engine.td.js b/package-shared/types/engine.td.js deleted file mode 100644 index e69de29..0000000 diff --git a/package-shared/types/general.td.js b/package-shared/types/general.td.js deleted file mode 100644 index fdbeedc..0000000 --- a/package-shared/types/general.td.js +++ /dev/null @@ -1,37 +0,0 @@ -// @ts-check - -const http = require("http"); - -/** - * @typedef {http.IncomingMessage} Request - */ - -/** - * @typedef {http.ServerResponse} Response - */ - -/** - * @typedef {{ - * imageBase64: string, - * imageBase64Full: string, - * imageName: string, - * imageSize: number, - * }} ImageInputFileToBase64FunctionReturn - */ - -/** - * @typedef {object} GetReqQueryObject - * @property {string} db - * @property {string} query - * @property {string} [queryValues] - * @property {string} [tableName] - */ - -/** - * @typedef {(param0: SerializeQueryParams) => string} SerializeQueryFnType - */ - -/** - * @typedef {object} SerializeQueryParams - * @property {any} query - */ diff --git a/package-shared/types/index.d.ts b/package-shared/types/index.d.ts new file mode 100644 index 0000000..42e82d0 --- /dev/null +++ b/package-shared/types/index.d.ts @@ -0,0 +1,317 @@ +import http from "http"; + +type DSQL_DatabaseFullName = string; + +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +interface DSQL_DatabaseSchemaType { + dbName: string; + dbSlug: string; + dbFullName: string; + dbDescription?: string; + dbImage?: string; + tables: DSQL_TableSchemaType[]; + childrenDatabases?: DSQL_ChildrenDatabaseObject[]; + childDatabase?: boolean; + childDatabaseDbFullName?: string; + updateData?: boolean; +} + +interface DSQL_ChildrenDatabaseObject { + dbFullName: string; +} + +//////////////////////////////////////// + +interface DSQL_TableSchemaType { + tableName: string; + tableFullName: string; + tableDescription?: string; + fields: DSQL_FieldSchemaType[]; + indexes?: DSQL_IndexSchemaType[]; + childrenTables?: DSQL_ChildrenTablesType[]; + childTable?: boolean; + updateData?: boolean; + childTableName?: string; + childTableDbFullName?: string; + tableNameOld?: string; +} + +interface DSQL_ChildrenTablesType { + dbNameFull: string; + tableName: string; + tableNameFull?: string; +} + +//////////////////////////////////////// + +interface DSQL_FieldSchemaType { + fieldName?: string; + originName?: string; + updatedField?: boolean; + dataType?: string; + nullValue?: boolean; + notNullValue?: boolean; + primaryKey?: boolean; + encrypted?: boolean; + autoIncrement?: boolean; + defaultValue?: string | number; + defaultValueLiteral?: string; + foreignKey?: DSQL_ForeignKeyType; + richText?: boolean; + json?: boolean; + yaml?: boolean; + html?: boolean; + css?: boolean; + javascript?: boolean; + shell?: boolean; + newTempField?: boolean; + defaultField?: boolean; + plainText?: boolean; + unique?: boolean; + pattern?: string; + patternFlags?: string; + onUpdate?: string; + onUpdateLiteral?: string; + onDelete?: string; + onDeleteLiteral?: string; + cssFiles?: string[]; +} + +interface DSQL_ForeignKeyType { + foreignKeyName?: string; + destinationTableName?: string; + destinationTableColumnName?: string; + destinationTableColumnType?: string; + cascadeDelete?: boolean; + cascadeUpdate?: boolean; +} + +//////////////////////////////////////// + +interface DSQL_IndexSchemaType { + indexName?: string; + indexType?: string; + indexTableFields?: DSQL_IndexTableFieldType[]; + alias?: string; + newTempIndex?: boolean; +} + +interface DSQL_IndexTableFieldType { + value: string; + dataType: string; +} + +interface DSQL_MYSQL_SHOW_INDEXES_Type { + Key_name: string; + Table: string; + Column_name: string; + Collation: string; + Index_type: string; + Cardinality: string; + Index_comment: string; + Comment: string; +} + +//////////////////////////////////////// + +interface DSQL_MYSQL_SHOW_COLUMNS_Type { + Field: string; + Type: string; + Null: string; + Key: string; + Default: string; + Extra: string; +} + +//////////////////////////////////////// + +interface DSQL_MYSQL_FOREIGN_KEYS_Type { + CONSTRAINT_NAME: string; + CONSTRAINT_SCHEMA: string; + TABLE_NAME: string; +} + +//////////////////////////////////////// + +interface DSQL_MYSQL_user_databases_Type { + user_id: number; + db_full_name: string; + db_name: string; + db_slug: string; + db_image: string; + db_description: string; + active_clone: number; + active_clone_parent_db: string; +} + +interface PackageUserLoginRequestBody { + encryptionKey: string; + payload: any; + database: string; + additionalFields?: string[]; + email_login?: boolean; + email_login_code?: string; + email_login_field?: string; + token?: boolean; + social?: boolean; + dbSchema?: DSQL_DatabaseSchemaType; +} + +interface PackageUserLoginLocalBody { + payload: any; + additionalFields?: string[]; + email_login?: boolean; + email_login_code?: string; + email_login_field?: string; + token?: boolean; + social?: boolean; + dbSchema?: DSQL_DatabaseSchemaType; +} + +type Request = http.IncomingMessage; + +type Response = http.ServerResponse; + +type ImageInputFileToBase64FunctionReturn = { + imageBase64: string; + imageBase64Full: string; + imageName: string; + imageSize: number; +}; + +interface GetReqQueryObject { + db: string; + query: string; + queryValues?: string; + tableName?: string; +} + +type SerializeQueryFnType = (param0: SerializeQueryParams) => string; + +interface SerializeQueryParams { + query: any; +} + +// @ts-check + +interface DATASQUIREL_LoggedInUser { + id?: number; + first_name: string; + last_name: string; + email: string; + phone?: string; + user_type?: string; + username?: string; + password: string; + image?: string; + image_thumbnail?: string; + address?: string; + city?: string; + state?: string; + country?: string; + zip_code?: string; + social_login?: number; + social_platform?: string; + social_id?: string; + more_user_data?: string; + verification_status?: number; + loan_officer_id?: number; + is_admin?: number; + admin_level?: number; + admin_permissions?: string; + uuid: string; + temp_login_code?: string; + date_created?: string; + date_created_code?: number; + date_created_timestamp?: string; + date_updated?: string; + date_updated_code?: number; + date_updated_timestamp?: string; + csrf_k?: string; + logged_in_status?: boolean; + date?: number; + more_data?: any; +} + +interface AuthenticatedUser { + success: boolean; + payload: DATASQUIREL_LoggedInUser | null; + msg?: string; + userId?: number; +} + +interface SuccessUserObject { + id: number; + first_name: string; + last_name: string; + email: string; +} + +interface AddUserFunctionReturn { + success: boolean; + payload?: SuccessUserObject | null; + msg?: string; + sqlResult?: any; +} + +interface GoogleIdentityPromptNotification { + getMomentType: () => string; + getDismissedReason: () => string; + getNotDisplayedReason: () => string; + getSkippedReason: () => string; + isDismissedMoment: () => boolean; + isDisplayMoment: () => boolean; + isDisplayed: () => boolean; + isNotDisplayed: () => boolean; + isSkippedMoment: () => boolean; +} + +interface UserDataPayload { + first_name: string; + last_name: string; + email: string; + password: string; + username: string; +} + +interface GetUserFunctionReturn { + success: boolean; + payload: { + id: number; + first_name: string; + last_name: string; + username: string; + email: string; + phone: string; + social_id: [string]; + image: string; + image_thumbnail: string; + verification_status: [number]; + }; +} + +interface ReauthUserFunctionReturn { + success: boolean; + payload: DATASQUIREL_LoggedInUser | null; + msg?: string; + userId?: number; + token?: string; +} + +interface UpdateUserFunctionReturn { + success: boolean; + payload?: Object[] | string; +} + +interface GetReturn { + success: boolean; + payload?: any; + msg?: string; + error?: string; + schema?: DSQL_TableSchemaType; +} diff --git a/package-shared/types/index.js b/package-shared/types/index.js new file mode 100644 index 0000000..45852d8 --- /dev/null +++ b/package-shared/types/index.js @@ -0,0 +1,355 @@ +// @ts-check + +/** + * @typedef {string} DSQL_DatabaseFullName - Database full name(slug) including datasquirel data => "datasquirel_user_7_new_database" + */ + +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// + +/** + * @typedef {object} DSQL_DatabaseSchemaType + * @property {string} dbName - Database Full name with spaces => "New Database" + * @property {string} dbSlug - Database Slug => "new_database" + * @property {string} dbFullName - Database full name(slug) including datasquirel data => "datasquirel_user_7_new_database" + * @property {string} [dbDescription] - Database brief description + * @property {string} [dbImage] - Database image - Defaults to "/images/default.png" + * @property {DSQL_TableSchemaType[]} tables - List of database tables + * @property {DSQL_ChildrenDatabaseObject[]} [childrenDatabases] - List of children databases for current database which is parent + * @property {boolean} [childDatabase] - If current database is a child of a different parent database + * @property {string} [childDatabaseDbFullName] - Parent database full name => "datasquirel_user_7_new_database" + * @property {boolean} [updateData] - Should the child database data update when the parent database data is updated? + */ + +/** + * @typedef {object} DSQL_ChildrenDatabaseObject + * @property {string} dbFullName - Database Full name => "datasquirel_user_4_db_name" + */ + +//////////////////////////////////////// + +/** + * @typedef {object} DSQL_TableSchemaType + * @property {string} tableName - Table slug (blog_posts) + * @property {string} tableFullName - Table full name with spaces => "Blog Posts" + * @property {string} [tableDescription] - Brief description of table + * @property {DSQL_FieldSchemaType[]} fields - List of table Fields + * @property {DSQL_IndexSchemaType[]} [indexes] - List of table indexes, if available + * @property {DSQL_ChildrenTablesType[]} [childrenTables] - List of children tables + * @property {boolean} [childTable] -If current table is a child clone + * @property {boolean} [updateData] -If the current table data updates with the parent table + * @property {string} [childTableName] - Table slug of parent table => "blog_posts" + * @property {string} [childTableDbFullName] - Database full name(slug) including datasquirel data => "datasquirel_user_7_new_database" + * @property {string} [tableNameOld] - Old table name, incase of renaming table + */ + +/** + * @typedef {object} DSQL_ChildrenTablesType + * @property {string} dbNameFull - Database full name(slug) including datasquirel data => "datasquirel_user_7_new_database" + * @property {string} tableName - Table slug => "blog_posts" + * @property {string} [tableNameFull] + */ + +//////////////////////////////////////// + +/** + * @typedef {object} DSQL_FieldSchemaType + * @property {string} [fieldName] - Field Name(slug) => "long_description" + * @property {string} [originName] - Field origin name(optional) + * @property {boolean} [updatedField] - Has this field been renamed? + * @property {string} [dataType] - Field Data type => "BIGIN" | "LONGTEXT" | "VARCHAR(***)" | ... + * @property {boolean} [nullValue] - Is this a null value or not? + * @property {boolean} [notNullValue] - Is this NOT a null value? + * @property {boolean} [primaryKey] - Is this the primary key for table? + * @property {boolean} [encrypted] - Is this field value encrypted? + * @property {boolean} [autoIncrement] - Does this table primary key increment automatically? + * @property {string|number} [defaultValue] - Value of field by default + * @property {string} [defaultValueLiteral] - SQL key word which generates value automatically => "CURRENT_TIMESTAMP" + * @property {DSQL_ForeignKeyType} [foreignKey] - Field foreign key reference object + * @property {boolean} [richText] - Rich text field + * @property {boolean} [json] + * @property {boolean} [yaml] + * @property {boolean} [html] + * @property {boolean} [css] + * @property {boolean} [javascript] + * @property {boolean} [shell] + * @property {boolean} [newTempField] + * @property {boolean} [defaultField] + * @property {boolean} [plainText] + * @property {boolean} [unique] + * @property {string} [pattern] + * @property {string} [patternFlags] + * @property {string} [onUpdate] + * @property {string} [onUpdateLiteral] + * @property {string} [onDelete] + * @property {string} [onDeleteLiteral] + * @property {string[]} [cssFiles] + */ + +/** + * @typedef {object} DSQL_ForeignKeyType + * @property {string} [foreignKeyName] - Unique Name of foreign key + * @property {string} [destinationTableName] - Reference table name(slug) => "blog_posts" + * @property {string} [destinationTableColumnName] - Reference column name(slug) => "id" + * @property {string} [destinationTableColumnType] - Reference table field type => "BIGINT" | "VARCHAR(***)" | ... + * @property {boolean} [cascadeDelete] - Does the reference table entry delete when this key is deleted? + * @property {boolean} [cascadeUpdate] - Does the reference table entry update when this key is updated? + */ + +//////////////////////////////////////// + +/** + * @typedef {object} DSQL_IndexSchemaType + * @property {string} [indexName] - Unique Name of index => "blog_text_index" + * @property {string} [indexType] - "regular" or "fullText" + * @property {DSQL_IndexTableFieldType[]} [indexTableFields] - List of Index table fields + * @property {string} [alias] - List of Index table fields + * @property {boolean} [newTempIndex] + */ + +/** + * @typedef {object} DSQL_IndexTableFieldType + * @property {string} value - Table Field Name + * @property {string} dataType - Table Field data type "VARCHAR(***)" | "BIGINT" | ... + */ + +/** + * @typedef {object} DSQL_MYSQL_SHOW_INDEXES_Type + * @property {string} Key_name - MYSQL Index Name + * @property {string} Table - Table Name(slug) + * @property {string} Column_name + * @property {string} Collation + * @property {string} Index_type - "FULL_TEXT" | ... + * @property {string} Cardinality + * @property {string} Index_comment + * @property {string} Comment + */ + +//////////////////////////////////////// + +/** + * @typedef {object} DSQL_MYSQL_SHOW_COLUMNS_Type + * @property {string} Field - Field Name as represented in MSQL database + * @property {string} Type - varchar(***) | tinyint | bigint | ... + * @property {string} Null + * @property {string} Key + * @property {string} Default + * @property {string} Extra + */ + +//////////////////////////////////////// + +/** + * @typedef {object} DSQL_MYSQL_FOREIGN_KEYS_Type + * @property {string} CONSTRAINT_NAME - Constraint Name => "PRIMARY" | "MUL" | null | ... + * @property {string} CONSTRAINT_SCHEMA - Database name + * @property {string} TABLE_NAME - Table name + */ + +//////////////////////////////////////// + +/** + * @typedef {object} DSQL_MYSQL_user_databases_Type + * @property {number} user_id - User Id + * @property {string} db_full_name - Database full name => eg. (dataasquirel_user_2_new_database) + * @property {string} db_name - Database name with spaces => eg. (New Database) + * @property {string} db_slug - Database slug => eg. (new_database) + * @property {string} db_image - Database image path + * @property {string} db_description - Database description + * @property {number} active_clone - is Database active clone => 0 or 1 + * @property {string} active_clone_parent_db - Database parent db full name => eg. "datasquirel_user_7_wexculture" + */ + +/** + * @typedef {object} PackageUserLoginRequestBody + * @property {string} encryptionKey + * @property {any} payload + * @property {string} database + * @property {string[]} [additionalFields] + * @property {boolean} [email_login] + * @property {string} [email_login_code] + * @property {string} [email_login_field] + * @property {boolean} [token] + * @property {boolean} [social] + * @property {DSQL_DatabaseSchemaType} [dbSchema] + */ + +/** + * @typedef {object} PackageUserLoginLocalBody + * @property {any} payload + * @property {string[]} [additionalFields] + * @property {boolean} [email_login] + * @property {string} [email_login_code] + * @property {string} [email_login_field] + * @property {boolean} [token] + * @property {boolean} [social] + * @property {DSQL_DatabaseSchemaType} [dbSchema] + */ + +const http = require("http"); + +/** + * @typedef {http.IncomingMessage} Request + */ + +/** + * @typedef {http.ServerResponse} Response + */ + +/** + * @typedef {{ + * imageBase64: string, + * imageBase64Full: string, + * imageName: string, + * imageSize: number, + * }} ImageInputFileToBase64FunctionReturn + */ + +/** + * @typedef {object} GetReqQueryObject + * @property {string} db + * @property {string} query + * @property {string} [queryValues] + * @property {string} [tableName] + */ + +/** + * @typedef {(param0: SerializeQueryParams) => string} SerializeQueryFnType + */ + +/** + * @typedef {object} SerializeQueryParams + * @property {any} query + */ + +// @ts-check + +/** + * @typedef {object} DATASQUIREL_LoggedInUser + * @property {number} [id] + * @property {string} first_name + * @property {string} last_name + * @property {string} email + * @property {string} [phone] + * @property {string} [user_type] + * @property {string} [username] + * @property {string} password + * @property {string} [image] + * @property {string} [image_thumbnail] + * @property {string} [address] + * @property {string} [city] + * @property {string} [state] + * @property {string} [country] + * @property {string} [zip_code] + * @property {number} [social_login] + * @property {string?} [social_platform] + * @property {string?} [social_id] + * @property {string} [more_user_data] + * @property {number} [verification_status] + * @property {number?} [loan_officer_id] + * @property {number} [is_admin] + * @property {number} [admin_level] + * @property {string} [admin_permissions] + * @property {string?} uuid + * @property {string?} [temp_login_code] + * @property {string?} [date_created] + * @property {number?} [date_created_code] + * @property {string?} [date_created_timestamp] + * @property {string?} [date_updated] + * @property {number?} [date_updated_code] + * @property {string?} [date_updated_timestamp] + * @property {string} [csrf_k] - CSRF key + * @property {boolean} [logged_in_status] + * @property {number} [date] + * @property {any} [more_data] + */ + +/** + * @typedef {object} AuthenticatedUser + * @property {boolean} success - Did the function run successfully? + * @property {DATASQUIREL_LoggedInUser | null} payload - Payload of the response + * @property {string} [msg] - An optional message + * @property {number} [userId] - An optional message + */ + +/** + * @typedef {object} SuccessUserObject + * @property {number} id + * @property {string} first_name + * @property {string} last_name + * @property {string} email + */ + +/** + * @typedef {object} AddUserFunctionReturn + * @property {boolean} success - Did the function run successfully? + * @property {SuccessUserObject | null} [payload] - Payload + * @property {string} [msg] + * @property {any} [sqlResult] + */ + +/** + * @typedef {object} GoogleIdentityPromptNotification + * @property {function(): string} getMomentType - Notification moment type + * @property {function(): string} getDismissedReason - Notification get Dismissed Reason + * @property {function(): string} getNotDisplayedReason - Notification get Not Displayed Reason + * @property {function(): string} getSkippedReason - Notification get Skipped Reason + * @property {function(): boolean} isDismissedMoment - Notification is Dismissed Moment + * @property {function(): boolean} isDisplayMoment - Notification is Display Moment + * @property {function(): boolean} isDisplayed - Notification is Displayed + * @property {function(): boolean} isNotDisplayed - Notification is Not Displayed + * @property {function(): boolean} isSkippedMoment - Notification is Skipped Moment + */ + +/** + * @typedef {object} UserDataPayload + * @property {string} first_name - First Name *Required + * @property {string} last_name - Last Name *Required + * @property {string} email - Email *Required + * @property {string} password - Password *Required + * @property {string?} username - Username (Optional) + */ + +/** + * @typedef {object} GetUserFunctionReturn + * @property {boolean} success - Did the function run successfully? + * @property {{ + * id: number, + * first_name: string, + * last_name: string, + * username: string, + * email: string, + * phone: string, + * social_id: [string], + * image: string, + * image_thumbnail: string, + * verification_status: [number], + * }} payload - Payload + */ + +/** + * @typedef {object} ReauthUserFunctionReturn + * @property {boolean} success - Did the function run successfully? + * @property {DATASQUIREL_LoggedInUser | null} payload - Payload + * @property {string} [msg] - Response Message + * @property {number} [userId] - user ID + * @property {string} [token] - new Token + */ + +/** + * @typedef {object} UpdateUserFunctionReturn + * @property {boolean} success - Did the function run successfully? + * @property {(Object[]|string)} [payload=[]] - Payload + */ + +/** + * @typedef {Object} GetReturn + * @property {boolean} success - Did the function run successfully? + * @property {*} [payload] - GET request results + * @property {string} [msg] - Message + * @property {string} [error] - Error Message + * @property {DSQL_TableSchemaType} [schema] - Error Message + */ diff --git a/package-shared/types/mysql.td.js b/package-shared/types/mysql.td.js deleted file mode 100644 index a228957..0000000 --- a/package-shared/types/mysql.td.js +++ /dev/null @@ -1,48 +0,0 @@ -// @ts-check - -/** - * @typedef {object} DSQL_MYSQL_SHOW_INDEXES_Type - * @property {string} Key_name - MYSQL Index Name - * @property {string} Table - Table Name(slug) - * @property {string} Column_name - * @property {string} Collation - * @property {string} Index_type - "FULL_TEXT" | ... - * @property {string} Cardinality - * @property {string} Index_comment - * @property {string} Comment - */ - -//////////////////////////////////////// - -/** - * @typedef {object} DSQL_MYSQL_SHOW_COLUMNS_Type - * @property {string} Field - Field Name as represented in MSQL database - * @property {string} Type - varchar(***) | tinyint | bigint | ... - * @property {string} Null - * @property {string} Key - * @property {string} Default - * @property {string} Extra - */ - -//////////////////////////////////////// - -/** - * @typedef {object} DSQL_MYSQL_FOREIGN_KEYS_Type - * @property {string} CONSTRAINT_NAME - Constraint Name => "PRIMARY" | "MUL" | null | ... - * @property {string} CONSTRAINT_SCHEMA - Database name - * @property {string} TABLE_NAME - Table name - */ - -//////////////////////////////////////// - -/** - * @typedef {object} DSQL_MYSQL_user_databases_Type - * @property {number} user_id - User Id - * @property {string} db_full_name - Database full name => eg. (dataasquirel_user_2_new_database) - * @property {string} db_name - Database name with spaces => eg. (New Database) - * @property {string} db_slug - Database slug => eg. (new_database) - * @property {string} db_image - Database image path - * @property {string} db_description - Database description - * @property {number} active_clone - is Database active clone => 0 or 1 - * @property {string} active_clone_parent_db - Database parent db full name => eg. "datasquirel_user_7_wexculture" - */ diff --git a/package-shared/types/package-shared-index.js b/package-shared/types/package-shared-index.js deleted file mode 100644 index 87ea7cb..0000000 --- a/package-shared/types/package-shared-index.js +++ /dev/null @@ -1,38 +0,0 @@ -// @ts-check - -/** - * @typedef {object} PackageUserLoginRequestBody - * @property {string} encryptionKey - * @property {any} payload - * @property {string} database - * @property {string[]} [additionalFields] - * @property {boolean} [email_login] - * @property {string} [email_login_code] - * @property {string} [email_login_field] - * @property {boolean} [token] - * @property {boolean} [social] - * @property {DSQL_DatabaseSchemaType} [dbSchema] - */ - -/** - * @typedef {object} PackageUserLoginLocalBody - * @property {any} payload - * @property {string[]} [additionalFields] - * @property {boolean} [email_login] - * @property {string} [email_login_code] - * @property {string} [email_login_field] - * @property {boolean} [token] - * @property {boolean} [social] - * @property {DSQL_DatabaseSchemaType} [dbSchema] - */ - -/** - * @typedef {Object} GetReturn - * @property {boolean} success - Did the function run successfully? - * @property {*} [payload] - GET request results - * @property {string} [msg] - Message - * @property {string} [error] - Error Message - * @property {DSQL_TableSchemaType} [schema] - Error Message - * - * @exports GetReturn - */ diff --git a/package-shared/types/user.td.js b/package-shared/types/user.td.js deleted file mode 100644 index 3e916a0..0000000 --- a/package-shared/types/user.td.js +++ /dev/null @@ -1,119 +0,0 @@ -// @ts-check - -/** - * @typedef {object} DATASQUIREL_LoggedInUser - * @property {number} [id] - * @property {string} first_name - * @property {string} last_name - * @property {string} email - * @property {string} [phone] - * @property {string} [user_type] - * @property {string} [username] - * @property {string} password - * @property {string} [image] - * @property {string} [image_thumbnail] - * @property {string} [address] - * @property {string} [city] - * @property {string} [state] - * @property {string} [country] - * @property {string} [zip_code] - * @property {number} [social_login] - * @property {string?} [social_platform] - * @property {string?} [social_id] - * @property {string} [more_user_data] - * @property {number} [verification_status] - * @property {number?} [loan_officer_id] - * @property {number} [is_admin] - * @property {number} [admin_level] - * @property {string} [admin_permissions] - * @property {string?} uuid - * @property {string?} [temp_login_code] - * @property {string?} [date_created] - * @property {number?} [date_created_code] - * @property {string?} [date_created_timestamp] - * @property {string?} [date_updated] - * @property {number?} [date_updated_code] - * @property {string?} [date_updated_timestamp] - * @property {string} [csrf_k] - CSRF key - * @property {boolean} [logged_in_status] - * @property {number} [date] - * @property {any} [more_data] - */ - -/** - * @typedef {object} AuthenticatedUser - * @property {boolean} success - Did the function run successfully? - * @property {DATASQUIREL_LoggedInUser | null} payload - Payload of the response - * @property {string} [msg] - An optional message - * @property {number} [userId] - An optional message - */ - -/** - * @typedef {object} SuccessUserObject - * @property {number} id - * @property {string} first_name - * @property {string} last_name - * @property {string} email - */ - -/** - * @typedef {object} AddUserFunctionReturn - * @property {boolean} success - Did the function run successfully? - * @property {SuccessUserObject | null} [payload] - Payload - * @property {string} [msg] - * @property {any} [sqlResult] - */ - -/** - * @typedef {object} GoogleIdentityPromptNotification - * @property {function(): string} getMomentType - Notification moment type - * @property {function(): string} getDismissedReason - Notification get Dismissed Reason - * @property {function(): string} getNotDisplayedReason - Notification get Not Displayed Reason - * @property {function(): string} getSkippedReason - Notification get Skipped Reason - * @property {function(): boolean} isDismissedMoment - Notification is Dismissed Moment - * @property {function(): boolean} isDisplayMoment - Notification is Display Moment - * @property {function(): boolean} isDisplayed - Notification is Displayed - * @property {function(): boolean} isNotDisplayed - Notification is Not Displayed - * @property {function(): boolean} isSkippedMoment - Notification is Skipped Moment - */ - -/** - * @typedef {object} UserDataPayload - * @property {string} first_name - First Name *Required - * @property {string} last_name - Last Name *Required - * @property {string} email - Email *Required - * @property {string} password - Password *Required - * @property {string?} username - Username (Optional) - */ - -/** - * @typedef {object} GetUserFunctionReturn - * @property {boolean} success - Did the function run successfully? - * @property {{ - * id: number, - * first_name: string, - * last_name: string, - * username: string, - * email: string, - * phone: string, - * social_id: [string], - * image: string, - * image_thumbnail: string, - * verification_status: [number], - * }} payload - Payload - */ - -/** - * @typedef {object} ReauthUserFunctionReturn - * @property {boolean} success - Did the function run successfully? - * @property {DATASQUIREL_LoggedInUser | null} payload - Payload - * @property {string} [msg] - Response Message - * @property {number} [userId] - user ID - * @property {string} [token] - new Token - */ - -/** - * @typedef {object} UpdateUserFunctionReturn - * @property {boolean} success - Did the function run successfully? - * @property {(Object[]|string)} [payload=[]] - Payload - */ diff --git a/package.json b/package.json index 6b205e5..72d583e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "datasquirel", - "version": "2.1.5", + "version": "2.1.6", "description": "Cloud-based SQL data management tool", "main": "index.js", "bin": { diff --git a/tsconfig.json b/tsconfig.json index aadf014..88569e6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,7 @@ "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, - "skipLibCheck": true, + // "skipLibCheck": true, "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "noEmit": true, @@ -18,6 +18,9 @@ "isolatedModules": true, "jsx": "preserve", "moduleResolution": "node", + "emitDeclarationOnly": true, + "declaration": true, + "outDir": "./dump/tsc", "plugins": [ { "name": "next" diff --git a/users/add-user.js b/users/add-user.js index b7d1d5e..bbcbbf9 100644 --- a/users/add-user.js +++ b/users/add-user.js @@ -26,11 +26,11 @@ const localAddUser = require("../engine/user/add-user"); * @param {object} props - Single object passed * @param {string} props.key - FULL ACCESS API Key * @param {string} props.database - Database Name - * @param {UserDataPayload} props.payload - User Data Payload + * @param {import("@/package-shared/types").UserDataPayload} props.payload - User Data Payload * @param {string} props.encryptionKey * @param {string} [props.encryptionSalt] * - * @returns { Promise } + * @returns { Promise } */ async function addUser({ key, @@ -64,7 +64,7 @@ async function addUser({ DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} */ let dbSchema; try { diff --git a/users/login-user.js b/users/login-user.js index 4aa3adb..1616280 100644 --- a/users/login-user.js +++ b/users/login-user.js @@ -41,7 +41,7 @@ const loginLocalUser = require("../engine/user/login-user"); * @param {string} [params.temp_code_field] - Database table field name for temporary code * @param {boolean} [params.token] - Send access key as part of response body? * - * @returns { Promise} + * @returns { Promise} */ async function loginUser({ key, @@ -126,7 +126,7 @@ async function loginUser({ DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} */ let dbSchema; try { @@ -154,10 +154,10 @@ async function loginUser({ * * @description make a request to datasquirel.com * - * @type {{ success: boolean, payload: DATASQUIREL_LoggedInUser | null, userId?: number, msg?: string }} + * @type {{ success: boolean, payload: import("@/package-shared/types").DATASQUIREL_LoggedInUser | null, userId?: number, msg?: string }} */ httpResponse = await new Promise((resolve, reject) => { - /** @type {PackageUserLoginRequestBody} */ + /** @type {import("@/package-shared/types").PackageUserLoginRequestBody} */ const reqPayload = { encryptionKey, payload, diff --git a/users/reauth-user.js b/users/reauth-user.js index 8c1b552..2497429 100644 --- a/users/reauth-user.js +++ b/users/reauth-user.js @@ -38,7 +38,7 @@ const localReauthUser = require("../engine/user/reauth-user"); * @param {string[]} [params.additionalFields] - Additional Fields to be added to the user object * @param {string} [params.token] - access token to use instead of getting from cookie header * - * @returns { Promise } + * @returns { Promise } */ async function reauthUser({ key, @@ -103,7 +103,7 @@ async function reauthUser({ DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} */ let dbSchema; try { diff --git a/users/send-email-code.js b/users/send-email-code.js index dd4761c..2c1e2e0 100644 --- a/users/send-email-code.js +++ b/users/send-email-code.js @@ -114,7 +114,7 @@ async function sendEmailCode({ DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} */ let dbSchema; try { @@ -143,7 +143,7 @@ async function sendEmailCode({ * * @description make a request to datasquirel.com * - * @type {{ success: boolean, payload: DATASQUIREL_LoggedInUser | null, userId?: number, msg?: string }} + * @type {{ success: boolean, payload: import("@/package-shared/types").DATASQUIREL_LoggedInUser | null, userId?: number, msg?: string }} */ httpResponse = await new Promise((resolve, reject) => { const reqPayload = JSON.stringify({ diff --git a/users/social/github-auth.js b/users/social/github-auth.js index 5b744d4..cf885b2 100644 --- a/users/social/github-auth.js +++ b/users/social/github-auth.js @@ -154,7 +154,7 @@ async function githubAuth({ DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined | undefined} */ let dbSchema; try { diff --git a/users/social/google-auth.js b/users/social/google-auth.js index c451e42..05d2ffa 100644 --- a/users/social/google-auth.js +++ b/users/social/google-auth.js @@ -150,7 +150,7 @@ async function googleAuth({ DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined | undefined} */ let dbSchema; try { @@ -179,7 +179,7 @@ async function googleAuth({ * Make https request * * @description make a request to datasquirel.com - * @type {{ success: boolean, user: DATASQUIREL_LoggedInUser | null, msg?: string, dsqlUserId?: number } | null } - Https response object + * @type {{ success: boolean, user: import("@/package-shared/types").DATASQUIREL_LoggedInUser | null, msg?: string, dsqlUserId?: number } | null } - Https response object */ httpResponse = await new Promise((resolve, reject) => { const reqPayload = JSON.stringify({ diff --git a/users/update-user.js b/users/update-user.js index 0eede73..ac27a22 100644 --- a/users/update-user.js +++ b/users/update-user.js @@ -29,7 +29,7 @@ const localUpdateUser = require("../engine/user/update-user"); * @param {String} params.database - Target Database * @param {{ id: number } & Object.} params.payload - User Object: ID is required * - * @returns { Promise} + * @returns { Promise} */ async function updateUser({ key, payload, database }) { /** @@ -57,7 +57,7 @@ async function updateUser({ key, payload, database }) { DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} */ let dbSchema; try { diff --git a/users/user-auth.js b/users/user-auth.js index 5d312c7..942d65d 100644 --- a/users/user-auth.js +++ b/users/user-auth.js @@ -30,7 +30,7 @@ const parseCookies = require("../utils/functions/parseCookies"); * @param {string} params.database - Database Name * @param {string} [params.token] - access token to use instead of getting from cookie header * - * @returns { AuthenticatedUser } + * @returns { import("@/package-shared/types").AuthenticatedUser } */ function userAuth({ request, diff --git a/users/validate-token.js b/users/validate-token.js index ea00de3..6a862bb 100644 --- a/users/validate-token.js +++ b/users/validate-token.js @@ -27,7 +27,7 @@ const decrypt = require("../functions/decrypt"); * @param {("deep" | "normal")?} [params.level] - Optional. "Deep" value indicates an extra layer of security * @param {string} params.database - Database Name * - * @returns { DATASQUIREL_LoggedInUser | null} + * @returns { import("@/package-shared/types").DATASQUIREL_LoggedInUser | null} */ function validateToken({ token, encryptionKey, encryptionSalt }) { try { diff --git a/utils/functions/serialize-query.js b/utils/functions/serialize-query.js index ae2b9c0..a05fa09 100644 --- a/utils/functions/serialize-query.js +++ b/utils/functions/serialize-query.js @@ -1,6 +1,6 @@ // @ts-check -/** @type {import("@/package-shared/types/general.td").SerializeQueryFnType} */ +/** @type {import("@/package-shared/types").SerializeQueryFnType} */ function serializeQuery({ query }) { let str = "?"; const keys = Object.keys(query); diff --git a/utils/get-schema.js b/utils/get-schema.js index de7963c..0769d8c 100644 --- a/utils/get-schema.js +++ b/utils/get-schema.js @@ -18,7 +18,7 @@ const https = require("https"); /** * @typedef {Object} GetSchemaReturn * @property {boolean} success - Did the function run successfully? - * @property {DSQL_DatabaseSchemaType | null} payload - Response payload + * @property {import("@/package-shared/types").DSQL_DatabaseSchemaType | null} payload - Response payload */ /** diff --git a/utils/get.js b/utils/get.js index 0b23778..093c232 100644 --- a/utils/get.js +++ b/utils/get.js @@ -31,7 +31,7 @@ const serializeQuery = require("./functions/serialize-query"); * @param {string[]} [params.queryValues] - An array of query values if using "?" placeholders * @param {string} [params.tableName] - Name of the table to query * - * @returns { Promise } - Return Object + * @returns { Promise } - Return Object */ async function get({ key, db, query, queryValues, tableName }) { const scheme = process.env.DSQL_HTTP_SCHEME; @@ -59,7 +59,7 @@ async function get({ key, db, query, queryValues, tableName }) { DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} */ let dbSchema; try { @@ -86,7 +86,7 @@ async function get({ key, db, query, queryValues, tableName }) { * @description make a request to datasquirel.com */ const httpResponse = await new Promise((resolve, reject) => { - /** @type {import("@/package-shared/types/general.td").GetReqQueryObject} */ + /** @type {import("@/package-shared/types").GetReqQueryObject} */ const queryObject = { db: String(db), query: String( diff --git a/utils/post.js b/utils/post.js index 051291e..1e35f19 100644 --- a/utils/post.js +++ b/utils/post.js @@ -78,7 +78,7 @@ async function post({ key, query, queryValues, database, tableName }) { DSQL_PASS?.match(/./) && DSQL_DB_NAME?.match(/./) ) { - /** @type {DSQL_DatabaseSchemaType | undefined} */ + /** @type {import("@/package-shared/types").DSQL_DatabaseSchemaType | undefined} */ let dbSchema; try {