@friggframework/core 2.0.0--canary.700.80ec1cc.0 → 2.0.0--canary.702.047d3c4.0

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 (130) hide show
  1. package/database/documentdb-utils.js +1 -6
  2. package/errors/index.js +0 -4
  3. package/generated/prisma-mongodb/edge.js +4 -52
  4. package/generated/prisma-mongodb/index-browser.js +1 -49
  5. package/generated/prisma-mongodb/index.d.ts +60 -3506
  6. package/generated/prisma-mongodb/index.js +4 -52
  7. package/generated/prisma-mongodb/package.json +1 -1
  8. package/generated/prisma-mongodb/schema.prisma +0 -65
  9. package/generated/prisma-mongodb/wasm.js +4 -52
  10. package/generated/prisma-postgresql/edge.js +4 -52
  11. package/generated/prisma-postgresql/index-browser.js +1 -49
  12. package/generated/prisma-postgresql/index.d.ts +94 -3824
  13. package/generated/prisma-postgresql/index.js +4 -52
  14. package/generated/prisma-postgresql/package.json +1 -1
  15. package/generated/prisma-postgresql/schema.prisma +0 -63
  16. package/generated/prisma-postgresql/wasm.js +4 -52
  17. package/handlers/WEBHOOKS.md +0 -29
  18. package/handlers/app-definition-loader.js +9 -2
  19. package/handlers/app-handler-helpers.js +2 -5
  20. package/handlers/integration-event-dispatcher.js +3 -7
  21. package/handlers/routers/integration-webhook-routers.js +38 -26
  22. package/index.js +0 -2
  23. package/integrations/integration-base.js +1 -162
  24. package/integrations/integration-router.js +1 -6
  25. package/integrations/repositories/integration-mapping-repository-documentdb.js +0 -50
  26. package/integrations/repositories/integration-mapping-repository-interface.js +0 -15
  27. package/integrations/repositories/integration-mapping-repository-mongo.js +0 -29
  28. package/integrations/repositories/integration-mapping-repository-postgres.js +0 -30
  29. package/integrations/repositories/integration-mapping-repository.js +0 -29
  30. package/integrations/repositories/integration-repository-documentdb.js +2 -6
  31. package/integrations/repositories/integration-repository-interface.js +0 -3
  32. package/integrations/repositories/integration-repository-mongo.js +5 -20
  33. package/integrations/repositories/integration-repository-postgres.js +1 -5
  34. package/integrations/repositories/process-repository-mongo.js +1 -1
  35. package/integrations/use-cases/create-integration.js +4 -14
  36. package/integrations/use-cases/delete-integration-for-user.js +4 -4
  37. package/integrations/use-cases/get-integration-for-user.js +2 -4
  38. package/integrations/use-cases/get-integration-instance.js +4 -4
  39. package/integrations/use-cases/get-integrations-for-user.js +4 -4
  40. package/integrations/use-cases/get-possible-integrations.js +2 -7
  41. package/integrations/use-cases/update-integration.js +4 -4
  42. package/package.json +6 -6
  43. package/prisma-mongodb/schema.prisma +0 -65
  44. package/prisma-postgresql/schema.prisma +0 -63
  45. package/queues/queuer-util.js +2 -9
  46. package/errors/mapping-already-exists-error.js +0 -14
  47. package/handlers/workers/integration-triggers.js +0 -25
  48. package/infrastructure/scheduler/recurrence.js +0 -204
  49. package/integrations/definitions/README.md +0 -278
  50. package/integrations/definitions/canonical.js +0 -11
  51. package/integrations/definitions/capabilities/AUDIT.md +0 -480
  52. package/integrations/definitions/capabilities/acmeerp.capabilities.json +0 -633
  53. package/integrations/definitions/capabilities/asana.capabilities.json +0 -279
  54. package/integrations/definitions/capabilities/calendly.capabilities.json +0 -385
  55. package/integrations/definitions/capabilities/docusign.capabilities.json +0 -314
  56. package/integrations/definitions/capabilities/fathom.capabilities.json +0 -238
  57. package/integrations/definitions/capabilities/github.capabilities.json +0 -585
  58. package/integrations/definitions/capabilities/hubspot.capabilities.json +0 -822
  59. package/integrations/definitions/capabilities/jira.capabilities.json +0 -391
  60. package/integrations/definitions/capabilities/klaviyo.capabilities.json +0 -503
  61. package/integrations/definitions/capabilities/linear.capabilities.json +0 -378
  62. package/integrations/definitions/capabilities/netsuite.capabilities.json +0 -535
  63. package/integrations/definitions/capabilities/notion.capabilities.json +0 -208
  64. package/integrations/definitions/capabilities/phone.capabilities.json +0 -511
  65. package/integrations/definitions/capabilities/pipedrive.capabilities.json +0 -430
  66. package/integrations/definitions/capabilities/quickbooks.capabilities.json +0 -635
  67. package/integrations/definitions/capabilities/salesforce.capabilities.json +0 -568
  68. package/integrations/definitions/capabilities/shopify.capabilities.json +0 -1128
  69. package/integrations/definitions/capabilities/slack.capabilities.json +0 -373
  70. package/integrations/definitions/capabilities/stripe.capabilities.json +0 -630
  71. package/integrations/definitions/capabilities/webflow.capabilities.json +0 -196
  72. package/integrations/definitions/capabilities/zendesk.capabilities.json +0 -422
  73. package/integrations/definitions/compile.js +0 -80
  74. package/integrations/definitions/config-form.js +0 -137
  75. package/integrations/definitions/examples/acme-erp-quickbooks.definition.json +0 -467
  76. package/integrations/definitions/examples/asana-slack.definition.json +0 -219
  77. package/integrations/definitions/examples/calendly-salesforce.definition.json +0 -459
  78. package/integrations/definitions/examples/docusign-salesforce.definition.json +0 -305
  79. package/integrations/definitions/examples/fathom-hubspot-notion.definition.json +0 -575
  80. package/integrations/definitions/examples/github-linear.definition.json +0 -322
  81. package/integrations/definitions/examples/hubspot-slack.definition.json +0 -427
  82. package/integrations/definitions/examples/klaviyo-hubspot.definition.json +0 -336
  83. package/integrations/definitions/examples/phone-hubspot.definition.json +0 -633
  84. package/integrations/definitions/examples/pipedrive-hubspot.definition.json +0 -136
  85. package/integrations/definitions/examples/pipedrive-phone.definition.json +0 -340
  86. package/integrations/definitions/examples/records/phone-hubspot.definition-version.json +0 -652
  87. package/integrations/definitions/examples/records/phone-hubspot.integration.json +0 -86
  88. package/integrations/definitions/examples/records/phone-hubspot.mappings.json +0 -39
  89. package/integrations/definitions/examples/records/phone-hubspot.workflow-run.json +0 -62
  90. package/integrations/definitions/examples/shopify-klaviyo.definition.json +0 -488
  91. package/integrations/definitions/examples/shopify-netsuite.definition.json +0 -622
  92. package/integrations/definitions/examples/stripe-quickbooks.definition.json +0 -476
  93. package/integrations/definitions/examples/webflow-hubspot-slack.definition.json +0 -262
  94. package/integrations/definitions/examples/zendesk-jira.definition.json +0 -604
  95. package/integrations/definitions/expressions.js +0 -229
  96. package/integrations/definitions/index.js +0 -45
  97. package/integrations/definitions/integration-runtime.js +0 -763
  98. package/integrations/definitions/interpreter.js +0 -104
  99. package/integrations/definitions/manifests.js +0 -177
  100. package/integrations/definitions/renderers/common.js +0 -67
  101. package/integrations/definitions/renderers/html.js +0 -129
  102. package/integrations/definitions/renderers/hubspot.js +0 -59
  103. package/integrations/definitions/renderers/preview.js +0 -154
  104. package/integrations/definitions/renderers/slack.js +0 -146
  105. package/integrations/definitions/repositories/definition-version-repository.js +0 -67
  106. package/integrations/definitions/repositories/workflow-run-repository.js +0 -80
  107. package/integrations/definitions/router.js +0 -170
  108. package/integrations/definitions/runtime.js +0 -268
  109. package/integrations/definitions/schema/capability-manifest.v0.1.schema.json +0 -549
  110. package/integrations/definitions/schema/installation.v0.1.schema.json +0 -130
  111. package/integrations/definitions/schema/integration-definition.v0.1.schema.json +0 -909
  112. package/integrations/definitions/schema/records.md +0 -105
  113. package/integrations/definitions/schema-check.js +0 -58
  114. package/integrations/definitions/scripts/check-manifests.js +0 -220
  115. package/integrations/definitions/scripts/validate.js +0 -66
  116. package/integrations/definitions/steps.js +0 -123
  117. package/integrations/definitions/sync-engine.js +0 -297
  118. package/integrations/definitions/tests/helpers-fake-crm.js +0 -49
  119. package/integrations/definitions/transforms.js +0 -91
  120. package/integrations/definitions/use-cases/definition-use-cases.js +0 -245
  121. package/integrations/definitions/validate.js +0 -436
  122. package/integrations/definitions/versioning.js +0 -176
  123. package/integrations/definitions/webhooks.js +0 -119
  124. package/integrations/integration-types.js +0 -64
  125. package/integrations/triggers.js +0 -244
  126. package/integrations/use-cases/run-trigger-tick.js +0 -155
  127. package/integrations/use-cases/run-trigger.js +0 -77
  128. package/prisma-postgresql/migrations/20261018000000_add_data_defined_integrations/migration.sql +0 -66
  129. package/prisma-postgresql/migrations/20261019000000_workflow_run_waits/migration.sql +0 -7
  130. package/prisma-postgresql/migrations/20261019120000_definition_workspace/migration.sql +0 -5
@@ -1,322 +0,0 @@
1
- {
2
- "$schema": "https://friggframework.org/schemas/integration-definition/v0.1.json",
3
- "schemaVersion": "0.1",
4
- "id": "github-linear",
5
- "version": "0.9.0",
6
- "display": {
7
- "label": "GitHub \u2194 Linear",
8
- "description": "GitHub issues and Linear issues stay in sync with label and status mapping, merged PRs move the Linear issue named in the branch to Done, and stale in-progress issues are listed in Slack every morning.",
9
- "category": "Engineering",
10
- "tags": [
11
- "issues",
12
- "developer-tools",
13
- "slack"
14
- ]
15
- },
16
- "modules": {
17
- "github": {
18
- "module": "github",
19
- "version": "^1.8"
20
- },
21
- "linear": {
22
- "module": "linear",
23
- "version": "^1.1"
24
- },
25
- "slack": {
26
- "module": "slack",
27
- "version": "^2.0"
28
- }
29
- },
30
- "settings": {
31
- "repo": {
32
- "type": "option",
33
- "options": "github.repo",
34
- "label": "GitHub repository",
35
- "required": true
36
- },
37
- "team": {
38
- "type": "option",
39
- "options": "linear.team",
40
- "label": "Linear team",
41
- "required": true
42
- }
43
- },
44
- "syncs": [
45
- {
46
- "id": "issues",
47
- "label": "Issues",
48
- "description": "Each GitHub issue is one Linear issue; the Linear issue carries the GitHub URL as an attachment. Pull requests are not synced.",
49
- "source": "github.issue",
50
- "target": "linear.issue",
51
- "direction": "two_way",
52
- "identity": {
53
- "match": [
54
- {
55
- "source": "html_url",
56
- "target": "attachments[0].url",
57
- "key": "issueUrl"
58
- }
59
- ],
60
- "onAmbiguous": "skip"
61
- },
62
- "mapping": [
63
- {
64
- "source": "title",
65
- "target": "title",
66
- "master": "newest"
67
- },
68
- {
69
- "source": "body",
70
- "target": "description",
71
- "master": "newest"
72
- },
73
- {
74
- "source": "state",
75
- "target": "state.name",
76
- "transform": "map_values",
77
- "options": {
78
- "values": {
79
- "open": "Todo",
80
- "closed": "Done"
81
- }
82
- },
83
- "direction": "to_target"
84
- },
85
- {
86
- "source": "state",
87
- "target": "state.type",
88
- "transform": "map_values",
89
- "options": {
90
- "values": {
91
- "triage": "open",
92
- "backlog": "open",
93
- "unstarted": "open",
94
- "started": "open",
95
- "completed": "closed",
96
- "canceled": "closed"
97
- }
98
- },
99
- "direction": "to_source"
100
- },
101
- {
102
- "source": "labels[0].name",
103
- "target": "priority",
104
- "transform": "map_values",
105
- "options": {
106
- "values": {
107
- "P0": 1,
108
- "P1": 2,
109
- "P2": 3,
110
- "P3": 4
111
- },
112
- "fallback": 0
113
- },
114
- "direction": "to_target"
115
- },
116
- {
117
- "source": "html_url",
118
- "target": "attachments[0].url",
119
- "direction": "to_target"
120
- }
121
- ],
122
- "filter": "!($.record.pull_request exists)",
123
- "backfill": {
124
- "trigger": "userAction",
125
- "pageSize": 100
126
- },
127
- "ongoing": {
128
- "mode": "webhook"
129
- },
130
- "default": "on",
131
- "args": {
132
- "github": {
133
- "owner": "{{install.repo | split: '/' | first}}",
134
- "repo": "{{install.repo | split: '/' | last}}"
135
- }
136
- }
137
- }
138
- ],
139
- "workflows": [
140
- {
141
- "id": "pr-merged-done",
142
- "label": "Merged PRs complete the Linear issue in the branch name",
143
- "description": "A branch like dana/eng-142-dedupe moves ENG-142 to the done state when its PR merges.",
144
- "purpose": "write",
145
- "default": "on",
146
- "settings": {
147
- "doneState": {
148
- "type": "option",
149
- "options": {
150
- "source": "linear.workflowState",
151
- "with": {
152
- "teamId": "$.install.team"
153
- }
154
- },
155
- "label": "Move issues to",
156
- "default": "Done"
157
- },
158
- "commentWhenUnlinked": {
159
- "type": "boolean",
160
- "label": "Comment on PRs whose branch names no Linear issue",
161
- "default": false
162
- }
163
- },
164
- "trigger": {
165
- "type": "webhook",
166
- "module": "github",
167
- "topic": "pullRequest.closed",
168
- "filter": "$.record.merged == true"
169
- },
170
- "steps": [
171
- {
172
- "id": "ids",
173
- "use": "code",
174
- "with": {
175
- "ref": "@acme/github-steps#linearIdentifiers@1.0.0",
176
- "with": {
177
- "branch": "$.record.head.ref",
178
- "title": "$.record.title",
179
- "body": "$.record.body"
180
- }
181
- }
182
- },
183
- {
184
- "id": "route",
185
- "use": "branch",
186
- "cases": [
187
- {
188
- "when": "$.steps.ids.identifiers[0] exists",
189
- "do": [
190
- {
191
- "id": "complete",
192
- "use": "foreach",
193
- "with": {
194
- "over": "$.steps.ids.identifiers",
195
- "max": 10
196
- },
197
- "do": [
198
- {
199
- "id": "issue",
200
- "use": "linear.issue.byIdentifier",
201
- "with": {
202
- "identifier": "$.item"
203
- },
204
- "onError": "continue"
205
- },
206
- {
207
- "use": "linear.issue.update",
208
- "when": "$.steps.issue != null && $.steps.issue.state.type != 'completed' && $.steps.issue.state.type != 'canceled'",
209
- "with": {
210
- "id": "$.steps.issue.id",
211
- "input": {
212
- "stateName": "$.settings.doneState"
213
- }
214
- }
215
- },
216
- {
217
- "use": "linear.comment.create",
218
- "when": "$.steps.issue != null",
219
- "with": {
220
- "issueId": "$.steps.issue.id",
221
- "body": "Completed by merged PR [#{{record.number}}]({{record.html_url}})."
222
- }
223
- }
224
- ]
225
- }
226
- ]
227
- },
228
- {
229
- "when": "$.settings.commentWhenUnlinked == true",
230
- "do": [
231
- {
232
- "use": "github.issue.comment",
233
- "with": {
234
- "owner": "$.event.repository.owner.login",
235
- "repo": "$.event.repository.name",
236
- "issue_number": "$.record.number",
237
- "body": "No Linear issue found in branch `{{record.head.ref}}`. Name branches like `eng-123-short-title` to link them."
238
- }
239
- }
240
- ]
241
- }
242
- ]
243
- }
244
- ]
245
- },
246
- {
247
- "id": "stale-digest",
248
- "label": "Daily stale-issue digest in Slack",
249
- "purpose": "notify",
250
- "default": "off",
251
- "settings": {
252
- "channel": {
253
- "type": "option",
254
- "options": "slack.channel",
255
- "label": "Post to",
256
- "required": true
257
- },
258
- "staleAfter": {
259
- "type": "enum",
260
- "label": "Stale after no update for",
261
- "enum": [
262
- "-7d",
263
- "-14d",
264
- "-30d"
265
- ],
266
- "default": "-14d"
267
- }
268
- },
269
- "trigger": {
270
- "type": "schedule",
271
- "cron": "30 9 * * 1-5",
272
- "timezone": "Europe/London"
273
- },
274
- "steps": [
275
- {
276
- "id": "stale",
277
- "use": "linear.issue.search",
278
- "with": {
279
- "teamId": "$.install.team",
280
- "stateType": "started",
281
- "updatedBefore": "$.settings.staleAfter",
282
- "first": 50
283
- }
284
- },
285
- {
286
- "use": "stop",
287
- "when": "$.steps.stale[0] == null",
288
- "with": {
289
- "reason": "Nothing is stale"
290
- }
291
- },
292
- {
293
- "id": "build",
294
- "use": "foreach",
295
- "with": {
296
- "over": "$.steps.stale",
297
- "max": 50,
298
- "collect": "\u2022 <{{item.url}}|{{item.identifier}}> {{item.title | truncate: 70}} ({{item.assignee.email | default: 'unassigned'}}, last update {{item.updatedAt | date}})"
299
- }
300
- },
301
- {
302
- "id": "text",
303
- "use": "template",
304
- "with": {
305
- "id": "stale-digest"
306
- }
307
- },
308
- {
309
- "use": "slack.message.post",
310
- "with": {
311
- "channel": "$.settings.channel",
312
- "text": "$.steps.text",
313
- "unfurl_links": false
314
- }
315
- }
316
- ]
317
- }
318
- ],
319
- "templates": {
320
- "stale-digest": ":hourglass_flowing_sand: *In progress with no update since {{settings.staleAfter}}* ({{steps.stale | size}} issues)\n{{steps.build | join: '\\n'}}"
321
- }
322
- }