@iterable/cli 0.1.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/COMMANDS.md +1574 -0
- package/LICENSE.md +21 -0
- package/README.md +194 -0
- package/dist/commands/campaigns.d.ts +3 -0
- package/dist/commands/campaigns.d.ts.map +1 -0
- package/dist/commands/campaigns.js +106 -0
- package/dist/commands/campaigns.js.map +1 -0
- package/dist/commands/catalogs.d.ts +3 -0
- package/dist/commands/catalogs.d.ts.map +1 -0
- package/dist/commands/catalogs.js +99 -0
- package/dist/commands/catalogs.js.map +1 -0
- package/dist/commands/events.d.ts +3 -0
- package/dist/commands/events.d.ts.map +1 -0
- package/dist/commands/events.js +33 -0
- package/dist/commands/events.js.map +1 -0
- package/dist/commands/experiments.d.ts +3 -0
- package/dist/commands/experiments.d.ts.map +1 -0
- package/dist/commands/experiments.js +33 -0
- package/dist/commands/experiments.js.map +1 -0
- package/dist/commands/export.d.ts +3 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +33 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/journeys.d.ts +3 -0
- package/dist/commands/journeys.d.ts.map +1 -0
- package/dist/commands/journeys.js +21 -0
- package/dist/commands/journeys.js.map +1 -0
- package/dist/commands/lists.d.ts +3 -0
- package/dist/commands/lists.d.ts.map +1 -0
- package/dist/commands/lists.js +64 -0
- package/dist/commands/lists.js.map +1 -0
- package/dist/commands/messaging.d.ts +3 -0
- package/dist/commands/messaging.d.ts.map +1 -0
- package/dist/commands/messaging.js +120 -0
- package/dist/commands/messaging.js.map +1 -0
- package/dist/commands/registry.d.ts +46 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +42 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/snippets.d.ts +3 -0
- package/dist/commands/snippets.d.ts.map +1 -0
- package/dist/commands/snippets.js +42 -0
- package/dist/commands/snippets.js.map +1 -0
- package/dist/commands/subscriptions.d.ts +3 -0
- package/dist/commands/subscriptions.d.ts.map +1 -0
- package/dist/commands/subscriptions.js +40 -0
- package/dist/commands/subscriptions.js.map +1 -0
- package/dist/commands/templates.d.ts +3 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/templates.js +160 -0
- package/dist/commands/templates.js.map +1 -0
- package/dist/commands/transforms.d.ts +3 -0
- package/dist/commands/transforms.d.ts.map +1 -0
- package/dist/commands/transforms.js +24 -0
- package/dist/commands/transforms.js.map +1 -0
- package/dist/commands/types.d.ts +40 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +15 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/commands/users.d.ts +3 -0
- package/dist/commands/users.d.ts.map +1 -0
- package/dist/commands/users.js +103 -0
- package/dist/commands/users.js.map +1 -0
- package/dist/commands/webhooks.d.ts +3 -0
- package/dist/commands/webhooks.d.ts.map +1 -0
- package/dist/commands/webhooks.js +21 -0
- package/dist/commands/webhooks.js.map +1 -0
- package/dist/config.d.ts +14 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +60 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +107 -0
- package/dist/index.js.map +1 -0
- package/dist/key-manager.d.ts +280 -0
- package/dist/key-manager.d.ts.map +1 -0
- package/dist/key-manager.js +989 -0
- package/dist/key-manager.js.map +1 -0
- package/dist/keys-cli.d.ts +3 -0
- package/dist/keys-cli.d.ts.map +1 -0
- package/dist/keys-cli.js +396 -0
- package/dist/keys-cli.js.map +1 -0
- package/dist/output.d.ts +5 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +104 -0
- package/dist/output.js.map +1 -0
- package/dist/parser.d.ts +26 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +281 -0
- package/dist/parser.js.map +1 -0
- package/dist/router.d.ts +20 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +137 -0
- package/dist/router.js.map +1 -0
- package/dist/utils/cli-env.d.ts +10 -0
- package/dist/utils/cli-env.d.ts.map +1 -0
- package/dist/utils/cli-env.js +21 -0
- package/dist/utils/cli-env.js.map +1 -0
- package/dist/utils/command-info.d.ts +7 -0
- package/dist/utils/command-info.d.ts.map +1 -0
- package/dist/utils/command-info.js +36 -0
- package/dist/utils/command-info.js.map +1 -0
- package/dist/utils/detect-background.d.ts +3 -0
- package/dist/utils/detect-background.d.ts.map +1 -0
- package/dist/utils/detect-background.js +33 -0
- package/dist/utils/detect-background.js.map +1 -0
- package/dist/utils/endpoint-prompt.d.ts +5 -0
- package/dist/utils/endpoint-prompt.d.ts.map +1 -0
- package/dist/utils/endpoint-prompt.js +98 -0
- package/dist/utils/endpoint-prompt.js.map +1 -0
- package/dist/utils/formatting.d.ts +3 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +5 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/password-prompt.d.ts +3 -0
- package/dist/utils/password-prompt.d.ts.map +1 -0
- package/dist/utils/password-prompt.js +21 -0
- package/dist/utils/password-prompt.js.map +1 -0
- package/dist/utils/sanitize.d.ts +13 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +23 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/utils/theme.d.ts +11 -0
- package/dist/utils/theme.d.ts.map +1 -0
- package/dist/utils/theme.js +14 -0
- package/dist/utils/theme.js.map +1 -0
- package/dist/utils/ui.d.ts +22 -0
- package/dist/utils/ui.d.ts.map +1 -0
- package/dist/utils/ui.js +107 -0
- package/dist/utils/ui.js.map +1 -0
- package/dist/utils/url.d.ts +13 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.js +20 -0
- package/dist/utils/url.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { IterableClient } from "@iterable/api";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
export interface CliTransform {
|
|
4
|
+
cliFields: Record<string, z.ZodType>;
|
|
5
|
+
toParam: (values: Record<string, unknown>) => unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface CommandDefinition {
|
|
8
|
+
category: string;
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
clientMethod?: keyof IterableClient & string;
|
|
12
|
+
schema: z.ZodType;
|
|
13
|
+
execute: (client: IterableClient, params: Record<string, unknown>) => Promise<unknown>;
|
|
14
|
+
positionalArgs?: string[];
|
|
15
|
+
cliTransforms?: Record<string, CliTransform>;
|
|
16
|
+
examples?: string[];
|
|
17
|
+
isAlias?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function defineCommand<K extends keyof IterableClient, TSchema extends z.ZodType>(def: {
|
|
20
|
+
category: string;
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
clientMethod: K & string;
|
|
24
|
+
schema: TSchema;
|
|
25
|
+
execute?: (client: IterableClient, params: z.infer<TSchema>) => Promise<unknown>;
|
|
26
|
+
positionalArgs?: (keyof z.infer<TSchema> & string)[];
|
|
27
|
+
cliTransforms?: Record<string, CliTransform>;
|
|
28
|
+
examples?: string[];
|
|
29
|
+
}): CommandDefinition;
|
|
30
|
+
export declare function defineAlias<TSchema extends z.ZodType>(def: {
|
|
31
|
+
category: string;
|
|
32
|
+
name: string;
|
|
33
|
+
description: string;
|
|
34
|
+
schema: TSchema;
|
|
35
|
+
execute: (client: IterableClient, params: z.infer<TSchema>) => Promise<unknown>;
|
|
36
|
+
positionalArgs?: (keyof z.infer<TSchema> & string)[];
|
|
37
|
+
cliTransforms?: Record<string, CliTransform>;
|
|
38
|
+
examples?: string[];
|
|
39
|
+
}): CommandDefinition;
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;CACvD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,cAAc,GAAG,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;IAClB,OAAO,EAAE,CACP,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,aAAa,CAC3B,CAAC,SAAS,MAAM,cAAc,EAC9B,OAAO,SAAS,CAAC,CAAC,OAAO,EACzB,GAAG,EAAE;IACL,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,CACR,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,iBAAiB,CAYpB;AAED,wBAAgB,WAAW,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,CACP,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GAAG,iBAAiB,CAKpB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function defineCommand(def) {
|
|
2
|
+
const userExecute = def.execute;
|
|
3
|
+
const execute = userExecute
|
|
4
|
+
? (client, params) => userExecute(client, params)
|
|
5
|
+
: (client, params) => {
|
|
6
|
+
const method = client[def.clientMethod];
|
|
7
|
+
return method.call(client, params);
|
|
8
|
+
};
|
|
9
|
+
return { ...def, execute };
|
|
10
|
+
}
|
|
11
|
+
export function defineAlias(def) {
|
|
12
|
+
const execute = (client, params) => def.execute(client, params);
|
|
13
|
+
return { ...def, execute, isAlias: true };
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/commands/types.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,aAAa,CAG3B,GAaD;IACC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;IAChC,MAAM,OAAO,GAAiC,WAAW;QACvD,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAA0B,CAAC;QACrE,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAEjB,CAAC;YACtB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC;IAEN,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,WAAW,CAA4B,GAYtD;IACC,MAAM,OAAO,GAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAC/D,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAA0B,CAAC,CAAC;IAElD,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,eAAO,MAAM,YAAY,EAAE,iBAAiB,EAuG3C,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { BulkUpdateUsersParamsSchema, DeleteUserByEmailParamsSchema, DeleteUserByUserIdParamsSchema, GetSentMessagesParamsSchema, GetUserByEmailParamsSchema, GetUserByIdParamsSchema, UpdateEmailParamsSchema, UpdateUserParamsSchema, UpdateUserSubscriptionsParamsSchema, } from "@iterable/api";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { defineAlias, defineCommand } from "./types.js";
|
|
4
|
+
export const userCommands = [
|
|
5
|
+
defineAlias({
|
|
6
|
+
category: "users",
|
|
7
|
+
name: "get",
|
|
8
|
+
description: "Get a user by email or userId (auto-detected)",
|
|
9
|
+
schema: z.object({
|
|
10
|
+
identifier: z.string().describe("Email address or userId"),
|
|
11
|
+
}),
|
|
12
|
+
execute: (client, params) => params.identifier.includes("@")
|
|
13
|
+
? client.getUserByEmail(params.identifier)
|
|
14
|
+
: client.getUserByUserId(params.identifier),
|
|
15
|
+
}),
|
|
16
|
+
defineCommand({
|
|
17
|
+
category: "users",
|
|
18
|
+
name: "get-by-email",
|
|
19
|
+
description: "Get user profile information by email address",
|
|
20
|
+
clientMethod: "getUserByEmail",
|
|
21
|
+
schema: GetUserByEmailParamsSchema,
|
|
22
|
+
execute: (client, params) => client.getUserByEmail(params.email),
|
|
23
|
+
}),
|
|
24
|
+
defineCommand({
|
|
25
|
+
category: "users",
|
|
26
|
+
name: "get-by-userid",
|
|
27
|
+
description: "Get user profile information by user ID",
|
|
28
|
+
clientMethod: "getUserByUserId",
|
|
29
|
+
schema: GetUserByIdParamsSchema,
|
|
30
|
+
execute: (client, params) => client.getUserByUserId(params.userId),
|
|
31
|
+
}),
|
|
32
|
+
defineCommand({
|
|
33
|
+
category: "users",
|
|
34
|
+
name: "update",
|
|
35
|
+
description: "Update user profile information (accepts email OR userId)",
|
|
36
|
+
clientMethod: "updateUser",
|
|
37
|
+
schema: UpdateUserParamsSchema,
|
|
38
|
+
}),
|
|
39
|
+
defineAlias({
|
|
40
|
+
category: "users",
|
|
41
|
+
name: "delete",
|
|
42
|
+
description: "Delete a user by email or userId (auto-detected)",
|
|
43
|
+
schema: z.object({
|
|
44
|
+
identifier: z.string().describe("Email address or userId"),
|
|
45
|
+
}),
|
|
46
|
+
execute: (client, params) => params.identifier.includes("@")
|
|
47
|
+
? client.deleteUserByEmail(params.identifier)
|
|
48
|
+
: client.deleteUserByUserId(params.identifier),
|
|
49
|
+
}),
|
|
50
|
+
defineCommand({
|
|
51
|
+
category: "users",
|
|
52
|
+
name: "delete-by-email",
|
|
53
|
+
description: "Delete a user by email address (asynchronous)",
|
|
54
|
+
clientMethod: "deleteUserByEmail",
|
|
55
|
+
schema: DeleteUserByEmailParamsSchema,
|
|
56
|
+
execute: (client, params) => client.deleteUserByEmail(params.email),
|
|
57
|
+
}),
|
|
58
|
+
defineCommand({
|
|
59
|
+
category: "users",
|
|
60
|
+
name: "delete-by-userid",
|
|
61
|
+
description: "Delete a user by user ID (asynchronous, deletes all users with same userId)",
|
|
62
|
+
clientMethod: "deleteUserByUserId",
|
|
63
|
+
schema: DeleteUserByUserIdParamsSchema,
|
|
64
|
+
execute: (client, params) => client.deleteUserByUserId(params.userId),
|
|
65
|
+
}),
|
|
66
|
+
defineCommand({
|
|
67
|
+
category: "users",
|
|
68
|
+
name: "update-email",
|
|
69
|
+
description: "Update a user's email address (only for email-based projects)",
|
|
70
|
+
clientMethod: "updateEmail",
|
|
71
|
+
schema: UpdateEmailParamsSchema,
|
|
72
|
+
}),
|
|
73
|
+
defineCommand({
|
|
74
|
+
category: "users",
|
|
75
|
+
name: "update-subscriptions",
|
|
76
|
+
description: "Update user subscriptions (overwrites existing data for any non-null fields specified)",
|
|
77
|
+
clientMethod: "updateUserSubscriptions",
|
|
78
|
+
schema: UpdateUserSubscriptionsParamsSchema,
|
|
79
|
+
}),
|
|
80
|
+
defineCommand({
|
|
81
|
+
category: "users",
|
|
82
|
+
name: "bulk-update",
|
|
83
|
+
description: "Update multiple users at once",
|
|
84
|
+
clientMethod: "bulkUpdateUsers",
|
|
85
|
+
schema: BulkUpdateUsersParamsSchema,
|
|
86
|
+
}),
|
|
87
|
+
defineCommand({
|
|
88
|
+
category: "users",
|
|
89
|
+
name: "get-sent-messages",
|
|
90
|
+
description: "Get messages sent to a specific user with optional filtering",
|
|
91
|
+
clientMethod: "getSentMessages",
|
|
92
|
+
schema: GetSentMessagesParamsSchema,
|
|
93
|
+
}),
|
|
94
|
+
defineCommand({
|
|
95
|
+
category: "users",
|
|
96
|
+
name: "get-fields",
|
|
97
|
+
description: "Get all user profile field definitions and their types",
|
|
98
|
+
clientMethod: "getUserFields",
|
|
99
|
+
schema: z.object({}),
|
|
100
|
+
execute: (client) => client.getUserFields(),
|
|
101
|
+
}),
|
|
102
|
+
];
|
|
103
|
+
//# sourceMappingURL=users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAgB9C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { UpdateWebhookParamsSchema } from "@iterable/api";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { defineCommand } from "./types.js";
|
|
4
|
+
export const webhookCommands = [
|
|
5
|
+
defineCommand({
|
|
6
|
+
category: "webhooks",
|
|
7
|
+
name: "list",
|
|
8
|
+
description: "Get all webhooks for the project",
|
|
9
|
+
clientMethod: "getWebhooks",
|
|
10
|
+
schema: z.object({}),
|
|
11
|
+
execute: (client) => client.getWebhooks(),
|
|
12
|
+
}),
|
|
13
|
+
defineCommand({
|
|
14
|
+
category: "webhooks",
|
|
15
|
+
name: "update",
|
|
16
|
+
description: "Update a webhook configuration",
|
|
17
|
+
clientMethod: "updateWebhook",
|
|
18
|
+
schema: UpdateWebhookParamsSchema,
|
|
19
|
+
}),
|
|
20
|
+
];
|
|
21
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAwB;IAClD,aAAa,CAAC;QACZ,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,kCAAkC;QAC/C,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;KAC1C,CAAC;IACF,aAAa,CAAC;QACZ,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gCAAgC;QAC7C,YAAY,EAAE,eAAe;QAC7B,MAAM,EAAE,yBAAyB;KAClC,CAAC;CACH,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface CliConfig {
|
|
2
|
+
readonly apiKey: string;
|
|
3
|
+
readonly baseUrl: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Load configuration.
|
|
7
|
+
*
|
|
8
|
+
* Resolution order:
|
|
9
|
+
* 1. ITERABLE_API_KEY env var (if set, use directly -- enables CI/scripting override)
|
|
10
|
+
* 2. Key manager active key
|
|
11
|
+
* 3. Error with guidance
|
|
12
|
+
*/
|
|
13
|
+
export declare function loadCliConfig(): Promise<CliConfig>;
|
|
14
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CA2DxD"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { logger } from "@iterable/api";
|
|
2
|
+
import { CliError } from "./errors.js";
|
|
3
|
+
import { getKeyManager } from "./key-manager.js";
|
|
4
|
+
import { isTestEnv } from "./utils/cli-env.js";
|
|
5
|
+
import { COMMAND_NAME } from "./utils/command-info.js";
|
|
6
|
+
import { sanitizeString } from "./utils/sanitize.js";
|
|
7
|
+
/**
|
|
8
|
+
* Load configuration.
|
|
9
|
+
*
|
|
10
|
+
* Resolution order:
|
|
11
|
+
* 1. ITERABLE_API_KEY env var (if set, use directly -- enables CI/scripting override)
|
|
12
|
+
* 2. Key manager active key
|
|
13
|
+
* 3. Error with guidance
|
|
14
|
+
*/
|
|
15
|
+
export async function loadCliConfig() {
|
|
16
|
+
const baseUrlFromEnv = process.env.ITERABLE_BASE_URL ?? "https://api.iterable.com";
|
|
17
|
+
if (process.env.ITERABLE_API_KEY) {
|
|
18
|
+
return { apiKey: process.env.ITERABLE_API_KEY, baseUrl: baseUrlFromEnv };
|
|
19
|
+
}
|
|
20
|
+
if (!isTestEnv()) {
|
|
21
|
+
try {
|
|
22
|
+
const keyManager = getKeyManager();
|
|
23
|
+
await keyManager.initialize();
|
|
24
|
+
if (await keyManager.hasKeys()) {
|
|
25
|
+
if (!(await keyManager.hasActiveKey())) {
|
|
26
|
+
throw new CliError(`No active API key. Run "${COMMAND_NAME} keys activate <name>" to activate one, or set ITERABLE_API_KEY environment variable.`, 2);
|
|
27
|
+
}
|
|
28
|
+
const apiKey = await keyManager.getActiveKey();
|
|
29
|
+
if (apiKey) {
|
|
30
|
+
let baseUrl = baseUrlFromEnv;
|
|
31
|
+
const meta = await keyManager.getActiveKeyMetadata();
|
|
32
|
+
if (meta?.baseUrl) {
|
|
33
|
+
baseUrl = meta.baseUrl;
|
|
34
|
+
}
|
|
35
|
+
return { apiKey, baseUrl };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (error instanceof CliError)
|
|
41
|
+
throw error;
|
|
42
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
43
|
+
if (errorMessage.includes("Key store not initialized") ||
|
|
44
|
+
errorMessage.includes("No API key found")) {
|
|
45
|
+
logger.debug("No keys in key manager, falling back to error");
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const sanitizedMessage = sanitizeString(errorMessage);
|
|
49
|
+
logger.error("Unexpected error loading from key manager", {
|
|
50
|
+
error: sanitizedMessage,
|
|
51
|
+
});
|
|
52
|
+
console.error(
|
|
53
|
+
// eslint-disable-line no-console
|
|
54
|
+
"Warning: Failed to load API key from key storage:", sanitizedMessage);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
throw new CliError(`No API key found. Run "${COMMAND_NAME} keys add" to add one, or set ITERABLE_API_KEY environment variable.`, 2);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,0BAA0B,CAAC;IAE9D,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;YAE9B,IAAI,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,QAAQ,CAChB,2BAA2B,YAAY,uFAAuF,EAC9H,CAAC,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC/C,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,OAAO,GAAG,cAAc,CAAC;oBAC7B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,oBAAoB,EAAE,CAAC;oBACrD,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;wBAClB,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBACzB,CAAC;oBACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAE3C,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzD,IACE,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC;gBAClD,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EACzC,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;gBACtD,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE;oBACxD,KAAK,EAAE,gBAAgB;iBACxB,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK;gBACX,iCAAiC;gBACjC,mDAAmD,EACnD,gBAAgB,CACjB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,0BAA0B,YAAY,sEAAsE,EAC5G,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class CliError extends Error {
|
|
2
|
+
readonly exitCode: number;
|
|
3
|
+
constructor(message: string, exitCode?: number);
|
|
4
|
+
}
|
|
5
|
+
export declare class ValidationError extends CliError {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class UsageError extends CliError {
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;aAGf,QAAQ,EAAE,MAAM;gBADhC,OAAO,EAAE,MAAM,EACC,QAAQ,GAAE,MAAU;CAKvC;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,UAAW,SAAQ,QAAQ;gBAC1B,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class CliError extends Error {
|
|
2
|
+
exitCode;
|
|
3
|
+
constructor(message, exitCode = 1) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.exitCode = exitCode;
|
|
6
|
+
this.name = "CliError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class ValidationError extends CliError {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message, 2);
|
|
12
|
+
this.name = "ValidationError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class UsageError extends CliError {
|
|
16
|
+
constructor(message) {
|
|
17
|
+
super(message, 2);
|
|
18
|
+
this.name = "UsageError";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IAFlB,YACE,OAAe,EACC,WAAmB,CAAC;QAEpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,aAAQ,GAAR,QAAQ,CAAY;QAGpC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { IterableClient } from "@iterable/api";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { loadCliConfig } from "./config.js";
|
|
5
|
+
import { CliError, UsageError } from "./errors.js";
|
|
6
|
+
import { formatOutput, getDefaultFormat } from "./output.js";
|
|
7
|
+
import { buildParser, parseCommand } from "./parser.js";
|
|
8
|
+
import { findCommand, parseArgs, showCategoryHelp, showGlobalHelp, showVersion, } from "./router.js";
|
|
9
|
+
import { COMMAND_NAME } from "./utils/command-info.js";
|
|
10
|
+
async function main() {
|
|
11
|
+
const parsed = parseArgs(process.argv.slice(2));
|
|
12
|
+
if (parsed.globalFlags.version) {
|
|
13
|
+
showVersion();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (!parsed.category || (parsed.globalFlags.help && !parsed.action)) {
|
|
17
|
+
if (parsed.category) {
|
|
18
|
+
showCategoryHelp(parsed.category);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
await showGlobalHelp();
|
|
22
|
+
}
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (parsed.category === "keys") {
|
|
26
|
+
const { handleKeysCommand } = await import("./keys-cli.js");
|
|
27
|
+
await handleKeysCommand(parsed.action ? [parsed.action, ...parsed.rest] : []);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (!parsed.action) {
|
|
31
|
+
showCategoryHelp(parsed.category);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const command = findCommand(parsed.category, parsed.action);
|
|
35
|
+
if (!command) {
|
|
36
|
+
throw new UsageError(`Unknown command: ${parsed.category} ${parsed.action}\nRun '${COMMAND_NAME} ${parsed.category} --help' to see available commands.`);
|
|
37
|
+
}
|
|
38
|
+
if (parsed.globalFlags.help) {
|
|
39
|
+
const built = buildParser(command.schema, `iterable ${parsed.category} ${parsed.action}`, command.positionalArgs, command.cliTransforms);
|
|
40
|
+
try {
|
|
41
|
+
built.showHelp();
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// zod-opts calls process.exit on --help
|
|
45
|
+
}
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const config = await loadCliConfig();
|
|
49
|
+
const client = new IterableClient({
|
|
50
|
+
apiKey: config.apiKey,
|
|
51
|
+
baseUrl: config.baseUrl,
|
|
52
|
+
});
|
|
53
|
+
try {
|
|
54
|
+
const params = await parseCommand(command.schema, `iterable ${parsed.category} ${parsed.action}`, parsed.rest, command.positionalArgs, command.cliTransforms);
|
|
55
|
+
const result = await command.execute(client, params);
|
|
56
|
+
const format = parsed.globalFlags.output ?? getDefaultFormat();
|
|
57
|
+
console.log(formatOutput(result, format, parsed.globalFlags.columns)); // eslint-disable-line no-console
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
client.destroy();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
main().catch(async (error) => {
|
|
64
|
+
const { IterableApiError, IterableNetworkError, IterableRawError, IterableResponseValidationError, } = await import("@iterable/api");
|
|
65
|
+
/* eslint-disable no-console */
|
|
66
|
+
if (error instanceof CliError) {
|
|
67
|
+
console.error(error.message);
|
|
68
|
+
process.exit(error.exitCode);
|
|
69
|
+
}
|
|
70
|
+
if (error instanceof z.ZodError) {
|
|
71
|
+
const details = error.issues
|
|
72
|
+
.map((i) => `${i.path.join(".")}: ${i.message}`)
|
|
73
|
+
.join(", ");
|
|
74
|
+
console.error(`Validation error: ${details}`);
|
|
75
|
+
process.exit(2);
|
|
76
|
+
}
|
|
77
|
+
if (error instanceof IterableApiError) {
|
|
78
|
+
console.error(`API error (${error.statusCode}): ${error.message}`);
|
|
79
|
+
if (error.endpoint)
|
|
80
|
+
console.error(` Endpoint: ${error.endpoint}`);
|
|
81
|
+
if (error.statusCode === 401) {
|
|
82
|
+
console.error(` Run '${COMMAND_NAME} keys add' to configure your API key`);
|
|
83
|
+
}
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
if (error instanceof IterableRawError) {
|
|
87
|
+
console.error(`API error (${error.statusCode}): ${error.message}`);
|
|
88
|
+
if (error.endpoint)
|
|
89
|
+
console.error(` Endpoint: ${error.endpoint}`);
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
if (error instanceof IterableResponseValidationError) {
|
|
93
|
+
console.error(`Response validation error (${error.statusCode}): ${error.message}`);
|
|
94
|
+
if (error.endpoint)
|
|
95
|
+
console.error(` Endpoint: ${error.endpoint}`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
if (error instanceof IterableNetworkError) {
|
|
99
|
+
console.error(`Network error: ${error.message}`);
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
/* eslint-enable no-console */
|
|
103
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
104
|
+
console.error(`Error: ${msg}`); // eslint-disable-line no-console
|
|
105
|
+
process.exit(1);
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|