
- Complete NestJS TypeScript implementation with WebSocket support - Direct messaging (DM) and group chat functionality - End-to-end encryption with AES encryption and key pairs - Media file support (images, videos, audio, documents) up to 100MB - Push notifications with Firebase Cloud Messaging integration - Mention alerts and real-time typing indicators - User authentication with JWT and Passport - SQLite database with TypeORM entities and relationships - Comprehensive API documentation with Swagger/OpenAPI - File upload handling with secure access control - Online/offline status tracking and presence management - Message editing, deletion, and reply functionality - Notification management with automatic cleanup - Health check endpoint for monitoring - CORS configuration for cross-origin requests - Environment-based configuration management - Structured for Flutter SDK integration Features implemented: ✅ Real-time messaging with Socket.IO ✅ User registration and authentication ✅ Direct messages and group chats ✅ Media file uploads and management ✅ End-to-end encryption ✅ Push notifications ✅ Mention alerts ✅ Typing indicators ✅ Message read receipts ✅ Online status tracking ✅ File access control ✅ Comprehensive API documentation Ready for Flutter SDK development and production deployment.
184 lines
10 KiB
JSON
184 lines
10 KiB
JSON
{
|
|
"$ref": "#/definitions/TsConfigSchema",
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"ModuleTypes": {
|
|
"type": "object"
|
|
},
|
|
"TsConfigOptions": {
|
|
"description": "Must be an interface to support `typescript-json-schema`.",
|
|
"properties": {
|
|
"compiler": {
|
|
"default": "typescript",
|
|
"description": "Specify a custom TypeScript compiler.",
|
|
"type": "string"
|
|
},
|
|
"compilerHost": {
|
|
"default": false,
|
|
"description": "Use TypeScript's compiler host API instead of the language service API.",
|
|
"type": "boolean"
|
|
},
|
|
"compilerOptions": {
|
|
"additionalProperties": true,
|
|
"allOf": [
|
|
{
|
|
"$ref": "https://schemastore.azurewebsites.net/schemas/json/tsconfig.json#definitions/compilerOptionsDefinition/properties/compilerOptions"
|
|
}
|
|
],
|
|
"description": "JSON object to merge with TypeScript `compilerOptions`.",
|
|
"properties": {},
|
|
"type": "object"
|
|
},
|
|
"emit": {
|
|
"default": false,
|
|
"description": "Emit output files into `.ts-node` directory.",
|
|
"type": "boolean"
|
|
},
|
|
"esm": {
|
|
"description": "Enable native ESM support.\n\nFor details, see https://typestrong.org/ts-node/docs/imports#native-ecmascript-modules",
|
|
"type": "boolean"
|
|
},
|
|
"experimentalReplAwait": {
|
|
"description": "Allows the usage of top level await in REPL.\n\nUses node's implementation which accomplishes this with an AST syntax transformation.\n\nEnabled by default when tsconfig target is es2018 or above. Set to false to disable.\n\n**Note**: setting to `true` when tsconfig target is too low will throw an Error. Leave as `undefined`\nto get default, automatic behavior.",
|
|
"type": "boolean"
|
|
},
|
|
"experimentalResolver": {
|
|
"description": "Enable experimental features that re-map imports and require calls to support:\n`baseUrl`, `paths`, `rootDirs`, `.js` to `.ts` file extension mappings,\n`outDir` to `rootDir` mappings for composite projects and monorepos.\n\nFor details, see https://github.com/TypeStrong/ts-node/issues/1514",
|
|
"type": "boolean"
|
|
},
|
|
"experimentalSpecifierResolution": {
|
|
"description": "Like node's `--experimental-specifier-resolution`, , but can also be set in your `tsconfig.json` for convenience.\n\nFor details, see https://nodejs.org/dist/latest-v18.x/docs/api/esm.html#customizing-esm-specifier-resolution-algorithm",
|
|
"enum": [
|
|
"explicit",
|
|
"node"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"experimentalTsImportSpecifiers": {
|
|
"description": "Allow using voluntary `.ts` file extension in import specifiers.\n\nTypically, in ESM projects, import specifiers must have an emit extension, `.js`, `.cjs`, or `.mjs`,\nand we automatically map to the corresponding `.ts`, `.cts`, or `.mts` source file. This is the\nrecommended approach.\n\nHowever, if you really want to use `.ts` in import specifiers, and are aware that this may\nbreak tooling, you can enable this flag.",
|
|
"type": "boolean"
|
|
},
|
|
"files": {
|
|
"default": false,
|
|
"description": "Load \"files\" and \"include\" from `tsconfig.json` on startup.\n\nDefault is to override `tsconfig.json` \"files\" and \"include\" to only include the entrypoint script.",
|
|
"type": "boolean"
|
|
},
|
|
"ignore": {
|
|
"default": [
|
|
"(?:^|/)node_modules/"
|
|
],
|
|
"description": "Paths which should not be compiled.\n\nEach string in the array is converted to a regular expression via `new RegExp()` and tested against source paths prior to compilation.\n\nSource paths are normalized to posix-style separators, relative to the directory containing `tsconfig.json` or to cwd if no `tsconfig.json` is loaded.\n\nDefault is to ignore all node_modules subdirectories.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"ignoreDiagnostics": {
|
|
"description": "Ignore TypeScript warnings by diagnostic code.",
|
|
"items": {
|
|
"type": [
|
|
"string",
|
|
"number"
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
"logError": {
|
|
"default": false,
|
|
"description": "Logs TypeScript errors to stderr instead of throwing exceptions.",
|
|
"type": "boolean"
|
|
},
|
|
"moduleTypes": {
|
|
"$ref": "#/definitions/ModuleTypes",
|
|
"description": "Override certain paths to be compiled and executed as CommonJS or ECMAScript modules.\nWhen overridden, the tsconfig \"module\" and package.json \"type\" fields are overridden, and\nthe file extension is ignored.\nThis is useful if you cannot use .mts, .cts, .mjs, or .cjs file extensions;\nit achieves the same effect.\n\nEach key is a glob pattern following the same rules as tsconfig's \"include\" array.\nWhen multiple patterns match the same file, the last pattern takes precedence.\n\n`cjs` overrides matches files to compile and execute as CommonJS.\n`esm` overrides matches files to compile and execute as native ECMAScript modules.\n`package` overrides either of the above to default behavior, which obeys package.json \"type\" and\ntsconfig.json \"module\" options."
|
|
},
|
|
"preferTsExts": {
|
|
"default": false,
|
|
"description": "Re-order file extensions so that TypeScript imports are preferred.\n\nFor example, when both `index.js` and `index.ts` exist, enabling this option causes `require('./index')` to resolve to `index.ts` instead of `index.js`",
|
|
"type": "boolean"
|
|
},
|
|
"pretty": {
|
|
"default": false,
|
|
"description": "Use pretty diagnostic formatter.",
|
|
"type": "boolean"
|
|
},
|
|
"require": {
|
|
"description": "Modules to require, like node's `--require` flag.\n\nIf specified in `tsconfig.json`, the modules will be resolved relative to the `tsconfig.json` file.\n\nIf specified programmatically, each input string should be pre-resolved to an absolute path for\nbest results.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"scope": {
|
|
"default": false,
|
|
"description": "Scope compiler to files within `scopeDir`.",
|
|
"type": "boolean"
|
|
},
|
|
"scopeDir": {
|
|
"default": "First of: `tsconfig.json` \"rootDir\" if specified, directory containing `tsconfig.json`, or cwd if no `tsconfig.json` is loaded.",
|
|
"type": "string"
|
|
},
|
|
"skipIgnore": {
|
|
"default": false,
|
|
"description": "Skip ignore check, so that compilation will be attempted for all files with matching extensions.",
|
|
"type": "boolean"
|
|
},
|
|
"swc": {
|
|
"description": "Transpile with swc instead of the TypeScript compiler, and skip typechecking.\n\nEquivalent to setting both `transpileOnly: true` and `transpiler: 'ts-node/transpilers/swc'`\n\nFor complete instructions: https://typestrong.org/ts-node/docs/transpilers",
|
|
"type": "boolean"
|
|
},
|
|
"transpileOnly": {
|
|
"default": false,
|
|
"description": "Use TypeScript's faster `transpileModule`.",
|
|
"type": "boolean"
|
|
},
|
|
"transpiler": {
|
|
"anyOf": [
|
|
{
|
|
"items": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"properties": {},
|
|
"type": "object"
|
|
}
|
|
],
|
|
"maxItems": 2,
|
|
"minItems": 2,
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"description": "Specify a custom transpiler for use with transpileOnly"
|
|
},
|
|
"typeCheck": {
|
|
"default": true,
|
|
"description": "**DEPRECATED** Specify type-check is enabled (e.g. `transpileOnly == false`).",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object"
|
|
},
|
|
"TsConfigSchema": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "https://schemastore.azurewebsites.net/schemas/json/tsconfig.json"
|
|
}
|
|
],
|
|
"description": "tsconfig schema which includes \"ts-node\" options.",
|
|
"properties": {
|
|
"ts-node": {
|
|
"$ref": "#/definitions/TsConfigOptions",
|
|
"description": "ts-node options. See also: https://typestrong.org/ts-node/docs/configuration\n\nts-node offers TypeScript execution and REPL for node.js, with source map support."
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
|