@contractspec/example.integration-hub 2.5.0 → 2.6.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.
Files changed (48) hide show
  1. package/README.md +40 -0
  2. package/dist/docs/index.js +2 -0
  3. package/dist/docs/integration-hub.docblock.js +2 -0
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +149 -0
  6. package/dist/mcp-example.d.ts +16 -0
  7. package/dist/mcp-example.js +151 -0
  8. package/dist/node/docs/index.js +2 -0
  9. package/dist/node/docs/integration-hub.docblock.js +2 -0
  10. package/dist/node/index.js +149 -0
  11. package/dist/node/mcp-example.js +150 -0
  12. package/dist/node/run-mcp.js +155 -0
  13. package/dist/run-mcp.d.ts +1 -0
  14. package/dist/run-mcp.js +156 -0
  15. package/package.json +34 -94
  16. package/dist/browser/connection/connection.enum.js +0 -12
  17. package/dist/browser/connection/connection.operation.js +0 -101
  18. package/dist/browser/connection/connection.presentation.js +0 -102
  19. package/dist/browser/connection/connection.schema.js +0 -48
  20. package/dist/browser/connection/index.js +0 -104
  21. package/dist/browser/docs/index.js +0 -104
  22. package/dist/browser/docs/integration-hub.docblock.js +0 -104
  23. package/dist/browser/events.js +0 -211
  24. package/dist/browser/example.js +0 -42
  25. package/dist/browser/handlers/index.js +0 -246
  26. package/dist/browser/handlers/integration.handlers.js +0 -246
  27. package/dist/browser/index.js +0 -1595
  28. package/dist/browser/integration/index.js +0 -92
  29. package/dist/browser/integration/integration.enum.js +0 -12
  30. package/dist/browser/integration/integration.operations.js +0 -89
  31. package/dist/browser/integration/integration.presentation.js +0 -120
  32. package/dist/browser/integration/integration.schema.js +0 -42
  33. package/dist/browser/integration-hub.capability.js +0 -43
  34. package/dist/browser/integration-hub.feature.js +0 -114
  35. package/dist/browser/seeders/index.js +0 -60
  36. package/dist/browser/sync/index.js +0 -332
  37. package/dist/browser/sync/sync.enum.js +0 -26
  38. package/dist/browser/sync/sync.operations.js +0 -321
  39. package/dist/browser/sync/sync.presentation.js +0 -301
  40. package/dist/browser/sync/sync.schema.js +0 -154
  41. package/dist/browser/sync-engine/index.js +0 -186
  42. package/dist/browser/tests/operations.test-spec.js +0 -85
  43. package/dist/browser/ui/IntegrationDashboard.js +0 -369
  44. package/dist/browser/ui/hooks/index.js +0 -57
  45. package/dist/browser/ui/hooks/useIntegrationData.js +0 -54
  46. package/dist/browser/ui/index.js +0 -644
  47. package/dist/browser/ui/renderers/index.js +0 -273
  48. package/dist/browser/ui/renderers/integration.markdown.js +0 -273
@@ -1,92 +0,0 @@
1
- // src/integration/integration.enum.ts
2
- import { defineEnum } from "@contractspec/lib.schema";
3
- var IntegrationStatusEnum = defineEnum("IntegrationStatus", [
4
- "DRAFT",
5
- "ACTIVE",
6
- "PAUSED",
7
- "ERROR",
8
- "ARCHIVED"
9
- ]);
10
-
11
- // src/integration/integration.schema.ts
12
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
13
- var IntegrationModel = defineSchemaModel({
14
- name: "IntegrationModel",
15
- fields: {
16
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
17
- name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
18
- slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
19
- description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
20
- provider: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
21
- status: { type: IntegrationStatusEnum, isOptional: false },
22
- createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
23
- }
24
- });
25
- var CreateIntegrationInputModel = defineSchemaModel({
26
- name: "CreateIntegrationInput",
27
- fields: {
28
- name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
29
- slug: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
30
- description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
31
- provider: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
32
- config: { type: ScalarTypeEnum.JSON(), isOptional: true },
33
- featureFlagKey: {
34
- type: ScalarTypeEnum.String_unsecure(),
35
- isOptional: true
36
- }
37
- }
38
- });
39
-
40
- // src/integration/integration.operations.ts
41
- import { defineCommand } from "@contractspec/lib.contracts-spec/operations";
42
- var CreateIntegrationContract = defineCommand({
43
- meta: {
44
- key: "integration.create",
45
- version: "1.0.0",
46
- stability: "stable",
47
- owners: ["@example.integration-hub"],
48
- tags: ["integration", "create"],
49
- description: "Create a new integration.",
50
- goal: "Allow users to set up integrations with external systems.",
51
- context: "Integration setup."
52
- },
53
- io: { input: CreateIntegrationInputModel, output: IntegrationModel },
54
- policy: { auth: "user" },
55
- sideEffects: {
56
- emits: [
57
- {
58
- key: "integration.created",
59
- version: "1.0.0",
60
- when: "Integration created",
61
- payload: IntegrationModel
62
- }
63
- ],
64
- audit: ["integration.created"]
65
- },
66
- acceptance: {
67
- scenarios: [
68
- {
69
- key: "create-integration-happy-path",
70
- given: ["User is admin"],
71
- when: ["User defines new integration type"],
72
- then: [
73
- "Integration definition is created",
74
- "IntegrationCreated event is emitted"
75
- ]
76
- }
77
- ],
78
- examples: [
79
- {
80
- key: "create-slack",
81
- input: { name: "Slack", category: "communication", authType: "oauth2" },
82
- output: { id: "slack", status: "active" }
83
- }
84
- ]
85
- }
86
- });
87
- export {
88
- IntegrationStatusEnum,
89
- IntegrationModel,
90
- CreateIntegrationInputModel,
91
- CreateIntegrationContract
92
- };
@@ -1,12 +0,0 @@
1
- // src/integration/integration.enum.ts
2
- import { defineEnum } from "@contractspec/lib.schema";
3
- var IntegrationStatusEnum = defineEnum("IntegrationStatus", [
4
- "DRAFT",
5
- "ACTIVE",
6
- "PAUSED",
7
- "ERROR",
8
- "ARCHIVED"
9
- ]);
10
- export {
11
- IntegrationStatusEnum
12
- };
@@ -1,89 +0,0 @@
1
- // src/integration/integration.enum.ts
2
- import { defineEnum } from "@contractspec/lib.schema";
3
- var IntegrationStatusEnum = defineEnum("IntegrationStatus", [
4
- "DRAFT",
5
- "ACTIVE",
6
- "PAUSED",
7
- "ERROR",
8
- "ARCHIVED"
9
- ]);
10
-
11
- // src/integration/integration.schema.ts
12
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
13
- var IntegrationModel = defineSchemaModel({
14
- name: "IntegrationModel",
15
- fields: {
16
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
17
- name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
18
- slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
19
- description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
20
- provider: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
21
- status: { type: IntegrationStatusEnum, isOptional: false },
22
- createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
23
- }
24
- });
25
- var CreateIntegrationInputModel = defineSchemaModel({
26
- name: "CreateIntegrationInput",
27
- fields: {
28
- name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
29
- slug: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
30
- description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
31
- provider: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
32
- config: { type: ScalarTypeEnum.JSON(), isOptional: true },
33
- featureFlagKey: {
34
- type: ScalarTypeEnum.String_unsecure(),
35
- isOptional: true
36
- }
37
- }
38
- });
39
-
40
- // src/integration/integration.operations.ts
41
- import { defineCommand } from "@contractspec/lib.contracts-spec/operations";
42
- var CreateIntegrationContract = defineCommand({
43
- meta: {
44
- key: "integration.create",
45
- version: "1.0.0",
46
- stability: "stable",
47
- owners: ["@example.integration-hub"],
48
- tags: ["integration", "create"],
49
- description: "Create a new integration.",
50
- goal: "Allow users to set up integrations with external systems.",
51
- context: "Integration setup."
52
- },
53
- io: { input: CreateIntegrationInputModel, output: IntegrationModel },
54
- policy: { auth: "user" },
55
- sideEffects: {
56
- emits: [
57
- {
58
- key: "integration.created",
59
- version: "1.0.0",
60
- when: "Integration created",
61
- payload: IntegrationModel
62
- }
63
- ],
64
- audit: ["integration.created"]
65
- },
66
- acceptance: {
67
- scenarios: [
68
- {
69
- key: "create-integration-happy-path",
70
- given: ["User is admin"],
71
- when: ["User defines new integration type"],
72
- then: [
73
- "Integration definition is created",
74
- "IntegrationCreated event is emitted"
75
- ]
76
- }
77
- ],
78
- examples: [
79
- {
80
- key: "create-slack",
81
- input: { name: "Slack", category: "communication", authType: "oauth2" },
82
- output: { id: "slack", status: "active" }
83
- }
84
- ]
85
- }
86
- });
87
- export {
88
- CreateIntegrationContract
89
- };
@@ -1,120 +0,0 @@
1
- // src/integration/integration.enum.ts
2
- import { defineEnum } from "@contractspec/lib.schema";
3
- var IntegrationStatusEnum = defineEnum("IntegrationStatus", [
4
- "DRAFT",
5
- "ACTIVE",
6
- "PAUSED",
7
- "ERROR",
8
- "ARCHIVED"
9
- ]);
10
-
11
- // src/integration/integration.schema.ts
12
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
13
- var IntegrationModel = defineSchemaModel({
14
- name: "IntegrationModel",
15
- fields: {
16
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
17
- name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
18
- slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
19
- description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
20
- provider: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
21
- status: { type: IntegrationStatusEnum, isOptional: false },
22
- createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
23
- }
24
- });
25
- var CreateIntegrationInputModel = defineSchemaModel({
26
- name: "CreateIntegrationInput",
27
- fields: {
28
- name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
29
- slug: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
30
- description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
31
- provider: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
32
- config: { type: ScalarTypeEnum.JSON(), isOptional: true },
33
- featureFlagKey: {
34
- type: ScalarTypeEnum.String_unsecure(),
35
- isOptional: true
36
- }
37
- }
38
- });
39
-
40
- // src/integration/integration.presentation.ts
41
- import {
42
- definePresentation,
43
- StabilityEnum
44
- } from "@contractspec/lib.contracts-spec";
45
- var IntegrationListPresentation = definePresentation({
46
- meta: {
47
- key: "integration.list",
48
- version: "1.0.0",
49
- title: "Integration List",
50
- description: "List of available integrations",
51
- domain: "integration",
52
- owners: ["@integration-team"],
53
- tags: ["integration", "list"],
54
- stability: StabilityEnum.Experimental,
55
- goal: "Show users available integrations they can connect to.",
56
- context: "The marketplace of integrations within the hub."
57
- },
58
- source: {
59
- type: "component",
60
- framework: "react",
61
- componentKey: "IntegrationList",
62
- props: IntegrationModel
63
- },
64
- targets: ["react", "markdown"],
65
- policy: {
66
- flags: ["integration.enabled"]
67
- }
68
- });
69
- var IntegrationDetailPresentation = definePresentation({
70
- meta: {
71
- key: "integration.detail",
72
- version: "1.0.0",
73
- title: "Integration Details",
74
- description: "Detailed view of an integration",
75
- domain: "integration",
76
- owners: ["@integration-team"],
77
- tags: ["integration", "detail"],
78
- stability: StabilityEnum.Experimental,
79
- goal: "Show capabilities and documentation for a specific integration.",
80
- context: "Integration showcase and support page."
81
- },
82
- source: {
83
- type: "component",
84
- framework: "react",
85
- componentKey: "IntegrationDetail",
86
- props: IntegrationModel
87
- },
88
- targets: ["react", "markdown"],
89
- policy: {
90
- flags: ["integration.enabled"]
91
- }
92
- });
93
- var IntegrationHealthPresentation = definePresentation({
94
- meta: {
95
- key: "integration.health",
96
- version: "1.0.0",
97
- title: "Integration Health",
98
- description: "Integration health monitoring dashboard",
99
- domain: "integration",
100
- owners: ["@integration-team"],
101
- tags: ["integration", "health", "monitoring"],
102
- stability: StabilityEnum.Experimental,
103
- goal: "Monitor connectivity and error rates for active integrations.",
104
- context: "Operations dashboard for integration hub health."
105
- },
106
- source: {
107
- type: "component",
108
- framework: "react",
109
- componentKey: "IntegrationHealth"
110
- },
111
- targets: ["react", "markdown"],
112
- policy: {
113
- flags: ["integration.monitoring.enabled"]
114
- }
115
- });
116
- export {
117
- IntegrationListPresentation,
118
- IntegrationHealthPresentation,
119
- IntegrationDetailPresentation
120
- };
@@ -1,42 +0,0 @@
1
- // src/integration/integration.enum.ts
2
- import { defineEnum } from "@contractspec/lib.schema";
3
- var IntegrationStatusEnum = defineEnum("IntegrationStatus", [
4
- "DRAFT",
5
- "ACTIVE",
6
- "PAUSED",
7
- "ERROR",
8
- "ARCHIVED"
9
- ]);
10
-
11
- // src/integration/integration.schema.ts
12
- import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
13
- var IntegrationModel = defineSchemaModel({
14
- name: "IntegrationModel",
15
- fields: {
16
- id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
17
- name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
18
- slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
19
- description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
20
- provider: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
21
- status: { type: IntegrationStatusEnum, isOptional: false },
22
- createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
23
- }
24
- });
25
- var CreateIntegrationInputModel = defineSchemaModel({
26
- name: "CreateIntegrationInput",
27
- fields: {
28
- name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
29
- slug: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
30
- description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
31
- provider: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
32
- config: { type: ScalarTypeEnum.JSON(), isOptional: true },
33
- featureFlagKey: {
34
- type: ScalarTypeEnum.String_unsecure(),
35
- isOptional: true
36
- }
37
- }
38
- });
39
- export {
40
- IntegrationModel,
41
- CreateIntegrationInputModel
42
- };
@@ -1,43 +0,0 @@
1
- // src/integration-hub.capability.ts
2
- import {
3
- defineCapability,
4
- StabilityEnum
5
- } from "@contractspec/lib.contracts-spec";
6
- var IntegrationCapability = defineCapability({
7
- meta: {
8
- key: "integration",
9
- version: "1.0.0",
10
- kind: "integration",
11
- stability: StabilityEnum.Experimental,
12
- description: "Third-party integration connections",
13
- owners: ["platform.core"],
14
- tags: ["integration", "connections"]
15
- }
16
- });
17
- var SyncCapability = defineCapability({
18
- meta: {
19
- key: "sync",
20
- version: "1.0.0",
21
- kind: "api",
22
- stability: StabilityEnum.Experimental,
23
- description: "Data synchronization between systems",
24
- owners: ["platform.core"],
25
- tags: ["sync", "data"]
26
- }
27
- });
28
- var EtlCapability = defineCapability({
29
- meta: {
30
- key: "etl",
31
- version: "1.0.0",
32
- kind: "api",
33
- stability: StabilityEnum.Experimental,
34
- description: "Extract, transform, load data pipelines",
35
- owners: ["platform.core"],
36
- tags: ["etl", "data", "pipeline"]
37
- }
38
- });
39
- export {
40
- SyncCapability,
41
- IntegrationCapability,
42
- EtlCapability
43
- };
@@ -1,114 +0,0 @@
1
- // src/integration-hub.feature.ts
2
- import { defineFeature } from "@contractspec/lib.contracts-spec";
3
- var IntegrationHubFeature = defineFeature({
4
- meta: {
5
- key: "integration-hub",
6
- version: "1.0.0",
7
- title: "Integration Hub",
8
- description: "Connect and sync data with external systems through configurable integrations",
9
- domain: "integration",
10
- owners: ["@integration-team"],
11
- tags: ["integration", "sync", "etl", "connectors"],
12
- stability: "experimental"
13
- },
14
- operations: [
15
- { key: "integration.create", version: "1.0.0" },
16
- { key: "integration.connection.create", version: "1.0.0" },
17
- { key: "integration.syncConfig.create", version: "1.0.0" },
18
- { key: "integration.fieldMapping.add", version: "1.0.0" },
19
- { key: "integration.sync.trigger", version: "1.0.0" },
20
- { key: "integration.syncRun.list", version: "1.0.0" }
21
- ],
22
- events: [
23
- { key: "integration.created", version: "1.0.0" },
24
- { key: "integration.connection.created", version: "1.0.0" },
25
- { key: "integration.connection.statusChanged", version: "1.0.0" },
26
- { key: "integration.syncConfig.created", version: "1.0.0" },
27
- { key: "integration.sync.started", version: "1.0.0" },
28
- { key: "integration.sync.completed", version: "1.0.0" },
29
- { key: "integration.sync.failed", version: "1.0.0" },
30
- { key: "integration.record.synced", version: "1.0.0" },
31
- { key: "integration.fieldMapping.added", version: "1.0.0" }
32
- ],
33
- presentations: [
34
- { key: "integration.list", version: "1.0.0" },
35
- { key: "integration.detail", version: "1.0.0" },
36
- { key: "integration.connection.list", version: "1.0.0" },
37
- { key: "integration.connection.setup", version: "1.0.0" },
38
- { key: "integration.syncConfig.list", version: "1.0.0" },
39
- { key: "integration.syncConfig.editor", version: "1.0.0" },
40
- { key: "integration.fieldMapping.editor", version: "1.0.0" },
41
- { key: "integration.syncRun.viewList", version: "1.0.0" },
42
- { key: "integration.syncRun.detail", version: "1.0.0" },
43
- { key: "integration.health", version: "1.0.0" },
44
- { key: "integration.sync.activity", version: "1.0.0" }
45
- ],
46
- opToPresentation: [
47
- {
48
- op: { key: "integration.syncConfig.create", version: "1.0.0" },
49
- pres: { key: "integration.syncConfig.editor", version: "1.0.0" }
50
- },
51
- {
52
- op: { key: "integration.fieldMapping.add", version: "1.0.0" },
53
- pres: { key: "integration.fieldMapping.editor", version: "1.0.0" }
54
- },
55
- {
56
- op: { key: "integration.syncRun.list", version: "1.0.0" },
57
- pres: { key: "integration.syncRun.viewList", version: "1.0.0" }
58
- }
59
- ],
60
- presentationsTargets: [
61
- {
62
- key: "integration.list",
63
- version: "1.0.0",
64
- targets: ["react", "markdown"]
65
- },
66
- {
67
- key: "integration.detail",
68
- version: "1.0.0",
69
- targets: ["react", "markdown"]
70
- },
71
- {
72
- key: "integration.syncConfig.list",
73
- version: "1.0.0",
74
- targets: ["react", "markdown"]
75
- },
76
- {
77
- key: "integration.syncConfig.editor",
78
- version: "1.0.0",
79
- targets: ["react"]
80
- },
81
- {
82
- key: "integration.fieldMapping.editor",
83
- version: "1.0.0",
84
- targets: ["react"]
85
- },
86
- {
87
- key: "integration.syncRun.viewList",
88
- version: "1.0.0",
89
- targets: ["react", "markdown"]
90
- },
91
- {
92
- key: "integration.syncRun.detail",
93
- version: "1.0.0",
94
- targets: ["react", "markdown"]
95
- }
96
- ],
97
- capabilities: {
98
- requires: [
99
- { key: "identity", version: "1.0.0" },
100
- { key: "audit-trail", version: "1.0.0" },
101
- { key: "feature-flags", version: "1.0.0" },
102
- { key: "jobs", version: "1.0.0" },
103
- { key: "files", version: "1.0.0" }
104
- ],
105
- provides: [
106
- { key: "integration", version: "1.0.0" },
107
- { key: "sync", version: "1.0.0" },
108
- { key: "etl", version: "1.0.0" }
109
- ]
110
- }
111
- });
112
- export {
113
- IntegrationHubFeature
114
- };
@@ -1,60 +0,0 @@
1
- // src/seeders/index.ts
2
- async function seedIntegrationHub(params) {
3
- const { projectId, db } = params;
4
- const existing = await db.query(`SELECT COUNT(*) as count FROM integration WHERE "projectId" = $1`, [projectId]);
5
- if (existing.rows[0]?.count > 0)
6
- return;
7
- await db.execute(`INSERT INTO integration (id, "projectId", "organizationId", name, description, type, status)
8
- VALUES ($1, $2, $3, $4, $5, $6, $7)`, [
9
- "int_1",
10
- projectId,
11
- "org_demo",
12
- "Salesforce",
13
- "Salesforce CRM integration",
14
- "CRM",
15
- "ACTIVE"
16
- ]);
17
- await db.execute(`INSERT INTO integration (id, "projectId", "organizationId", name, description, type, status)
18
- VALUES ($1, $2, $3, $4, $5, $6, $7)`, [
19
- "int_2",
20
- projectId,
21
- "org_demo",
22
- "Meeting Recorder",
23
- "Meeting recorder transcripts and metadata",
24
- "DATA",
25
- "ACTIVE"
26
- ]);
27
- await db.execute(`INSERT INTO integration (id, "projectId", "organizationId", name, description, type, status)
28
- VALUES ($1, $2, $3, $4, $5, $6, $7)`, [
29
- "int_3",
30
- projectId,
31
- "org_demo",
32
- "Gradium Voice",
33
- "Gradium low-latency text-to-speech integration",
34
- "COMMUNICATION",
35
- "ACTIVE"
36
- ]);
37
- await db.execute(`INSERT INTO integration (id, "projectId", "organizationId", name, description, type, status)
38
- VALUES ($1, $2, $3, $4, $5, $6, $7)`, [
39
- "int_4",
40
- projectId,
41
- "org_demo",
42
- "Fal Chatterbox Voice",
43
- "Fal Chatterbox text-to-speech integration",
44
- "COMMUNICATION",
45
- "ACTIVE"
46
- ]);
47
- await db.execute(`INSERT INTO integration (id, "projectId", "organizationId", name, description, type, status)
48
- VALUES ($1, $2, $3, $4, $5, $6, $7)`, [
49
- "int_5",
50
- projectId,
51
- "org_demo",
52
- "PostHog Analytics",
53
- "Product analytics and event capture",
54
- "ANALYTICS",
55
- "ACTIVE"
56
- ]);
57
- }
58
- export {
59
- seedIntegrationHub
60
- };