
Security News
Security Community Slams MIT-linked Report Claiming AI Powers 80% of Ransomware
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.
zaions-tool-kit
Advanced tools
Zaions Tool Kit, this is generic tool kit package created by Zaions Dev Team (https://zaions.com), there are two other packages named "@zaionsofficial/server-tool-kit" and "@zaionsofficial/client-tool-kit" while this package is generic and contains code w
A comprehensive TypeScript utility library providing a wide range of tools for modern web development.
# Using npm
npm install zaions-tool-kit
# Using yarn
yarn add zaions-tool-kit
# Using pnpm
pnpm add zaions-tool-kit
import { configureZTK, isValidEmail, generateUUID } from 'zaions-tool-kit';
// Configure the library (required for crypto functions)
configureZTK({
  cryptoSecret: 'your-secure-secret-key',
});
// Use utility functions
const email = 'test@example.com';
console.log(isValidEmail(email)); // true
const uuid = generateUUID();
console.log(uuid); // e.g., '550e8400-e29b-41d4-a716-446655440000'
Secure encryption and decryption utilities:
import {
  encryptData,
  decryptData,
  encryptWithSecretKey,
  decryptWithSecretKey,
} from 'zaions-tool-kit';
// Using explicit secret key
const encrypted = encryptData('sensitive data', 'your-secret-key');
const decrypted = decryptData(encrypted, 'your-secret-key');
// Using configured secret key
const encryptedWithConfig = encryptWithSecretKey('sensitive data');
const decryptedWithConfig = decryptWithSecretKey(encryptedWithConfig);
See Cryptography Documentation for more details.
Comprehensive validation utilities:
import {
  isValidEmail,
  isValidUrl,
  validatePhoneNumber,
  validateRequiredPermissions,
  PermissionCheckModeEnum,
} from 'zaions-tool-kit';
// Basic validation
isValidEmail('user@example.com'); // true
isValidUrl('https://example.com'); // true
validatePhoneNumber('+923001234567'); // true
// Permission validation
validateRequiredPermissions({
  userPermissions: ['read', 'write'],
  requiredPermissions: ['read'],
  checkModeForRequiredPermissions: PermissionCheckModeEnum.every,
}); // true
See Validation Documentation for more details.
Utilities for working with strings:
import {
  truncateString,
  convertToTitleCase,
  generateSlug,
  escapeRegex,
  containSpecialCharacters,
} from 'zaions-tool-kit';
truncateString('This is a long text that will be truncated', 20); // 'This is a long text...'
convertToTitleCase('hello world'); // 'Hello World'
generateSlug('This is a title!'); // 'this-is-a-title'
escapeRegex('(test)'); // '\\(test\\)'
containSpecialCharacters('test@123'); // true
See String Utilities Documentation for more details.
Functions for array manipulation:
import {
  flattenArray,
  arrayMoveMutable,
  arrayMoveImmutable,
  checkEqualityOfTwoArray,
} from 'zaions-tool-kit';
// Flatten nested arrays
flattenArray([1, [2, [3, 4]], 5]); // [1, 2, 3, 4, 5]
// Move array elements (mutating original)
const arr1 = [1, 2, 3, 4];
arrayMoveMutable(arr1, 0, 2);
console.log(arr1); // [2, 3, 1, 4]
// Move array elements (non-mutating)
const arr2 = [1, 2, 3, 4];
const newArr = arrayMoveImmutable(arr2, 0, 2);
console.log(newArr); // [2, 3, 1, 4]
console.log(arr2); // [1, 2, 3, 4] (unchanged)
// Compare arrays
checkEqualityOfTwoArray([1, 2, 3], [1, 2, 3]); // true
See Array Utilities Documentation for more details.
Robust type checking utilities:
import {
  isArray,
  isObject,
  isFunction,
  isNullOrUndefined,
  isNotNullOrUndefined,
  isStringVariable,
  isZValidNumber,
} from 'zaions-tool-kit';
isArray([1, 2, 3]); // true
isArray([1, 2, 3], true); // true (checks length > 0)
isObject({ name: 'John' }); // true
isFunction(() => {}); // true
isNullOrUndefined(null); // true
isNotNullOrUndefined('value'); // true
isStringVariable('test'); // true
isZValidNumber(123); // true
See Type Checking Documentation for more details.
Utilities for working with dates and times:
import {
  dayjs,
  dateFormat,
  getDateFromFrbTimestamp,
  convertToDateTimestampToStoreInDB,
  getRemainingTimeForCountDown,
} from 'zaions-tool-kit';
// Format dates
dateFormat(new Date(), 'YYYY-MM-DD'); // e.g., '2023-05-15'
// Work with Firebase timestamps
const timestamp = convertToDateTimestampToStoreInDB(new Date());
const date = getDateFromFrbTimestamp(timestamp);
// Get countdown time
const remaining = getRemainingTimeForCountDown(new Date(Date.now() + 3600000));
console.log(remaining); // e.g., { hours: 1, minutes: 0, seconds: 0 }
See Date Utilities Documentation for more details.
Functions for working with URLs:
import {
  isValidUrl,
  addUrlProtocolHandler,
  containQueryParams,
  hasLeadingOrTrailingSlash,
  removeLeadingTrailingBackslash,
  replaceUrlDynamicParts,
} from 'zaions-tool-kit';
isValidUrl('https://example.com'); // true
addUrlProtocolHandler('example.com'); // 'https://example.com'
containQueryParams('https://example.com?param=value'); // true
hasLeadingOrTrailingSlash('/path/'); // true
removeLeadingTrailingBackslash('/path/'); // 'path'
replaceUrlDynamicParts('/users/:id/profile', { id: '123' }); // '/users/123/profile'
See URL Utilities Documentation for more details.
Utilities for managing CSS class names:
import { classNames, classNamesBind, classNamesDedupe } from 'zaions-tool-kit';
classNames('foo', 'bar'); // 'foo bar'
classNames('foo', { bar: true, baz: false }); // 'foo bar'
classNames({ 'foo-bar': true }); // 'foo-bar'
classNames({ 'foo-bar': false }); // ''
classNames({ foo: true }, { bar: true }); // 'foo bar'
classNames(['foo', 'bar']); // 'foo bar'
// With binding
const cx = classNamesBind();
cx('foo', { bar: true }); // 'foo bar'
// Remove duplicates
classNamesDedupe('foo foo bar'); // 'foo bar'
See CSS Class Utilities Documentation for more details.
Utilities for generating and validating coupon codes:
import {
  generateCouponCode,
  validateCouponCode,
  checkIfCouponCodeHasBadWord,
} from 'zaions-tool-kit';
// Generate a coupon code
const coupon = generateCouponCode(); // e.g., 'ABCD-EFGH-IJKL'
const customCoupon = generateCouponCode({ parts: 2, partLen: 5 }); // e.g., 'ABCDE-FGHIJ'
// Validate a coupon code
validateCouponCode('ABCD-EFGH-IJKL'); // true
// Check for inappropriate words
checkIfCouponCodeHasBadWord('ABCD-EFGH-IJKL'); // false
See Coupon Code Documentation for more details.
ZTK provides a wide range of enums for consistent type-safe coding:
import {
  _UserRoleEnum,
  PermissionEnum,
  RoleEnum,
  FormFieldsEnum,
  ResponseStatusEnum,
  varTypesEnum,
} from 'zaions-tool-kit';
// User roles
const adminRole = _UserRoleEnum.admin; // 2
// Permission checking
const readPermission = PermissionEnum.read; // 1
// Form fields
const emailField = FormFieldsEnum.email; // 'email'
// Variable types
const stringType = varTypesEnum.STRING; // 'string'
See Enums Documentation for a complete list of available enums.
ZTK includes many TypeScript types and interfaces:
import type {
  IGenericObject,
  IHasRequiredPermissions,
  IPaginationOptions,
  DBItemGenericDataType,
  FormItemGenericDataType,
} from 'zaions-tool-kit';
// Generic object
const obj: IGenericObject = { key: 'value' };
// Pagination options
const pagination: IPaginationOptions = {
  page: 1,
  limit: 10,
  sortBy: 'createdAt',
  sortDirection: 'desc',
};
See Types Documentation for more details on available types.
ZTK includes specialized utilities for gaming applications:
import {
  // Play and Win module
  IGame,
  IGameRoom,
  ITransaction,
  IUser,
  ITopUp,
  IWithdraw,
} from 'zaions-tool-kit/play-and-win';
See Gaming Support Documentation for more details.
ZTK provides a robust permission management system:
import {
  validateRequiredPermissions,
  validateExcludedPermissions,
  hasPermission,
  getPermissions,
  mapPermissionsToStrings,
  PermissionCheckModeEnum,
  PermissionEnum,
} from 'zaions-tool-kit';
// Check if user has all required permissions
const hasAllPermissions = validateRequiredPermissions({
  userPermissions: [PermissionEnum.read, PermissionEnum.write],
  requiredPermissions: [PermissionEnum.read],
  checkModeForRequiredPermissions: PermissionCheckModeEnum.every,
}); // true
// Check if user has any of the required permissions
const hasAnyPermission = validateRequiredPermissions({
  userPermissions: [PermissionEnum.read],
  requiredPermissions: [PermissionEnum.read, PermissionEnum.write],
  checkModeForRequiredPermissions: PermissionCheckModeEnum.any,
}); // true
// Check if user doesn't have excluded permissions
const hasNoExcludedPermissions = validateExcludedPermissions({
  userPermissions: [PermissionEnum.read],
  excludedPermissions: [PermissionEnum.delete],
}); // true
// Check for a specific permission
const canRead = hasPermission({
  userPermissions: [PermissionEnum.read, PermissionEnum.write],
  permission: PermissionEnum.read,
}); // true
See Permission Management Documentation for more details.
ZTK includes utilities for form validation:
import {
  validateEmail,
  validatePhoneNumber,
  validateURL,
  fieldsValidation,
} from 'zaions-tool-kit';
// Validate email
validateEmail('user@example.com'); // true
// Validate phone number
validatePhoneNumber('+923001234567'); // true
// Validate URL
validateURL('https://example.com'); // true
// Access validation rules
const titleRules = fieldsValidation.generic.title;
console.log(titleRules.min.val); // 1
console.log(titleRules.max.val); // 100
See Form Validation Documentation for more details.
Utilities for working with images:
import {
  getImageDimensions,
  getImageAspectRatio,
  imageTypeAllowed,
  imageUrlToBase64,
  getImageBase64Url,
  validateFileBeforeUpload,
  allowedImageTypes,
} from 'zaions-tool-kit';
// Check if image type is allowed
imageTypeAllowed('image/jpeg'); // true
// Get image dimensions from a File object
getImageDimensions(imageFile).then((dimensions) => {
  console.log(dimensions.width, dimensions.height);
});
// Convert image URL to base64
imageUrlToBase64('https://example.com/image.jpg').then((base64) => {
  console.log(base64); // data:image/jpeg;base64,...
});
// Validate file before upload
validateFileBeforeUpload({
  file: imageFile,
  maxSizeInMB: 2,
  allowedTypes: allowedImageTypes,
}).then((result) => {
  if (result.isValid) {
    // File is valid
  } else {
    console.error(result.errorMessage);
  }
});
See Image Processing Documentation for more details.
ZTK includes utilities for working with Firebase:
import {
  frbCollectionQueryDefaults,
  getDateFromFrbTimestamp,
  convertToDateTimestampToStoreInDB,
  FrbOrderbyDirectionEnum,
  FrbWhereConditionEnum,
  DBColumnKeysShortFormEnum,
} from 'zaions-tool-kit';
// Default query parameters
const defaults = frbCollectionQueryDefaults;
console.log(defaults.limit); // 10
// Convert JavaScript Date to Firebase timestamp
const timestamp = convertToDateTimestampToStoreInDB(new Date());
// Convert Firebase timestamp to JavaScript Date
const date = getDateFromFrbTimestamp(timestamp);
// Use Firebase enums
const orderDirection = FrbOrderbyDirectionEnum.desc;
const whereCondition = FrbWhereConditionEnum.equalTo;
See Firebase Utilities Documentation for more details.
ZTK includes specialized modules for specific use cases:
import {
  IGame,
  IGameRoom,
  IUser,
  ITransaction,
} from 'zaions-tool-kit/play-and-win';
import {
  ConstellationsEnum,
  constellationsVal,
} from 'zaions-tool-kit/roommate';
import { numericEnum } from 'zaions-tool-kit/require-package/zod';
import { dayjs } from 'zaions-tool-kit/require-package/dayjs';
See Specialized Modules Documentation for more details.
ZTK is compatible with all modern browsers (Chrome, Firefox, Safari, Edge) and Node.js environments.
ZTK is designed with tree-shaking in mind. When using a bundler like webpack, Rollup, or Parcel, only the functions you actually import will be included in your final bundle.
For complete documentation, visit our documentation site.
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)MIT © Zaions
All of our packages are developed with 100% typescript support/safety, mean if you are a types lover then you will love it as well :)
FAQs
Zaions Tool Kit, this is generic tool kit package created by Zaions Dev Team (https://zaions.com), there are two other packages named "@zaionsofficial/server-tool-kit" and "@zaionsofficial/client-tool-kit" while this package is generic and contains code w
We found that zaions-tool-kit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.

Research
/Security News
Socket researchers found 10 typosquatted npm packages that auto-run on install, show fake CAPTCHAs, fingerprint by IP, and deploy a credential stealer.