Registry / messaging / zpms-redis-message-sdk

zpms-redis-message-sdk

JSON →
library0.1.1jsnpmunverified

ZPMS Redis tunnel message publisher SDK (v0.1.1, alpha). Provides a unified interface for publishing system and business messages to Redis Pub/Sub channels with automatic messageId generation, timestamp handling, route generation, and protocol field validation. Supports tenant-level and hotel-level routing. Requires Node >=18. Currently in early development with limited release cadence; protocol is versioned (v1).

npm install zpms-redis-message-sdk
INSTALL
IMPORT
SIG · ZPMS-REDIS-MESSAGE
Z
zpms-redis-message-sdk
messagingjavascriptv0.1.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

createRedisMessagePublisher
import { createRedisMessagePublisher } from '@zpms/redis-message-sdk'
const createRedisMessagePublisher = require('@zpms/redis-message-sdk').createRedisMessagePublisher
ESM-only package; dynamic require works but named require is not supported. Use import.
SystemChannel
import { SystemChannel } from '@zpms/redis-message-sdk'
import { SystemChannel } from '@zpms/redis-message-sdk/dist/SystemChannel'
SystemChannel is a top-level export; do not import from internal paths as they may change.
PublishMessageResult
import type { PublishMessageResult } from '@zpms/redis-message-sdk'
import { PublishMessageResult } from '@zpms/redis-message-sdk'
Type is not a runtime value; use 'import type' for compilation-only usage.

Shows how to create a publisher and send system and business messages with required fields and env-based config.

import Redis from 'ioredis'; import { createRedisMessagePublisher, SystemChannel } from '@zpms/redis-message-sdk'; const redisClient = new Redis({ host: process.env.REDIS_HOST ?? '127.0.0.1', port: Number(process.env.REDIS_PORT ?? '6379'), }); const publisher = createRedisMessagePublisher({ publisher: redisClient }); async function main() { // Publish system message await publisher.publishSystemMessage({ systemChannel: SystemChannel.NOTICE, type: 'system.notice', eventName: 'system.global.notice', staffCd: process.env.STAFF_CD ?? 'EMP001', source: process.env.SOURCE ?? 'example-app', payload: { title: 'System notification', content: 'This is a system notification', }, }); // Publish business message await publisher.publishBusinessMessage({ tenantId: process.env.TENANT_ID ?? '10001', hotelId: process.env.HOTEL_ID ?? '20001', type: 'order.created', eventName: 'order.status.changed', staffCd: process.env.STAFF_CD ?? 'EMP001', source: process.env.SOURCE ?? 'example-app', businessKey: 'order', businessId: 'ORDER_202605150001', payload: { orderNo: 'ORDER_202605150001', status: 'CREATED', }, }); console.log('Messages sent'); redisClient.quit(); } main().catch(console.error);
Debug
Known issues
breakingPackage is at version 0.1.1, pre-1.0: API may change without notice.
fix
Pin exact version and test upgrades.
affects: <1.0.0
gotchasystemChannel does not support 'SystemChannel.NOTICE' when publishing business messages; only system messages.
fix
Use SystemChannel only with publishSystemMessage, not publishBusinessMessage.
affects: >=0.1.0
gotchaIn business messages, hotelId '-1' denotes tenant-level; but hotelId is still required even for tenant-level messages.
fix
Explicitly set hotelId to '-1' for tenant-level messages.
affects: >=0.1.0
breakingNode engine requirement is >=18; older versions will fail to load ESM package.
fix
Upgrade Node.js to 18 or later.
affects: >=0.1.0
gotchatype field in messages must match regex ^[a-z]+(\.[a-z]+)*$ — uppercase or special characters cause validation error.
fix
Use only lowercase letters and dots (e.g., 'system.notice', 'order.created').
affects: >=0.1.0
gotchapayload field must be an object (not null, array, string, etc.) otherwise validation fails.
fix
Pass a plain object literal as payload.
affects: >=0.1.0
Errors
Common errors & fixes
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '@zpms/redis-message-sdk'
Package not installed or import path incorrect.
fix
Run npm install @zpms/redis-message-sdk
TypeError: (0 , _zpmsRedisMessageSdk.createRedisMessagePublisher) is not a function
Using CommonJS require incorrectly with named export.
fix
Use import { createRedisMessagePublisher } from '@zpms/redis-message-sdk'
ValidationError: type must start with 'system.' for system messages
System message type does not start with 'system.'
fix
Set type to 'system.your.actual.type'
ValidationError: tenantId is required for business messages
Missing tenantId in publishBusinessMessage call.
fix
Add tenantId to the message object.
Upgrade
Version history
0.1.1latest on npm
Audit
Dependencies
ioredisrequiredRedis client used to publish messages
Agent activity
44 hits · last 30 days
node
34
Bingbot
1
OpenAI (training)
1
Resources
zpms-redis-message-sdk — npm install zpms-redis-message-sdk · libregistry