@superblocksteam/sdk-api 2.0.105 → 2.0.106-next.0
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.
- package/README.md +439 -89
- package/dist/api/definition.d.ts +11 -6
- package/dist/api/definition.d.ts.map +1 -1
- package/dist/api/definition.js +19 -12
- package/dist/api/definition.js.map +1 -1
- package/dist/api/definition.test.js +39 -15
- package/dist/api/definition.test.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.js +1 -1
- package/dist/index.d.ts +10 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/integrations/base/index.d.ts +2 -1
- package/dist/integrations/base/index.d.ts.map +1 -1
- package/dist/integrations/base/index.js +1 -0
- package/dist/integrations/base/index.js.map +1 -1
- package/dist/integrations/base/rest-api-client-base.d.ts +48 -0
- package/dist/integrations/base/rest-api-client-base.d.ts.map +1 -0
- package/dist/integrations/base/rest-api-client-base.js +98 -0
- package/dist/integrations/base/rest-api-client-base.js.map +1 -0
- package/dist/integrations/base/rest-api-integration-client.d.ts +10 -20
- package/dist/integrations/base/rest-api-integration-client.d.ts.map +1 -1
- package/dist/integrations/base/rest-api-integration-client.js +10 -65
- package/dist/integrations/base/rest-api-integration-client.js.map +1 -1
- package/dist/integrations/box/types.d.ts +1 -1
- package/dist/integrations/declarations.d.ts +5 -73
- package/dist/integrations/declarations.d.ts.map +1 -1
- package/dist/integrations/declarations.js +5 -68
- package/dist/integrations/declarations.js.map +1 -1
- package/dist/integrations/documentation.test.js +0 -2
- package/dist/integrations/documentation.test.js.map +1 -1
- package/dist/integrations/googledrive/types.d.ts +1 -1
- package/dist/integrations/index.d.ts +1 -11
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +1 -7
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/registry.d.ts +1 -11
- package/dist/integrations/registry.d.ts.map +1 -1
- package/dist/integrations/registry.js +0 -29
- package/dist/integrations/registry.js.map +1 -1
- package/dist/integrations/slack/client.d.ts +13 -9
- package/dist/integrations/slack/client.d.ts.map +1 -1
- package/dist/integrations/slack/client.js +60 -8
- package/dist/integrations/slack/client.js.map +1 -1
- package/dist/integrations/slack/client.test.d.ts +11 -0
- package/dist/integrations/slack/client.test.d.ts.map +1 -0
- package/dist/integrations/slack/client.test.js +368 -0
- package/dist/integrations/slack/client.test.js.map +1 -0
- package/dist/integrations/slack/index.d.ts +2 -1
- package/dist/integrations/slack/index.d.ts.map +1 -1
- package/dist/integrations/slack/index.js +1 -0
- package/dist/integrations/slack/index.js.map +1 -1
- package/dist/integrations/slack/types.d.ts +127 -28
- package/dist/integrations/slack/types.d.ts.map +1 -1
- package/dist/integrations/slack/types.js +27 -1
- package/dist/integrations/slack/types.js.map +1 -1
- package/dist/integrations/snowflake/client.d.ts +2 -2
- package/dist/integrations/snowflake/client.js +2 -2
- package/dist/runtime/context.d.ts +1 -1
- package/dist/runtime/executor.d.ts +2 -2
- package/dist/types.d.ts +15 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/api/definition.test.ts +40 -15
- package/src/api/definition.ts +19 -12
- package/src/errors.ts +1 -1
- package/src/index.ts +13 -33
- package/src/integrations/asana/README.md +12 -12
- package/src/integrations/base/index.ts +2 -1
- package/src/integrations/base/rest-api-client-base.ts +134 -0
- package/src/integrations/base/rest-api-integration-client.ts +12 -89
- package/src/integrations/bitbucket/README.md +19 -19
- package/src/integrations/box/README.md +24 -24
- package/src/integrations/box/types.ts +1 -1
- package/src/integrations/circleci/README.md +18 -18
- package/src/integrations/declarations.ts +5 -105
- package/src/integrations/documentation.test.ts +0 -2
- package/src/integrations/googledrive/README.md +25 -22
- package/src/integrations/googledrive/types.ts +1 -1
- package/src/integrations/graphql/README.md +2 -2
- package/src/integrations/groq/README.md +8 -8
- package/src/integrations/index.ts +0 -51
- package/src/integrations/perplexity/README.md +39 -48
- package/src/integrations/registry.ts +1 -39
- package/src/integrations/salesforce/README.md +11 -9
- package/src/integrations/slack/README.md +62 -19
- package/src/integrations/slack/client.test.ts +553 -0
- package/src/integrations/slack/client.ts +92 -12
- package/src/integrations/slack/index.ts +6 -1
- package/src/integrations/slack/types.ts +142 -29
- package/src/integrations/snowflake/client.ts +2 -2
- package/src/integrations/zoom/README.md +15 -15
- package/src/runtime/context.ts +1 -1
- package/src/runtime/executor.ts +2 -2
- package/src/types.ts +15 -6
- package/dist/integrations/couchbase/client.d.ts +0 -36
- package/dist/integrations/couchbase/client.d.ts.map +0 -1
- package/dist/integrations/couchbase/client.js +0 -148
- package/dist/integrations/couchbase/client.js.map +0 -1
- package/dist/integrations/couchbase/index.d.ts +0 -8
- package/dist/integrations/couchbase/index.d.ts.map +0 -1
- package/dist/integrations/couchbase/index.js +0 -7
- package/dist/integrations/couchbase/index.js.map +0 -1
- package/dist/integrations/couchbase/types.d.ts +0 -100
- package/dist/integrations/couchbase/types.d.ts.map +0 -1
- package/dist/integrations/couchbase/types.js +0 -5
- package/dist/integrations/couchbase/types.js.map +0 -1
- package/dist/integrations/kafka/client.d.ts +0 -25
- package/dist/integrations/kafka/client.d.ts.map +0 -1
- package/dist/integrations/kafka/client.js +0 -124
- package/dist/integrations/kafka/client.js.map +0 -1
- package/dist/integrations/kafka/index.d.ts +0 -8
- package/dist/integrations/kafka/index.d.ts.map +0 -1
- package/dist/integrations/kafka/index.js +0 -7
- package/dist/integrations/kafka/index.js.map +0 -1
- package/dist/integrations/kafka/types.d.ts +0 -113
- package/dist/integrations/kafka/types.d.ts.map +0 -1
- package/dist/integrations/kafka/types.js +0 -5
- package/dist/integrations/kafka/types.js.map +0 -1
- package/dist/integrations/kinesis/client.d.ts +0 -31
- package/dist/integrations/kinesis/client.d.ts.map +0 -1
- package/dist/integrations/kinesis/client.js +0 -101
- package/dist/integrations/kinesis/client.js.map +0 -1
- package/dist/integrations/kinesis/index.d.ts +0 -8
- package/dist/integrations/kinesis/index.d.ts.map +0 -1
- package/dist/integrations/kinesis/index.js +0 -7
- package/dist/integrations/kinesis/index.js.map +0 -1
- package/dist/integrations/kinesis/types.d.ts +0 -97
- package/dist/integrations/kinesis/types.d.ts.map +0 -1
- package/dist/integrations/kinesis/types.js +0 -7
- package/dist/integrations/kinesis/types.js.map +0 -1
- package/dist/integrations/python/client.d.ts +0 -42
- package/dist/integrations/python/client.d.ts.map +0 -1
- package/dist/integrations/python/client.js +0 -89
- package/dist/integrations/python/client.js.map +0 -1
- package/dist/integrations/python/client.test.d.ts +0 -5
- package/dist/integrations/python/client.test.d.ts.map +0 -1
- package/dist/integrations/python/client.test.js +0 -214
- package/dist/integrations/python/client.test.js.map +0 -1
- package/dist/integrations/python/index.d.ts +0 -6
- package/dist/integrations/python/index.d.ts.map +0 -1
- package/dist/integrations/python/index.js +0 -5
- package/dist/integrations/python/index.js.map +0 -1
- package/dist/integrations/python/types.d.ts +0 -85
- package/dist/integrations/python/types.d.ts.map +0 -1
- package/dist/integrations/python/types.js +0 -5
- package/dist/integrations/python/types.js.map +0 -1
- package/dist/integrations/redis/client.d.ts +0 -43
- package/dist/integrations/redis/client.d.ts.map +0 -1
- package/dist/integrations/redis/client.js +0 -142
- package/dist/integrations/redis/client.js.map +0 -1
- package/dist/integrations/redis/index.d.ts +0 -8
- package/dist/integrations/redis/index.d.ts.map +0 -1
- package/dist/integrations/redis/index.js +0 -7
- package/dist/integrations/redis/index.js.map +0 -1
- package/dist/integrations/redis/types.d.ts +0 -137
- package/dist/integrations/redis/types.d.ts.map +0 -1
- package/dist/integrations/redis/types.js +0 -5
- package/dist/integrations/redis/types.js.map +0 -1
- package/src/integrations/couchbase/README.md +0 -138
- package/src/integrations/couchbase/client.ts +0 -225
- package/src/integrations/couchbase/index.ts +0 -8
- package/src/integrations/couchbase/types.ts +0 -126
- package/src/integrations/kafka/README.md +0 -144
- package/src/integrations/kafka/client.ts +0 -216
- package/src/integrations/kafka/index.ts +0 -14
- package/src/integrations/kafka/types.ts +0 -128
- package/src/integrations/kinesis/README.md +0 -153
- package/src/integrations/kinesis/client.ts +0 -146
- package/src/integrations/kinesis/index.ts +0 -14
- package/src/integrations/kinesis/types.ts +0 -114
- package/src/integrations/python/README.md +0 -566
- package/src/integrations/python/client.test.ts +0 -341
- package/src/integrations/python/client.ts +0 -136
- package/src/integrations/python/index.ts +0 -6
- package/src/integrations/python/types.ts +0 -92
- package/src/integrations/redis/README.md +0 -200
- package/src/integrations/redis/client.ts +0 -208
- package/src/integrations/redis/index.ts +0 -8
- package/src/integrations/redis/types.ts +0 -167
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Redis client implementation.
|
|
3
|
-
*
|
|
4
|
-
* Uses the native Redis plugin type from @superblocksteam/types.
|
|
5
|
-
* Supports raw Redis commands and typed structured operations
|
|
6
|
-
* (get, set, del, keys, hget, hset, hgetall, etc.).
|
|
7
|
-
*
|
|
8
|
-
* Request format matches the Redis plugin proto's oneof structure:
|
|
9
|
-
* - Raw: `{ raw: { singleton: { query: "..." } } }`
|
|
10
|
-
* - Structured: `{ structured: { set: { key: "...", value: "..." } } }`
|
|
11
|
-
*/
|
|
12
|
-
import type { z } from "zod";
|
|
13
|
-
import type { QueryExecutor, TraceMetadata } from "../registry.js";
|
|
14
|
-
import type { IntegrationConfig, IntegrationClientImpl } from "../types.js";
|
|
15
|
-
import type { RedisClient } from "./types.js";
|
|
16
|
-
/**
|
|
17
|
-
* Internal implementation of RedisClient.
|
|
18
|
-
*
|
|
19
|
-
* Provides both raw and structured Redis command execution.
|
|
20
|
-
*/
|
|
21
|
-
export declare class RedisClientImpl implements RedisClient, IntegrationClientImpl {
|
|
22
|
-
readonly config: IntegrationConfig;
|
|
23
|
-
private readonly executeQuery;
|
|
24
|
-
constructor(config: IntegrationConfig, executeQuery: QueryExecutor);
|
|
25
|
-
get name(): string;
|
|
26
|
-
get pluginId(): string;
|
|
27
|
-
/**
|
|
28
|
-
* Execute a request and wrap errors.
|
|
29
|
-
*/
|
|
30
|
-
private exec;
|
|
31
|
-
command<T>(command: string, schema: z.ZodSchema<T>, metadata?: TraceMetadata): Promise<T>;
|
|
32
|
-
get(key: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
33
|
-
set(key: string, value: string, expirationMs?: number, metadata?: TraceMetadata): Promise<unknown>;
|
|
34
|
-
del(key: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
35
|
-
keys(pattern: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
36
|
-
hget(key: string, field: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
37
|
-
hset(key: string, field: string, value: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
38
|
-
hgetall(key: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
39
|
-
hdel(key: string, field: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
40
|
-
expire(key: string, seconds: number, metadata?: TraceMetadata): Promise<unknown>;
|
|
41
|
-
ttl(key: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/integrations/redis/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAsC9C;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,WAAW,EAAE,qBAAqB;IACxE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;gBAEjC,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa;IAKlE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;YACW,IAAI;IAmBZ,OAAO,CAAC,CAAC,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,CAAC,CAAC;IA4BP,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5D,GAAG,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;IASb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjE,IAAI,CACR,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;IAKb,IAAI,CACR,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;IAKb,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhE,IAAI,CACR,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;IAKb,MAAM,CACV,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC;IAKb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAInE"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Redis client implementation.
|
|
3
|
-
*
|
|
4
|
-
* Uses the native Redis plugin type from @superblocksteam/types.
|
|
5
|
-
* Supports raw Redis commands and typed structured operations
|
|
6
|
-
* (get, set, del, keys, hget, hset, hgetall, etc.).
|
|
7
|
-
*
|
|
8
|
-
* Request format matches the Redis plugin proto's oneof structure:
|
|
9
|
-
* - Raw: `{ raw: { singleton: { query: "..." } } }`
|
|
10
|
-
* - Structured: `{ structured: { set: { key: "...", value: "..." } } }`
|
|
11
|
-
*/
|
|
12
|
-
import { RestApiValidationError } from "../../errors.js";
|
|
13
|
-
import { IntegrationError } from "../../runtime/errors.js";
|
|
14
|
-
/**
|
|
15
|
-
* Build a raw Redis command request matching the proto JSON format.
|
|
16
|
-
*
|
|
17
|
-
* Proto structure: `oneof command_type { Raw raw = 3; }`
|
|
18
|
-
* Raw structure: `oneof action { Singleton singleton = 1; }`
|
|
19
|
-
*/
|
|
20
|
-
function buildRawRequest(command) {
|
|
21
|
-
return {
|
|
22
|
-
raw: {
|
|
23
|
-
singleton: {
|
|
24
|
-
query: command,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Build a structured Redis command request matching the proto JSON format.
|
|
31
|
-
*
|
|
32
|
-
* Proto structure: `oneof command_type { Structured structured = 4; }`
|
|
33
|
-
* Structured structure: `oneof action { Get get = 6; Set set = 7; ... }`
|
|
34
|
-
*
|
|
35
|
-
* @param actionName - The structured action name (e.g., 'get', 'set')
|
|
36
|
-
* @param value - The action-specific parameters
|
|
37
|
-
*/
|
|
38
|
-
function buildStructuredRequest(actionName, value) {
|
|
39
|
-
return {
|
|
40
|
-
structured: {
|
|
41
|
-
[actionName]: value,
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Internal implementation of RedisClient.
|
|
47
|
-
*
|
|
48
|
-
* Provides both raw and structured Redis command execution.
|
|
49
|
-
*/
|
|
50
|
-
export class RedisClientImpl {
|
|
51
|
-
config;
|
|
52
|
-
executeQuery;
|
|
53
|
-
constructor(config, executeQuery) {
|
|
54
|
-
this.config = config;
|
|
55
|
-
this.executeQuery = executeQuery;
|
|
56
|
-
}
|
|
57
|
-
get name() {
|
|
58
|
-
return this.config.name;
|
|
59
|
-
}
|
|
60
|
-
get pluginId() {
|
|
61
|
-
return this.config.pluginId;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Execute a request and wrap errors.
|
|
65
|
-
*/
|
|
66
|
-
async exec(request, operation, metadata) {
|
|
67
|
-
try {
|
|
68
|
-
return await this.executeQuery(request, undefined, metadata);
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
if (error instanceof RestApiValidationError ||
|
|
72
|
-
error instanceof IntegrationError) {
|
|
73
|
-
throw error;
|
|
74
|
-
}
|
|
75
|
-
throw new IntegrationError(this.config.name, operation, error);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
async command(command, schema, metadata) {
|
|
79
|
-
const request = buildRawRequest(command);
|
|
80
|
-
const rawResult = await this.exec(request, "command", metadata);
|
|
81
|
-
// The Redis plugin wraps raw command results in { response: ... }.
|
|
82
|
-
// Unwrap to the actual value so callers can validate against the expected type.
|
|
83
|
-
const result = rawResult !== null &&
|
|
84
|
-
typeof rawResult === "object" &&
|
|
85
|
-
"response" in rawResult
|
|
86
|
-
? rawResult.response
|
|
87
|
-
: rawResult;
|
|
88
|
-
const parseResult = schema.safeParse(result);
|
|
89
|
-
if (!parseResult.success) {
|
|
90
|
-
throw new RestApiValidationError(`Result validation failed: ${parseResult.error.message}`, {
|
|
91
|
-
zodError: parseResult.error,
|
|
92
|
-
data: result,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
return parseResult.data;
|
|
96
|
-
}
|
|
97
|
-
async get(key, metadata) {
|
|
98
|
-
const request = buildStructuredRequest("get", { key });
|
|
99
|
-
return this.exec(request, "get", metadata);
|
|
100
|
-
}
|
|
101
|
-
async set(key, value, expirationMs, metadata) {
|
|
102
|
-
const params = { key, value };
|
|
103
|
-
if (expirationMs !== undefined) {
|
|
104
|
-
params.expirationMs = expirationMs;
|
|
105
|
-
}
|
|
106
|
-
const request = buildStructuredRequest("set", params);
|
|
107
|
-
return this.exec(request, "set", metadata);
|
|
108
|
-
}
|
|
109
|
-
async del(key, metadata) {
|
|
110
|
-
const request = buildStructuredRequest("del", { key });
|
|
111
|
-
return this.exec(request, "del", metadata);
|
|
112
|
-
}
|
|
113
|
-
async keys(pattern, metadata) {
|
|
114
|
-
const request = buildStructuredRequest("keys", { pattern });
|
|
115
|
-
return this.exec(request, "keys", metadata);
|
|
116
|
-
}
|
|
117
|
-
async hget(key, field, metadata) {
|
|
118
|
-
const request = buildStructuredRequest("hget", { key, field });
|
|
119
|
-
return this.exec(request, "hget", metadata);
|
|
120
|
-
}
|
|
121
|
-
async hset(key, field, value, metadata) {
|
|
122
|
-
const request = buildStructuredRequest("hset", { key, field, value });
|
|
123
|
-
return this.exec(request, "hset", metadata);
|
|
124
|
-
}
|
|
125
|
-
async hgetall(key, metadata) {
|
|
126
|
-
const request = buildStructuredRequest("hgetall", { key });
|
|
127
|
-
return this.exec(request, "hgetall", metadata);
|
|
128
|
-
}
|
|
129
|
-
async hdel(key, field, metadata) {
|
|
130
|
-
const request = buildStructuredRequest("hdel", { key, field });
|
|
131
|
-
return this.exec(request, "hdel", metadata);
|
|
132
|
-
}
|
|
133
|
-
async expire(key, seconds, metadata) {
|
|
134
|
-
const request = buildStructuredRequest("expire", { key, seconds });
|
|
135
|
-
return this.exec(request, "expire", metadata);
|
|
136
|
-
}
|
|
137
|
-
async ttl(key, metadata) {
|
|
138
|
-
const request = buildStructuredRequest("ttl", { key });
|
|
139
|
-
return this.exec(request, "ttl", metadata);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/integrations/redis/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/redis/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/redis/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Redis client types.
|
|
3
|
-
*/
|
|
4
|
-
import type { z } from "zod";
|
|
5
|
-
import type { BaseIntegrationClient } from "../../types.js";
|
|
6
|
-
import type { TraceMetadata } from "../registry.js";
|
|
7
|
-
/**
|
|
8
|
-
* Redis client for executing commands.
|
|
9
|
-
*
|
|
10
|
-
* Provides typed methods for common Redis operations as well as a
|
|
11
|
-
* generic command() method for executing raw Redis commands.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```typescript
|
|
15
|
-
* // Declare in api(): integrations: { redis: redis(INTEGRATION_ID) }
|
|
16
|
-
* // In run(), access via ctx.integrations.redis
|
|
17
|
-
*
|
|
18
|
-
* // Typed string operations
|
|
19
|
-
* await redis.set('user:1', 'Alice');
|
|
20
|
-
* const name = await redis.get('user:1');
|
|
21
|
-
*
|
|
22
|
-
* // Typed hash operations
|
|
23
|
-
* await redis.hset('user:1', 'name', 'Alice');
|
|
24
|
-
* const val = await redis.hget('user:1', 'name');
|
|
25
|
-
* const all = await redis.hgetall('user:1');
|
|
26
|
-
*
|
|
27
|
-
* // Key operations
|
|
28
|
-
* await redis.del('user:1');
|
|
29
|
-
* const userKeys = await redis.keys('user:*');
|
|
30
|
-
*
|
|
31
|
-
* // Raw command for anything not covered by typed methods
|
|
32
|
-
* const result = await redis.command(
|
|
33
|
-
* 'LRANGE mylist 0 -1',
|
|
34
|
-
* z.array(z.string())
|
|
35
|
-
* );
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export interface RedisClient extends BaseIntegrationClient {
|
|
39
|
-
/**
|
|
40
|
-
* Execute a raw Redis command.
|
|
41
|
-
*
|
|
42
|
-
* Use this for commands not covered by the typed methods.
|
|
43
|
-
*
|
|
44
|
-
* @param command - The Redis command string (e.g., "LRANGE mylist 0 -1")
|
|
45
|
-
* @param schema - Zod schema for validating the result
|
|
46
|
-
* @returns The validated result
|
|
47
|
-
*/
|
|
48
|
-
command<T>(command: string, schema: z.ZodSchema<T>, metadata?: TraceMetadata): Promise<T>;
|
|
49
|
-
/**
|
|
50
|
-
* Get the value of a key.
|
|
51
|
-
*
|
|
52
|
-
* @param key - The key to get
|
|
53
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
54
|
-
* @returns The value, or null if the key does not exist
|
|
55
|
-
*/
|
|
56
|
-
get(key: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
57
|
-
/**
|
|
58
|
-
* Set the value of a key.
|
|
59
|
-
*
|
|
60
|
-
* @param key - The key to set
|
|
61
|
-
* @param value - The value to set
|
|
62
|
-
* @param expirationMs - Optional expiration time in milliseconds
|
|
63
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
64
|
-
* @returns The result (typically "OK")
|
|
65
|
-
*/
|
|
66
|
-
set(key: string, value: string, expirationMs?: number, metadata?: TraceMetadata): Promise<unknown>;
|
|
67
|
-
/**
|
|
68
|
-
* Delete a key.
|
|
69
|
-
*
|
|
70
|
-
* @param key - The key to delete
|
|
71
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
72
|
-
* @returns The number of keys removed
|
|
73
|
-
*/
|
|
74
|
-
del(key: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
75
|
-
/**
|
|
76
|
-
* Find all keys matching a pattern.
|
|
77
|
-
*
|
|
78
|
-
* @param pattern - The glob-style pattern to match (e.g., "user:*")
|
|
79
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
80
|
-
* @returns Array of matching keys
|
|
81
|
-
*/
|
|
82
|
-
keys(pattern: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
83
|
-
/**
|
|
84
|
-
* Get the value of a hash field.
|
|
85
|
-
*
|
|
86
|
-
* @param key - The hash key
|
|
87
|
-
* @param field - The field name
|
|
88
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
89
|
-
* @returns The field value, or null if the field does not exist
|
|
90
|
-
*/
|
|
91
|
-
hget(key: string, field: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
92
|
-
/**
|
|
93
|
-
* Set the value of a hash field.
|
|
94
|
-
*
|
|
95
|
-
* @param key - The hash key
|
|
96
|
-
* @param field - The field name
|
|
97
|
-
* @param value - The value to set
|
|
98
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
99
|
-
* @returns The number of fields that were added
|
|
100
|
-
*/
|
|
101
|
-
hset(key: string, field: string, value: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
102
|
-
/**
|
|
103
|
-
* Get all fields and values of a hash.
|
|
104
|
-
*
|
|
105
|
-
* @param key - The hash key
|
|
106
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
107
|
-
* @returns Object with all field-value pairs
|
|
108
|
-
*/
|
|
109
|
-
hgetall(key: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
110
|
-
/**
|
|
111
|
-
* Delete a hash field.
|
|
112
|
-
*
|
|
113
|
-
* @param key - The hash key
|
|
114
|
-
* @param field - The field to delete
|
|
115
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
116
|
-
* @returns The number of fields that were removed
|
|
117
|
-
*/
|
|
118
|
-
hdel(key: string, field: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
119
|
-
/**
|
|
120
|
-
* Set expiration on a key.
|
|
121
|
-
*
|
|
122
|
-
* @param key - The key to set expiration on
|
|
123
|
-
* @param seconds - Time to live in seconds
|
|
124
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
125
|
-
* @returns 1 if timeout was set, 0 if key does not exist
|
|
126
|
-
*/
|
|
127
|
-
expire(key: string, seconds: number, metadata?: TraceMetadata): Promise<unknown>;
|
|
128
|
-
/**
|
|
129
|
-
* Get the remaining time to live of a key.
|
|
130
|
-
*
|
|
131
|
-
* @param key - The key to check
|
|
132
|
-
* @param metadata - Optional trace metadata for diagnostics
|
|
133
|
-
* @returns TTL in seconds, -2 if key does not exist, -1 if no expiration
|
|
134
|
-
*/
|
|
135
|
-
ttl(key: string, metadata?: TraceMetadata): Promise<unknown>;
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/redis/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,WAAY,SAAQ,qBAAqB;IACxD;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,EACP,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,CAAC,CAAC,CAAC;IAEd;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D;;;;;;;;OAQG;IACH,GAAG,CACD,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElE;;;;;;;OAOG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E;;;;;;;;OAQG;IACH,IAAI,CACF,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjE;;;;;;;OAOG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E;;;;;;;OAOG;IACH,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/redis/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
# Couchbase Client
|
|
2
|
-
|
|
3
|
-
Interact with Couchbase databases with full type safety and runtime validation.
|
|
4
|
-
|
|
5
|
-
## Methods
|
|
6
|
-
|
|
7
|
-
| Method | Description |
|
|
8
|
-
| ------------------------------------------------ | -------------------------------------------- |
|
|
9
|
-
| `query(bucket, sql, schema, params?, metadata?)` | Execute a SQL++ query with schema validation |
|
|
10
|
-
| `insert(key, value, identifier, metadata?)` | Insert a document into a collection |
|
|
11
|
-
| `get(key, schema, identifier, metadata?)` | Get a document by key with schema validation |
|
|
12
|
-
| `remove(key, identifier, metadata?)` | Remove a document by key |
|
|
13
|
-
|
|
14
|
-
## Usage
|
|
15
|
-
|
|
16
|
-
### SQL++ Query
|
|
17
|
-
|
|
18
|
-
```typescript
|
|
19
|
-
import { api, z, couchbase } from "@superblocksteam/sdk-api";
|
|
20
|
-
|
|
21
|
-
// Integration ID from the integrations panel
|
|
22
|
-
const PROD_COUCHBASE = "a1b2c3d4-5678-90ab-cdef-couchbase001";
|
|
23
|
-
|
|
24
|
-
const UserSchema = z.object({
|
|
25
|
-
id: z.string(),
|
|
26
|
-
name: z.string(),
|
|
27
|
-
email: z.string(),
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
export default api({
|
|
31
|
-
name: "CouchbaseExample",
|
|
32
|
-
integrations: {
|
|
33
|
-
cb: couchbase(PROD_COUCHBASE),
|
|
34
|
-
},
|
|
35
|
-
input: z.object({
|
|
36
|
-
status: z.string(),
|
|
37
|
-
}),
|
|
38
|
-
output: z.object({
|
|
39
|
-
users: z.array(UserSchema),
|
|
40
|
-
}),
|
|
41
|
-
async run(ctx, { status }) {
|
|
42
|
-
const users = await ctx.integrations.cb.query(
|
|
43
|
-
"my-bucket",
|
|
44
|
-
`SELECT META().id, name, email FROM bucket WHERE status = "${status}"`,
|
|
45
|
-
UserSchema,
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
return { users };
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### Parameterized Query
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
56
|
-
const users = await ctx.integrations.cb.query(
|
|
57
|
-
"my-bucket",
|
|
58
|
-
"SELECT META().id, name, email FROM bucket WHERE status = $1",
|
|
59
|
-
UserSchema,
|
|
60
|
-
[status],
|
|
61
|
-
);
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Insert Document
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
await ctx.integrations.cb.insert(
|
|
68
|
-
"user::123",
|
|
69
|
-
{ name: "Alice", email: "alice@example.com", status: "active" },
|
|
70
|
-
{ bucket: "my-bucket", scope: "_default", collection: "_default" },
|
|
71
|
-
);
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Get Document
|
|
75
|
-
|
|
76
|
-
```typescript
|
|
77
|
-
const UserSchema = z.object({
|
|
78
|
-
name: z.string(),
|
|
79
|
-
email: z.string(),
|
|
80
|
-
status: z.string(),
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
const user = await ctx.integrations.cb.get("user::123", UserSchema, {
|
|
84
|
-
bucket: "my-bucket",
|
|
85
|
-
scope: "_default",
|
|
86
|
-
collection: "_default",
|
|
87
|
-
});
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Remove Document
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
await ctx.integrations.cb.remove("user::123", {
|
|
94
|
-
bucket: "my-bucket",
|
|
95
|
-
scope: "_default",
|
|
96
|
-
collection: "_default",
|
|
97
|
-
});
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## Trace Metadata
|
|
101
|
-
|
|
102
|
-
All methods accept an optional `metadata` parameter as the last argument for diagnostics labeling. See the [root SDK README](../../../README.md#trace-metadata) for details.
|
|
103
|
-
|
|
104
|
-
## Error Handling
|
|
105
|
-
|
|
106
|
-
```typescript
|
|
107
|
-
import {
|
|
108
|
-
QueryValidationError,
|
|
109
|
-
RestApiValidationError,
|
|
110
|
-
} from "@superblocksteam/sdk-api";
|
|
111
|
-
|
|
112
|
-
try {
|
|
113
|
-
const users = await ctx.integrations.cb.query(
|
|
114
|
-
"my-bucket",
|
|
115
|
-
"SELECT * FROM bucket",
|
|
116
|
-
UserSchema,
|
|
117
|
-
);
|
|
118
|
-
} catch (error) {
|
|
119
|
-
if (error instanceof QueryValidationError) {
|
|
120
|
-
// Query result row failed schema validation
|
|
121
|
-
console.error(
|
|
122
|
-
"Row",
|
|
123
|
-
error.details.rowIndex,
|
|
124
|
-
"failed:",
|
|
125
|
-
error.details.errors,
|
|
126
|
-
);
|
|
127
|
-
}
|
|
128
|
-
if (error instanceof RestApiValidationError) {
|
|
129
|
-
// Document get result failed schema validation
|
|
130
|
-
console.error("Validation failed:", error.details.zodError);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## API Reference
|
|
136
|
-
|
|
137
|
-
- [SQL++ Query Language](https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html)
|
|
138
|
-
- [Couchbase Key-Value Operations](https://docs.couchbase.com/server/current/learn/data/data.html)
|