
- 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.
125 lines
4.3 KiB
JavaScript
125 lines
4.3 KiB
JavaScript
'use strict'
|
|
|
|
// This file is deprecated.
|
|
// It's the same as `index.cjs`, just with an added `.js` file extension.
|
|
// It only exists for compatibility with the software that doesn't like `*.cjs` file extension.
|
|
// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/61#note_950728292
|
|
|
|
var metadata = require('../metadata.min.json')
|
|
var core = require('../core/index.cjs')
|
|
|
|
function call(func, _arguments) {
|
|
var args = Array.prototype.slice.call(_arguments)
|
|
args.push(metadata)
|
|
return func.apply(this, args)
|
|
}
|
|
|
|
function parsePhoneNumberFromString() {
|
|
return call(core.parsePhoneNumberFromString, arguments)
|
|
}
|
|
|
|
// ES5 `require()` "default" "interoperability" hack.
|
|
// https://github.com/babel/babel/issues/2212#issuecomment-131827986
|
|
// An alternative approach:
|
|
// https://www.npmjs.com/package/babel-plugin-add-module-exports
|
|
exports = module.exports = parsePhoneNumberFromString
|
|
exports['default'] = parsePhoneNumberFromString
|
|
|
|
exports.PhoneNumber = function PhoneNumber(number) {
|
|
return core.PhoneNumber.call(this, number, metadata)
|
|
}
|
|
exports.PhoneNumber.prototype = Object.create(core.PhoneNumber.prototype, {})
|
|
exports.PhoneNumber.prototype.constructor = exports.PhoneNumber
|
|
|
|
exports.ParseError = core.ParseError
|
|
|
|
function parsePhoneNumberWithError() {
|
|
return call(core.parsePhoneNumberWithError, arguments)
|
|
}
|
|
|
|
// `parsePhoneNumber()` named export has been renamed to `parsePhoneNumberWithError()`.
|
|
exports.parsePhoneNumber = parsePhoneNumberWithError
|
|
exports.parsePhoneNumberWithError = parsePhoneNumberWithError
|
|
|
|
// `parsePhoneNumberFromString()` named export is now considered legacy:
|
|
// it has been promoted to a default export due to being too verbose.
|
|
exports.parsePhoneNumberFromString = parsePhoneNumberFromString
|
|
|
|
exports.isValidPhoneNumber = function isValidPhoneNumber() {
|
|
return call(core.isValidPhoneNumber, arguments)
|
|
}
|
|
|
|
exports.isPossiblePhoneNumber = function isPossiblePhoneNumber() {
|
|
return call(core.isPossiblePhoneNumber, arguments)
|
|
}
|
|
|
|
exports.validatePhoneNumberLength = function validatePhoneNumberLength() {
|
|
return call(core.validatePhoneNumberLength, arguments)
|
|
}
|
|
|
|
exports.findNumbers = function findNumbers() {
|
|
return call(core.findNumbers, arguments)
|
|
}
|
|
|
|
exports.searchNumbers = function searchNumbers() {
|
|
return call(core.searchNumbers, arguments)
|
|
}
|
|
|
|
exports.findPhoneNumbersInText = function findPhoneNumbersInText() {
|
|
return call(core.findPhoneNumbersInText, arguments)
|
|
}
|
|
|
|
exports.searchPhoneNumbersInText = function searchPhoneNumbersInText() {
|
|
return call(core.searchPhoneNumbersInText, arguments)
|
|
}
|
|
|
|
exports.PhoneNumberMatcher = function PhoneNumberMatcher(text, options) {
|
|
return core.PhoneNumberMatcher.call(this, text, options, metadata)
|
|
}
|
|
exports.PhoneNumberMatcher.prototype = Object.create(core.PhoneNumberMatcher.prototype, {})
|
|
exports.PhoneNumberMatcher.prototype.constructor = exports.PhoneNumberMatcher
|
|
|
|
exports.AsYouType = function AsYouType(country) {
|
|
return core.AsYouType.call(this, country, metadata)
|
|
}
|
|
exports.AsYouType.prototype = Object.create(core.AsYouType.prototype, {})
|
|
exports.AsYouType.prototype.constructor = exports.AsYouType
|
|
|
|
exports.isSupportedCountry = function isSupportedCountry(country) {
|
|
return call(core.isSupportedCountry, arguments)
|
|
}
|
|
|
|
exports.getCountries = function getCountries() {
|
|
return call(core.getCountries, arguments)
|
|
}
|
|
|
|
exports.getCountryCallingCode = function getCountryCallingCode() {
|
|
return call(core.getCountryCallingCode, arguments)
|
|
}
|
|
|
|
exports.getExtPrefix = function getExtPrefix(country) {
|
|
return call(core.getExtPrefix, arguments)
|
|
}
|
|
|
|
exports.getExampleNumber = function getExampleNumber() {
|
|
return call(core.getExampleNumber, arguments)
|
|
}
|
|
|
|
exports.Metadata = function Metadata() {
|
|
return core.Metadata.call(this, metadata)
|
|
}
|
|
exports.Metadata.prototype = Object.create(core.Metadata.prototype, {})
|
|
exports.Metadata.prototype.constructor = exports.Metadata
|
|
|
|
exports.formatIncompletePhoneNumber = function formatIncompletePhoneNumber() {
|
|
return call(core.formatIncompletePhoneNumber, arguments)
|
|
}
|
|
|
|
exports.parseIncompletePhoneNumber = core.parseIncompletePhoneNumber
|
|
exports.parsePhoneNumberCharacter = core.parsePhoneNumberCharacter
|
|
exports.parseDigits = core.parseDigits
|
|
exports.DIGIT_PLACEHOLDER = core.DIGIT_PLACEHOLDER
|
|
|
|
exports.parseRFC3966 = core.parseRFC3966
|
|
exports.formatRFC3966 = core.formatRFC3966
|