@automate.ax/catalog 0.107.0 → 0.109.1

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/dist/catalog.d.ts CHANGED
@@ -4,10 +4,23 @@ export declare const airtableService: {
4
4
  readonly id: "oauth";
5
5
  readonly name: "OAuth";
6
6
  readonly type: "redirect";
7
+ }, {
8
+ readonly credentialUrl: "https://airtable.com/create/tokens";
9
+ readonly fields: readonly [{
10
+ readonly input: "password";
11
+ readonly label: "Personal access token";
12
+ readonly name: "apiKey";
13
+ readonly placeholder: "pat...";
14
+ readonly required: true;
15
+ }];
16
+ readonly id: "personal-access-token";
17
+ readonly name: "Personal access token";
18
+ readonly type: "form";
7
19
  }];
8
- readonly description: "Connect an Airtable account.";
20
+ readonly description: "Connect Airtable with OAuth or a personal access token.";
9
21
  readonly id: "airtable";
10
22
  readonly name: "Airtable";
23
+ readonly preferredConnectionMethodId: "oauth";
11
24
  };
12
25
  export declare const anthropicService: {
13
26
  readonly id: "anthropic";
@@ -861,10 +874,23 @@ export declare const integrationCatalog: readonly [{
861
874
  readonly id: "oauth";
862
875
  readonly name: "OAuth";
863
876
  readonly type: "redirect";
877
+ }, {
878
+ readonly credentialUrl: "https://airtable.com/create/tokens";
879
+ readonly fields: readonly [{
880
+ readonly input: "password";
881
+ readonly label: "Personal access token";
882
+ readonly name: "apiKey";
883
+ readonly placeholder: "pat...";
884
+ readonly required: true;
885
+ }];
886
+ readonly id: "personal-access-token";
887
+ readonly name: "Personal access token";
888
+ readonly type: "form";
864
889
  }];
865
- readonly description: "Connect an Airtable account.";
890
+ readonly description: "Connect Airtable with OAuth or a personal access token.";
866
891
  readonly id: "airtable";
867
892
  readonly name: "Airtable";
893
+ readonly preferredConnectionMethodId: "oauth";
868
894
  }, {
869
895
  readonly id: "anthropic";
870
896
  readonly name: string;
package/dist/catalog.js CHANGED
@@ -6,10 +6,28 @@ const API_KEY_FIELD = {
6
6
  required: true,
7
7
  };
8
8
  export const airtableService = defineIntegrationService({
9
- connectionMethods: [{ id: "oauth", name: "OAuth", type: "redirect" }],
10
- description: "Connect an Airtable account.",
9
+ connectionMethods: [
10
+ { id: "oauth", name: "OAuth", type: "redirect" },
11
+ {
12
+ credentialUrl: "https://airtable.com/create/tokens",
13
+ fields: [
14
+ {
15
+ input: "password",
16
+ label: "Personal access token",
17
+ name: "apiKey",
18
+ placeholder: "pat...",
19
+ required: true,
20
+ },
21
+ ],
22
+ id: "personal-access-token",
23
+ name: "Personal access token",
24
+ type: "form",
25
+ },
26
+ ],
27
+ description: "Connect Airtable with OAuth or a personal access token.",
11
28
  id: "airtable",
12
29
  name: "Airtable",
30
+ preferredConnectionMethodId: "oauth",
13
31
  });
14
32
  export const anthropicService = defineApiKeyService({
15
33
  description: "Connect an Anthropic API key.",
@@ -61,7 +79,8 @@ export const automateService = defineIntegrationService({
61
79
  name: "Automate.ax",
62
80
  });
63
81
  export const brevoService = defineApiKeyService({
64
- description: "Connect a Brevo API key.",
82
+ credentialUrl: "https://app.brevo.com/settings/keys/api",
83
+ description: "Connect a Brevo API key for messaging, contacts, campaigns, and managed events.",
65
84
  id: "brevo",
66
85
  name: "Brevo",
67
86
  placeholder: "xkeysib-...",
@@ -1,62 +1,51 @@
1
+ import type { IntegrationAccountRequirement } from "../types.js";
1
2
  export declare const airtableTriggerDefinitions: {
3
+ readonly airtableBaseEvent: {
4
+ readonly account: IntegrationAccountRequirement<"airtable">;
5
+ readonly type: "airtable.base.event";
6
+ };
7
+ readonly airtableFieldCreated: {
8
+ readonly account: IntegrationAccountRequirement<"airtable">;
9
+ readonly type: "airtable.field.created";
10
+ };
11
+ readonly airtableFieldDeleted: {
12
+ readonly account: IntegrationAccountRequirement<"airtable">;
13
+ readonly type: "airtable.field.deleted";
14
+ };
15
+ readonly airtableFieldUpdated: {
16
+ readonly account: IntegrationAccountRequirement<"airtable">;
17
+ readonly type: "airtable.field.updated";
18
+ };
2
19
  readonly airtableRecordCreated: {
3
- readonly account: {
4
- readonly connectionOptions: readonly [{
5
- readonly requiredScopes: readonly [{
6
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
7
- readonly type: "and";
8
- }];
9
- }];
10
- readonly serviceId: "airtable";
11
- };
20
+ readonly account: IntegrationAccountRequirement<"airtable">;
12
21
  readonly type: "airtable.record.created";
13
22
  };
14
23
  readonly airtableRecordDeleted: {
15
- readonly account: {
16
- readonly connectionOptions: readonly [{
17
- readonly requiredScopes: readonly [{
18
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
19
- readonly type: "and";
20
- }];
21
- }];
22
- readonly serviceId: "airtable";
23
- };
24
+ readonly account: IntegrationAccountRequirement<"airtable">;
24
25
  readonly type: "airtable.record.deleted";
25
26
  };
26
27
  readonly airtableRecordMovedIntoView: {
27
- readonly account: {
28
- readonly connectionOptions: readonly [{
29
- readonly requiredScopes: readonly [{
30
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
31
- readonly type: "and";
32
- }];
33
- }];
34
- readonly serviceId: "airtable";
35
- };
28
+ readonly account: IntegrationAccountRequirement<"airtable">;
36
29
  readonly type: "airtable.record.movedIntoView";
37
30
  };
38
31
  readonly airtableRecordMovedOutOfView: {
39
- readonly account: {
40
- readonly connectionOptions: readonly [{
41
- readonly requiredScopes: readonly [{
42
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
43
- readonly type: "and";
44
- }];
45
- }];
46
- readonly serviceId: "airtable";
47
- };
32
+ readonly account: IntegrationAccountRequirement<"airtable">;
48
33
  readonly type: "airtable.record.movedOutOfView";
49
34
  };
50
35
  readonly airtableRecordUpdated: {
51
- readonly account: {
52
- readonly connectionOptions: readonly [{
53
- readonly requiredScopes: readonly [{
54
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
55
- readonly type: "and";
56
- }];
57
- }];
58
- readonly serviceId: "airtable";
59
- };
36
+ readonly account: IntegrationAccountRequirement<"airtable">;
60
37
  readonly type: "airtable.record.updated";
61
38
  };
39
+ readonly airtableTableCreated: {
40
+ readonly account: IntegrationAccountRequirement<"airtable">;
41
+ readonly type: "airtable.table.created";
42
+ };
43
+ readonly airtableTableDeleted: {
44
+ readonly account: IntegrationAccountRequirement<"airtable">;
45
+ readonly type: "airtable.table.deleted";
46
+ };
47
+ readonly airtableTableUpdated: {
48
+ readonly account: IntegrationAccountRequirement<"airtable">;
49
+ readonly type: "airtable.table.updated";
50
+ };
62
51
  };
@@ -1,35 +1,74 @@
1
- const AIRTABLE_ACCOUNT = {
2
- connectionOptions: [
3
- {
4
- requiredScopes: [
5
- {
6
- requirements: ["data.records:read", "webhook:manage"],
7
- type: "and",
8
- },
9
- ],
10
- },
11
- ],
12
- serviceId: "airtable",
13
- };
1
+ import { integrationScope as scope } from "../types.js";
2
+ /**
3
+ * Builds equivalent OAuth and personal-access-token trigger requirements.
4
+ *
5
+ * @param requiredScope - Least-privilege provider scope expression.
6
+ */
7
+ function airtableAccount(requiredScope) {
8
+ return {
9
+ connectionOptions: [
10
+ {
11
+ connectionMethodId: "oauth",
12
+ requiredScopes: [requiredScope],
13
+ },
14
+ {
15
+ connectionMethodId: "personal-access-token",
16
+ requiredScopes: [requiredScope],
17
+ },
18
+ ],
19
+ serviceId: "airtable",
20
+ };
21
+ }
22
+ const AIRTABLE_RECORD_ACCOUNT = airtableAccount(scope.and("data.records:read", "webhook:manage"));
23
+ const AIRTABLE_SCHEMA_ACCOUNT = airtableAccount(scope.and("schema.bases:read", "webhook:manage"));
24
+ const AIRTABLE_BASE_EVENT_ACCOUNT = airtableAccount(scope.and("data.records:read", "schema.bases:read", "webhook:manage"));
14
25
  export const airtableTriggerDefinitions = {
26
+ airtableBaseEvent: {
27
+ account: AIRTABLE_BASE_EVENT_ACCOUNT,
28
+ type: "airtable.base.event",
29
+ },
30
+ airtableFieldCreated: {
31
+ account: AIRTABLE_SCHEMA_ACCOUNT,
32
+ type: "airtable.field.created",
33
+ },
34
+ airtableFieldDeleted: {
35
+ account: AIRTABLE_SCHEMA_ACCOUNT,
36
+ type: "airtable.field.deleted",
37
+ },
38
+ airtableFieldUpdated: {
39
+ account: AIRTABLE_SCHEMA_ACCOUNT,
40
+ type: "airtable.field.updated",
41
+ },
15
42
  airtableRecordCreated: {
16
- account: AIRTABLE_ACCOUNT,
43
+ account: AIRTABLE_RECORD_ACCOUNT,
17
44
  type: "airtable.record.created",
18
45
  },
19
46
  airtableRecordDeleted: {
20
- account: AIRTABLE_ACCOUNT,
47
+ account: AIRTABLE_RECORD_ACCOUNT,
21
48
  type: "airtable.record.deleted",
22
49
  },
23
50
  airtableRecordMovedIntoView: {
24
- account: AIRTABLE_ACCOUNT,
51
+ account: AIRTABLE_RECORD_ACCOUNT,
25
52
  type: "airtable.record.movedIntoView",
26
53
  },
27
54
  airtableRecordMovedOutOfView: {
28
- account: AIRTABLE_ACCOUNT,
55
+ account: AIRTABLE_RECORD_ACCOUNT,
29
56
  type: "airtable.record.movedOutOfView",
30
57
  },
31
58
  airtableRecordUpdated: {
32
- account: AIRTABLE_ACCOUNT,
59
+ account: AIRTABLE_RECORD_ACCOUNT,
33
60
  type: "airtable.record.updated",
34
61
  },
62
+ airtableTableCreated: {
63
+ account: AIRTABLE_SCHEMA_ACCOUNT,
64
+ type: "airtable.table.created",
65
+ },
66
+ airtableTableDeleted: {
67
+ account: AIRTABLE_SCHEMA_ACCOUNT,
68
+ type: "airtable.table.deleted",
69
+ },
70
+ airtableTableUpdated: {
71
+ account: AIRTABLE_SCHEMA_ACCOUNT,
72
+ type: "airtable.table.updated",
73
+ },
35
74
  };
@@ -5178,128 +5178,104 @@ export declare const triggerDefinitions: {
5178
5178
  }[];
5179
5179
  readonly type: "automate.execution.settled";
5180
5180
  };
5181
+ readonly airtableBaseEvent: {
5182
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5183
+ readonly type: "airtable.base.event";
5184
+ };
5185
+ readonly airtableFieldCreated: {
5186
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5187
+ readonly type: "airtable.field.created";
5188
+ };
5189
+ readonly airtableFieldDeleted: {
5190
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5191
+ readonly type: "airtable.field.deleted";
5192
+ };
5193
+ readonly airtableFieldUpdated: {
5194
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5195
+ readonly type: "airtable.field.updated";
5196
+ };
5181
5197
  readonly airtableRecordCreated: {
5182
- readonly account: {
5183
- readonly connectionOptions: readonly [{
5184
- readonly requiredScopes: readonly [{
5185
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5186
- readonly type: "and";
5187
- }];
5188
- }];
5189
- readonly serviceId: "airtable";
5190
- };
5198
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5191
5199
  readonly type: "airtable.record.created";
5192
5200
  };
5193
5201
  readonly airtableRecordDeleted: {
5194
- readonly account: {
5195
- readonly connectionOptions: readonly [{
5196
- readonly requiredScopes: readonly [{
5197
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5198
- readonly type: "and";
5199
- }];
5200
- }];
5201
- readonly serviceId: "airtable";
5202
- };
5202
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5203
5203
  readonly type: "airtable.record.deleted";
5204
5204
  };
5205
5205
  readonly airtableRecordMovedIntoView: {
5206
- readonly account: {
5207
- readonly connectionOptions: readonly [{
5208
- readonly requiredScopes: readonly [{
5209
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5210
- readonly type: "and";
5211
- }];
5212
- }];
5213
- readonly serviceId: "airtable";
5214
- };
5206
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5215
5207
  readonly type: "airtable.record.movedIntoView";
5216
5208
  };
5217
5209
  readonly airtableRecordMovedOutOfView: {
5218
- readonly account: {
5219
- readonly connectionOptions: readonly [{
5220
- readonly requiredScopes: readonly [{
5221
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5222
- readonly type: "and";
5223
- }];
5224
- }];
5225
- readonly serviceId: "airtable";
5226
- };
5210
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5227
5211
  readonly type: "airtable.record.movedOutOfView";
5228
5212
  };
5229
5213
  readonly airtableRecordUpdated: {
5230
- readonly account: {
5231
- readonly connectionOptions: readonly [{
5232
- readonly requiredScopes: readonly [{
5233
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5234
- readonly type: "and";
5235
- }];
5236
- }];
5237
- readonly serviceId: "airtable";
5238
- };
5214
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5239
5215
  readonly type: "airtable.record.updated";
5240
5216
  };
5217
+ readonly airtableTableCreated: {
5218
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5219
+ readonly type: "airtable.table.created";
5220
+ };
5221
+ readonly airtableTableDeleted: {
5222
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5223
+ readonly type: "airtable.table.deleted";
5224
+ };
5225
+ readonly airtableTableUpdated: {
5226
+ readonly account: import("..").IntegrationAccountRequirement<"airtable">;
5227
+ readonly type: "airtable.table.updated";
5228
+ };
5241
5229
  };
5242
5230
  /** Trigger definitions with inferred display names materialized. */
5243
5231
  export declare const triggerCatalog: ({
5244
5232
  name: string;
5245
- account: {
5246
- readonly connectionOptions: readonly [{
5247
- readonly requiredScopes: readonly [{
5248
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5249
- readonly type: "and";
5250
- }];
5251
- }];
5252
- readonly serviceId: "airtable";
5253
- };
5233
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5234
+ type: "airtable.base.event";
5235
+ } | {
5236
+ name: string;
5237
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5238
+ type: "airtable.field.created";
5239
+ } | {
5240
+ name: string;
5241
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5242
+ type: "airtable.field.deleted";
5243
+ } | {
5244
+ name: string;
5245
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5246
+ type: "airtable.field.updated";
5247
+ } | {
5248
+ name: string;
5249
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5254
5250
  type: "airtable.record.created";
5255
5251
  } | {
5256
5252
  name: string;
5257
- account: {
5258
- readonly connectionOptions: readonly [{
5259
- readonly requiredScopes: readonly [{
5260
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5261
- readonly type: "and";
5262
- }];
5263
- }];
5264
- readonly serviceId: "airtable";
5265
- };
5253
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5266
5254
  type: "airtable.record.deleted";
5267
5255
  } | {
5268
5256
  name: string;
5269
- account: {
5270
- readonly connectionOptions: readonly [{
5271
- readonly requiredScopes: readonly [{
5272
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5273
- readonly type: "and";
5274
- }];
5275
- }];
5276
- readonly serviceId: "airtable";
5277
- };
5257
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5278
5258
  type: "airtable.record.movedIntoView";
5279
5259
  } | {
5280
5260
  name: string;
5281
- account: {
5282
- readonly connectionOptions: readonly [{
5283
- readonly requiredScopes: readonly [{
5284
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5285
- readonly type: "and";
5286
- }];
5287
- }];
5288
- readonly serviceId: "airtable";
5289
- };
5261
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5290
5262
  type: "airtable.record.movedOutOfView";
5291
5263
  } | {
5292
5264
  name: string;
5293
- account: {
5294
- readonly connectionOptions: readonly [{
5295
- readonly requiredScopes: readonly [{
5296
- readonly requirements: readonly ["data.records:read", "webhook:manage"];
5297
- readonly type: "and";
5298
- }];
5299
- }];
5300
- readonly serviceId: "airtable";
5301
- };
5265
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5302
5266
  type: "airtable.record.updated";
5267
+ } | {
5268
+ name: string;
5269
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5270
+ type: "airtable.table.created";
5271
+ } | {
5272
+ name: string;
5273
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5274
+ type: "airtable.table.deleted";
5275
+ } | {
5276
+ name: string;
5277
+ account: import("..").IntegrationAccountRequirement<"airtable">;
5278
+ type: "airtable.table.updated";
5303
5279
  } | {
5304
5280
  name: string;
5305
5281
  account: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automate.ax/catalog",
3
- "version": "0.107.0",
3
+ "version": "0.109.1",
4
4
  "description": "Shared integration service and trigger definitions for Automate.ax.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/catalog.ts CHANGED
@@ -9,10 +9,28 @@ const API_KEY_FIELD = {
9
9
  } as const
10
10
 
11
11
  export const airtableService = defineIntegrationService({
12
- connectionMethods: [{ id: "oauth", name: "OAuth", type: "redirect" }],
13
- description: "Connect an Airtable account.",
12
+ connectionMethods: [
13
+ { id: "oauth", name: "OAuth", type: "redirect" },
14
+ {
15
+ credentialUrl: "https://airtable.com/create/tokens",
16
+ fields: [
17
+ {
18
+ input: "password",
19
+ label: "Personal access token",
20
+ name: "apiKey",
21
+ placeholder: "pat...",
22
+ required: true,
23
+ },
24
+ ],
25
+ id: "personal-access-token",
26
+ name: "Personal access token",
27
+ type: "form",
28
+ },
29
+ ],
30
+ description: "Connect Airtable with OAuth or a personal access token.",
14
31
  id: "airtable",
15
32
  name: "Airtable",
33
+ preferredConnectionMethodId: "oauth",
16
34
  })
17
35
 
18
36
  export const anthropicService = defineApiKeyService({
@@ -71,7 +89,9 @@ export const automateService = defineIntegrationService({
71
89
  })
72
90
 
73
91
  export const brevoService = defineApiKeyService({
74
- description: "Connect a Brevo API key.",
92
+ credentialUrl: "https://app.brevo.com/settings/keys/api",
93
+ description:
94
+ "Connect a Brevo API key for messaging, contacts, campaigns, and managed events.",
75
95
  id: "brevo",
76
96
  name: "Brevo",
77
97
  placeholder: "xkeysib-...",
@@ -1,38 +1,90 @@
1
- import type { IntegrationAccountRequirement, TriggerDefinition } from "../types"
1
+ import { integrationScope as scope } from "../types"
2
+ import type {
3
+ IntegrationAccountRequirement,
4
+ IntegrationScopeRequirement,
5
+ TriggerDefinition,
6
+ } from "../types"
2
7
 
3
- const AIRTABLE_ACCOUNT = {
4
- connectionOptions: [
5
- {
6
- requiredScopes: [
7
- {
8
- requirements: ["data.records:read", "webhook:manage"],
9
- type: "and",
10
- },
11
- ],
12
- },
13
- ],
14
- serviceId: "airtable",
15
- } as const satisfies IntegrationAccountRequirement
8
+ /**
9
+ * Builds equivalent OAuth and personal-access-token trigger requirements.
10
+ *
11
+ * @param requiredScope - Least-privilege provider scope expression.
12
+ */
13
+ function airtableAccount(
14
+ requiredScope: IntegrationScopeRequirement,
15
+ ): IntegrationAccountRequirement<"airtable"> {
16
+ return {
17
+ connectionOptions: [
18
+ {
19
+ connectionMethodId: "oauth",
20
+ requiredScopes: [requiredScope],
21
+ },
22
+ {
23
+ connectionMethodId: "personal-access-token",
24
+ requiredScopes: [requiredScope],
25
+ },
26
+ ],
27
+ serviceId: "airtable",
28
+ }
29
+ }
30
+
31
+ const AIRTABLE_RECORD_ACCOUNT = airtableAccount(
32
+ scope.and("data.records:read", "webhook:manage"),
33
+ )
34
+ const AIRTABLE_SCHEMA_ACCOUNT = airtableAccount(
35
+ scope.and("schema.bases:read", "webhook:manage"),
36
+ )
37
+ const AIRTABLE_BASE_EVENT_ACCOUNT = airtableAccount(
38
+ scope.and("data.records:read", "schema.bases:read", "webhook:manage"),
39
+ )
16
40
 
17
41
  export const airtableTriggerDefinitions = {
42
+ airtableBaseEvent: {
43
+ account: AIRTABLE_BASE_EVENT_ACCOUNT,
44
+ type: "airtable.base.event",
45
+ },
46
+ airtableFieldCreated: {
47
+ account: AIRTABLE_SCHEMA_ACCOUNT,
48
+ type: "airtable.field.created",
49
+ },
50
+ airtableFieldDeleted: {
51
+ account: AIRTABLE_SCHEMA_ACCOUNT,
52
+ type: "airtable.field.deleted",
53
+ },
54
+ airtableFieldUpdated: {
55
+ account: AIRTABLE_SCHEMA_ACCOUNT,
56
+ type: "airtable.field.updated",
57
+ },
18
58
  airtableRecordCreated: {
19
- account: AIRTABLE_ACCOUNT,
59
+ account: AIRTABLE_RECORD_ACCOUNT,
20
60
  type: "airtable.record.created",
21
61
  },
22
62
  airtableRecordDeleted: {
23
- account: AIRTABLE_ACCOUNT,
63
+ account: AIRTABLE_RECORD_ACCOUNT,
24
64
  type: "airtable.record.deleted",
25
65
  },
26
66
  airtableRecordMovedIntoView: {
27
- account: AIRTABLE_ACCOUNT,
67
+ account: AIRTABLE_RECORD_ACCOUNT,
28
68
  type: "airtable.record.movedIntoView",
29
69
  },
30
70
  airtableRecordMovedOutOfView: {
31
- account: AIRTABLE_ACCOUNT,
71
+ account: AIRTABLE_RECORD_ACCOUNT,
32
72
  type: "airtable.record.movedOutOfView",
33
73
  },
34
74
  airtableRecordUpdated: {
35
- account: AIRTABLE_ACCOUNT,
75
+ account: AIRTABLE_RECORD_ACCOUNT,
36
76
  type: "airtable.record.updated",
37
77
  },
78
+ airtableTableCreated: {
79
+ account: AIRTABLE_SCHEMA_ACCOUNT,
80
+ type: "airtable.table.created",
81
+ },
82
+ airtableTableDeleted: {
83
+ account: AIRTABLE_SCHEMA_ACCOUNT,
84
+ type: "airtable.table.deleted",
85
+ },
86
+ airtableTableUpdated: {
87
+ account: AIRTABLE_SCHEMA_ACCOUNT,
88
+ type: "airtable.table.updated",
89
+ },
38
90
  } as const satisfies Record<string, TriggerDefinition>