@squadbase/vite-server 0.1.17-dev.7408ec4 → 0.1.17-dev.a107052

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/cli/index.js +43 -36
  2. package/dist/connectors/airtable-oauth.js +8 -0
  3. package/dist/connectors/airtable.js +8 -0
  4. package/dist/connectors/amplitude.js +8 -0
  5. package/dist/connectors/anthropic.js +2 -0
  6. package/dist/connectors/asana.js +8 -0
  7. package/dist/connectors/attio.js +8 -0
  8. package/dist/connectors/aws-billing.js +8 -0
  9. package/dist/connectors/azure-sql.js +8 -0
  10. package/dist/connectors/backlog-api-key.js +8 -0
  11. package/dist/connectors/clickup.js +8 -0
  12. package/dist/connectors/cosmosdb.js +8 -0
  13. package/dist/connectors/customerio.js +8 -0
  14. package/dist/connectors/dbt.js +8 -0
  15. package/dist/connectors/freshdesk.js +8 -0
  16. package/dist/connectors/freshsales.js +8 -0
  17. package/dist/connectors/freshservice.js +8 -0
  18. package/dist/connectors/gamma.js +8 -0
  19. package/dist/connectors/gemini.js +2 -0
  20. package/dist/connectors/github.js +8 -0
  21. package/dist/connectors/gmail-oauth.js +6 -0
  22. package/dist/connectors/gmail.js +8 -0
  23. package/dist/connectors/google-ads.js +8 -0
  24. package/dist/connectors/google-analytics-oauth.js +8 -0
  25. package/dist/connectors/google-analytics.js +64 -49
  26. package/dist/connectors/google-audit-log.js +8 -0
  27. package/dist/connectors/google-calendar-oauth.js +8 -0
  28. package/dist/connectors/google-calendar.js +8 -0
  29. package/dist/connectors/google-docs.js +6 -0
  30. package/dist/connectors/google-drive.js +6 -0
  31. package/dist/connectors/google-search-console-oauth.js +8 -0
  32. package/dist/connectors/google-sheets.js +8 -0
  33. package/dist/connectors/google-slides.js +6 -0
  34. package/dist/connectors/grafana.js +8 -0
  35. package/dist/connectors/hubspot-oauth.js +6 -0
  36. package/dist/connectors/hubspot.js +8 -0
  37. package/dist/connectors/influxdb.js +8 -0
  38. package/dist/connectors/intercom-oauth.js +6 -0
  39. package/dist/connectors/intercom.js +8 -0
  40. package/dist/connectors/jdbc.js +8 -0
  41. package/dist/connectors/jira-api-key.js +8 -0
  42. package/dist/connectors/kintone-api-token.js +8 -0
  43. package/dist/connectors/kintone.js +8 -0
  44. package/dist/connectors/linear.js +8 -0
  45. package/dist/connectors/linkedin-ads.js +8 -0
  46. package/dist/connectors/mailchimp-oauth.js +8 -0
  47. package/dist/connectors/mailchimp.js +8 -0
  48. package/dist/connectors/meta-ads-oauth.js +8 -0
  49. package/dist/connectors/meta-ads.js +8 -0
  50. package/dist/connectors/mixpanel.js +8 -0
  51. package/dist/connectors/monday.js +8 -0
  52. package/dist/connectors/mongodb.js +8 -0
  53. package/dist/connectors/notion-oauth.js +6 -0
  54. package/dist/connectors/notion.js +8 -0
  55. package/dist/connectors/openai.js +2 -0
  56. package/dist/connectors/oracle.js +8 -0
  57. package/dist/connectors/outlook-oauth.js +6 -0
  58. package/dist/connectors/powerbi-oauth.js +6 -0
  59. package/dist/connectors/salesforce.js +8 -0
  60. package/dist/connectors/semrush.js +8 -0
  61. package/dist/connectors/sentry.js +8 -0
  62. package/dist/connectors/shopify-oauth.js +6 -0
  63. package/dist/connectors/shopify.js +8 -0
  64. package/dist/connectors/sqlserver.js +8 -0
  65. package/dist/connectors/stripe-api-key.js +8 -0
  66. package/dist/connectors/stripe-oauth.js +6 -0
  67. package/dist/connectors/supabase.js +8 -0
  68. package/dist/connectors/tableau.js +8 -0
  69. package/dist/connectors/tiktok-ads.js +8 -0
  70. package/dist/connectors/wix-store.js +8 -0
  71. package/dist/connectors/zendesk-oauth.js +6 -0
  72. package/dist/connectors/zendesk.js +8 -0
  73. package/dist/index.d.ts +1 -0
  74. package/dist/index.js +54 -42
  75. package/dist/main.js +43 -36
  76. package/dist/vite-plugin.js +43 -36
  77. package/package.json +1 -1
package/dist/cli/index.js CHANGED
@@ -22,6 +22,7 @@ var init_parameter_definition = __esm({
22
22
  type;
23
23
  secret;
24
24
  required;
25
+ isDeprecated;
25
26
  constructor(config) {
26
27
  this.slug = config.slug;
27
28
  this.name = config.name;
@@ -30,6 +31,7 @@ var init_parameter_definition = __esm({
30
31
  this.type = config.type;
31
32
  this.secret = config.secret;
32
33
  this.required = config.required;
34
+ this.isDeprecated = config.isDeprecated ?? false;
33
35
  }
34
36
  /**
35
37
  * Get the parameter value from a ConnectorConnectionObject.
@@ -869,6 +871,12 @@ async function runSetupFlow(flow, params, ctx, config) {
869
871
  }
870
872
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
871
873
  if (step.type === "text") {
874
+ if (step.fetchOptions) {
875
+ const options2 = await step.fetchOptions(state, runtime);
876
+ if (options2.length === 0) {
877
+ continue;
878
+ }
879
+ }
872
880
  return {
873
881
  type: "nextQuestion",
874
882
  questionSlug: step.slug,
@@ -7674,7 +7682,8 @@ var parameters13 = {
7674
7682
  envVarBaseKey: "GA_PROPERTY_ID",
7675
7683
  type: "text",
7676
7684
  secret: false,
7677
- required: false
7685
+ required: false,
7686
+ isDeprecated: true
7678
7687
  })
7679
7688
  };
7680
7689
 
@@ -7912,40 +7921,23 @@ var googleAnalyticsSetupFlow = {
7912
7921
  return [];
7913
7922
  }
7914
7923
  },
7915
- applyAnswer: (state, answer) => ({ ...state, properties: answer }),
7916
- toParameterUpdates: (state) => {
7917
- const first = state.properties?.find((v) => v !== ALL_PROPERTIES);
7918
- return first ? [{ slug: parameters13.propertyId.slug, value: first }] : [];
7919
- }
7924
+ applyAnswer: (state, answer) => ({ ...state, properties: answer })
7920
7925
  },
7921
7926
  {
7922
7927
  slug: "manualPropertyId",
7923
- type: "select",
7924
- allowFreeText: true,
7928
+ type: "text",
7925
7929
  question: {
7926
7930
  ja: "GA4 \u30D7\u30ED\u30D1\u30C6\u30A3 ID \u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: 123456789\uFF09\u3002GA4 \u7BA1\u7406\u753B\u9762 > \u30D7\u30ED\u30D1\u30C6\u30A3\u8A2D\u5B9A\u3067\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002",
7927
7931
  en: "Enter your GA4 Property ID (e.g., 123456789). Found in GA4 Admin > Property Settings."
7928
7932
  },
7929
- async fetchOptions(state, rt) {
7933
+ async fetchOptions(state) {
7930
7934
  if (state.properties?.length) return [];
7931
- const existing = rt.params[parameters13.propertyId.slug];
7932
- return existing ? [{ value: existing, label: existing }] : [
7933
- {
7934
- value: "example",
7935
- label: rt.language === "ja" ? "\u4F8B: 123456789" : "Example: 123456789"
7936
- }
7937
- ];
7935
+ return [{ value: "_show", label: "" }];
7938
7936
  },
7939
7937
  applyAnswer: (state, answer) => ({
7940
7938
  ...state,
7941
7939
  manualPropertyId: answer[0]
7942
- }),
7943
- toParameterUpdates: (state) => state.manualPropertyId ? [
7944
- {
7945
- slug: parameters13.propertyId.slug,
7946
- value: state.manualPropertyId
7947
- }
7948
- ] : []
7940
+ })
7949
7941
  }
7950
7942
  ],
7951
7943
  async finalize(state, rt) {
@@ -8001,7 +7993,7 @@ var googleAnalyticsSetupFlow = {
8001
7993
  }
8002
7994
  return sections.join("\n");
8003
7995
  }
8004
- const propertyId = state.manualPropertyId ?? rt.params[parameters13.propertyId.slug];
7996
+ const propertyId = state.manualPropertyId;
8005
7997
  if (propertyId) {
8006
7998
  sections.push(`### Property: ${propertyId}`, "");
8007
7999
  const { dimensions, metrics } = await getMetadata(
@@ -8012,7 +8004,7 @@ var googleAnalyticsSetupFlow = {
8012
8004
  return sections.join("\n");
8013
8005
  }
8014
8006
  sections.push(
8015
- "_Could not list GA4 accounts. Please enable the Google Analytics Admin API in your GCP project, or set the Property ID parameter manually._",
8007
+ "_Could not list GA4 accounts. Please enable the Google Analytics Admin API in your GCP project. Property ID can be specified per request at runtime._",
8016
8008
  ""
8017
8009
  );
8018
8010
  return sections.join("\n");
@@ -8026,8 +8018,9 @@ var REQUEST_TIMEOUT_MS10 = 6e4;
8026
8018
  var inputSchema20 = z20.object({
8027
8019
  toolUseIntent: z20.string().optional().describe("Brief description of what you intend to accomplish with this tool call"),
8028
8020
  connectionId: z20.string().describe("ID of the Google Analytics connection to use"),
8021
+ propertyId: z20.string().describe("GA4 property ID (e.g., '123456789')"),
8029
8022
  method: z20.enum(["GET", "POST"]).describe("HTTP method"),
8030
- path: z20.string().describe("API path (e.g., 'properties/{propertyId}:runReport'). {propertyId} is automatically replaced."),
8023
+ path: z20.string().describe("API path (e.g., 'properties/{propertyId}:runReport'). {propertyId} is replaced with the propertyId parameter."),
8031
8024
  body: z20.record(z20.string(), z20.unknown()).optional().describe("POST request body (JSON)")
8032
8025
  });
8033
8026
  var outputSchema20 = z20.discriminatedUnion("success", [
@@ -8045,10 +8038,10 @@ var requestTool3 = new ConnectorTool({
8045
8038
  name: "request",
8046
8039
  description: `Send authenticated requests to the Google Analytics Data API.
8047
8040
  Authentication is handled automatically using a service account.
8048
- {propertyId} in the path is automatically replaced with the connection's property-id.`,
8041
+ {propertyId} in the path is automatically replaced with the propertyId parameter.`,
8049
8042
  inputSchema: inputSchema20,
8050
8043
  outputSchema: outputSchema20,
8051
- async execute({ connectionId, method, path: path5, body }, connections) {
8044
+ async execute({ connectionId, propertyId, method, path: path5, body }, connections) {
8052
8045
  const connection = connections.find((c) => c.id === connectionId);
8053
8046
  if (!connection) {
8054
8047
  return { success: false, error: `Connection ${connectionId} not found` };
@@ -8057,7 +8050,6 @@ Authentication is handled automatically using a service account.
8057
8050
  try {
8058
8051
  const { GoogleAuth } = await import("google-auth-library");
8059
8052
  const keyJsonBase64 = parameters13.serviceAccountKeyJsonBase64.getValue(connection);
8060
- const propertyId = parameters13.propertyId.getValue(connection);
8061
8053
  const credentials = JSON.parse(
8062
8054
  Buffer.from(keyJsonBase64, "base64").toString("utf-8")
8063
8055
  );
@@ -8117,7 +8109,7 @@ var googleAnalyticsConnector = new ConnectorPlugin({
8117
8109
  systemPrompt: {
8118
8110
  en: `### Tools
8119
8111
 
8120
- - \`google-analytics-service-account_request\`: The only way to call the GA4 Data API. Use it to fetch metadata, run reports, or run realtime reports. See the GA4 Data API Reference below for available endpoints and request bodies.
8112
+ - \`google-analytics-service-account_request\`: The only way to call the GA4 Data API. Use it to fetch metadata, run reports, or run realtime reports. Requires a \`propertyId\` parameter. See the GA4 Data API Reference below for available endpoints and request bodies.
8121
8113
 
8122
8114
  ### Business Logic
8123
8115
 
@@ -8126,9 +8118,11 @@ The business logic type for this connector is "typescript". Use the connector SD
8126
8118
  SDK methods (client created via \`connection(connectionId)\`):
8127
8119
  - \`client.runReport(request)\` \u2014 run a GA4 report
8128
8120
  - \`client.runRealtimeReport(request)\` \u2014 run a realtime report
8129
- - \`client.getMetadata()\` \u2014 fetch available dimensions/metrics
8121
+ - \`client.getMetadata(request)\` \u2014 fetch available dimensions/metrics
8130
8122
  - \`client.request(path, init?)\` \u2014 low-level authenticated fetch
8131
8123
 
8124
+ **IMPORTANT**: You MUST always include \`propertyId\` in every SDK method call. The property ID is obtained during the setup flow. Without it, the request will fail.
8125
+
8132
8126
  \`\`\`ts
8133
8127
  import type { Context } from "hono";
8134
8128
  import { connection } from "@squadbase/vite-server/connectors/google-analytics";
@@ -8136,12 +8130,14 @@ import { connection } from "@squadbase/vite-server/connectors/google-analytics";
8136
8130
  const ga = connection("<connectionId>");
8137
8131
 
8138
8132
  export default async function handler(c: Context) {
8139
- const { startDate = "7daysAgo", endDate = "today" } = await c.req.json<{
8133
+ const { propertyId, startDate = "7daysAgo", endDate = "today" } = await c.req.json<{
8134
+ propertyId: string;
8140
8135
  startDate?: string;
8141
8136
  endDate?: string;
8142
8137
  }>();
8143
8138
 
8144
8139
  const { rows } = await ga.runReport({
8140
+ propertyId,
8145
8141
  dateRanges: [{ startDate, endDate }],
8146
8142
  dimensions: [{ name: "date" }],
8147
8143
  metrics: [{ name: "activeUsers" }, { name: "sessions" }],
@@ -8185,7 +8181,7 @@ activeUsers, sessions, screenPageViews, bounceRate, averageSessionDuration, conv
8185
8181
  - Relative: \`"today"\`, \`"yesterday"\`, \`"7daysAgo"\`, \`"30daysAgo"\``,
8186
8182
  ja: `### \u30C4\u30FC\u30EB
8187
8183
 
8188
- - \`google-analytics-service-account_request\`: GA4 Data API\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u53D6\u5F97\u3001\u30EC\u30DD\u30FC\u30C8\u306E\u5B9F\u884C\u3001\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u30EC\u30DD\u30FC\u30C8\u306E\u5B9F\u884C\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u5229\u7528\u53EF\u80FD\u306A\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3068\u30EA\u30AF\u30A8\u30B9\u30C8\u30DC\u30C7\u30A3\u306F\u4E0B\u90E8\u306E\u300CGA4 Data API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\u300D\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
8184
+ - \`google-analytics-service-account_request\`: GA4 Data API\u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u53D6\u5F97\u3001\u30EC\u30DD\u30FC\u30C8\u306E\u5B9F\u884C\u3001\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u30EC\u30DD\u30FC\u30C8\u306E\u5B9F\u884C\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\`propertyId\` \u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u304C\u5FC5\u8981\u3067\u3059\u3002\u5229\u7528\u53EF\u80FD\u306A\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3068\u30EA\u30AF\u30A8\u30B9\u30C8\u30DC\u30C7\u30A3\u306F\u4E0B\u90E8\u306E\u300CGA4 Data API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\u300D\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
8189
8185
 
8190
8186
  ### Business Logic
8191
8187
 
@@ -8194,9 +8190,11 @@ activeUsers, sessions, screenPageViews, bounceRate, averageSessionDuration, conv
8194
8190
  SDK\u30E1\u30BD\u30C3\u30C9 (\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8):
8195
8191
  - \`client.runReport(request)\` \u2014 GA4\u30EC\u30DD\u30FC\u30C8\u3092\u5B9F\u884C
8196
8192
  - \`client.runRealtimeReport(request)\` \u2014 \u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u30EC\u30DD\u30FC\u30C8\u3092\u5B9F\u884C
8197
- - \`client.getMetadata()\` \u2014 \u5229\u7528\u53EF\u80FD\u306A\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3/\u30E1\u30C8\u30EA\u30AF\u30B9\u3092\u53D6\u5F97
8193
+ - \`client.getMetadata(request)\` \u2014 \u5229\u7528\u53EF\u80FD\u306A\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3/\u30E1\u30C8\u30EA\u30AF\u30B9\u3092\u53D6\u5F97
8198
8194
  - \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304Dfetch
8199
8195
 
8196
+ **\u91CD\u8981**: \u3059\u3079\u3066\u306ESDK\u30E1\u30BD\u30C3\u30C9\u547C\u3073\u51FA\u3057\u306B\u306F\u5FC5\u305A \`propertyId\` \u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u30D7\u30ED\u30D1\u30C6\u30A3ID\u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u30D5\u30ED\u30FC\u3067\u53D6\u5F97\u3055\u308C\u307E\u3059\u3002\u6307\u5B9A\u3057\u306A\u3044\u3068\u30EA\u30AF\u30A8\u30B9\u30C8\u304C\u5931\u6557\u3057\u307E\u3059\u3002
8197
+
8200
8198
  \`\`\`ts
8201
8199
  import type { Context } from "hono";
8202
8200
  import { connection } from "@squadbase/vite-server/connectors/google-analytics";
@@ -8204,12 +8202,14 @@ import { connection } from "@squadbase/vite-server/connectors/google-analytics";
8204
8202
  const ga = connection("<connectionId>");
8205
8203
 
8206
8204
  export default async function handler(c: Context) {
8207
- const { startDate = "7daysAgo", endDate = "today" } = await c.req.json<{
8205
+ const { propertyId, startDate = "7daysAgo", endDate = "today" } = await c.req.json<{
8206
+ propertyId: string;
8208
8207
  startDate?: string;
8209
8208
  endDate?: string;
8210
8209
  }>();
8211
8210
 
8212
8211
  const { rows } = await ga.runReport({
8212
+ propertyId,
8213
8213
  dateRanges: [{ startDate, endDate }],
8214
8214
  dimensions: [{ name: "date" }],
8215
8215
  metrics: [{ name: "activeUsers" }, { name: "sessions" }],
@@ -8264,7 +8264,14 @@ activeUsers, sessions, screenPageViews, bounceRate, averageSessionDuration, conv
8264
8264
  }
8265
8265
  const propertyId = params[parameters13.propertyId.slug];
8266
8266
  if (!propertyId) {
8267
- return { success: true };
8267
+ try {
8268
+ const sa = decodeServiceAccount(keyJsonBase64);
8269
+ await getAccessToken(sa);
8270
+ return { success: true };
8271
+ } catch (err) {
8272
+ const msg = err instanceof Error ? err.message : String(err);
8273
+ return { success: false, error: msg };
8274
+ }
8268
8275
  }
8269
8276
  try {
8270
8277
  const res = await dataFetch(
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -264,6 +266,12 @@ async function runSetupFlow(flow, params, ctx, config) {
264
266
  }
265
267
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
266
268
  if (step.type === "text") {
269
+ if (step.fetchOptions) {
270
+ const options2 = await step.fetchOptions(state, runtime);
271
+ if (options2.length === 0) {
272
+ continue;
273
+ }
274
+ }
267
275
  return {
268
276
  type: "nextQuestion",
269
277
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -394,6 +396,12 @@ async function runSetupFlow(flow, params, ctx, config) {
394
396
  }
395
397
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
396
398
  if (step.type === "text") {
399
+ if (step.fetchOptions) {
400
+ const options2 = await step.fetchOptions(state, runtime);
401
+ if (options2.length === 0) {
402
+ continue;
403
+ }
404
+ }
397
405
  return {
398
406
  type: "nextQuestion",
399
407
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -354,6 +356,12 @@ async function runSetupFlow(flow, params, ctx, config) {
354
356
  }
355
357
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
356
358
  if (step.type === "text") {
359
+ if (step.fetchOptions) {
360
+ const options2 = await step.fetchOptions(state, runtime);
361
+ if (options2.length === 0) {
362
+ continue;
363
+ }
364
+ }
357
365
  return {
358
366
  type: "nextQuestion",
359
367
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -391,6 +393,12 @@ async function runSetupFlow(flow, params, ctx, config) {
391
393
  }
392
394
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
393
395
  if (step.type === "text") {
396
+ if (step.fetchOptions) {
397
+ const options2 = await step.fetchOptions(state, runtime);
398
+ if (options2.length === 0) {
399
+ continue;
400
+ }
401
+ }
394
402
  return {
395
403
  type: "nextQuestion",
396
404
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -527,6 +529,12 @@ async function runSetupFlow(flow, params, ctx, config) {
527
529
  }
528
530
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
529
531
  if (step.type === "text") {
532
+ if (step.fetchOptions) {
533
+ const options2 = await step.fetchOptions(state, runtime);
534
+ if (options2.length === 0) {
535
+ continue;
536
+ }
537
+ }
530
538
  return {
531
539
  type: "nextQuestion",
532
540
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -293,6 +295,12 @@ async function runSetupFlow(flow, params, ctx, config) {
293
295
  }
294
296
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
295
297
  if (step.type === "text") {
298
+ if (step.fetchOptions) {
299
+ const options2 = await step.fetchOptions(state, runtime);
300
+ if (options2.length === 0) {
301
+ continue;
302
+ }
303
+ }
296
304
  return {
297
305
  type: "nextQuestion",
298
306
  questionSlug: step.slug,
@@ -21,6 +21,7 @@ var init_parameter_definition = __esm({
21
21
  type;
22
22
  secret;
23
23
  required;
24
+ isDeprecated;
24
25
  constructor(config) {
25
26
  this.slug = config.slug;
26
27
  this.name = config.name;
@@ -29,6 +30,7 @@ var init_parameter_definition = __esm({
29
30
  this.type = config.type;
30
31
  this.secret = config.secret;
31
32
  this.required = config.required;
33
+ this.isDeprecated = config.isDeprecated ?? false;
32
34
  }
33
35
  /**
34
36
  * Get the parameter value from a ConnectorConnectionObject.
@@ -590,6 +592,12 @@ async function runSetupFlow(flow, params, ctx, config) {
590
592
  }
591
593
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
592
594
  if (step.type === "text") {
595
+ if (step.fetchOptions) {
596
+ const options2 = await step.fetchOptions(state, runtime);
597
+ if (options2.length === 0) {
598
+ continue;
599
+ }
600
+ }
593
601
  return {
594
602
  type: "nextQuestion",
595
603
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -289,6 +291,12 @@ async function runSetupFlow(flow, params, ctx, config) {
289
291
  }
290
292
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
291
293
  if (step.type === "text") {
294
+ if (step.fetchOptions) {
295
+ const options2 = await step.fetchOptions(state, runtime);
296
+ if (options2.length === 0) {
297
+ continue;
298
+ }
299
+ }
292
300
  return {
293
301
  type: "nextQuestion",
294
302
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -425,6 +427,12 @@ async function runSetupFlow(flow, params, ctx, config) {
425
427
  }
426
428
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
427
429
  if (step.type === "text") {
430
+ if (step.fetchOptions) {
431
+ const options2 = await step.fetchOptions(state, runtime);
432
+ if (options2.length === 0) {
433
+ continue;
434
+ }
435
+ }
428
436
  return {
429
437
  type: "nextQuestion",
430
438
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -335,6 +337,12 @@ async function runSetupFlow(flow, params, ctx, config) {
335
337
  }
336
338
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
337
339
  if (step.type === "text") {
340
+ if (step.fetchOptions) {
341
+ const options2 = await step.fetchOptions(state, runtime);
342
+ if (options2.length === 0) {
343
+ continue;
344
+ }
345
+ }
338
346
  return {
339
347
  type: "nextQuestion",
340
348
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -372,6 +374,12 @@ async function runSetupFlow(flow, params, ctx, config) {
372
374
  }
373
375
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
374
376
  if (step.type === "text") {
377
+ if (step.fetchOptions) {
378
+ const options2 = await step.fetchOptions(state, runtime);
379
+ if (options2.length === 0) {
380
+ continue;
381
+ }
382
+ }
375
383
  return {
376
384
  type: "nextQuestion",
377
385
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -514,6 +516,12 @@ async function runSetupFlow(flow, params, ctx, config) {
514
516
  }
515
517
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
516
518
  if (step.type === "text") {
519
+ if (step.fetchOptions) {
520
+ const options2 = await step.fetchOptions(state, runtime);
521
+ if (options2.length === 0) {
522
+ continue;
523
+ }
524
+ }
517
525
  return {
518
526
  type: "nextQuestion",
519
527
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -422,6 +424,12 @@ async function runSetupFlow(flow, params, ctx, config) {
422
424
  }
423
425
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
424
426
  if (step.type === "text") {
427
+ if (step.fetchOptions) {
428
+ const options2 = await step.fetchOptions(state, runtime);
429
+ if (options2.length === 0) {
430
+ continue;
431
+ }
432
+ }
425
433
  return {
426
434
  type: "nextQuestion",
427
435
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -437,6 +439,12 @@ async function runSetupFlow(flow, params, ctx, config) {
437
439
  }
438
440
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
439
441
  if (step.type === "text") {
442
+ if (step.fetchOptions) {
443
+ const options2 = await step.fetchOptions(state, runtime);
444
+ if (options2.length === 0) {
445
+ continue;
446
+ }
447
+ }
440
448
  return {
441
449
  type: "nextQuestion",
442
450
  questionSlug: step.slug,
@@ -16,6 +16,7 @@ var init_parameter_definition = __esm({
16
16
  type;
17
17
  secret;
18
18
  required;
19
+ isDeprecated;
19
20
  constructor(config) {
20
21
  this.slug = config.slug;
21
22
  this.name = config.name;
@@ -24,6 +25,7 @@ var init_parameter_definition = __esm({
24
25
  this.type = config.type;
25
26
  this.secret = config.secret;
26
27
  this.required = config.required;
28
+ this.isDeprecated = config.isDeprecated ?? false;
27
29
  }
28
30
  /**
29
31
  * Get the parameter value from a ConnectorConnectionObject.
@@ -392,6 +394,12 @@ async function runSetupFlow(flow, params, ctx, config) {
392
394
  }
393
395
  const resolvedAllowFreeText = step.allowFreeText !== void 0 ? step.allowFreeText : true;
394
396
  if (step.type === "text") {
397
+ if (step.fetchOptions) {
398
+ const options2 = await step.fetchOptions(state, runtime);
399
+ if (options2.length === 0) {
400
+ continue;
401
+ }
402
+ }
395
403
  return {
396
404
  type: "nextQuestion",
397
405
  questionSlug: step.slug,