@zapier/zapier-sdk 0.18.3 → 0.18.4
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/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +0 -18
- package/dist/api/schemas.d.ts +0 -109
- package/dist/api/schemas.d.ts.map +1 -1
- package/dist/api/schemas.js +0 -67
- package/dist/api/types.d.ts +2 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/index.cjs +337 -673
- package/dist/index.d.mts +52 -105
- package/dist/index.mjs +337 -673
- package/dist/plugins/listApps/index.d.ts +2 -8
- package/dist/plugins/listApps/index.d.ts.map +1 -1
- package/dist/plugins/listApps/index.js +4 -6
- package/dist/plugins/listApps/index.test.js +62 -82
- package/dist/plugins/listApps/schemas.d.ts +35 -14
- package/dist/plugins/listApps/schemas.d.ts.map +1 -1
- package/dist/plugins/listApps/schemas.js +44 -14
- package/dist/plugins/listAuthentications/index.test.js +16 -0
- package/dist/schemas/App.d.ts +28 -28
- package/dist/schemas/App.d.ts.map +1 -1
- package/dist/schemas/App.js +3 -8
- package/dist/sdk.d.ts +1 -1
- package/dist/sdk.test.js +12 -9
- package/package.json +1 -1
- package/dist/api/client.integration.test.d.ts +0 -5
- package/dist/api/client.integration.test.d.ts.map +0 -1
- package/dist/api/client.integration.test.js +0 -318
- package/dist/api/client.methods.test.d.ts +0 -2
- package/dist/api/client.methods.test.d.ts.map +0 -1
- package/dist/api/client.methods.test.js +0 -158
- package/dist/api/router.d.ts +0 -16
- package/dist/api/router.d.ts.map +0 -1
- package/dist/api/router.js +0 -31
- package/dist/api/router.test.d.ts +0 -2
- package/dist/api/router.test.d.ts.map +0 -1
- package/dist/api/router.test.js +0 -103
- package/dist/temporary-internal-core/handlers/listApps.d.ts +0 -67
- package/dist/temporary-internal-core/handlers/listApps.d.ts.map +0 -1
- package/dist/temporary-internal-core/handlers/listApps.js +0 -134
- package/dist/temporary-internal-core/handlers/listApps.test.d.ts +0 -2
- package/dist/temporary-internal-core/handlers/listApps.test.d.ts.map +0 -1
- package/dist/temporary-internal-core/handlers/listApps.test.js +0 -367
- package/dist/temporary-internal-core/index.d.ts +0 -18
- package/dist/temporary-internal-core/index.d.ts.map +0 -1
- package/dist/temporary-internal-core/index.js +0 -18
- package/dist/temporary-internal-core/schemas/apps/index.d.ts +0 -175
- package/dist/temporary-internal-core/schemas/apps/index.d.ts.map +0 -1
- package/dist/temporary-internal-core/schemas/apps/index.js +0 -97
- package/dist/temporary-internal-core/schemas/errors/index.d.ts +0 -139
- package/dist/temporary-internal-core/schemas/errors/index.d.ts.map +0 -1
- package/dist/temporary-internal-core/schemas/errors/index.js +0 -129
- package/dist/temporary-internal-core/schemas/implementations/index.d.ts +0 -127
- package/dist/temporary-internal-core/schemas/implementations/index.d.ts.map +0 -1
- package/dist/temporary-internal-core/schemas/implementations/index.js +0 -79
- package/dist/temporary-internal-core/types/handler.d.ts +0 -51
- package/dist/temporary-internal-core/types/handler.d.ts.map +0 -1
- package/dist/temporary-internal-core/types/handler.js +0 -8
- package/dist/temporary-internal-core/types/index.d.ts +0 -5
- package/dist/temporary-internal-core/types/index.d.ts.map +0 -1
- package/dist/temporary-internal-core/types/index.js +0 -4
- package/dist/temporary-internal-core/utils/app-locators.d.ts +0 -34
- package/dist/temporary-internal-core/utils/app-locators.d.ts.map +0 -1
- package/dist/temporary-internal-core/utils/app-locators.js +0 -39
- package/dist/temporary-internal-core/utils/string-utils.d.ts +0 -28
- package/dist/temporary-internal-core/utils/string-utils.d.ts.map +0 -1
- package/dist/temporary-internal-core/utils/string-utils.js +0 -52
- package/dist/temporary-internal-core/utils/transformations.d.ts +0 -18
- package/dist/temporary-internal-core/utils/transformations.d.ts.map +0 -1
- package/dist/temporary-internal-core/utils/transformations.js +0 -36
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { ListAppsQuerySchema, AppItemSchema as AppItemSchema$1 } from '@zapier/zapier-sdk-core/v0/schemas/apps';
|
|
2
3
|
import { ListAuthenticationsQuerySchema as ListAuthenticationsQuerySchema$1, AuthenticationItemSchema as AuthenticationItemSchema$1, GetAuthenticationParamSchema } from '@zapier/zapier-sdk-core/v0/schemas/authentications';
|
|
3
4
|
import { setTimeout as setTimeout$1 } from 'timers/promises';
|
|
4
5
|
import * as os from 'os';
|
|
@@ -795,462 +796,20 @@ function createPaginatedFunction(coreFn, schema, telemetry, explicitFunctionName
|
|
|
795
796
|
};
|
|
796
797
|
return namedFunctions[functionName];
|
|
797
798
|
}
|
|
798
|
-
var
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
age_in_days: z.number().optional(),
|
|
803
|
-
auth_type: z.string().optional(),
|
|
804
|
-
banner: z.string().optional(),
|
|
805
|
-
categories: z.array(
|
|
806
|
-
z.object({
|
|
807
|
-
id: z.number(),
|
|
808
|
-
name: z.string(),
|
|
809
|
-
slug: z.string()
|
|
810
|
-
})
|
|
811
|
-
).optional(),
|
|
812
|
-
images: z.object({
|
|
813
|
-
url_16x16: z.string().optional(),
|
|
814
|
-
url_32x32: z.string().optional(),
|
|
815
|
-
url_64x64: z.string().optional(),
|
|
816
|
-
url_128x128: z.string().optional()
|
|
817
|
-
}).optional(),
|
|
818
|
-
popularity: z.number().optional(),
|
|
819
|
-
has_filters: z.boolean().optional(),
|
|
820
|
-
has_reads: z.boolean().optional(),
|
|
821
|
-
has_searches: z.boolean().optional(),
|
|
822
|
-
has_searches_or_writes: z.boolean().optional(),
|
|
823
|
-
has_upfront_fields: z.boolean().optional(),
|
|
824
|
-
has_writes: z.boolean().optional(),
|
|
825
|
-
is_beta: z.boolean().optional(),
|
|
826
|
-
is_built_in: z.boolean().optional(),
|
|
827
|
-
is_deprecated: z.boolean().optional(),
|
|
828
|
-
is_featured: z.boolean().optional(),
|
|
829
|
-
is_hidden: z.boolean().optional(),
|
|
830
|
-
is_invite: z.boolean().optional(),
|
|
831
|
-
is_premium: z.boolean().optional(),
|
|
832
|
-
is_public: z.boolean().optional(),
|
|
833
|
-
is_upcoming: z.boolean().optional(),
|
|
834
|
-
version: z.string().optional(),
|
|
835
|
-
visibility: z.string().optional(),
|
|
836
|
-
actions: z.object({
|
|
837
|
-
read: z.number().optional(),
|
|
838
|
-
read_bulk: z.number().optional(),
|
|
839
|
-
write: z.number().optional(),
|
|
840
|
-
search: z.number().optional(),
|
|
841
|
-
search_or_write: z.number().optional(),
|
|
842
|
-
search_and_write: z.number().optional(),
|
|
843
|
-
filter: z.number().optional()
|
|
844
|
-
}).optional(),
|
|
845
|
-
description: z.string().optional(),
|
|
846
|
-
primary_color: z.string().optional(),
|
|
847
|
-
secondary_color: z.string().optional(),
|
|
848
|
-
classification: z.string().optional(),
|
|
849
|
-
api_docs_url: z.string().optional(),
|
|
850
|
-
image: z.string().optional()
|
|
851
|
-
});
|
|
852
|
-
z.object({
|
|
853
|
-
count: z.number(),
|
|
854
|
-
next: z.string().nullable().optional(),
|
|
855
|
-
previous: z.string().nullable().optional(),
|
|
856
|
-
results: z.array(ImplementationMetaSchema)
|
|
857
|
-
});
|
|
858
|
-
|
|
859
|
-
// src/temporary-internal-core/schemas/apps/index.ts
|
|
860
|
-
var ListAppsOptionsSchema = z.object({
|
|
799
|
+
var ListAppsSchema = ListAppsQuerySchema.omit({
|
|
800
|
+
offset: true
|
|
801
|
+
}).extend({
|
|
802
|
+
// Override appKeys to be an array instead of comma-separated string
|
|
861
803
|
appKeys: z.array(z.string()).optional().describe(
|
|
862
804
|
"Filter apps by app keys (e.g., 'SlackCLIAPI' or slug like 'github')"
|
|
863
805
|
),
|
|
864
|
-
|
|
806
|
+
// Override pageSize to make optional (base has default value)
|
|
865
807
|
pageSize: z.number().min(1).optional().describe("Number of apps per page"),
|
|
808
|
+
// SDK specific property for pagination/iterator helpers
|
|
866
809
|
maxItems: z.number().min(1).optional().describe("Maximum total items to return across all pages"),
|
|
810
|
+
// SDK specific property for pagination/iterator helpers
|
|
867
811
|
cursor: z.string().optional().describe("Cursor to start from")
|
|
868
812
|
}).merge(TelemetryMarkerSchema).describe("List all available apps with optional filtering");
|
|
869
|
-
var AppItemSchema = ImplementationMetaSchema.omit({
|
|
870
|
-
name: true,
|
|
871
|
-
id: true
|
|
872
|
-
}).extend({
|
|
873
|
-
title: z.string(),
|
|
874
|
-
key: z.string(),
|
|
875
|
-
implementation_id: z.string(),
|
|
876
|
-
version: z.string().optional()
|
|
877
|
-
});
|
|
878
|
-
z.object({
|
|
879
|
-
data: z.array(AppItemSchema),
|
|
880
|
-
nextCursor: z.string().optional()
|
|
881
|
-
});
|
|
882
|
-
var ListAppsHandlerRequestSchema = z.object({
|
|
883
|
-
implementationIds: z.union([z.string(), z.array(z.string())]).optional().describe(
|
|
884
|
-
"Pre-resolved implementation IDs - array or comma-separated string"
|
|
885
|
-
),
|
|
886
|
-
search: z.string().optional().describe("Optional search term to augment results"),
|
|
887
|
-
pageSize: z.union([z.string(), z.number()]).optional().describe("Number of apps per page"),
|
|
888
|
-
cursor: z.string().optional().describe("Pagination cursor")
|
|
889
|
-
}).transform((data) => ({
|
|
890
|
-
// Normalize implementationIds to array
|
|
891
|
-
implementationIds: typeof data.implementationIds === "string" ? data.implementationIds === "" ? [] : data.implementationIds.split(",") : data.implementationIds ?? [],
|
|
892
|
-
search: data.search,
|
|
893
|
-
// Normalize pageSize to number
|
|
894
|
-
pageSize: typeof data.pageSize === "string" ? parseInt(data.pageSize, 10) : data.pageSize,
|
|
895
|
-
cursor: data.cursor
|
|
896
|
-
}));
|
|
897
|
-
var NeedChoicesSchema = z.object({
|
|
898
|
-
key: z.string().optional(),
|
|
899
|
-
label: z.string().optional(),
|
|
900
|
-
sample: z.string().optional(),
|
|
901
|
-
value: z.string().optional()
|
|
902
|
-
});
|
|
903
|
-
var NeedSchema = z.object({
|
|
904
|
-
key: z.string(),
|
|
905
|
-
alters_custom_fields: z.boolean().nullable().optional(),
|
|
906
|
-
capabilities: z.array(z.string()).optional(),
|
|
907
|
-
choices: z.array(NeedChoicesSchema).optional(),
|
|
908
|
-
computed: z.boolean().nullable().optional(),
|
|
909
|
-
custom_field: z.boolean().optional(),
|
|
910
|
-
default: z.string().optional(),
|
|
911
|
-
depends_on: z.array(z.string()).optional(),
|
|
912
|
-
format: z.literal("SELECT").optional(),
|
|
913
|
-
from_search: z.boolean().optional(),
|
|
914
|
-
from_write: z.boolean().optional(),
|
|
915
|
-
help_text: z.string().optional(),
|
|
916
|
-
help_text_html: z.string().optional(),
|
|
917
|
-
input_format: z.array(z.string()).optional(),
|
|
918
|
-
label: z.string().optional(),
|
|
919
|
-
language: z.string().optional(),
|
|
920
|
-
parent_key: z.string().optional(),
|
|
921
|
-
placeholder: z.string().optional(),
|
|
922
|
-
prefill: z.string().optional(),
|
|
923
|
-
required: z.boolean().optional(),
|
|
924
|
-
searchfill: z.string().optional(),
|
|
925
|
-
send_in_json: z.boolean().optional(),
|
|
926
|
-
regex: z.string().optional(),
|
|
927
|
-
type: z.enum([
|
|
928
|
-
"integer",
|
|
929
|
-
"string",
|
|
930
|
-
"text",
|
|
931
|
-
"datetime",
|
|
932
|
-
"boolean",
|
|
933
|
-
"file",
|
|
934
|
-
"decimal",
|
|
935
|
-
"copy",
|
|
936
|
-
"password",
|
|
937
|
-
"dict",
|
|
938
|
-
"code",
|
|
939
|
-
"filter",
|
|
940
|
-
"json"
|
|
941
|
-
]).optional(),
|
|
942
|
-
list: z.boolean().optional()
|
|
943
|
-
});
|
|
944
|
-
z.object({
|
|
945
|
-
action_url: z.string().optional()
|
|
946
|
-
});
|
|
947
|
-
z.object({
|
|
948
|
-
can_use: z.boolean().optional()
|
|
949
|
-
});
|
|
950
|
-
var ActionSchema = z.object({
|
|
951
|
-
id: z.string().optional(),
|
|
952
|
-
type: z.enum([
|
|
953
|
-
"filter",
|
|
954
|
-
"read",
|
|
955
|
-
"read_bulk",
|
|
956
|
-
"run",
|
|
957
|
-
"search",
|
|
958
|
-
"search_and_write",
|
|
959
|
-
"search_or_write",
|
|
960
|
-
"write"
|
|
961
|
-
]),
|
|
962
|
-
key: z.string(),
|
|
963
|
-
name: z.string(),
|
|
964
|
-
description: z.string(),
|
|
965
|
-
is_important: z.boolean().optional(),
|
|
966
|
-
is_hidden: z.boolean().optional(),
|
|
967
|
-
selected_api: z.string().optional()
|
|
968
|
-
});
|
|
969
|
-
var ChoiceSchema = z.object({
|
|
970
|
-
value: z.union([z.string(), z.number()]),
|
|
971
|
-
label: z.string()
|
|
972
|
-
});
|
|
973
|
-
z.object({
|
|
974
|
-
key: z.string(),
|
|
975
|
-
label: z.string(),
|
|
976
|
-
type: z.enum([
|
|
977
|
-
"string",
|
|
978
|
-
"number",
|
|
979
|
-
"boolean",
|
|
980
|
-
"datetime",
|
|
981
|
-
"file",
|
|
982
|
-
"object",
|
|
983
|
-
"array"
|
|
984
|
-
]),
|
|
985
|
-
required: z.boolean(),
|
|
986
|
-
description: z.string().optional(),
|
|
987
|
-
choices: z.array(ChoiceSchema).optional()
|
|
988
|
-
});
|
|
989
|
-
z.object({
|
|
990
|
-
data: z.array(z.unknown())
|
|
991
|
-
});
|
|
992
|
-
var ActionFieldChoiceSchema = z.object({
|
|
993
|
-
value: z.union([z.string(), z.number()]),
|
|
994
|
-
label: z.string()
|
|
995
|
-
});
|
|
996
|
-
z.object({
|
|
997
|
-
key: z.string(),
|
|
998
|
-
label: z.string().optional(),
|
|
999
|
-
required: z.boolean(),
|
|
1000
|
-
type: z.string().optional(),
|
|
1001
|
-
helpText: z.string().optional(),
|
|
1002
|
-
helpTextHtml: z.string().optional(),
|
|
1003
|
-
choices: z.array(ActionFieldChoiceSchema).optional(),
|
|
1004
|
-
default: z.string().optional(),
|
|
1005
|
-
placeholder: z.string().optional(),
|
|
1006
|
-
computed: z.boolean().optional(),
|
|
1007
|
-
customField: z.boolean().optional(),
|
|
1008
|
-
dependsOn: z.array(z.string()).optional(),
|
|
1009
|
-
format: z.string().optional(),
|
|
1010
|
-
inputFormat: z.array(z.string()).optional()
|
|
1011
|
-
});
|
|
1012
|
-
z.object({
|
|
1013
|
-
id: z.number(),
|
|
1014
|
-
code: z.string(),
|
|
1015
|
-
user_id: z.number(),
|
|
1016
|
-
auto_provisioned: z.boolean(),
|
|
1017
|
-
first_name: z.string(),
|
|
1018
|
-
last_name: z.string(),
|
|
1019
|
-
username: z.string(),
|
|
1020
|
-
personas: z.string(),
|
|
1021
|
-
user_generated_personas: z.string(),
|
|
1022
|
-
last_login: z.string(),
|
|
1023
|
-
email: z.string(),
|
|
1024
|
-
email_hash: z.string(),
|
|
1025
|
-
email_confirmed: z.boolean(),
|
|
1026
|
-
timezone: z.string(),
|
|
1027
|
-
photo_url: z.string(),
|
|
1028
|
-
has_seen_notifications: z.record(z.string(), z.boolean().nullable()),
|
|
1029
|
-
signup: z.string(),
|
|
1030
|
-
since_signup: z.string(),
|
|
1031
|
-
has_activated: z.boolean(),
|
|
1032
|
-
enable_gz_creator: z.boolean(),
|
|
1033
|
-
should_see_nps_survey: z.boolean(),
|
|
1034
|
-
is_developer: z.boolean(),
|
|
1035
|
-
is_expert: z.boolean(),
|
|
1036
|
-
tos_agreement: z.boolean(),
|
|
1037
|
-
should_renew_tos: z.boolean(),
|
|
1038
|
-
is_gdpr_consented: z.boolean(),
|
|
1039
|
-
disable_ssl_check: z.boolean(),
|
|
1040
|
-
identity: z.number(),
|
|
1041
|
-
summary_schedule: z.string(),
|
|
1042
|
-
alert_triggers: z.string(),
|
|
1043
|
-
alert_actions: z.string(),
|
|
1044
|
-
is_staff: z.boolean(),
|
|
1045
|
-
is_zt_reviewer: z.boolean(),
|
|
1046
|
-
is_high_value: z.boolean(),
|
|
1047
|
-
is_temporary: z.boolean(),
|
|
1048
|
-
banner_message: z.string(),
|
|
1049
|
-
enable_totp_2fa: z.boolean(),
|
|
1050
|
-
viewed_help: z.record(z.string(), z.boolean()),
|
|
1051
|
-
show_editor_migration_mesaging: z.boolean(),
|
|
1052
|
-
switches: z.record(z.string(), z.unknown()),
|
|
1053
|
-
organizations: z.array(z.record(z.string(), z.unknown()).nullable()),
|
|
1054
|
-
primary_organization: z.record(z.string(), z.unknown()).nullable(),
|
|
1055
|
-
has_active_zaps: z.boolean(),
|
|
1056
|
-
has_google_sso: z.boolean(),
|
|
1057
|
-
auth_realm: z.string(),
|
|
1058
|
-
roles: z.array(
|
|
1059
|
-
z.object({
|
|
1060
|
-
account_id: z.number(),
|
|
1061
|
-
role: z.string()
|
|
1062
|
-
})
|
|
1063
|
-
)
|
|
1064
|
-
});
|
|
1065
|
-
z.object({
|
|
1066
|
-
age_in_days: z.string().optional(),
|
|
1067
|
-
api_docs_url: z.string().nullable().optional(),
|
|
1068
|
-
app_profile_url: z.string(),
|
|
1069
|
-
banner: z.string().optional(),
|
|
1070
|
-
categories: z.array(z.string()).optional(),
|
|
1071
|
-
// Service category names
|
|
1072
|
-
canonical_id: z.string().optional(),
|
|
1073
|
-
current_implementation_id: z.string(),
|
|
1074
|
-
days_since_last_update: z.string().optional(),
|
|
1075
|
-
description: z.string(),
|
|
1076
|
-
external_url: z.string(),
|
|
1077
|
-
hashtag: z.string().optional(),
|
|
1078
|
-
id: z.number().optional(),
|
|
1079
|
-
image: z.string().optional(),
|
|
1080
|
-
images: z.string().optional(),
|
|
1081
|
-
integration_overview_html: z.string().nullable().optional(),
|
|
1082
|
-
internal_id: z.string(),
|
|
1083
|
-
invite_url: z.string().nullable().optional(),
|
|
1084
|
-
is_beta: z.string().optional(),
|
|
1085
|
-
is_built_in: z.string().optional(),
|
|
1086
|
-
is_featured: z.string().optional(),
|
|
1087
|
-
is_premium: z.boolean().optional(),
|
|
1088
|
-
is_public: z.string().optional(),
|
|
1089
|
-
is_upcoming: z.string().optional(),
|
|
1090
|
-
learn_more_url: z.string(),
|
|
1091
|
-
name: z.string(),
|
|
1092
|
-
popularity: z.number(),
|
|
1093
|
-
primary_color: z.string(),
|
|
1094
|
-
request_count: z.string().optional(),
|
|
1095
|
-
slug: z.string(),
|
|
1096
|
-
zap_usage_count: z.number().nullable().optional()
|
|
1097
|
-
});
|
|
1098
|
-
var ServiceSchema = z.object({
|
|
1099
|
-
id: z.number().optional(),
|
|
1100
|
-
canonical_id: z.string().optional(),
|
|
1101
|
-
current_implementation_id: z.string(),
|
|
1102
|
-
name: z.string(),
|
|
1103
|
-
slug: z.string(),
|
|
1104
|
-
app_url: z.string().optional(),
|
|
1105
|
-
learn_more_url: z.string().optional(),
|
|
1106
|
-
description: z.string(),
|
|
1107
|
-
primary_color: z.string(),
|
|
1108
|
-
popularity: z.number(),
|
|
1109
|
-
image: z.string().optional(),
|
|
1110
|
-
images: z.string().optional()
|
|
1111
|
-
});
|
|
1112
|
-
z.object({
|
|
1113
|
-
results: z.array(ServiceSchema),
|
|
1114
|
-
next: z.string().nullable().optional(),
|
|
1115
|
-
previous: z.string().nullable().optional()
|
|
1116
|
-
});
|
|
1117
|
-
z.object({
|
|
1118
|
-
selected_api: z.string(),
|
|
1119
|
-
action: z.string(),
|
|
1120
|
-
type_of: z.string(),
|
|
1121
|
-
authentication_id: z.number().optional(),
|
|
1122
|
-
params: z.record(z.string(), z.unknown()).optional()
|
|
1123
|
-
});
|
|
1124
|
-
z.object({
|
|
1125
|
-
success: z.boolean(),
|
|
1126
|
-
needs: z.array(NeedSchema).optional(),
|
|
1127
|
-
errors: z.array(z.string()).optional(),
|
|
1128
|
-
last_fetched_at: z.string().optional(),
|
|
1129
|
-
schema: z.record(z.string(), z.unknown()).optional()
|
|
1130
|
-
});
|
|
1131
|
-
var ImplementationSchema = z.object({
|
|
1132
|
-
selected_api: z.string(),
|
|
1133
|
-
app_id: z.number().optional(),
|
|
1134
|
-
auth_type: z.string().optional(),
|
|
1135
|
-
auth_fields: z.string().optional(),
|
|
1136
|
-
actions: z.array(ActionSchema).optional(),
|
|
1137
|
-
is_deprecated: z.boolean().optional(),
|
|
1138
|
-
is_private_only: z.boolean().optional(),
|
|
1139
|
-
is_invite_only: z.boolean().optional(),
|
|
1140
|
-
is_beta: z.boolean().optional().default(false),
|
|
1141
|
-
is_premium: z.boolean().optional().default(false),
|
|
1142
|
-
is_hidden: z.string().optional(),
|
|
1143
|
-
name: z.string().optional(),
|
|
1144
|
-
slug: z.string().optional(),
|
|
1145
|
-
images: z.record(z.string(), z.string().nullable()).optional(),
|
|
1146
|
-
primary_color: z.string().optional(),
|
|
1147
|
-
secondary_color: z.string().optional(),
|
|
1148
|
-
current_implementation: z.string().optional(),
|
|
1149
|
-
other_implementations: z.string().optional()
|
|
1150
|
-
});
|
|
1151
|
-
z.object({
|
|
1152
|
-
count: z.number(),
|
|
1153
|
-
next: z.string().nullable().optional(),
|
|
1154
|
-
previous: z.string().nullable().optional(),
|
|
1155
|
-
results: z.array(ImplementationSchema)
|
|
1156
|
-
});
|
|
1157
|
-
var ImplementationMetaSchema2 = z.object({
|
|
1158
|
-
id: z.string(),
|
|
1159
|
-
// e.g. "100HiresCLIAPI@1.2.1"
|
|
1160
|
-
name: z.string(),
|
|
1161
|
-
slug: z.string(),
|
|
1162
|
-
age_in_days: z.number().optional(),
|
|
1163
|
-
auth_type: z.string().optional(),
|
|
1164
|
-
banner: z.string().optional(),
|
|
1165
|
-
categories: z.array(
|
|
1166
|
-
z.object({
|
|
1167
|
-
id: z.number(),
|
|
1168
|
-
name: z.string(),
|
|
1169
|
-
slug: z.string()
|
|
1170
|
-
})
|
|
1171
|
-
).optional(),
|
|
1172
|
-
images: z.object({
|
|
1173
|
-
url_16x16: z.string().optional(),
|
|
1174
|
-
url_32x32: z.string().optional(),
|
|
1175
|
-
url_64x64: z.string().optional(),
|
|
1176
|
-
url_128x128: z.string().optional()
|
|
1177
|
-
}).optional(),
|
|
1178
|
-
popularity: z.number().optional(),
|
|
1179
|
-
has_filters: z.boolean().optional(),
|
|
1180
|
-
has_reads: z.boolean().optional(),
|
|
1181
|
-
has_searches: z.boolean().optional(),
|
|
1182
|
-
has_searches_or_writes: z.boolean().optional(),
|
|
1183
|
-
has_upfront_fields: z.boolean().optional(),
|
|
1184
|
-
has_writes: z.boolean().optional(),
|
|
1185
|
-
is_beta: z.boolean().optional(),
|
|
1186
|
-
is_built_in: z.boolean().optional(),
|
|
1187
|
-
is_deprecated: z.boolean().optional(),
|
|
1188
|
-
is_featured: z.boolean().optional(),
|
|
1189
|
-
is_hidden: z.boolean().optional(),
|
|
1190
|
-
is_invite: z.boolean().optional(),
|
|
1191
|
-
is_premium: z.boolean().optional(),
|
|
1192
|
-
is_public: z.boolean().optional(),
|
|
1193
|
-
is_upcoming: z.boolean().optional(),
|
|
1194
|
-
version: z.string().optional(),
|
|
1195
|
-
visibility: z.string().optional(),
|
|
1196
|
-
actions: z.object({
|
|
1197
|
-
read: z.number().optional(),
|
|
1198
|
-
read_bulk: z.number().optional(),
|
|
1199
|
-
write: z.number().optional(),
|
|
1200
|
-
search: z.number().optional(),
|
|
1201
|
-
search_or_write: z.number().optional(),
|
|
1202
|
-
search_and_write: z.number().optional(),
|
|
1203
|
-
filter: z.number().optional()
|
|
1204
|
-
}).optional(),
|
|
1205
|
-
description: z.string().optional(),
|
|
1206
|
-
primary_color: z.string().optional(),
|
|
1207
|
-
secondary_color: z.string().optional(),
|
|
1208
|
-
classification: z.string().optional(),
|
|
1209
|
-
api_docs_url: z.string().optional(),
|
|
1210
|
-
image: z.string().optional()
|
|
1211
|
-
});
|
|
1212
|
-
z.object({
|
|
1213
|
-
count: z.number(),
|
|
1214
|
-
next: z.string().nullable().optional(),
|
|
1215
|
-
previous: z.string().nullable().optional(),
|
|
1216
|
-
results: z.array(ImplementationMetaSchema2)
|
|
1217
|
-
});
|
|
1218
|
-
var NeedChoicesResponseMetaSchema = z.object({
|
|
1219
|
-
page: z.string().nullable().optional()
|
|
1220
|
-
});
|
|
1221
|
-
var NeedChoicesResponseLinksSchema = z.object({
|
|
1222
|
-
next: z.string().nullable().optional(),
|
|
1223
|
-
prev: z.string().nullable().optional()
|
|
1224
|
-
});
|
|
1225
|
-
z.object({
|
|
1226
|
-
selected_api: z.string().optional().describe(
|
|
1227
|
-
"Something like `SlackAPI` (for Python apps) or `SplitwiseCLIAPI@1.0.0` (for CLI apps). Non-public apps are fine as long as the authed user can access them."
|
|
1228
|
-
),
|
|
1229
|
-
authentication_id: z.coerce.number().optional().describe(
|
|
1230
|
-
"If the app needs auth, provide an `authentication_id` that has the `selected_api` of the app you want to run. Can be any auth visible to the user (including shared)."
|
|
1231
|
-
),
|
|
1232
|
-
params: z.record(z.string(), z.unknown()).optional().describe(
|
|
1233
|
-
"Object that matches the input the node would normally get. Has all the same keys/types as the `needs` of the action."
|
|
1234
|
-
),
|
|
1235
|
-
page: z.number().optional().default(0),
|
|
1236
|
-
prefill: z.string().optional().describe(
|
|
1237
|
-
"The prefill string to indicate what we're fetching choices for. Likely something like `spreadsheet.id.title`. Must be provided alongside `selected_api` if both `action_id` and `input_field_id` are not."
|
|
1238
|
-
),
|
|
1239
|
-
action_id: z.string().optional().describe(
|
|
1240
|
-
"The id that will be used to lookup the Action for prefill lookup. If provided, `input_field_id` is required, else `prefill` must be provided."
|
|
1241
|
-
),
|
|
1242
|
-
input_field_id: z.string().optional().describe(
|
|
1243
|
-
"The id (key) of the input field (Need) that dynamic choices are being retrieved for. If provided, `action_id` is required, else `prefill` must be provided."
|
|
1244
|
-
)
|
|
1245
|
-
});
|
|
1246
|
-
z.object({
|
|
1247
|
-
success: z.boolean(),
|
|
1248
|
-
choices: z.array(NeedChoicesSchema).optional(),
|
|
1249
|
-
next_page: z.number().optional(),
|
|
1250
|
-
errors: z.array(z.string()).optional(),
|
|
1251
|
-
meta: NeedChoicesResponseMetaSchema.optional(),
|
|
1252
|
-
links: NeedChoicesResponseLinksSchema.optional()
|
|
1253
|
-
});
|
|
1254
813
|
|
|
1255
814
|
// src/utils/string-utils.ts
|
|
1256
815
|
function toTitleCase(input) {
|
|
@@ -1268,35 +827,25 @@ function stripPageSuffix(functionName) {
|
|
|
1268
827
|
}
|
|
1269
828
|
|
|
1270
829
|
// src/schemas/App.ts
|
|
1271
|
-
var
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
}),
|
|
1280
|
-
{
|
|
1281
|
-
format: (item) => {
|
|
1282
|
-
const additionalKeys = [];
|
|
1283
|
-
if (item.slug && item.slug !== item.key) {
|
|
1284
|
-
additionalKeys.push(item.slug);
|
|
1285
|
-
const snakeCaseSlug = toSnakeCase(item.slug);
|
|
1286
|
-
if (snakeCaseSlug !== item.slug && snakeCaseSlug !== item.key) {
|
|
1287
|
-
additionalKeys.push(snakeCaseSlug);
|
|
1288
|
-
}
|
|
830
|
+
var AppItemSchema = withFormatter(AppItemSchema$1, {
|
|
831
|
+
format: (item) => {
|
|
832
|
+
const additionalKeys = [];
|
|
833
|
+
if (item.slug && item.slug !== item.key) {
|
|
834
|
+
additionalKeys.push(item.slug);
|
|
835
|
+
const snakeCaseSlug = toSnakeCase(item.slug);
|
|
836
|
+
if (snakeCaseSlug !== item.slug && snakeCaseSlug !== item.key) {
|
|
837
|
+
additionalKeys.push(snakeCaseSlug);
|
|
1289
838
|
}
|
|
1290
|
-
return {
|
|
1291
|
-
title: item.title,
|
|
1292
|
-
key: item.key,
|
|
1293
|
-
keys: [item.key, ...additionalKeys],
|
|
1294
|
-
description: item.description,
|
|
1295
|
-
details: []
|
|
1296
|
-
};
|
|
1297
839
|
}
|
|
840
|
+
return {
|
|
841
|
+
title: item.title,
|
|
842
|
+
key: item.key,
|
|
843
|
+
keys: [item.key, ...additionalKeys],
|
|
844
|
+
description: item.description,
|
|
845
|
+
details: []
|
|
846
|
+
};
|
|
1298
847
|
}
|
|
1299
|
-
);
|
|
848
|
+
});
|
|
1300
849
|
|
|
1301
850
|
// src/utils/telemetry-utils.ts
|
|
1302
851
|
function createTelemetryCallback(emitMethodCalled, methodName) {
|
|
@@ -1339,7 +888,8 @@ var listAppsPlugin = ({ context }) => {
|
|
|
1339
888
|
if (appKeys.length > 0 && appLocators.length === 0 && !options.search) {
|
|
1340
889
|
return {
|
|
1341
890
|
data: [],
|
|
1342
|
-
|
|
891
|
+
links: { next: null },
|
|
892
|
+
meta: { count: 0, limit: 0, offset: 0 }
|
|
1343
893
|
};
|
|
1344
894
|
}
|
|
1345
895
|
const implementationIds = appLocators.map((locator) => {
|
|
@@ -1348,17 +898,17 @@ var listAppsPlugin = ({ context }) => {
|
|
|
1348
898
|
});
|
|
1349
899
|
return await api.get("/api/v0/apps", {
|
|
1350
900
|
searchParams: {
|
|
1351
|
-
|
|
901
|
+
appKeys: implementationIds.join(","),
|
|
1352
902
|
...options.search && { search: options.search },
|
|
1353
903
|
pageSize: options.pageSize.toString(),
|
|
1354
|
-
...options.cursor && {
|
|
904
|
+
...options.cursor && { offset: options.cursor }
|
|
1355
905
|
}
|
|
1356
906
|
});
|
|
1357
907
|
}
|
|
1358
908
|
const methodName = stripPageSuffix(listAppsPage.name);
|
|
1359
909
|
const listAppsDefinition = createPaginatedFunction(
|
|
1360
910
|
listAppsPage,
|
|
1361
|
-
|
|
911
|
+
ListAppsSchema,
|
|
1362
912
|
createTelemetryCallback(context.eventEmission.emitMethodCalled, methodName),
|
|
1363
913
|
methodName
|
|
1364
914
|
);
|
|
@@ -1370,8 +920,8 @@ var listAppsPlugin = ({ context }) => {
|
|
|
1370
920
|
categories: ["app"],
|
|
1371
921
|
type: "list",
|
|
1372
922
|
itemType: "App",
|
|
1373
|
-
inputSchema:
|
|
1374
|
-
outputSchema:
|
|
923
|
+
inputSchema: ListAppsSchema,
|
|
924
|
+
outputSchema: AppItemSchema
|
|
1375
925
|
}
|
|
1376
926
|
}
|
|
1377
927
|
}
|
|
@@ -1463,13 +1013,311 @@ var ListActionsSchema = z.object({
|
|
|
1463
1013
|
appKey: AppKeyPropertySchema.describe(
|
|
1464
1014
|
"App key of actions to list (e.g., 'SlackCLIAPI' or slug like 'github')"
|
|
1465
1015
|
),
|
|
1466
|
-
actionType: ActionTypePropertySchema.optional().describe(
|
|
1467
|
-
"Filter actions by type"
|
|
1016
|
+
actionType: ActionTypePropertySchema.optional().describe(
|
|
1017
|
+
"Filter actions by type"
|
|
1018
|
+
),
|
|
1019
|
+
pageSize: z.number().min(1).optional().describe("Number of actions per page"),
|
|
1020
|
+
maxItems: z.number().min(1).optional().describe("Maximum total items to return across all pages"),
|
|
1021
|
+
cursor: z.string().optional().describe("Cursor to start from")
|
|
1022
|
+
}).merge(TelemetryMarkerSchema).describe("List all actions for a specific app");
|
|
1023
|
+
var NeedChoicesSchema = z.object({
|
|
1024
|
+
key: z.string().optional(),
|
|
1025
|
+
label: z.string().optional(),
|
|
1026
|
+
sample: z.string().optional(),
|
|
1027
|
+
value: z.string().optional()
|
|
1028
|
+
});
|
|
1029
|
+
var NeedSchema = z.object({
|
|
1030
|
+
key: z.string(),
|
|
1031
|
+
alters_custom_fields: z.boolean().nullable().optional(),
|
|
1032
|
+
capabilities: z.array(z.string()).optional(),
|
|
1033
|
+
choices: z.array(NeedChoicesSchema).optional(),
|
|
1034
|
+
computed: z.boolean().nullable().optional(),
|
|
1035
|
+
custom_field: z.boolean().optional(),
|
|
1036
|
+
default: z.string().optional(),
|
|
1037
|
+
depends_on: z.array(z.string()).optional(),
|
|
1038
|
+
format: z.literal("SELECT").optional(),
|
|
1039
|
+
from_search: z.boolean().optional(),
|
|
1040
|
+
from_write: z.boolean().optional(),
|
|
1041
|
+
help_text: z.string().optional(),
|
|
1042
|
+
help_text_html: z.string().optional(),
|
|
1043
|
+
input_format: z.array(z.string()).optional(),
|
|
1044
|
+
label: z.string().optional(),
|
|
1045
|
+
language: z.string().optional(),
|
|
1046
|
+
parent_key: z.string().optional(),
|
|
1047
|
+
placeholder: z.string().optional(),
|
|
1048
|
+
prefill: z.string().optional(),
|
|
1049
|
+
required: z.boolean().optional(),
|
|
1050
|
+
searchfill: z.string().optional(),
|
|
1051
|
+
send_in_json: z.boolean().optional(),
|
|
1052
|
+
regex: z.string().optional(),
|
|
1053
|
+
type: z.enum([
|
|
1054
|
+
"integer",
|
|
1055
|
+
"string",
|
|
1056
|
+
"text",
|
|
1057
|
+
"datetime",
|
|
1058
|
+
"boolean",
|
|
1059
|
+
"file",
|
|
1060
|
+
"decimal",
|
|
1061
|
+
"copy",
|
|
1062
|
+
"password",
|
|
1063
|
+
"dict",
|
|
1064
|
+
"code",
|
|
1065
|
+
"filter",
|
|
1066
|
+
"json"
|
|
1067
|
+
]).optional(),
|
|
1068
|
+
list: z.boolean().optional()
|
|
1069
|
+
});
|
|
1070
|
+
z.object({
|
|
1071
|
+
action_url: z.string().optional()
|
|
1072
|
+
});
|
|
1073
|
+
z.object({
|
|
1074
|
+
can_use: z.boolean().optional()
|
|
1075
|
+
});
|
|
1076
|
+
var ActionSchema = z.object({
|
|
1077
|
+
id: z.string().optional(),
|
|
1078
|
+
type: z.enum([
|
|
1079
|
+
"filter",
|
|
1080
|
+
"read",
|
|
1081
|
+
"read_bulk",
|
|
1082
|
+
"run",
|
|
1083
|
+
"search",
|
|
1084
|
+
"search_and_write",
|
|
1085
|
+
"search_or_write",
|
|
1086
|
+
"write"
|
|
1087
|
+
]),
|
|
1088
|
+
key: z.string(),
|
|
1089
|
+
name: z.string(),
|
|
1090
|
+
description: z.string(),
|
|
1091
|
+
is_important: z.boolean().optional(),
|
|
1092
|
+
is_hidden: z.boolean().optional(),
|
|
1093
|
+
selected_api: z.string().optional()
|
|
1094
|
+
});
|
|
1095
|
+
var ChoiceSchema = z.object({
|
|
1096
|
+
value: z.union([z.string(), z.number()]),
|
|
1097
|
+
label: z.string()
|
|
1098
|
+
});
|
|
1099
|
+
z.object({
|
|
1100
|
+
key: z.string(),
|
|
1101
|
+
label: z.string(),
|
|
1102
|
+
type: z.enum([
|
|
1103
|
+
"string",
|
|
1104
|
+
"number",
|
|
1105
|
+
"boolean",
|
|
1106
|
+
"datetime",
|
|
1107
|
+
"file",
|
|
1108
|
+
"object",
|
|
1109
|
+
"array"
|
|
1110
|
+
]),
|
|
1111
|
+
required: z.boolean(),
|
|
1112
|
+
description: z.string().optional(),
|
|
1113
|
+
choices: z.array(ChoiceSchema).optional()
|
|
1114
|
+
});
|
|
1115
|
+
z.object({
|
|
1116
|
+
data: z.array(z.unknown())
|
|
1117
|
+
});
|
|
1118
|
+
var ActionFieldChoiceSchema = z.object({
|
|
1119
|
+
value: z.union([z.string(), z.number()]),
|
|
1120
|
+
label: z.string()
|
|
1121
|
+
});
|
|
1122
|
+
z.object({
|
|
1123
|
+
key: z.string(),
|
|
1124
|
+
label: z.string().optional(),
|
|
1125
|
+
required: z.boolean(),
|
|
1126
|
+
type: z.string().optional(),
|
|
1127
|
+
helpText: z.string().optional(),
|
|
1128
|
+
helpTextHtml: z.string().optional(),
|
|
1129
|
+
choices: z.array(ActionFieldChoiceSchema).optional(),
|
|
1130
|
+
default: z.string().optional(),
|
|
1131
|
+
placeholder: z.string().optional(),
|
|
1132
|
+
computed: z.boolean().optional(),
|
|
1133
|
+
customField: z.boolean().optional(),
|
|
1134
|
+
dependsOn: z.array(z.string()).optional(),
|
|
1135
|
+
format: z.string().optional(),
|
|
1136
|
+
inputFormat: z.array(z.string()).optional()
|
|
1137
|
+
});
|
|
1138
|
+
z.object({
|
|
1139
|
+
id: z.number(),
|
|
1140
|
+
code: z.string(),
|
|
1141
|
+
user_id: z.number(),
|
|
1142
|
+
auto_provisioned: z.boolean(),
|
|
1143
|
+
first_name: z.string(),
|
|
1144
|
+
last_name: z.string(),
|
|
1145
|
+
username: z.string(),
|
|
1146
|
+
personas: z.string(),
|
|
1147
|
+
user_generated_personas: z.string(),
|
|
1148
|
+
last_login: z.string(),
|
|
1149
|
+
email: z.string(),
|
|
1150
|
+
email_hash: z.string(),
|
|
1151
|
+
email_confirmed: z.boolean(),
|
|
1152
|
+
timezone: z.string(),
|
|
1153
|
+
photo_url: z.string(),
|
|
1154
|
+
has_seen_notifications: z.record(z.string(), z.boolean().nullable()),
|
|
1155
|
+
signup: z.string(),
|
|
1156
|
+
since_signup: z.string(),
|
|
1157
|
+
has_activated: z.boolean(),
|
|
1158
|
+
enable_gz_creator: z.boolean(),
|
|
1159
|
+
should_see_nps_survey: z.boolean(),
|
|
1160
|
+
is_developer: z.boolean(),
|
|
1161
|
+
is_expert: z.boolean(),
|
|
1162
|
+
tos_agreement: z.boolean(),
|
|
1163
|
+
should_renew_tos: z.boolean(),
|
|
1164
|
+
is_gdpr_consented: z.boolean(),
|
|
1165
|
+
disable_ssl_check: z.boolean(),
|
|
1166
|
+
identity: z.number(),
|
|
1167
|
+
summary_schedule: z.string(),
|
|
1168
|
+
alert_triggers: z.string(),
|
|
1169
|
+
alert_actions: z.string(),
|
|
1170
|
+
is_staff: z.boolean(),
|
|
1171
|
+
is_zt_reviewer: z.boolean(),
|
|
1172
|
+
is_high_value: z.boolean(),
|
|
1173
|
+
is_temporary: z.boolean(),
|
|
1174
|
+
banner_message: z.string(),
|
|
1175
|
+
enable_totp_2fa: z.boolean(),
|
|
1176
|
+
viewed_help: z.record(z.string(), z.boolean()),
|
|
1177
|
+
show_editor_migration_mesaging: z.boolean(),
|
|
1178
|
+
switches: z.record(z.string(), z.unknown()),
|
|
1179
|
+
organizations: z.array(z.record(z.string(), z.unknown()).nullable()),
|
|
1180
|
+
primary_organization: z.record(z.string(), z.unknown()).nullable(),
|
|
1181
|
+
has_active_zaps: z.boolean(),
|
|
1182
|
+
has_google_sso: z.boolean(),
|
|
1183
|
+
auth_realm: z.string(),
|
|
1184
|
+
roles: z.array(
|
|
1185
|
+
z.object({
|
|
1186
|
+
account_id: z.number(),
|
|
1187
|
+
role: z.string()
|
|
1188
|
+
})
|
|
1189
|
+
)
|
|
1190
|
+
});
|
|
1191
|
+
z.object({
|
|
1192
|
+
age_in_days: z.string().optional(),
|
|
1193
|
+
api_docs_url: z.string().nullable().optional(),
|
|
1194
|
+
app_profile_url: z.string(),
|
|
1195
|
+
banner: z.string().optional(),
|
|
1196
|
+
categories: z.array(z.string()).optional(),
|
|
1197
|
+
// Service category names
|
|
1198
|
+
canonical_id: z.string().optional(),
|
|
1199
|
+
current_implementation_id: z.string(),
|
|
1200
|
+
days_since_last_update: z.string().optional(),
|
|
1201
|
+
description: z.string(),
|
|
1202
|
+
external_url: z.string(),
|
|
1203
|
+
hashtag: z.string().optional(),
|
|
1204
|
+
id: z.number().optional(),
|
|
1205
|
+
image: z.string().optional(),
|
|
1206
|
+
images: z.string().optional(),
|
|
1207
|
+
integration_overview_html: z.string().nullable().optional(),
|
|
1208
|
+
internal_id: z.string(),
|
|
1209
|
+
invite_url: z.string().nullable().optional(),
|
|
1210
|
+
is_beta: z.string().optional(),
|
|
1211
|
+
is_built_in: z.string().optional(),
|
|
1212
|
+
is_featured: z.string().optional(),
|
|
1213
|
+
is_premium: z.boolean().optional(),
|
|
1214
|
+
is_public: z.string().optional(),
|
|
1215
|
+
is_upcoming: z.string().optional(),
|
|
1216
|
+
learn_more_url: z.string(),
|
|
1217
|
+
name: z.string(),
|
|
1218
|
+
popularity: z.number(),
|
|
1219
|
+
primary_color: z.string(),
|
|
1220
|
+
request_count: z.string().optional(),
|
|
1221
|
+
slug: z.string(),
|
|
1222
|
+
zap_usage_count: z.number().nullable().optional()
|
|
1223
|
+
});
|
|
1224
|
+
var ServiceSchema = z.object({
|
|
1225
|
+
id: z.number().optional(),
|
|
1226
|
+
canonical_id: z.string().optional(),
|
|
1227
|
+
current_implementation_id: z.string(),
|
|
1228
|
+
name: z.string(),
|
|
1229
|
+
slug: z.string(),
|
|
1230
|
+
app_url: z.string().optional(),
|
|
1231
|
+
learn_more_url: z.string().optional(),
|
|
1232
|
+
description: z.string(),
|
|
1233
|
+
primary_color: z.string(),
|
|
1234
|
+
popularity: z.number(),
|
|
1235
|
+
image: z.string().optional(),
|
|
1236
|
+
images: z.string().optional()
|
|
1237
|
+
});
|
|
1238
|
+
z.object({
|
|
1239
|
+
results: z.array(ServiceSchema),
|
|
1240
|
+
next: z.string().nullable().optional(),
|
|
1241
|
+
previous: z.string().nullable().optional()
|
|
1242
|
+
});
|
|
1243
|
+
z.object({
|
|
1244
|
+
selected_api: z.string(),
|
|
1245
|
+
action: z.string(),
|
|
1246
|
+
type_of: z.string(),
|
|
1247
|
+
authentication_id: z.number().optional(),
|
|
1248
|
+
params: z.record(z.string(), z.unknown()).optional()
|
|
1249
|
+
});
|
|
1250
|
+
z.object({
|
|
1251
|
+
success: z.boolean(),
|
|
1252
|
+
needs: z.array(NeedSchema).optional(),
|
|
1253
|
+
errors: z.array(z.string()).optional(),
|
|
1254
|
+
last_fetched_at: z.string().optional(),
|
|
1255
|
+
schema: z.record(z.string(), z.unknown()).optional()
|
|
1256
|
+
});
|
|
1257
|
+
var ImplementationSchema = z.object({
|
|
1258
|
+
selected_api: z.string(),
|
|
1259
|
+
app_id: z.number().optional(),
|
|
1260
|
+
auth_type: z.string().optional(),
|
|
1261
|
+
auth_fields: z.string().optional(),
|
|
1262
|
+
actions: z.array(ActionSchema).optional(),
|
|
1263
|
+
is_deprecated: z.boolean().optional(),
|
|
1264
|
+
is_private_only: z.boolean().optional(),
|
|
1265
|
+
is_invite_only: z.boolean().optional(),
|
|
1266
|
+
is_beta: z.boolean().optional().default(false),
|
|
1267
|
+
is_premium: z.boolean().optional().default(false),
|
|
1268
|
+
is_hidden: z.string().optional(),
|
|
1269
|
+
name: z.string().optional(),
|
|
1270
|
+
slug: z.string().optional(),
|
|
1271
|
+
images: z.record(z.string(), z.string().nullable()).optional(),
|
|
1272
|
+
primary_color: z.string().optional(),
|
|
1273
|
+
secondary_color: z.string().optional(),
|
|
1274
|
+
current_implementation: z.string().optional(),
|
|
1275
|
+
other_implementations: z.string().optional()
|
|
1276
|
+
});
|
|
1277
|
+
z.object({
|
|
1278
|
+
count: z.number(),
|
|
1279
|
+
next: z.string().nullable().optional(),
|
|
1280
|
+
previous: z.string().nullable().optional(),
|
|
1281
|
+
results: z.array(ImplementationSchema)
|
|
1282
|
+
});
|
|
1283
|
+
var NeedChoicesResponseMetaSchema = z.object({
|
|
1284
|
+
page: z.string().nullable().optional()
|
|
1285
|
+
});
|
|
1286
|
+
var NeedChoicesResponseLinksSchema = z.object({
|
|
1287
|
+
next: z.string().nullable().optional(),
|
|
1288
|
+
prev: z.string().nullable().optional()
|
|
1289
|
+
});
|
|
1290
|
+
z.object({
|
|
1291
|
+
selected_api: z.string().optional().describe(
|
|
1292
|
+
"Something like `SlackAPI` (for Python apps) or `SplitwiseCLIAPI@1.0.0` (for CLI apps). Non-public apps are fine as long as the authed user can access them."
|
|
1293
|
+
),
|
|
1294
|
+
authentication_id: z.coerce.number().optional().describe(
|
|
1295
|
+
"If the app needs auth, provide an `authentication_id` that has the `selected_api` of the app you want to run. Can be any auth visible to the user (including shared)."
|
|
1468
1296
|
),
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1297
|
+
params: z.record(z.string(), z.unknown()).optional().describe(
|
|
1298
|
+
"Object that matches the input the node would normally get. Has all the same keys/types as the `needs` of the action."
|
|
1299
|
+
),
|
|
1300
|
+
page: z.number().optional().default(0),
|
|
1301
|
+
prefill: z.string().optional().describe(
|
|
1302
|
+
"The prefill string to indicate what we're fetching choices for. Likely something like `spreadsheet.id.title`. Must be provided alongside `selected_api` if both `action_id` and `input_field_id` are not."
|
|
1303
|
+
),
|
|
1304
|
+
action_id: z.string().optional().describe(
|
|
1305
|
+
"The id that will be used to lookup the Action for prefill lookup. If provided, `input_field_id` is required, else `prefill` must be provided."
|
|
1306
|
+
),
|
|
1307
|
+
input_field_id: z.string().optional().describe(
|
|
1308
|
+
"The id (key) of the input field (Need) that dynamic choices are being retrieved for. If provided, `action_id` is required, else `prefill` must be provided."
|
|
1309
|
+
)
|
|
1310
|
+
});
|
|
1311
|
+
z.object({
|
|
1312
|
+
success: z.boolean(),
|
|
1313
|
+
choices: z.array(NeedChoicesSchema).optional(),
|
|
1314
|
+
next_page: z.number().optional(),
|
|
1315
|
+
errors: z.array(z.string()).optional(),
|
|
1316
|
+
meta: NeedChoicesResponseMetaSchema.optional(),
|
|
1317
|
+
links: NeedChoicesResponseLinksSchema.optional()
|
|
1318
|
+
});
|
|
1319
|
+
|
|
1320
|
+
// src/schemas/Action.ts
|
|
1473
1321
|
var ActionItemSchema = withFormatter(
|
|
1474
1322
|
ActionSchema.omit({ type: true, name: true, selected_api: true }).extend({
|
|
1475
1323
|
app_key: z.string(),
|
|
@@ -2330,7 +2178,7 @@ var getAppPlugin = ({ sdk, context }) => {
|
|
|
2330
2178
|
type: "item",
|
|
2331
2179
|
itemType: "App",
|
|
2332
2180
|
inputSchema: GetAppSchema,
|
|
2333
|
-
outputSchema:
|
|
2181
|
+
outputSchema: AppItemSchema,
|
|
2334
2182
|
resolvers: {
|
|
2335
2183
|
appKey: appKeyResolver
|
|
2336
2184
|
}
|
|
@@ -3673,176 +3521,6 @@ function getTrackingBaseUrl({
|
|
|
3673
3521
|
return ZAPIER_BASE_URL;
|
|
3674
3522
|
}
|
|
3675
3523
|
|
|
3676
|
-
// src/temporary-internal-core/utils/string-utils.ts
|
|
3677
|
-
function splitVersionedKey2(versionedKey) {
|
|
3678
|
-
const parts = versionedKey.split("@");
|
|
3679
|
-
if (parts.length >= 2) {
|
|
3680
|
-
const baseKey = parts[0];
|
|
3681
|
-
const version = parts.slice(1).join("@");
|
|
3682
|
-
return [baseKey, version];
|
|
3683
|
-
}
|
|
3684
|
-
return [versionedKey, void 0];
|
|
3685
|
-
}
|
|
3686
|
-
|
|
3687
|
-
// src/temporary-internal-core/utils/transformations.ts
|
|
3688
|
-
function transformImplementationMetaToAppItem(implementationMeta) {
|
|
3689
|
-
const [selectedApi, appVersion] = splitVersionedKey2(implementationMeta.id);
|
|
3690
|
-
const { id, name, ...restOfImplementationMeta } = implementationMeta;
|
|
3691
|
-
return {
|
|
3692
|
-
...restOfImplementationMeta,
|
|
3693
|
-
title: name,
|
|
3694
|
-
key: selectedApi,
|
|
3695
|
-
implementation_id: id,
|
|
3696
|
-
version: appVersion
|
|
3697
|
-
};
|
|
3698
|
-
}
|
|
3699
|
-
function extractPaginationCursor(response) {
|
|
3700
|
-
if (!response.next) {
|
|
3701
|
-
return void 0;
|
|
3702
|
-
}
|
|
3703
|
-
try {
|
|
3704
|
-
const url = new URL(response.next);
|
|
3705
|
-
const offset = url.searchParams.get("offset");
|
|
3706
|
-
return offset || void 0;
|
|
3707
|
-
} catch {
|
|
3708
|
-
return void 0;
|
|
3709
|
-
}
|
|
3710
|
-
}
|
|
3711
|
-
|
|
3712
|
-
// src/temporary-internal-core/handlers/listApps.ts
|
|
3713
|
-
var DEFAULT_PAGE_SIZE = 20;
|
|
3714
|
-
async function augmentWithSearchResults({
|
|
3715
|
-
searchTerm,
|
|
3716
|
-
implementationIds,
|
|
3717
|
-
httpClient
|
|
3718
|
-
}) {
|
|
3719
|
-
const searchResponse = await httpClient.get(
|
|
3720
|
-
"/zapier/api/v4/implementations-meta/search/",
|
|
3721
|
-
{
|
|
3722
|
-
searchParams: { term: searchTerm }
|
|
3723
|
-
}
|
|
3724
|
-
);
|
|
3725
|
-
const byImplementationName = /* @__PURE__ */ new Map();
|
|
3726
|
-
for (const result of searchResponse.results) {
|
|
3727
|
-
const [implementationName] = splitVersionedKey2(result.id);
|
|
3728
|
-
const isPublic = result.visibility === "public";
|
|
3729
|
-
const existing = byImplementationName.get(implementationName);
|
|
3730
|
-
if (!existing || isPublic && !existing.isPublic) {
|
|
3731
|
-
byImplementationName.set(implementationName, { result, isPublic });
|
|
3732
|
-
}
|
|
3733
|
-
}
|
|
3734
|
-
const searchResults = Array.from(byImplementationName.values()).map(
|
|
3735
|
-
(entry) => transformImplementationMetaToAppItem(entry.result)
|
|
3736
|
-
);
|
|
3737
|
-
const implementationNameSet = new Set(
|
|
3738
|
-
implementationIds.map((id) => {
|
|
3739
|
-
const [name] = splitVersionedKey2(id);
|
|
3740
|
-
return name;
|
|
3741
|
-
})
|
|
3742
|
-
);
|
|
3743
|
-
const additionalIds = [];
|
|
3744
|
-
for (const result of searchResults) {
|
|
3745
|
-
const [implementationName] = splitVersionedKey2(result.key);
|
|
3746
|
-
if (!implementationNameSet.has(implementationName)) {
|
|
3747
|
-
implementationNameSet.add(implementationName);
|
|
3748
|
-
additionalIds.push(result.implementation_id);
|
|
3749
|
-
}
|
|
3750
|
-
}
|
|
3751
|
-
return [...implementationIds, ...additionalIds];
|
|
3752
|
-
}
|
|
3753
|
-
var handleListApps = async ({ request, deps }) => {
|
|
3754
|
-
const validatedRequest = ListAppsHandlerRequestSchema.parse(request);
|
|
3755
|
-
const { httpClient } = deps;
|
|
3756
|
-
let { implementationIds } = validatedRequest;
|
|
3757
|
-
const pageSize = validatedRequest.pageSize ?? DEFAULT_PAGE_SIZE;
|
|
3758
|
-
if (validatedRequest.search) {
|
|
3759
|
-
implementationIds = await augmentWithSearchResults({
|
|
3760
|
-
searchTerm: validatedRequest.search,
|
|
3761
|
-
implementationIds,
|
|
3762
|
-
httpClient
|
|
3763
|
-
});
|
|
3764
|
-
}
|
|
3765
|
-
if (implementationIds.length === 0) {
|
|
3766
|
-
if (validatedRequest.search) {
|
|
3767
|
-
return {
|
|
3768
|
-
data: [],
|
|
3769
|
-
nextCursor: void 0
|
|
3770
|
-
};
|
|
3771
|
-
}
|
|
3772
|
-
const searchParams2 = {
|
|
3773
|
-
latest_only: "true",
|
|
3774
|
-
selected_apis: "",
|
|
3775
|
-
limit: pageSize.toString()
|
|
3776
|
-
};
|
|
3777
|
-
if (validatedRequest.cursor) {
|
|
3778
|
-
searchParams2.offset = validatedRequest.cursor;
|
|
3779
|
-
}
|
|
3780
|
-
const implementationsResponse2 = await httpClient.get(
|
|
3781
|
-
"/zapier/api/v4/implementations-meta/lookup/",
|
|
3782
|
-
{
|
|
3783
|
-
searchParams: searchParams2
|
|
3784
|
-
}
|
|
3785
|
-
);
|
|
3786
|
-
return {
|
|
3787
|
-
data: implementationsResponse2.results.map(
|
|
3788
|
-
transformImplementationMetaToAppItem
|
|
3789
|
-
),
|
|
3790
|
-
nextCursor: extractPaginationCursor(implementationsResponse2)
|
|
3791
|
-
};
|
|
3792
|
-
}
|
|
3793
|
-
const searchParams = {
|
|
3794
|
-
selected_apis: implementationIds.join(","),
|
|
3795
|
-
limit: pageSize.toString()
|
|
3796
|
-
};
|
|
3797
|
-
if (validatedRequest.cursor) {
|
|
3798
|
-
searchParams.offset = validatedRequest.cursor;
|
|
3799
|
-
}
|
|
3800
|
-
const implementationsResponse = await httpClient.get(
|
|
3801
|
-
"/zapier/api/v4/implementations-meta/lookup/",
|
|
3802
|
-
{
|
|
3803
|
-
searchParams
|
|
3804
|
-
}
|
|
3805
|
-
);
|
|
3806
|
-
return {
|
|
3807
|
-
data: implementationsResponse.results.map(
|
|
3808
|
-
transformImplementationMetaToAppItem
|
|
3809
|
-
),
|
|
3810
|
-
nextCursor: extractPaginationCursor(implementationsResponse)
|
|
3811
|
-
};
|
|
3812
|
-
};
|
|
3813
|
-
|
|
3814
|
-
// src/api/router.ts
|
|
3815
|
-
var routes = [
|
|
3816
|
-
{
|
|
3817
|
-
method: "GET",
|
|
3818
|
-
pattern: /^\/api\/v0\/apps$/,
|
|
3819
|
-
handler: handleListApps,
|
|
3820
|
-
paramMap: []
|
|
3821
|
-
}
|
|
3822
|
-
];
|
|
3823
|
-
function findMatchingRoute(routeList, method, path) {
|
|
3824
|
-
for (const route of routeList) {
|
|
3825
|
-
if (route.method !== method) {
|
|
3826
|
-
continue;
|
|
3827
|
-
}
|
|
3828
|
-
const match = path.match(route.pattern);
|
|
3829
|
-
if (match) {
|
|
3830
|
-
const params = {};
|
|
3831
|
-
route.paramMap.forEach((name, index) => {
|
|
3832
|
-
params[name] = match[index + 1];
|
|
3833
|
-
});
|
|
3834
|
-
return {
|
|
3835
|
-
handler: route.handler,
|
|
3836
|
-
params
|
|
3837
|
-
};
|
|
3838
|
-
}
|
|
3839
|
-
}
|
|
3840
|
-
return null;
|
|
3841
|
-
}
|
|
3842
|
-
function matchRoute(method, path) {
|
|
3843
|
-
return findMatchingRoute(routes, method, path);
|
|
3844
|
-
}
|
|
3845
|
-
|
|
3846
3524
|
// src/api/client.ts
|
|
3847
3525
|
var pathConfig = {
|
|
3848
3526
|
// e.g. /relay -> https://sdkapi.zapier.com/api/v0/sdk/relay/...
|
|
@@ -4091,20 +3769,6 @@ var ZapierApiClient = class {
|
|
|
4091
3769
|
}
|
|
4092
3770
|
// Helper to perform HTTP requests with JSON handling
|
|
4093
3771
|
async fetchJson(method, path, data, options = {}) {
|
|
4094
|
-
const routeMatch = matchRoute(method, path);
|
|
4095
|
-
if (routeMatch) {
|
|
4096
|
-
const handlerRequest = {
|
|
4097
|
-
...typeof data === "object" ? data : {},
|
|
4098
|
-
...options.searchParams,
|
|
4099
|
-
...routeMatch.params
|
|
4100
|
-
};
|
|
4101
|
-
return routeMatch.handler({
|
|
4102
|
-
request: handlerRequest,
|
|
4103
|
-
deps: {
|
|
4104
|
-
httpClient: this
|
|
4105
|
-
}
|
|
4106
|
-
});
|
|
4107
|
-
}
|
|
4108
3772
|
const headers = { ...options.headers };
|
|
4109
3773
|
if (data && typeof data === "object") {
|
|
4110
3774
|
headers["Content-Type"] = "application/json";
|
|
@@ -4787,7 +4451,7 @@ function getCpuTime() {
|
|
|
4787
4451
|
|
|
4788
4452
|
// package.json
|
|
4789
4453
|
var package_default = {
|
|
4790
|
-
version: "0.18.
|
|
4454
|
+
version: "0.18.4"};
|
|
4791
4455
|
|
|
4792
4456
|
// src/plugins/eventEmission/builders.ts
|
|
4793
4457
|
function createBaseEvent(context = {}) {
|