@oomol-lab/open-connector 1.6.2 → 1.6.3
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 +27 -0
- package/assets/open-connector/catalog/apps/assured_platform.json +218 -0
- package/assets/open-connector/catalog/apps/baixiao.json +1080 -0
- package/assets/open-connector/catalog/apps/benchmarkone.json +956 -0
- package/assets/open-connector/catalog/apps/bing_webmaster.json +3097 -0
- package/assets/open-connector/catalog/apps/buzzsprout.json +1979 -0
- package/assets/open-connector/catalog/apps/feishu.json +13 -19
- package/assets/open-connector/catalog/apps/feishu_app_bot.json +10 -17
- package/assets/open-connector/catalog/apps/linkfox.json +836 -0
- package/assets/open-connector/catalog/apps/metatraderapi.json +1077 -0
- package/assets/open-connector/catalog/apps/mktindex.json +2411 -0
- package/assets/open-connector/catalog/apps/mojo_helpdesk.json +660 -0
- package/assets/open-connector/catalog/apps/mumble.json +446 -0
- package/assets/open-connector/catalog/apps/notion.json +112 -3
- package/assets/open-connector/catalog/apps/omise.json +438 -0
- package/assets/open-connector/catalog/apps/panjiva.json +2858 -0
- package/assets/open-connector/catalog/apps/papertrail.json +449 -0
- package/assets/open-connector/catalog/apps/peec.json +747 -0
- package/assets/open-connector/catalog/apps/polygon_io.json +5156 -584
- package/assets/open-connector/catalog/apps/quant_data.json +1928 -0
- package/assets/open-connector/catalog/apps/riddle_quiz_maker.json +621 -0
- package/assets/open-connector/catalog/apps/slack.json +327 -4
- package/assets/open-connector/catalog/apps/slackbot.json +280 -3
- package/assets/open-connector/catalog/apps/templatedocs.json +438 -0
- package/assets/open-connector/catalog/apps/terminus_app.json +510 -0
- package/assets/open-connector/catalog/apps/ticket_tailor.json +584 -0
- package/assets/open-connector/catalog/apps/tongdaxin.json +2612 -79
- package/assets/open-connector/catalog/apps/veremark.json +514 -0
- package/assets/open-connector/catalog/apps/walletap.json +549 -0
- package/assets/open-connector/catalog/apps/xiaohongshu_store.json +955 -39
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/package.json +5 -1
- package/src/connection-service.d.ts +2 -0
- package/src/connection-service.js +8 -1
- package/src/core/provider-id.d.ts +5 -0
- package/src/core/provider-id.js +12 -0
- package/src/oauth/oauth-credential-refresh-service.js +2 -0
- package/src/oauth/oauth-flow-service.js +2 -0
- package/src/providers/action-contracts.generated.d.ts +27 -7
- package/src/providers/assured_platform/executors.d.ts +4 -0
- package/src/providers/assured_platform/executors.js +18 -0
- package/src/providers/assured_platform/runtime.d.ts +7 -0
- package/src/providers/assured_platform/runtime.js +108 -0
- package/src/providers/baixiao/actions.d.ts +2 -0
- package/src/providers/baixiao/actions.js +377 -0
- package/src/providers/baixiao/executors.d.ts +4 -0
- package/src/providers/baixiao/executors.js +106 -0
- package/src/providers/benchmarkone/executors.d.ts +4 -0
- package/src/providers/benchmarkone/executors.js +26 -0
- package/src/providers/benchmarkone/runtime.d.ts +12 -0
- package/src/providers/benchmarkone/runtime.js +113 -0
- package/src/providers/bing_webmaster/actions.d.ts +2 -0
- package/src/providers/bing_webmaster/actions.js +113 -0
- package/src/providers/bing_webmaster/executors.d.ts +4 -0
- package/src/providers/bing_webmaster/executors.js +104 -0
- package/src/providers/bing_webmaster/management-actions.d.ts +2 -0
- package/src/providers/bing_webmaster/management-actions.js +241 -0
- package/src/providers/bing_webmaster/reporting-actions.d.ts +2 -0
- package/src/providers/bing_webmaster/reporting-actions.js +300 -0
- package/src/providers/bing_webmaster/schemas.d.ts +33 -0
- package/src/providers/bing_webmaster/schemas.js +313 -0
- package/src/providers/buzzsprout/executors.d.ts +4 -0
- package/src/providers/buzzsprout/executors.js +21 -0
- package/src/providers/buzzsprout/runtime.d.ts +12 -0
- package/src/providers/buzzsprout/runtime.js +237 -0
- package/src/providers/feishu/shared/drive-actions.d.ts +1 -0
- package/src/providers/feishu/shared/drive-actions.js +13 -9
- package/src/providers/feishu/shared/drive-runtime.js +15 -3
- package/src/providers/feishu/shared/wiki-actions.js +4 -2
- package/src/providers/hithink_finance/runtime.js +39 -60
- package/src/providers/linkfox/actions.js +2 -0
- package/src/providers/linkfox/runtime.js +70 -1
- package/src/providers/linkfox/sif-actions.d.ts +10 -0
- package/src/providers/linkfox/sif-actions.js +193 -0
- package/src/providers/metatraderapi/executors.d.ts +4 -0
- package/src/providers/metatraderapi/executors.js +18 -0
- package/src/providers/metatraderapi/runtime.d.ts +7 -0
- package/src/providers/metatraderapi/runtime.js +216 -0
- package/src/providers/mktindex/actions-mmi.d.ts +2 -0
- package/src/providers/mktindex/actions-mmi.js +510 -0
- package/src/providers/mktindex/actions.d.ts +2 -0
- package/src/providers/mktindex/actions.js +2 -0
- package/src/providers/mktindex/executors.d.ts +4 -0
- package/src/providers/mktindex/executors.js +27 -0
- package/src/providers/mktindex/request.d.ts +17 -0
- package/src/providers/mktindex/request.js +48 -0
- package/src/providers/mktindex/runtime.d.ts +9 -0
- package/src/providers/mktindex/runtime.js +492 -0
- package/src/providers/mojo_helpdesk/executors.d.ts +4 -0
- package/src/providers/mojo_helpdesk/executors.js +18 -0
- package/src/providers/mojo_helpdesk/runtime.d.ts +7 -0
- package/src/providers/mojo_helpdesk/runtime.js +173 -0
- package/src/providers/mumble/executors.d.ts +4 -0
- package/src/providers/mumble/executors.js +99 -0
- package/src/providers/notion/executors.d.ts +9 -0
- package/src/providers/notion/executors.js +161 -6
- package/src/providers/omise/executors.d.ts +4 -0
- package/src/providers/omise/executors.js +120 -0
- package/src/providers/panjiva/actions.d.ts +14 -0
- package/src/providers/panjiva/actions.js +389 -0
- package/src/providers/panjiva/executors.d.ts +4 -0
- package/src/providers/panjiva/executors.js +136 -0
- package/src/providers/papertrail/executors.d.ts +4 -0
- package/src/providers/papertrail/executors.js +15 -0
- package/src/providers/papertrail/runtime.d.ts +7 -0
- package/src/providers/papertrail/runtime.js +167 -0
- package/src/providers/peec/executors.d.ts +4 -0
- package/src/providers/peec/executors.js +15 -0
- package/src/providers/peec/runtime.d.ts +7 -0
- package/src/providers/peec/runtime.js +128 -0
- package/src/providers/polygon_io/actions.d.ts +2 -0
- package/src/providers/polygon_io/actions.js +282 -0
- package/src/providers/polygon_io/expanded-actions.d.ts +2 -0
- package/src/providers/polygon_io/expanded-actions.js +375 -0
- package/src/providers/polygon_io/expanded-runtime.d.ts +16 -0
- package/src/providers/polygon_io/expanded-runtime.js +277 -0
- package/src/providers/polygon_io/runtime.js +21 -2
- package/src/providers/quant_data/executors.d.ts +4 -0
- package/src/providers/quant_data/executors.js +15 -0
- package/src/providers/quant_data/runtime.d.ts +7 -0
- package/src/providers/quant_data/runtime.js +118 -0
- package/src/providers/registry.generated.js +20 -0
- package/src/providers/riddle_quiz_maker/executors.d.ts +4 -0
- package/src/providers/riddle_quiz_maker/executors.js +15 -0
- package/src/providers/riddle_quiz_maker/runtime.d.ts +7 -0
- package/src/providers/riddle_quiz_maker/runtime.js +145 -0
- package/src/providers/slack/actions.js +106 -3
- package/src/providers/slack/runtime.js +260 -36
- package/src/providers/slackbot/actions.js +1 -1
- package/src/providers/templatedocs/executors.d.ts +4 -0
- package/src/providers/templatedocs/executors.js +18 -0
- package/src/providers/templatedocs/runtime.d.ts +13 -0
- package/src/providers/templatedocs/runtime.js +151 -0
- package/src/providers/terminus_app/executors.d.ts +4 -0
- package/src/providers/terminus_app/executors.js +15 -0
- package/src/providers/terminus_app/runtime.d.ts +7 -0
- package/src/providers/terminus_app/runtime.js +172 -0
- package/src/providers/ticket_tailor/executors.d.ts +4 -0
- package/src/providers/ticket_tailor/executors.js +15 -0
- package/src/providers/ticket_tailor/runtime.d.ts +7 -0
- package/src/providers/ticket_tailor/runtime.js +152 -0
- package/src/providers/tongdaxin/actions.d.ts +1 -0
- package/src/providers/tongdaxin/actions.js +6 -3
- package/src/providers/tongdaxin/executors.js +51 -10
- package/src/providers/tongdaxin/named-action-output.d.ts +1 -0
- package/src/providers/tongdaxin/named-action-output.js +149 -0
- package/src/providers/tongdaxin/named-action-routing.d.ts +9 -0
- package/src/providers/tongdaxin/named-action-routing.js +417 -0
- package/src/providers/tongdaxin/named-actions.d.ts +2 -0
- package/src/providers/tongdaxin/named-actions.js +378 -0
- package/src/providers/veremark/executors.d.ts +4 -0
- package/src/providers/veremark/executors.js +129 -0
- package/src/providers/walletap/executors.d.ts +4 -0
- package/src/providers/walletap/executors.js +15 -0
- package/src/providers/walletap/runtime.d.ts +7 -0
- package/src/providers/walletap/runtime.js +147 -0
- package/src/providers/weixin_official_account/access-token.js +31 -7
- package/src/providers/weixin_store/access-token.js +33 -7
- package/src/providers/xiaohongshu_store/executors.js +152 -3
- package/src/server/api/openapi.js +3 -0
- package/src/server/connector-assets.d.ts +4 -0
- package/src/server/connector-assets.js +12 -0
- package/src/server/connector-build.d.ts +33 -0
- package/src/server/connector-build.js +73 -0
- package/src/server/connector-runtime.d.ts +1 -2
- package/src/server/connector-runtime.js +2 -8
- package/src/server/server-assets.d.ts +0 -28
- package/src/server/server-assets.js +0 -50
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
import { defineProviderAction } from "../../core/provider-definition.js";
|
|
3
|
+
import { managementActions } from "./management-actions.js";
|
|
4
|
+
import { reportingActions } from "./reporting-actions.js";
|
|
5
|
+
import { siteInput, siteUrl, siteSchema, trafficSchema, querySchema, crawlSchema, issueSchema, feedSchema, quotaSchema, submittedSchema, } from "./schemas.js";
|
|
6
|
+
const service = "bing_webmaster";
|
|
7
|
+
export const bingWebmasterActions = [
|
|
8
|
+
...reportingActions,
|
|
9
|
+
...managementActions,
|
|
10
|
+
defineProviderAction(service, {
|
|
11
|
+
name: "list_sites",
|
|
12
|
+
description: "List the sites registered in the Bing Webmaster account, including unverified sites.",
|
|
13
|
+
operationType: "read",
|
|
14
|
+
inputSchema: s.object("No input is required.", {}),
|
|
15
|
+
outputSchema: s.object("The Bing Webmaster API result.", {
|
|
16
|
+
sites: s.array("The records returned by Bing.", siteSchema),
|
|
17
|
+
}),
|
|
18
|
+
}),
|
|
19
|
+
defineProviderAction(service, {
|
|
20
|
+
name: "get_rank_and_traffic_stats",
|
|
21
|
+
description: "Get daily site impressions and clicks across Bing search verticals.",
|
|
22
|
+
operationType: "read",
|
|
23
|
+
inputSchema: siteInput,
|
|
24
|
+
outputSchema: s.object("The Bing Webmaster API result.", {
|
|
25
|
+
stats: s.array("The records returned by Bing.", trafficSchema),
|
|
26
|
+
}),
|
|
27
|
+
}),
|
|
28
|
+
defineProviderAction(service, {
|
|
29
|
+
name: "get_query_stats",
|
|
30
|
+
description: "Get traffic and position statistics for top search queries. Bing updates this report weekly.",
|
|
31
|
+
operationType: "read",
|
|
32
|
+
inputSchema: siteInput,
|
|
33
|
+
outputSchema: s.object("The Bing Webmaster API result.", {
|
|
34
|
+
stats: s.array("The records returned by Bing.", querySchema),
|
|
35
|
+
}),
|
|
36
|
+
}),
|
|
37
|
+
defineProviderAction(service, {
|
|
38
|
+
name: "get_page_stats",
|
|
39
|
+
description: "Get traffic and position statistics for top pages. The Query field contains the page URL.",
|
|
40
|
+
operationType: "read",
|
|
41
|
+
inputSchema: siteInput,
|
|
42
|
+
outputSchema: s.object("The Bing Webmaster API result.", {
|
|
43
|
+
stats: s.array("The records returned by Bing.", querySchema),
|
|
44
|
+
}),
|
|
45
|
+
}),
|
|
46
|
+
defineProviderAction(service, {
|
|
47
|
+
name: "get_crawl_stats",
|
|
48
|
+
description: "Get daily crawl statistics for the last six months.",
|
|
49
|
+
operationType: "read",
|
|
50
|
+
inputSchema: siteInput,
|
|
51
|
+
outputSchema: s.object("The Bing Webmaster API result.", {
|
|
52
|
+
stats: s.array("The records returned by Bing.", crawlSchema),
|
|
53
|
+
}),
|
|
54
|
+
}),
|
|
55
|
+
defineProviderAction(service, {
|
|
56
|
+
name: "get_crawl_issues",
|
|
57
|
+
description: "List URLs with crawl issues. Resolved issues may take several days to disappear.",
|
|
58
|
+
operationType: "read",
|
|
59
|
+
inputSchema: siteInput,
|
|
60
|
+
outputSchema: s.object("The Bing Webmaster API result.", {
|
|
61
|
+
issues: s.array("The records returned by Bing.", issueSchema),
|
|
62
|
+
}),
|
|
63
|
+
}),
|
|
64
|
+
defineProviderAction(service, {
|
|
65
|
+
name: "list_sitemaps",
|
|
66
|
+
description: "List top-level sitemaps and feeds registered for a site.",
|
|
67
|
+
operationType: "read",
|
|
68
|
+
inputSchema: siteInput,
|
|
69
|
+
outputSchema: s.object("The Bing Webmaster API result.", {
|
|
70
|
+
sitemaps: s.array("The records returned by Bing.", feedSchema),
|
|
71
|
+
}),
|
|
72
|
+
}),
|
|
73
|
+
defineProviderAction(service, {
|
|
74
|
+
name: "get_url_submission_quota",
|
|
75
|
+
description: "Get the remaining URL submission quota before submitting URLs.",
|
|
76
|
+
operationType: "read",
|
|
77
|
+
inputSchema: siteInput,
|
|
78
|
+
outputSchema: s.object("The Bing Webmaster API result.", { quota: quotaSchema }),
|
|
79
|
+
}),
|
|
80
|
+
defineProviderAction(service, {
|
|
81
|
+
name: "submit_sitemap",
|
|
82
|
+
description: "Submit a sitemap, RSS 2.0, Atom 0.3, Atom 1.0, or text feed URL to Bing.",
|
|
83
|
+
operationType: "write",
|
|
84
|
+
inputSchema: s.object("The site and URLs to submit.", {
|
|
85
|
+
siteUrl,
|
|
86
|
+
feedUrl: s.string("The sitemap or feed URL for Bing to fetch.", { format: "uri" }),
|
|
87
|
+
}),
|
|
88
|
+
outputSchema: submittedSchema,
|
|
89
|
+
}),
|
|
90
|
+
defineProviderAction(service, {
|
|
91
|
+
name: "submit_url",
|
|
92
|
+
description: "Submit one URL to Bing for crawling, subject to the available submission quota.",
|
|
93
|
+
operationType: "write",
|
|
94
|
+
inputSchema: s.object("The site and URLs to submit.", {
|
|
95
|
+
siteUrl,
|
|
96
|
+
url: s.string("The page URL to submit.", { format: "uri" }),
|
|
97
|
+
}),
|
|
98
|
+
outputSchema: submittedSchema,
|
|
99
|
+
}),
|
|
100
|
+
defineProviderAction(service, {
|
|
101
|
+
name: "submit_url_batch",
|
|
102
|
+
description: "Submit up to 500 URLs to Bing in one request, subject to the available submission quota.",
|
|
103
|
+
operationType: "write",
|
|
104
|
+
inputSchema: s.object("The site and URLs to submit.", {
|
|
105
|
+
siteUrl,
|
|
106
|
+
urlList: s.array("Between 1 and 500 page URLs to submit.", s.string("A page URL to submit.", { format: "uri" }), {
|
|
107
|
+
minItems: 1,
|
|
108
|
+
maxItems: 500,
|
|
109
|
+
}),
|
|
110
|
+
}),
|
|
111
|
+
outputSchema: submittedSchema,
|
|
112
|
+
}),
|
|
113
|
+
];
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
|
|
2
|
+
export declare const executors: ProviderExecutors;
|
|
3
|
+
export declare const proxy: ProviderProxyExecutor;
|
|
4
|
+
export declare const credentialValidators: CredentialValidators;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
+
import { readProviderTextBody } from "../provider-runtime.js";
|
|
3
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, mapProviderActionHandlers, providerResponseError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
|
|
4
|
+
import { bingWebmasterActions } from "./actions.js";
|
|
5
|
+
const service = "bing_webmaster", baseUrl = "https://ssl.bing.com/webmaster/api.svc/json";
|
|
6
|
+
const endpointOverrides = {
|
|
7
|
+
list_sites: "GetUserSites",
|
|
8
|
+
list_sitemaps: "GetFeeds",
|
|
9
|
+
submit_sitemap: "SubmitFeed",
|
|
10
|
+
remove_sitemap: "RemoveFeed",
|
|
11
|
+
list_child_url_info: "GetChildrenUrlInfo",
|
|
12
|
+
list_child_url_traffic_info: "GetChildrenUrlTrafficInfo",
|
|
13
|
+
list_connected_pages: "GetConnectedPages",
|
|
14
|
+
list_fetched_urls: "GetFetchedUrls",
|
|
15
|
+
list_link_counts: "GetLinkCounts",
|
|
16
|
+
list_url_links: "GetUrlLinks",
|
|
17
|
+
list_blocked_urls: "GetBlockedUrls",
|
|
18
|
+
list_page_preview_blocks: "GetActivePagePreviewBlocks",
|
|
19
|
+
list_deep_link_blocks: "GetDeepLinkBlocks",
|
|
20
|
+
list_query_parameters: "GetQueryParameters",
|
|
21
|
+
list_country_region_settings: "GetCountryRegionSettings",
|
|
22
|
+
list_site_moves: "GetSiteMoves",
|
|
23
|
+
list_site_roles: "GetSiteRoles",
|
|
24
|
+
get_sitemap_details: "GetFeedDetails",
|
|
25
|
+
set_query_parameter_enabled: "EnableDisableQueryParameter",
|
|
26
|
+
};
|
|
27
|
+
const jsonQueryFields = new Set(["page", "query", "url", "link", "feedUrl"]);
|
|
28
|
+
const handlers = mapProviderActionHandlers(service, bingWebmasterActions, (action) => async (input, context) => {
|
|
29
|
+
const endpoint = endpointOverrides[action.name] ??
|
|
30
|
+
action.name
|
|
31
|
+
.split("_")
|
|
32
|
+
.map((part) => part[0].toUpperCase() + part.slice(1))
|
|
33
|
+
.join("");
|
|
34
|
+
const method = action.operationType === "read" && action.name !== "list_child_url_info" ? "GET" : "POST";
|
|
35
|
+
const data = await request(endpoint, method, input, context);
|
|
36
|
+
const properties = optionalRecord(action.outputSchema.properties) ?? {};
|
|
37
|
+
const output = Object.keys(properties)[0] ?? "result";
|
|
38
|
+
const schema = optionalRecord(properties[output]);
|
|
39
|
+
if (method === "POST" && (data === null || data === undefined))
|
|
40
|
+
return { [output]: true };
|
|
41
|
+
if (schema?.type === "array" && !Array.isArray(data))
|
|
42
|
+
throw providerResponseError(`Bing Webmaster ${output} must be a list`);
|
|
43
|
+
if (schema?.type === "object" && (!data || typeof data !== "object" || Array.isArray(data)))
|
|
44
|
+
throw providerResponseError(`Bing Webmaster ${output} must be an object`);
|
|
45
|
+
return { [output]: data };
|
|
46
|
+
});
|
|
47
|
+
export const executors = defineApiKeyProviderExecutors(service, handlers, {
|
|
48
|
+
skipDnsValidation: true,
|
|
49
|
+
});
|
|
50
|
+
export const proxy = defineProviderProxy({
|
|
51
|
+
service,
|
|
52
|
+
baseUrl,
|
|
53
|
+
auth: { type: "api_key_query", name: "apikey" },
|
|
54
|
+
skipDnsValidation: true,
|
|
55
|
+
customizeRequest({ headers }) {
|
|
56
|
+
if (!headers.has("accept"))
|
|
57
|
+
headers.set("accept", "application/json");
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
export const credentialValidators = {
|
|
61
|
+
async apiKey(input, { fetcher, signal }) {
|
|
62
|
+
await handlers.list_sites({}, { apiKey: input.apiKey, fetcher, signal });
|
|
63
|
+
return {
|
|
64
|
+
profile: { displayName: "Bing Webmaster API Key" },
|
|
65
|
+
grantedScopes: [],
|
|
66
|
+
metadata: { validationEndpoint: "GetUserSites" },
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
async function request(endpoint, method, input, context) {
|
|
71
|
+
const url = new URL(`${baseUrl}/${endpoint}`);
|
|
72
|
+
url.searchParams.set("apikey", context.apiKey);
|
|
73
|
+
if (method === "GET")
|
|
74
|
+
for (const [key, value] of Object.entries(input))
|
|
75
|
+
url.searchParams.set(key, jsonQueryFields.has(key) ? JSON.stringify(value) : String(value));
|
|
76
|
+
const response = await context.fetcher(url, {
|
|
77
|
+
method,
|
|
78
|
+
headers: {
|
|
79
|
+
accept: "application/json",
|
|
80
|
+
"content-type": "application/json; charset=utf-8",
|
|
81
|
+
"user-agent": providerUserAgent,
|
|
82
|
+
},
|
|
83
|
+
body: method === "POST" ? JSON.stringify(input) : undefined,
|
|
84
|
+
signal: context.signal,
|
|
85
|
+
});
|
|
86
|
+
const text = await readProviderTextBody(response, "Bing Webmaster response");
|
|
87
|
+
let payload;
|
|
88
|
+
try {
|
|
89
|
+
payload = text.trim() ? JSON.parse(text) : undefined;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
throw new ProviderRequestError(response.ok ? 502 : response.status, `Bing Webmaster returned invalid JSON (HTTP ${response.status})`);
|
|
93
|
+
}
|
|
94
|
+
const envelope = optionalRecord(payload);
|
|
95
|
+
if (!response.ok || envelope?.ErrorCode !== undefined) {
|
|
96
|
+
const code = envelope?.ErrorCode;
|
|
97
|
+
throw new ProviderRequestError(response.status || 502, `Bing Webmaster${code === undefined ? "" : ` (${String(code)})`}: ${optionalString(envelope?.Message) ?? `request failed (HTTP ${response.status})`}`, payload, code === undefined ? undefined : String(code));
|
|
98
|
+
}
|
|
99
|
+
if (payload === undefined)
|
|
100
|
+
return null;
|
|
101
|
+
if (!envelope || !("d" in envelope))
|
|
102
|
+
throw providerResponseError("Bing Webmaster response is missing d");
|
|
103
|
+
return envelope.d;
|
|
104
|
+
}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
import { defineProviderAction } from "../../core/provider-definition.js";
|
|
3
|
+
import { blockedUrlInput, countrySettingsInput, crawlSettingsInput, siteMoveInput, siteRoleInput, siteUrl, } from "./schemas.js";
|
|
4
|
+
export const managementActions = [
|
|
5
|
+
defineProviderAction("bing_webmaster", {
|
|
6
|
+
name: "add_site",
|
|
7
|
+
description: "Add a site to the account. Ownership must be verified separately.",
|
|
8
|
+
operationType: "write",
|
|
9
|
+
inputSchema: s.object("The input for AddSite.", {
|
|
10
|
+
siteUrl: siteUrl,
|
|
11
|
+
}),
|
|
12
|
+
outputSchema: s.object("The result of AddSite.", {
|
|
13
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
14
|
+
}),
|
|
15
|
+
}),
|
|
16
|
+
defineProviderAction("bing_webmaster", {
|
|
17
|
+
name: "remove_site",
|
|
18
|
+
description: "Remove a site from the account.",
|
|
19
|
+
operationType: "destructive",
|
|
20
|
+
inputSchema: s.object("The input for RemoveSite.", {
|
|
21
|
+
siteUrl: siteUrl,
|
|
22
|
+
}),
|
|
23
|
+
outputSchema: s.object("The result of RemoveSite.", {
|
|
24
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
25
|
+
}),
|
|
26
|
+
}),
|
|
27
|
+
defineProviderAction("bing_webmaster", {
|
|
28
|
+
name: "save_crawl_settings",
|
|
29
|
+
description: "Save crawl settings for a site, replacing supplied settings.",
|
|
30
|
+
operationType: "destructive",
|
|
31
|
+
inputSchema: s.object("The input for SaveCrawlSettings.", {
|
|
32
|
+
siteUrl: siteUrl,
|
|
33
|
+
crawlSettings: crawlSettingsInput,
|
|
34
|
+
}),
|
|
35
|
+
outputSchema: s.object("The result of SaveCrawlSettings.", {
|
|
36
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
37
|
+
}),
|
|
38
|
+
}),
|
|
39
|
+
defineProviderAction("bing_webmaster", {
|
|
40
|
+
name: "add_connected_page",
|
|
41
|
+
description: "Add a page connected to the site.",
|
|
42
|
+
operationType: "write",
|
|
43
|
+
inputSchema: s.object("The input for AddConnectedPage.", {
|
|
44
|
+
siteUrl: siteUrl,
|
|
45
|
+
masterUrl: s.string("The connected page URL supplied to Bing as masterUrl.", {
|
|
46
|
+
format: "uri",
|
|
47
|
+
}),
|
|
48
|
+
}),
|
|
49
|
+
outputSchema: s.object("The result of AddConnectedPage.", {
|
|
50
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
51
|
+
}),
|
|
52
|
+
}),
|
|
53
|
+
defineProviderAction("bing_webmaster", {
|
|
54
|
+
name: "remove_sitemap",
|
|
55
|
+
description: "Remove a registered sitemap or feed.",
|
|
56
|
+
operationType: "destructive",
|
|
57
|
+
inputSchema: s.object("The input for RemoveFeed.", {
|
|
58
|
+
siteUrl: siteUrl,
|
|
59
|
+
feedUrl: s.string("The sitemap or feed URL to remove.", { format: "uri" }),
|
|
60
|
+
}),
|
|
61
|
+
outputSchema: s.object("The result of RemoveFeed.", {
|
|
62
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
63
|
+
}),
|
|
64
|
+
}),
|
|
65
|
+
defineProviderAction("bing_webmaster", {
|
|
66
|
+
name: "add_blocked_url",
|
|
67
|
+
description: "Block a page or directory, including cache-only and full-removal modes.",
|
|
68
|
+
operationType: "destructive",
|
|
69
|
+
inputSchema: s.object("The input for AddBlockedUrl.", {
|
|
70
|
+
siteUrl: siteUrl,
|
|
71
|
+
blockedUrl: blockedUrlInput,
|
|
72
|
+
}),
|
|
73
|
+
outputSchema: s.object("The result of AddBlockedUrl.", {
|
|
74
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
75
|
+
}),
|
|
76
|
+
}),
|
|
77
|
+
defineProviderAction("bing_webmaster", {
|
|
78
|
+
name: "remove_blocked_url",
|
|
79
|
+
description: "Remove an existing page or directory block.",
|
|
80
|
+
operationType: "destructive",
|
|
81
|
+
inputSchema: s.object("The input for RemoveBlockedUrl.", {
|
|
82
|
+
siteUrl: siteUrl,
|
|
83
|
+
blockedUrl: blockedUrlInput,
|
|
84
|
+
}),
|
|
85
|
+
outputSchema: s.object("The result of RemoveBlockedUrl.", {
|
|
86
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
87
|
+
}),
|
|
88
|
+
}),
|
|
89
|
+
defineProviderAction("bing_webmaster", {
|
|
90
|
+
name: "remove_page_preview_block",
|
|
91
|
+
description: "Remove a page preview block.",
|
|
92
|
+
operationType: "destructive",
|
|
93
|
+
inputSchema: s.object("The input for RemovePagePreviewBlock.", {
|
|
94
|
+
siteUrl: siteUrl,
|
|
95
|
+
url: s.string("The page URL.", { format: "uri" }),
|
|
96
|
+
}),
|
|
97
|
+
outputSchema: s.object("The result of RemovePagePreviewBlock.", {
|
|
98
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
99
|
+
}),
|
|
100
|
+
}),
|
|
101
|
+
defineProviderAction("bing_webmaster", {
|
|
102
|
+
name: "add_deep_link_block",
|
|
103
|
+
description: "Block a deep link for a search URL and market.",
|
|
104
|
+
operationType: "destructive",
|
|
105
|
+
inputSchema: s.object("The input for AddDeepLinkBlock.", {
|
|
106
|
+
siteUrl: siteUrl,
|
|
107
|
+
market: s.nonEmptyString("The Bing market identifier, such as en-US."),
|
|
108
|
+
searchUrl: s.string("The search URL supplied to Bing."),
|
|
109
|
+
deepLinkUrl: s.string("The deep link URL to block."),
|
|
110
|
+
}),
|
|
111
|
+
outputSchema: s.object("The result of AddDeepLinkBlock.", {
|
|
112
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
113
|
+
}),
|
|
114
|
+
}),
|
|
115
|
+
defineProviderAction("bing_webmaster", {
|
|
116
|
+
name: "remove_deep_link_block",
|
|
117
|
+
description: "Remove a deep link blocking rule.",
|
|
118
|
+
operationType: "destructive",
|
|
119
|
+
inputSchema: s.object("The input for RemoveDeepLinkBlock.", {
|
|
120
|
+
siteUrl: siteUrl,
|
|
121
|
+
market: s.nonEmptyString("The Bing market identifier, such as en-US."),
|
|
122
|
+
searchUrl: s.string("The search URL supplied to Bing."),
|
|
123
|
+
deepLinkUrl: s.string("The deep link URL whose block is removed."),
|
|
124
|
+
}),
|
|
125
|
+
outputSchema: s.object("The result of RemoveDeepLinkBlock.", {
|
|
126
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
127
|
+
}),
|
|
128
|
+
}),
|
|
129
|
+
defineProviderAction("bing_webmaster", {
|
|
130
|
+
name: "add_query_parameter",
|
|
131
|
+
description: "Add a URL normalization parameter.",
|
|
132
|
+
operationType: "write",
|
|
133
|
+
inputSchema: s.object("The input for AddQueryParameter.", {
|
|
134
|
+
siteUrl: siteUrl,
|
|
135
|
+
queryParameter: s.nonEmptyString("The URL parameter name; Bing permits unreserved characters and colon."),
|
|
136
|
+
}),
|
|
137
|
+
outputSchema: s.object("The result of AddQueryParameter.", {
|
|
138
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
139
|
+
}),
|
|
140
|
+
}),
|
|
141
|
+
defineProviderAction("bing_webmaster", {
|
|
142
|
+
name: "set_query_parameter_enabled",
|
|
143
|
+
description: "Enable or disable a URL normalization parameter.",
|
|
144
|
+
operationType: "destructive",
|
|
145
|
+
inputSchema: s.object("The input for EnableDisableQueryParameter.", {
|
|
146
|
+
siteUrl: siteUrl,
|
|
147
|
+
queryParameter: s.nonEmptyString("The URL parameter name."),
|
|
148
|
+
isEnabled: s.boolean("Whether to enable this parameter rule."),
|
|
149
|
+
}),
|
|
150
|
+
outputSchema: s.object("The result of EnableDisableQueryParameter.", {
|
|
151
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
152
|
+
}),
|
|
153
|
+
}),
|
|
154
|
+
defineProviderAction("bing_webmaster", {
|
|
155
|
+
name: "remove_query_parameter",
|
|
156
|
+
description: "Remove a URL normalization parameter.",
|
|
157
|
+
operationType: "destructive",
|
|
158
|
+
inputSchema: s.object("The input for RemoveQueryParameter.", {
|
|
159
|
+
siteUrl: siteUrl,
|
|
160
|
+
queryParameter: s.nonEmptyString("The URL parameter name."),
|
|
161
|
+
}),
|
|
162
|
+
outputSchema: s.object("The result of RemoveQueryParameter.", {
|
|
163
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
164
|
+
}),
|
|
165
|
+
}),
|
|
166
|
+
defineProviderAction("bing_webmaster", {
|
|
167
|
+
name: "add_country_region_settings",
|
|
168
|
+
description: "Set country or region targeting for a URL scope.",
|
|
169
|
+
operationType: "destructive",
|
|
170
|
+
inputSchema: s.object("The input for AddCountryRegionSettings.", {
|
|
171
|
+
siteUrl: siteUrl,
|
|
172
|
+
settings: countrySettingsInput,
|
|
173
|
+
}),
|
|
174
|
+
outputSchema: s.object("The result of AddCountryRegionSettings.", {
|
|
175
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
176
|
+
}),
|
|
177
|
+
}),
|
|
178
|
+
defineProviderAction("bing_webmaster", {
|
|
179
|
+
name: "remove_country_region_settings",
|
|
180
|
+
description: "Remove country or region targeting settings.",
|
|
181
|
+
operationType: "destructive",
|
|
182
|
+
inputSchema: s.object("The input for RemoveCountryRegionSettings.", {
|
|
183
|
+
siteUrl: siteUrl,
|
|
184
|
+
settings: countrySettingsInput,
|
|
185
|
+
}),
|
|
186
|
+
outputSchema: s.object("The result of RemoveCountryRegionSettings.", {
|
|
187
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
188
|
+
}),
|
|
189
|
+
}),
|
|
190
|
+
defineProviderAction("bing_webmaster", {
|
|
191
|
+
name: "submit_site_move",
|
|
192
|
+
description: "Submit a site move between source and destination URLs.",
|
|
193
|
+
operationType: "destructive",
|
|
194
|
+
inputSchema: s.object("The input for SubmitSiteMove.", {
|
|
195
|
+
siteUrl: siteUrl,
|
|
196
|
+
settings: siteMoveInput,
|
|
197
|
+
}),
|
|
198
|
+
outputSchema: s.object("The result of SubmitSiteMove.", {
|
|
199
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
200
|
+
}),
|
|
201
|
+
}),
|
|
202
|
+
defineProviderAction("bing_webmaster", {
|
|
203
|
+
name: "verify_site",
|
|
204
|
+
description: "Attempt to verify site ownership and return whether verification succeeded.",
|
|
205
|
+
operationType: "write",
|
|
206
|
+
inputSchema: s.object("The input for VerifySite.", {
|
|
207
|
+
siteUrl: siteUrl,
|
|
208
|
+
}),
|
|
209
|
+
outputSchema: s.object("The result of VerifySite.", {
|
|
210
|
+
verified: s.boolean("Whether Bing verified ownership of the site."),
|
|
211
|
+
}),
|
|
212
|
+
}),
|
|
213
|
+
defineProviderAction("bing_webmaster", {
|
|
214
|
+
name: "add_site_roles",
|
|
215
|
+
description: "Delegate site access to a user with administrator, read-only or read-write permissions.",
|
|
216
|
+
operationType: "destructive",
|
|
217
|
+
inputSchema: s.object("The input for AddSiteRoles.", {
|
|
218
|
+
siteUrl: siteUrl,
|
|
219
|
+
delegatedUrl: s.string("The site URL whose access is delegated.", { format: "uri" }),
|
|
220
|
+
userEmail: s.string("The email of the delegated user.", { format: "email" }),
|
|
221
|
+
authenticationCode: s.nonEmptyString("The site authentication code used for delegation."),
|
|
222
|
+
isAdministrator: s.boolean("Whether to grant administrator access."),
|
|
223
|
+
isReadOnly: s.boolean("Whether to grant read-only access."),
|
|
224
|
+
}),
|
|
225
|
+
outputSchema: s.object("The result of AddSiteRoles.", {
|
|
226
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
227
|
+
}),
|
|
228
|
+
}),
|
|
229
|
+
defineProviderAction("bing_webmaster", {
|
|
230
|
+
name: "remove_site_role",
|
|
231
|
+
description: "Remove a delegated site role.",
|
|
232
|
+
operationType: "destructive",
|
|
233
|
+
inputSchema: s.object("The input for RemoveSiteRole.", {
|
|
234
|
+
siteUrl: siteUrl,
|
|
235
|
+
siteRole: siteRoleInput,
|
|
236
|
+
}),
|
|
237
|
+
outputSchema: s.object("The result of RemoveSiteRole.", {
|
|
238
|
+
success: s.boolean("Whether Bing accepted the operation."),
|
|
239
|
+
}),
|
|
240
|
+
}),
|
|
241
|
+
];
|