@vibesdotdev/integrations-redis 0.0.0-stage → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +126 -0
  2. package/dist/client.d.ts +10 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +12 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/client.node.d.ts +7 -0
  7. package/dist/client.node.d.ts.map +1 -0
  8. package/dist/client.node.js +8 -0
  9. package/dist/client.node.js.map +1 -0
  10. package/dist/config.d.ts +141 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +39 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/connections.d.ts +56 -0
  15. package/dist/connections.d.ts.map +1 -0
  16. package/dist/connections.js +166 -0
  17. package/dist/connections.js.map +1 -0
  18. package/dist/index.d.ts +13 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +13 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/instrumented.d.ts +8 -0
  23. package/dist/instrumented.d.ts.map +1 -0
  24. package/dist/instrumented.js +41 -0
  25. package/dist/instrumented.js.map +1 -0
  26. package/dist/manager.d.ts +79 -0
  27. package/dist/manager.d.ts.map +1 -0
  28. package/dist/manager.js +321 -0
  29. package/dist/manager.js.map +1 -0
  30. package/dist/redis.consumer.plugin.d.ts +10 -0
  31. package/dist/redis.consumer.plugin.d.ts.map +1 -0
  32. package/dist/redis.consumer.plugin.js +30 -0
  33. package/dist/redis.consumer.plugin.js.map +1 -0
  34. package/dist/redis.plugin.d.ts +3 -0
  35. package/dist/redis.plugin.d.ts.map +1 -0
  36. package/dist/redis.plugin.js +12 -0
  37. package/dist/redis.plugin.js.map +1 -0
  38. package/dist/scheduler-lock.d.ts +20 -0
  39. package/dist/scheduler-lock.d.ts.map +1 -0
  40. package/dist/scheduler-lock.js +43 -0
  41. package/dist/scheduler-lock.js.map +1 -0
  42. package/dist/schemas/connection.d.ts +10 -0
  43. package/dist/schemas/connection.d.ts.map +1 -0
  44. package/dist/schemas/connection.js +8 -0
  45. package/dist/schemas/connection.js.map +1 -0
  46. package/dist/schemas/lock.d.ts +10 -0
  47. package/dist/schemas/lock.d.ts.map +1 -0
  48. package/dist/schemas/lock.js +4 -0
  49. package/dist/schemas/lock.js.map +1 -0
  50. package/dist/schemas/settings.d.ts +46 -0
  51. package/dist/schemas/settings.d.ts.map +1 -0
  52. package/dist/schemas/settings.js +23 -0
  53. package/dist/schemas/settings.js.map +1 -0
  54. package/dist/telemetry-ioredis.impl.d.ts +4 -0
  55. package/dist/telemetry-ioredis.impl.d.ts.map +1 -0
  56. package/dist/telemetry-ioredis.impl.js +6 -0
  57. package/dist/telemetry-ioredis.impl.js.map +1 -0
  58. package/dist/telemetry-redis.impl.d.ts +4 -0
  59. package/dist/telemetry-redis.impl.d.ts.map +1 -0
  60. package/dist/telemetry-redis.impl.js +6 -0
  61. package/dist/telemetry-redis.impl.js.map +1 -0
  62. package/dist/telemetry.d.ts +34 -0
  63. package/dist/telemetry.d.ts.map +1 -0
  64. package/dist/telemetry.js +29 -0
  65. package/dist/telemetry.js.map +1 -0
  66. package/package.json +101 -4
  67. package/README.md +0 -3
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Redis implementation of the Workers scheduler lock port
3
+ * (`SchedulerLock` from `@vibesdotdev/workers/scheduler/lock`), moved from
4
+ * `@vibesdotdev/workers/scheduler/lock` (RC09).
5
+ *
6
+ * `SET key token NX PX ttl` to acquire; a token-checked Lua `DEL` to release.
7
+ * Not a distributed redlock: good for single-runner maintenance tasks. A
8
+ * release whose store call fails rejects with that failure (it is not read as
9
+ * "someone else holds it").
10
+ */
11
+ import { CapabilityError } from '@vibesdotdev/kernel';
12
+ import { LockAcquireReplySchema, LockReleaseReplySchema } from "./schemas/lock.js";
13
+ const RELEASE_SCRIPT = `if redis.call('GET', KEYS[1]) == ARGV[1] then
14
+ return redis.call('DEL', KEYS[1])
15
+ else
16
+ return 0
17
+ end`;
18
+ export class RedisSchedulerLock {
19
+ redis;
20
+ constructor(redis) {
21
+ this.redis = redis;
22
+ }
23
+ async acquire(key, ttlMs) {
24
+ const token = randomToken();
25
+ const reply = LockAcquireReplySchema.safeParse(await this.redis.set(key, token, 'PX', ttlMs, 'NX'));
26
+ if (!reply.success)
27
+ throw new CapabilityError('Invalid Redis lock reply', 'INVALID_INPUT', { reason: 'redis-lock-reply-invalid' });
28
+ return reply.data === 'OK' ? token : null;
29
+ }
30
+ async release(key, token) {
31
+ const reply = LockReleaseReplySchema.safeParse(await this.redis.eval(RELEASE_SCRIPT, 1, key, token));
32
+ if (!reply.success)
33
+ throw new CapabilityError('Invalid Redis lock reply', 'INVALID_INPUT', { reason: 'redis-lock-reply-invalid' });
34
+ return reply.data === 1;
35
+ }
36
+ }
37
+ function randomToken() {
38
+ if (!globalThis.crypto?.randomUUID) {
39
+ throw new Error('Scheduler lock requires Web Crypto randomUUID support');
40
+ }
41
+ return globalThis.crypto.randomUUID();
42
+ }
43
+ //# sourceMappingURL=scheduler-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler-lock.js","sourceRoot":"","sources":["../src/scheduler-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAA2B,MAAM,mBAAmB,CAAC;AAG5G,MAAM,cAAc,GAAG;;;;IAInB,CAAC;AAEL,MAAM,OAAO,kBAAkB;IACD;IAA7B,YAA6B,KAAyB;QAAzB,UAAK,GAAL,KAAK,CAAoB;IAAG,CAAC;IAE1D,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACvC,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,IAAI,eAAe,CAAC,0BAA0B,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACnI,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACvC,MAAM,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,MAAM,IAAI,eAAe,CAAC,0BAA0B,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACnI,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;IACzB,CAAC;CACD;AAED,SAAS,WAAW;IACnB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as z from 'zod/v4';
2
+ import type { RedisOptions } from 'ioredis';
3
+ export declare const RedisCredentialSchema: z.ZodString;
4
+ export declare const RedisConnectionConfigSchema: z.ZodObject<{
5
+ url: z.ZodString;
6
+ readinessTimeoutMs: z.ZodOptional<z.ZodNumber>;
7
+ options: z.ZodOptional<z.ZodCustom<RedisOptions, RedisOptions>>;
8
+ }, z.core.$strip>;
9
+ export type RedisConnectionConfig = z.infer<typeof RedisConnectionConfigSchema>;
10
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/schemas/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,qBAAqB,aAAoB,CAAC;AACvD,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import * as z from 'zod/v4';
2
+ export const RedisCredentialSchema = z.string().min(1);
3
+ export const RedisConnectionConfigSchema = z.object({
4
+ url: RedisCredentialSchema,
5
+ readinessTimeoutMs: z.number().int().positive().optional(),
6
+ options: z.custom(value => z.object({}).safeParse(value).success).optional()
7
+ });
8
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/schemas/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,GAAG,EAAE,qBAAqB;IAC1B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,CAAe,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;CAC1F,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const LockAcquireReplySchema: z.ZodUnion<readonly [z.ZodLiteral<"OK">, z.ZodNull]>;
3
+ export declare const LockReleaseReplySchema: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>;
4
+ export type LockAcquireReply = z.infer<typeof LockAcquireReplySchema>;
5
+ /** Vendor eval returns an external value that release validates before use. */
6
+ export type SchedulerLockStore = {
7
+ set(key: string, value: string, px: 'PX', ttlMs: number, nx: 'NX'): ReturnType<import('ioredis').Redis['eval']>;
8
+ eval: import('ioredis').Redis['eval'];
9
+ };
10
+ //# sourceMappingURL=lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/schemas/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,sBAAsB,sDAAuC,CAAC;AAC3E,eAAO,MAAM,sBAAsB,yDAAwC,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,+EAA+E;AAC/E,MAAM,MAAM,kBAAkB,GAAG;IAChC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,UAAU,CAAC,OAAO,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAChH,IAAI,EAAE,OAAO,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACtC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as z from 'zod/v4';
2
+ export const LockAcquireReplySchema = z.union([z.literal('OK'), z.null()]);
3
+ export const LockReleaseReplySchema = z.union([z.literal(0), z.literal(1)]);
4
+ //# sourceMappingURL=lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/schemas/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const RedisSettingsSchema: z.ZodObject<{
3
+ maxRetriesPerRequest: z.ZodDefault<z.ZodNumber>;
4
+ enableReadyCheck: z.ZodDefault<z.ZodBoolean>;
5
+ readinessTimeoutMs: z.ZodDefault<z.ZodNumber>;
6
+ purposes: z.ZodPrefault<z.ZodObject<{
7
+ cache: z.ZodDefault<z.ZodObject<{
8
+ enableReadyCheck: z.ZodDefault<z.ZodBoolean>;
9
+ connectTimeout: z.ZodDefault<z.ZodNumber>;
10
+ maxRetriesPerRequest: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
11
+ autoResendUnfulfilledCommands: z.ZodOptional<z.ZodBoolean>;
12
+ }, z.core.$strip>>;
13
+ sessions: z.ZodDefault<z.ZodObject<{
14
+ enableReadyCheck: z.ZodDefault<z.ZodBoolean>;
15
+ connectTimeout: z.ZodDefault<z.ZodNumber>;
16
+ maxRetriesPerRequest: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
17
+ autoResendUnfulfilledCommands: z.ZodOptional<z.ZodBoolean>;
18
+ }, z.core.$strip>>;
19
+ workers: z.ZodDefault<z.ZodObject<{
20
+ enableReadyCheck: z.ZodDefault<z.ZodBoolean>;
21
+ connectTimeout: z.ZodDefault<z.ZodNumber>;
22
+ maxRetriesPerRequest: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
23
+ autoResendUnfulfilledCommands: z.ZodOptional<z.ZodBoolean>;
24
+ }, z.core.$strip>>;
25
+ pubsub: z.ZodDefault<z.ZodObject<{
26
+ enableReadyCheck: z.ZodDefault<z.ZodBoolean>;
27
+ connectTimeout: z.ZodDefault<z.ZodNumber>;
28
+ maxRetriesPerRequest: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
29
+ autoResendUnfulfilledCommands: z.ZodOptional<z.ZodBoolean>;
30
+ }, z.core.$strip>>;
31
+ gpu_queue: z.ZodDefault<z.ZodObject<{
32
+ enableReadyCheck: z.ZodDefault<z.ZodBoolean>;
33
+ connectTimeout: z.ZodDefault<z.ZodNumber>;
34
+ maxRetriesPerRequest: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
35
+ autoResendUnfulfilledCommands: z.ZodOptional<z.ZodBoolean>;
36
+ }, z.core.$strip>>;
37
+ model_registry: z.ZodDefault<z.ZodObject<{
38
+ enableReadyCheck: z.ZodDefault<z.ZodBoolean>;
39
+ connectTimeout: z.ZodDefault<z.ZodNumber>;
40
+ maxRetriesPerRequest: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
41
+ autoResendUnfulfilledCommands: z.ZodOptional<z.ZodBoolean>;
42
+ }, z.core.$strip>>;
43
+ }, z.core.$strip>>;
44
+ }, z.core.$strip>;
45
+ export type RedisSettings = z.infer<typeof RedisSettingsSchema>;
46
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/schemas/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAW5B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as z from 'zod/v4';
2
+ const PurposeOptionsSchema = z.object({
3
+ enableReadyCheck: z.boolean().default(false),
4
+ connectTimeout: z.number().int().positive().default(10000),
5
+ maxRetriesPerRequest: z.number().int().nonnegative().nullable().optional(),
6
+ autoResendUnfulfilledCommands: z.boolean().optional()
7
+ });
8
+ const authenticated = { enableReadyCheck: true, connectTimeout: 10000, maxRetriesPerRequest: null, autoResendUnfulfilledCommands: true };
9
+ const general = { enableReadyCheck: false, connectTimeout: 10000 };
10
+ export const RedisSettingsSchema = z.object({
11
+ maxRetriesPerRequest: z.number().int().nonnegative().default(3),
12
+ enableReadyCheck: z.boolean().default(false),
13
+ readinessTimeoutMs: z.number().int().positive().default(5000),
14
+ purposes: z.object({
15
+ cache: PurposeOptionsSchema.default(authenticated),
16
+ sessions: PurposeOptionsSchema.default(authenticated),
17
+ workers: PurposeOptionsSchema.default({ ...general, maxRetriesPerRequest: null }),
18
+ pubsub: PurposeOptionsSchema.default(general),
19
+ gpu_queue: PurposeOptionsSchema.default(general),
20
+ model_registry: PurposeOptionsSchema.default(general)
21
+ }).prefault({})
22
+ });
23
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/schemas/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1D,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1E,6BAA6B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC;AACzI,MAAM,OAAO,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC;QAClD,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC;QACrD,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;QACjF,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7C,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,cAAc,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;KACrD,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;CACf,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis';
2
+ /** The ioredis instrumentation with the options logging used before RC09. */
3
+ export default function createIoredisTelemetryInstrumentation(): IORedisInstrumentation;
4
+ //# sourceMappingURL=telemetry-ioredis.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-ioredis.impl.d.ts","sourceRoot":"","sources":["../src/telemetry-ioredis.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,6EAA6E;AAC7E,MAAM,CAAC,OAAO,UAAU,qCAAqC,IAAI,sBAAsB,CAEtF"}
@@ -0,0 +1,6 @@
1
+ import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis';
2
+ /** The ioredis instrumentation with the options logging used before RC09. */
3
+ export default function createIoredisTelemetryInstrumentation() {
4
+ return new IORedisInstrumentation({ requireParentSpan: false });
5
+ }
6
+ //# sourceMappingURL=telemetry-ioredis.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-ioredis.impl.js","sourceRoot":"","sources":["../src/telemetry-ioredis.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,6EAA6E;AAC7E,MAAM,CAAC,OAAO,UAAU,qCAAqC;IAC5D,OAAO,IAAI,sBAAsB,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { RedisInstrumentation } from '@opentelemetry/instrumentation-redis';
2
+ /** The node-redis instrumentation with the options logging used before RC09. */
3
+ export default function createRedisTelemetryInstrumentation(): RedisInstrumentation;
4
+ //# sourceMappingURL=telemetry-redis.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-redis.impl.d.ts","sourceRoot":"","sources":["../src/telemetry-redis.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,gFAAgF;AAChF,MAAM,CAAC,OAAO,UAAU,mCAAmC,IAAI,oBAAoB,CAElF"}
@@ -0,0 +1,6 @@
1
+ import { RedisInstrumentation } from '@opentelemetry/instrumentation-redis';
2
+ /** The node-redis instrumentation with the options logging used before RC09. */
3
+ export default function createRedisTelemetryInstrumentation() {
4
+ return new RedisInstrumentation({ requireParentSpan: false });
5
+ }
6
+ //# sourceMappingURL=telemetry-redis.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-redis.impl.js","sourceRoot":"","sources":["../src/telemetry-redis.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,gFAAgF;AAChF,MAAM,CAAC,OAAO,UAAU,mCAAmC;IAC1D,OAAO,IAAI,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Redis and ioredis OpenTelemetry instrumentations, contributed to logging's
3
+ * provider-neutral `observability/telemetry-instrumentation` port (moved from
4
+ * logging's built-in list, RC09). A host that composes `redisPlugin` gets
5
+ * Redis spans from `initializeTelemetry(runtime)`; logging imports neither
6
+ * package.
7
+ */
8
+ export declare const IOREDIS_TELEMETRY_INSTRUMENTATION_ID = "ioredis";
9
+ export declare const REDIS_TELEMETRY_INSTRUMENTATION_ID = "redis";
10
+ export declare const ioredisTelemetryInstrumentationDescriptor: {
11
+ kind: "observability/telemetry-instrumentation";
12
+ id: string;
13
+ name: string;
14
+ description: string;
15
+ hardware: string[];
16
+ enabled: true;
17
+ config: {
18
+ package: string;
19
+ version: string;
20
+ };
21
+ };
22
+ export declare const redisTelemetryInstrumentationDescriptor: {
23
+ kind: "observability/telemetry-instrumentation";
24
+ id: string;
25
+ name: string;
26
+ description: string;
27
+ hardware: string[];
28
+ enabled: true;
29
+ config: {
30
+ package: string;
31
+ version: string;
32
+ };
33
+ };
34
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,oCAAoC,YAAY,CAAC;AAC9D,eAAO,MAAM,kCAAkC,UAAU,CAAC;AAE1D,eAAO,MAAM,yCAAyC;;;;;;;;;;;CAQpD,CAAC;AAEH,eAAO,MAAM,uCAAuC;;;;;;;;;;;CAQlD,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Redis and ioredis OpenTelemetry instrumentations, contributed to logging's
3
+ * provider-neutral `observability/telemetry-instrumentation` port (moved from
4
+ * logging's built-in list, RC09). A host that composes `redisPlugin` gets
5
+ * Redis spans from `initializeTelemetry(runtime)`; logging imports neither
6
+ * package.
7
+ */
8
+ import { createRuntimeAsset } from '@vibesdotdev/kernel';
9
+ export const IOREDIS_TELEMETRY_INSTRUMENTATION_ID = 'ioredis';
10
+ export const REDIS_TELEMETRY_INSTRUMENTATION_ID = 'redis';
11
+ export const ioredisTelemetryInstrumentationDescriptor = createRuntimeAsset({
12
+ kind: 'observability/telemetry-instrumentation',
13
+ id: IOREDIS_TELEMETRY_INSTRUMENTATION_ID,
14
+ name: 'ioredis OpenTelemetry instrumentation',
15
+ description: 'OpenTelemetry spans for ioredis commands, supplied by the Redis integration.',
16
+ hardware: ['consumer', 'cloud'],
17
+ enabled: true,
18
+ config: { package: '@opentelemetry/instrumentation-ioredis', version: '0.66.0' }
19
+ });
20
+ export const redisTelemetryInstrumentationDescriptor = createRuntimeAsset({
21
+ kind: 'observability/telemetry-instrumentation',
22
+ id: REDIS_TELEMETRY_INSTRUMENTATION_ID,
23
+ name: 'node-redis OpenTelemetry instrumentation',
24
+ description: 'OpenTelemetry spans for node-redis commands, supplied by the Redis integration.',
25
+ hardware: ['consumer', 'cloud'],
26
+ enabled: true,
27
+ config: { package: '@opentelemetry/instrumentation-redis', version: '0.66.0' }
28
+ });
29
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,CAAC,MAAM,oCAAoC,GAAG,SAAS,CAAC;AAC9D,MAAM,CAAC,MAAM,kCAAkC,GAAG,OAAO,CAAC;AAE1D,MAAM,CAAC,MAAM,yCAAyC,GAAG,kBAAkB,CAAC;IAC3E,IAAI,EAAE,yCAAyC;IAC/C,EAAE,EAAE,oCAAoC;IACxC,IAAI,EAAE,uCAAuC;IAC7C,WAAW,EAAE,8EAA8E;IAC3F,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,OAAO,EAAE,QAAQ,EAAE;CAChF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uCAAuC,GAAG,kBAAkB,CAAC;IACzE,IAAI,EAAE,yCAAyC;IAC/C,EAAE,EAAE,kCAAkC;IACtC,IAAI,EAAE,0CAA0C;IAChD,WAAW,EAAE,iFAAiF;IAC9F,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE,OAAO,EAAE,QAAQ,EAAE;CAC9E,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,103 @@
1
1
  {
2
2
  "name": "@vibesdotdev/integrations-redis",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0-rc.1",
4
+ "dependencies": {
5
+ "@vibesdotdev/logging": "^1.0.0-rc.3",
6
+ "@vibesdotdev/kernel": "^1.0.0-rc.5",
7
+ "zod": "^4.6.7",
8
+ "@vibesdotdev/workers": "^1.0.0-rc.2",
9
+ "@opentelemetry/api": "^1.9.1",
10
+ "ioredis": "^5.11.1",
11
+ "@opentelemetry/instrumentation-ioredis": "^0.66.0",
12
+ "@opentelemetry/instrumentation-redis": "^0.66.0",
13
+ "@vibesdotdev/config": "^1.0.0-rc.2"
14
+ },
15
+ "main": "./dist/index.js",
16
+ "exports": {
17
+ ".": {
18
+ "bun": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js",
21
+ "default": "./dist/index.js"
22
+ },
23
+ "./plugin": {
24
+ "bun": "./dist/redis.plugin.js",
25
+ "types": "./dist/redis.plugin.d.ts",
26
+ "import": "./dist/redis.plugin.js",
27
+ "default": "./dist/redis.plugin.js"
28
+ },
29
+ "./manager": {
30
+ "bun": "./dist/manager.js",
31
+ "types": "./dist/manager.d.ts",
32
+ "import": "./dist/manager.js",
33
+ "default": "./dist/manager.js"
34
+ },
35
+ "./connections": {
36
+ "bun": "./dist/connections.js",
37
+ "types": "./dist/connections.d.ts",
38
+ "import": "./dist/connections.js",
39
+ "default": "./dist/connections.js"
40
+ },
41
+ "./instrumented": {
42
+ "bun": "./dist/instrumented.js",
43
+ "types": "./dist/instrumented.d.ts",
44
+ "import": "./dist/instrumented.js",
45
+ "default": "./dist/instrumented.js"
46
+ },
47
+ "./scheduler-lock": {
48
+ "bun": "./dist/scheduler-lock.js",
49
+ "types": "./dist/scheduler-lock.d.ts",
50
+ "import": "./dist/scheduler-lock.js",
51
+ "default": "./dist/scheduler-lock.js"
52
+ },
53
+ "./client": {
54
+ "bun": "./dist/client.js",
55
+ "types": "./dist/client.d.ts",
56
+ "import": "./dist/client.js"
57
+ },
58
+ "./consumer-plugin": {
59
+ "bun": "./dist/redis.consumer.plugin.js",
60
+ "types": "./dist/redis.consumer.plugin.d.ts",
61
+ "import": "./dist/redis.consumer.plugin.js",
62
+ "default": "./dist/redis.consumer.plugin.js"
63
+ }
64
+ },
65
+ "files": [
66
+ "dist",
67
+ "README.md",
68
+ "LICENSE"
69
+ ],
70
+ "scripts": {
71
+ "lint": "node ../../node_modules/@vibesdotdev/internal-oxlint-toolchain/ratchet.mjs .",
72
+ "test": "${BUN:-bun} test",
73
+ "check": "tsc -p tsconfig.json --noEmit",
74
+ "build": "tsc -p tsconfig.build.json"
75
+ },
76
+ "repository": {
77
+ "type": "git",
78
+ "url": "ssh://git@git.vibes.dev/vibesdotdev/integrations.git",
79
+ "directory": "integrations/redis"
80
+ },
81
+ "publishConfig": {
82
+ "registry": "https://packages.vibes.dev",
83
+ "access": "public"
84
+ },
85
+ "vibes": {
86
+ "visibility": "public",
87
+ "handedRuntimeLogging": true,
88
+ "registry": {
89
+ "repositoryId": "70be51c9-5ab7-4d7e-9f47-801cb17720d8",
90
+ "directory": "integrations/redis"
91
+ }
92
+ },
93
+ "description": "Redis connection registry, instrumented client and the Workers scheduler lock (moved from @vibesdotdev/logging and @vibesdotdev/workers, RC09).",
94
+ "type": "module",
95
+ "types": "./dist/index.d.ts",
96
+ "license": "BUSL-1.1",
97
+ "gitHead": "494ddfcab4c073eef61acb182042223d7e4da2e5",
98
+ "_vibes_source": {
99
+ "repo": "ssh://git@git.vibes.dev/vibesdotdev/integrations.git",
100
+ "sha": "494ddfcab4c073eef61acb182042223d7e4da2e5",
101
+ "workspaceDigest": "sha256:47d02cee8997dcfe86353c6861b38710155485107634bfb16b6c77c723e09352"
102
+ }
103
+ }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.