@contember/engine-actions 2.0.0-alpha.9 → 2.0.0-beta.2

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 (183) hide show
  1. package/dist/development/index.cjs.map +1 -1
  2. package/dist/development/index.js.map +1 -1
  3. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs +2 -2
  4. package/dist/development/src/ActionsExecutionContainerHookFactory.cjs.map +1 -1
  5. package/dist/development/src/ActionsExecutionContainerHookFactory.js +2 -2
  6. package/dist/development/src/ActionsExecutionContainerHookFactory.js.map +1 -1
  7. package/dist/development/src/ListenerStoreProvider.cjs.map +1 -1
  8. package/dist/development/src/ListenerStoreProvider.js.map +1 -1
  9. package/dist/development/src/authorization/ActionsAuthorizationActions.cjs.map +1 -1
  10. package/dist/development/src/authorization/ActionsAuthorizationActions.js.map +1 -1
  11. package/dist/development/src/authorization/ActionsPermissionsFactory.cjs.map +1 -1
  12. package/dist/development/src/authorization/ActionsPermissionsFactory.js.map +1 -1
  13. package/dist/development/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -1
  14. package/dist/development/src/dispatch/DispatchWorkerSupervisor.js.map +1 -1
  15. package/dist/development/src/dispatch/EventDispatcher.cjs +1 -1
  16. package/dist/development/src/dispatch/EventDispatcher.cjs.map +1 -1
  17. package/dist/development/src/dispatch/EventDispatcher.js +1 -1
  18. package/dist/development/src/dispatch/EventDispatcher.js.map +1 -1
  19. package/dist/development/src/dispatch/EventsRepository.cjs.map +1 -1
  20. package/dist/development/src/dispatch/EventsRepository.js.map +1 -1
  21. package/dist/development/src/dispatch/ProjectDispatcher.cjs.map +1 -1
  22. package/dist/development/src/dispatch/ProjectDispatcher.js.map +1 -1
  23. package/dist/development/src/dispatch/TargetHandlerResolver.cjs.map +1 -1
  24. package/dist/development/src/dispatch/TargetHandlerResolver.js.map +1 -1
  25. package/dist/development/src/dispatch/WebhookFetcher.cjs.map +1 -1
  26. package/dist/development/src/dispatch/WebhookFetcher.js.map +1 -1
  27. package/dist/development/src/dispatch/WebhookTargetHandler.cjs.map +1 -1
  28. package/dist/development/src/dispatch/WebhookTargetHandler.js.map +1 -1
  29. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -1
  30. package/dist/development/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -1
  31. package/dist/development/src/graphql/http/ActionsContextResolver.cjs.map +1 -1
  32. package/dist/development/src/graphql/http/ActionsContextResolver.js.map +1 -1
  33. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +1 -1
  34. package/dist/development/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -1
  35. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -1
  36. package/dist/development/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -1
  37. package/dist/development/src/graphql/resolvers/ResolversFactory.cjs.map +1 -1
  38. package/dist/development/src/graphql/resolvers/ResolversFactory.js.map +1 -1
  39. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +1 -1
  40. package/dist/development/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -1
  41. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +1 -1
  42. package/dist/development/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -1
  43. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  44. package/dist/development/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -1
  45. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +1 -1
  46. package/dist/development/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -1
  47. package/dist/development/src/graphql/schema/actions.graphql.cjs.map +1 -1
  48. package/dist/development/src/model/EventsInProcessingQuery.cjs.map +1 -1
  49. package/dist/development/src/model/EventsInProcessingQuery.js.map +1 -1
  50. package/dist/development/src/model/EventsToProcessQuery.cjs.map +1 -1
  51. package/dist/development/src/model/EventsToProcessQuery.js.map +1 -1
  52. package/dist/development/src/model/FailedEventsQuery.cjs.map +1 -1
  53. package/dist/development/src/model/FailedEventsQuery.js.map +1 -1
  54. package/dist/development/src/model/SetVariableCommand.cjs.map +1 -1
  55. package/dist/development/src/model/SetVariableCommand.js.map +1 -1
  56. package/dist/development/src/model/VariablesManager.cjs.map +1 -1
  57. package/dist/development/src/model/VariablesManager.js.map +1 -1
  58. package/dist/development/src/model/VariablesQuery.cjs.map +1 -1
  59. package/dist/development/src/model/VariablesQuery.js.map +1 -1
  60. package/dist/development/src/triggers/TriggerHandler.cjs +2 -2
  61. package/dist/development/src/triggers/TriggerHandler.cjs.map +1 -1
  62. package/dist/development/src/triggers/TriggerHandler.js +2 -2
  63. package/dist/development/src/triggers/TriggerHandler.js.map +1 -1
  64. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -1
  65. package/dist/development/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -1
  66. package/dist/development/src/triggers/TriggerListenersBuilder.cjs.map +1 -1
  67. package/dist/development/src/triggers/TriggerListenersBuilder.js.map +1 -1
  68. package/dist/development/src/triggers/TriggerListenersFactory.cjs.map +1 -1
  69. package/dist/development/src/triggers/TriggerListenersFactory.js.map +1 -1
  70. package/dist/development/src/triggers/TriggerListenersStore.cjs.map +1 -1
  71. package/dist/development/src/triggers/TriggerListenersStore.js.map +1 -1
  72. package/dist/development/src/triggers/TriggerPayloadBuilder.cjs +4 -4
  73. package/dist/development/src/triggers/TriggerPayloadBuilder.cjs.map +1 -1
  74. package/dist/development/src/triggers/TriggerPayloadBuilder.js +4 -4
  75. package/dist/development/src/triggers/TriggerPayloadBuilder.js.map +1 -1
  76. package/dist/development/src/triggers/TriggerPayloadManager.cjs.map +1 -1
  77. package/dist/development/src/triggers/TriggerPayloadManager.js.map +1 -1
  78. package/dist/development/src/triggers/TriggerPayloadPersister.cjs +3 -0
  79. package/dist/development/src/triggers/TriggerPayloadPersister.cjs.map +1 -1
  80. package/dist/development/src/triggers/TriggerPayloadPersister.js +3 -0
  81. package/dist/development/src/triggers/TriggerPayloadPersister.js.map +1 -1
  82. package/dist/development/src/utils/map.cjs.map +1 -1
  83. package/dist/development/src/utils/map.js.map +1 -1
  84. package/dist/production/index.cjs.map +1 -1
  85. package/dist/production/index.js.map +1 -1
  86. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs +2 -2
  87. package/dist/production/src/ActionsExecutionContainerHookFactory.cjs.map +1 -1
  88. package/dist/production/src/ActionsExecutionContainerHookFactory.js +2 -2
  89. package/dist/production/src/ActionsExecutionContainerHookFactory.js.map +1 -1
  90. package/dist/production/src/ListenerStoreProvider.cjs.map +1 -1
  91. package/dist/production/src/ListenerStoreProvider.js.map +1 -1
  92. package/dist/production/src/authorization/ActionsAuthorizationActions.cjs.map +1 -1
  93. package/dist/production/src/authorization/ActionsAuthorizationActions.js.map +1 -1
  94. package/dist/production/src/authorization/ActionsPermissionsFactory.cjs.map +1 -1
  95. package/dist/production/src/authorization/ActionsPermissionsFactory.js.map +1 -1
  96. package/dist/production/src/dispatch/DispatchWorkerSupervisor.cjs.map +1 -1
  97. package/dist/production/src/dispatch/DispatchWorkerSupervisor.js.map +1 -1
  98. package/dist/production/src/dispatch/EventDispatcher.cjs +1 -1
  99. package/dist/production/src/dispatch/EventDispatcher.cjs.map +1 -1
  100. package/dist/production/src/dispatch/EventDispatcher.js +1 -1
  101. package/dist/production/src/dispatch/EventDispatcher.js.map +1 -1
  102. package/dist/production/src/dispatch/EventsRepository.cjs.map +1 -1
  103. package/dist/production/src/dispatch/EventsRepository.js.map +1 -1
  104. package/dist/production/src/dispatch/ProjectDispatcher.cjs.map +1 -1
  105. package/dist/production/src/dispatch/ProjectDispatcher.js.map +1 -1
  106. package/dist/production/src/dispatch/TargetHandlerResolver.cjs.map +1 -1
  107. package/dist/production/src/dispatch/TargetHandlerResolver.js.map +1 -1
  108. package/dist/production/src/dispatch/WebhookFetcher.cjs.map +1 -1
  109. package/dist/production/src/dispatch/WebhookFetcher.js.map +1 -1
  110. package/dist/production/src/dispatch/WebhookTargetHandler.cjs.map +1 -1
  111. package/dist/production/src/dispatch/WebhookTargetHandler.js.map +1 -1
  112. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.cjs.map +1 -1
  113. package/dist/production/src/graphql/http/ActionsApiMiddlewareFactory.js.map +1 -1
  114. package/dist/production/src/graphql/http/ActionsContextResolver.cjs.map +1 -1
  115. package/dist/production/src/graphql/http/ActionsContextResolver.js.map +1 -1
  116. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.cjs.map +1 -1
  117. package/dist/production/src/graphql/http/ActionsGraphQLHandlerFactory.js.map +1 -1
  118. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.cjs.map +1 -1
  119. package/dist/production/src/graphql/http/ActionsWebsocketControllerFactory.js.map +1 -1
  120. package/dist/production/src/graphql/resolvers/ResolversFactory.cjs.map +1 -1
  121. package/dist/production/src/graphql/resolvers/ResolversFactory.js.map +1 -1
  122. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.cjs.map +1 -1
  123. package/dist/production/src/graphql/resolvers/mutation/ProcessBatchMutationResolver.js.map +1 -1
  124. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.cjs.map +1 -1
  125. package/dist/production/src/graphql/resolvers/mutation/SetVariablesMutationResolver.js.map +1 -1
  126. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  127. package/dist/production/src/graphql/resolvers/query/EventsQueryResolver.js.map +1 -1
  128. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.cjs.map +1 -1
  129. package/dist/production/src/graphql/resolvers/query/VariablesQueryResolver.js.map +1 -1
  130. package/dist/production/src/graphql/schema/actions.graphql.cjs.map +1 -1
  131. package/dist/production/src/model/EventsInProcessingQuery.cjs.map +1 -1
  132. package/dist/production/src/model/EventsInProcessingQuery.js.map +1 -1
  133. package/dist/production/src/model/EventsToProcessQuery.cjs.map +1 -1
  134. package/dist/production/src/model/EventsToProcessQuery.js.map +1 -1
  135. package/dist/production/src/model/FailedEventsQuery.cjs.map +1 -1
  136. package/dist/production/src/model/FailedEventsQuery.js.map +1 -1
  137. package/dist/production/src/model/SetVariableCommand.cjs.map +1 -1
  138. package/dist/production/src/model/SetVariableCommand.js.map +1 -1
  139. package/dist/production/src/model/VariablesManager.cjs.map +1 -1
  140. package/dist/production/src/model/VariablesManager.js.map +1 -1
  141. package/dist/production/src/model/VariablesQuery.cjs.map +1 -1
  142. package/dist/production/src/model/VariablesQuery.js.map +1 -1
  143. package/dist/production/src/triggers/TriggerHandler.cjs +2 -2
  144. package/dist/production/src/triggers/TriggerHandler.cjs.map +1 -1
  145. package/dist/production/src/triggers/TriggerHandler.js +2 -2
  146. package/dist/production/src/triggers/TriggerHandler.js.map +1 -1
  147. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.cjs.map +1 -1
  148. package/dist/production/src/triggers/TriggerIndirectChangesFetcher.js.map +1 -1
  149. package/dist/production/src/triggers/TriggerListenersBuilder.cjs.map +1 -1
  150. package/dist/production/src/triggers/TriggerListenersBuilder.js.map +1 -1
  151. package/dist/production/src/triggers/TriggerListenersFactory.cjs.map +1 -1
  152. package/dist/production/src/triggers/TriggerListenersFactory.js.map +1 -1
  153. package/dist/production/src/triggers/TriggerListenersStore.cjs.map +1 -1
  154. package/dist/production/src/triggers/TriggerListenersStore.js.map +1 -1
  155. package/dist/production/src/triggers/TriggerPayloadBuilder.cjs +4 -4
  156. package/dist/production/src/triggers/TriggerPayloadBuilder.cjs.map +1 -1
  157. package/dist/production/src/triggers/TriggerPayloadBuilder.js +4 -4
  158. package/dist/production/src/triggers/TriggerPayloadBuilder.js.map +1 -1
  159. package/dist/production/src/triggers/TriggerPayloadManager.cjs.map +1 -1
  160. package/dist/production/src/triggers/TriggerPayloadManager.js.map +1 -1
  161. package/dist/production/src/triggers/TriggerPayloadPersister.cjs +3 -0
  162. package/dist/production/src/triggers/TriggerPayloadPersister.cjs.map +1 -1
  163. package/dist/production/src/triggers/TriggerPayloadPersister.js +3 -0
  164. package/dist/production/src/triggers/TriggerPayloadPersister.js.map +1 -1
  165. package/dist/production/src/utils/map.cjs.map +1 -1
  166. package/dist/production/src/utils/map.js.map +1 -1
  167. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  168. package/dist/types/graphql/schema/index.d.ts +71 -39
  169. package/dist/types/graphql/schema/index.d.ts.map +1 -1
  170. package/dist/types/triggers/TriggerPayloadPersister.d.ts +2 -2
  171. package/dist/types/triggers/TriggerPayloadPersister.d.ts.map +1 -1
  172. package/dist/types/tsconfig.tsbuildinfo +1 -1
  173. package/{graphql-actions.codegen.yml → graphql.codegen.yml} +1 -1
  174. package/package.json +20 -26
  175. package/src/ActionsExecutionContainerHookFactory.ts +2 -2
  176. package/src/dispatch/EventDispatcher.ts +1 -1
  177. package/src/graphql/schema/index.ts +43 -39
  178. package/src/triggers/TriggerHandler.ts +2 -2
  179. package/src/triggers/TriggerPayloadBuilder.ts +4 -4
  180. package/src/triggers/TriggerPayloadPersister.ts +5 -2
  181. package/tests/cases/unit/generator.test.ts +5 -1
  182. package/tests/cases/unit/webhookHandler.test.ts +5 -1
  183. package/tsconfig.settings.json +0 -1
@@ -18,4 +18,4 @@ generates:
18
18
  - "typescript-resolvers"
19
19
  hooks:
20
20
  afterAllFileWrite:
21
- - eslint --fix
21
+ - yarn run -T eslint --fix
package/package.json CHANGED
@@ -21,39 +21,33 @@
21
21
  }
22
22
  }
23
23
  },
24
- "scripts": {
25
- "generate": "gql-gen --config graphql-actions.codegen.yml"
26
- },
27
24
  "dependencies": {
28
- "@contember/authorization": "2.0.0-alpha.9",
29
- "@contember/database": "2.0.0-alpha.9",
30
- "@contember/database-migrations": "2.0.0-alpha.9",
31
- "@contember/engine-common": "2.0.0-alpha.9",
32
- "@contember/engine-content-api": "2.0.0-alpha.9",
33
- "@contember/engine-http": "2.0.0-alpha.9",
34
- "@contember/engine-plugins": "2.0.0-alpha.9",
35
- "@contember/engine-system-api": "2.0.0-alpha.9",
36
- "@contember/engine-tenant-api": "2.0.0-alpha.9",
37
- "@contember/graphql-utils": "2.0.0-alpha.9",
38
- "@contember/logger": "2.0.0-alpha.9",
39
- "@contember/schema": "2.0.0-alpha.9",
40
- "@contember/schema-utils": "2.0.0-alpha.9",
41
- "@contember/typesafe": "2.0.0-alpha.9",
42
- "@graphql-tools/schema": "^10.0.0",
25
+ "@contember/authorization": "2.0.0-beta.2",
26
+ "@contember/database": "2.0.0-beta.2",
27
+ "@contember/database-migrations": "2.0.0-beta.2",
28
+ "@contember/engine-common": "2.0.0-beta.2",
29
+ "@contember/engine-content-api": "2.0.0-beta.2",
30
+ "@contember/engine-http": "2.0.0-beta.2",
31
+ "@contember/engine-plugins": "2.0.0-beta.2",
32
+ "@contember/engine-system-api": "2.0.0-beta.2",
33
+ "@contember/engine-tenant-api": "2.0.0-beta.2",
34
+ "@contember/graphql-utils": "2.0.0-beta.2",
35
+ "@contember/logger": "2.0.0-beta.2",
36
+ "@contember/schema": "2.0.0-beta.2",
37
+ "@contember/schema-utils": "2.0.0-beta.2",
38
+ "@contember/typesafe": "2.0.0-beta.2",
39
+ "@graphql-tools/schema": "^10.0.7",
43
40
  "graphql-tag": "^2.12.6"
44
41
  },
45
42
  "devDependencies": {
46
- "@graphql-codegen/cli": "^5.0.0",
47
- "@graphql-codegen/typescript": "^4.0.1",
48
- "@graphql-codegen/typescript-operations": "^4.0.1",
49
- "@graphql-codegen/typescript-resolvers": "^4.0.1",
50
- "@types/ws": "^8.5.9",
51
- "graphql": "^16.8.1"
43
+ "@types/bun": "^1.1.10",
44
+ "@types/ws": "^8.5.12",
45
+ "graphql": "^16.9.0"
52
46
  },
53
47
  "peerDependencies": {
54
48
  "graphql": ">= 14.6.0",
55
49
  "pg": "^8.5.0"
56
50
  },
57
51
  "type": "module",
58
- "version": "2.0.0-alpha.9"
59
- }
52
+ "version": "2.0.0-beta.2"
53
+ }
@@ -12,9 +12,9 @@ export class ActionsExecutionContainerHookFactory {
12
12
 
13
13
  create(): ExecutionContainerHook {
14
14
  return builder => {
15
- return builder.setupService('mapperFactory', (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project }) => {
15
+ return builder.setupService('mapperFactory', (mapperFactory, { whereBuilder, schema, pathFactory, systemSchema, providers, stage, project, schemaMeta }) => {
16
16
  mapperFactory.hooks.push(mapper => {
17
- const triggerPayloadPersister = new TriggerPayloadPersister(mapper, mapper.db.forSchema(systemSchema), providers, project.slug, stage.id, schema.id)
17
+ const triggerPayloadPersister = new TriggerPayloadPersister(mapper, mapper.db.forSchema(systemSchema), providers, project.slug, stage.id, schemaMeta.id)
18
18
  const triggerPayloadBuilder = new TriggerPayloadBuilder(mapper)
19
19
  const payloadManager = new TriggerPayloadManager(triggerPayloadBuilder, triggerPayloadPersister)
20
20
  const changesFetcher = new TriggerIndirectChangesFetcher(mapper, whereBuilder, pathFactory)
@@ -29,7 +29,7 @@ export class EventDispatcher {
29
29
  }
30
30
 
31
31
  async processBatch({ db, contentSchemaResolver, logger }: ProcessBatchArgs): Promise<ProcessBatchResult> {
32
- const schema = await contentSchemaResolver.getSchema(db)
32
+ const schema = (await contentSchemaResolver.getSchema({ db, normalize: true })).schema
33
33
  const batch = await this.eventsRepository.fetchBatch(schema.actions, db.client)
34
34
  const batchId = Math.random().toString().substring(2)
35
35
  const batchLogger = logger.child({ loc: 'Actions.EventDispatcher', batchId })
@@ -4,39 +4,41 @@ export type InputMaybe<T> = Maybe<T>
4
4
  export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] }
5
5
  export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> }
6
6
  export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> }
7
+ export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never }
8
+ export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }
7
9
  export type RequireFields<T, K extends keyof T> = Omit<T, K> & { [P in K]-?: NonNullable<T[P]> }
8
10
  /** All built-in and custom scalars, mapped to their actual values */
9
11
  export type Scalars = {
10
- ID: string
11
- String: string
12
- Boolean: boolean
13
- Int: number
14
- Float: number
15
- DateTime: Date
16
- Json: any
17
- Uuid: String
12
+ ID: { input: string; output: string }
13
+ String: { input: string; output: string }
14
+ Boolean: { input: boolean; output: boolean }
15
+ Int: { input: number; output: number }
16
+ Float: { input: number; output: number }
17
+ DateTime: { input: Date; output: Date }
18
+ Json: { input: any; output: any }
19
+ Uuid: { input: String; output: String }
18
20
  }
19
21
 
20
22
  export type Event = {
21
23
  readonly __typename?: 'Event'
22
- readonly createdAt: Scalars['DateTime']
23
- readonly id: Scalars['Uuid']
24
- readonly lastStateChange: Scalars['DateTime']
25
- readonly log: Scalars['Json']
26
- readonly numRetries: Scalars['Int']
27
- readonly payload: Scalars['Json']
28
- readonly resolvedAt?: Maybe<Scalars['DateTime']>
29
- readonly stage: Scalars['String']
24
+ readonly createdAt: Scalars['DateTime']['output']
25
+ readonly id: Scalars['Uuid']['output']
26
+ readonly lastStateChange: Scalars['DateTime']['output']
27
+ readonly log: Scalars['Json']['output']
28
+ readonly numRetries: Scalars['Int']['output']
29
+ readonly payload: Scalars['Json']['output']
30
+ readonly resolvedAt?: Maybe<Scalars['DateTime']['output']>
31
+ readonly stage: Scalars['String']['output']
30
32
  readonly state: EventState
31
- readonly target: Scalars['String']
32
- readonly transactionId: Scalars['Uuid']
33
- readonly visibleAt?: Maybe<Scalars['DateTime']>
33
+ readonly target: Scalars['String']['output']
34
+ readonly transactionId: Scalars['Uuid']['output']
35
+ readonly visibleAt?: Maybe<Scalars['DateTime']['output']>
34
36
  }
35
37
 
36
38
  export type EventArgs = {
37
39
  /** Max 10000 */
38
- readonly limit?: InputMaybe<Scalars['Int']>
39
- readonly offset?: InputMaybe<Scalars['Int']>
40
+ readonly limit?: InputMaybe<Scalars['Int']['input']>
41
+ readonly offset?: InputMaybe<Scalars['Int']['input']>
40
42
  }
41
43
 
42
44
  export type EventState =
@@ -60,7 +62,7 @@ export type MutationSetVariablesArgs = {
60
62
 
61
63
  export type ProcessBatchResponse = {
62
64
  readonly __typename?: 'ProcessBatchResponse'
63
- readonly ok: Scalars['Boolean']
65
+ readonly ok: Scalars['Boolean']['output']
64
66
  }
65
67
 
66
68
  export type Query = {
@@ -104,18 +106,18 @@ export type SetVariablesMode =
104
106
 
105
107
  export type SetVariablesResponse = {
106
108
  readonly __typename?: 'SetVariablesResponse'
107
- readonly ok: Scalars['Boolean']
109
+ readonly ok: Scalars['Boolean']['output']
108
110
  }
109
111
 
110
112
  export type Variable = {
111
113
  readonly __typename?: 'Variable'
112
- readonly name: Scalars['String']
113
- readonly value: Scalars['String']
114
+ readonly name: Scalars['String']['output']
115
+ readonly value: Scalars['String']['output']
114
116
  }
115
117
 
116
118
  export type VariableInput = {
117
- readonly name: Scalars['String']
118
- readonly value: Scalars['String']
119
+ readonly name: Scalars['String']['input']
120
+ readonly value: Scalars['String']['input']
119
121
  }
120
122
 
121
123
 
@@ -185,42 +187,44 @@ export type DirectiveResolverFn<TResult = {}, TParent = {}, TContext = {}, TArgs
185
187
  info: GraphQLResolveInfo
186
188
  ) => TResult | Promise<TResult>
187
189
 
190
+
191
+
188
192
  /** Mapping between all available schema types and the resolvers types */
189
193
  export type ResolversTypes = {
190
- Boolean: ResolverTypeWrapper<Scalars['Boolean']>
191
- DateTime: ResolverTypeWrapper<Scalars['DateTime']>
194
+ Boolean: ResolverTypeWrapper<Scalars['Boolean']['output']>
195
+ DateTime: ResolverTypeWrapper<Scalars['DateTime']['output']>
192
196
  Event: ResolverTypeWrapper<Event>
193
197
  EventArgs: EventArgs
194
198
  EventState: EventState
195
- Int: ResolverTypeWrapper<Scalars['Int']>
196
- Json: ResolverTypeWrapper<Scalars['Json']>
199
+ Int: ResolverTypeWrapper<Scalars['Int']['output']>
200
+ Json: ResolverTypeWrapper<Scalars['Json']['output']>
197
201
  Mutation: ResolverTypeWrapper<{}>
198
202
  ProcessBatchResponse: ResolverTypeWrapper<ProcessBatchResponse>
199
203
  Query: ResolverTypeWrapper<{}>
200
204
  SetVariablesArgs: SetVariablesArgs
201
205
  SetVariablesMode: SetVariablesMode
202
206
  SetVariablesResponse: ResolverTypeWrapper<SetVariablesResponse>
203
- String: ResolverTypeWrapper<Scalars['String']>
204
- Uuid: ResolverTypeWrapper<Scalars['Uuid']>
207
+ String: ResolverTypeWrapper<Scalars['String']['output']>
208
+ Uuid: ResolverTypeWrapper<Scalars['Uuid']['output']>
205
209
  Variable: ResolverTypeWrapper<Variable>
206
210
  VariableInput: VariableInput
207
211
  }
208
212
 
209
213
  /** Mapping between all available schema types and the resolvers parents */
210
214
  export type ResolversParentTypes = {
211
- Boolean: Scalars['Boolean']
212
- DateTime: Scalars['DateTime']
215
+ Boolean: Scalars['Boolean']['output']
216
+ DateTime: Scalars['DateTime']['output']
213
217
  Event: Event
214
218
  EventArgs: EventArgs
215
- Int: Scalars['Int']
216
- Json: Scalars['Json']
219
+ Int: Scalars['Int']['output']
220
+ Json: Scalars['Json']['output']
217
221
  Mutation: {}
218
222
  ProcessBatchResponse: ProcessBatchResponse
219
223
  Query: {}
220
224
  SetVariablesArgs: SetVariablesArgs
221
225
  SetVariablesResponse: SetVariablesResponse
222
- String: Scalars['String']
223
- Uuid: Scalars['Uuid']
226
+ String: Scalars['String']['output']
227
+ Uuid: Scalars['Uuid']['output']
224
228
  Variable: Variable
225
229
  VariableInput: VariableInput
226
230
  }
@@ -72,7 +72,7 @@ export class TriggerHandler {
72
72
  private async directUpdateHandler(event: AfterUpdateEvent) {
73
73
  const updateListeners = this.listenersStore.getUpdateListeners(event.entity.name)
74
74
  updateListeners.map(listener => {
75
- if (event.data.some(it => listener.fields.has(it.fieldName))) {
75
+ if (event.data.some(it => listener.fields.has(it.fieldName) && it.value !== it.old)) {
76
76
  this.payloadManager.add({
77
77
  listener,
78
78
  entity: event.entity,
@@ -119,7 +119,7 @@ export class TriggerHandler {
119
119
  private async indirectChangesUpdatesHandlerInner(event: AfterUpdateEvent | BeforeUpdateEvent, type: 'fields' | 'relations') {
120
120
  const indirectEntityListeners = this.listenersStore.getIndirectListeners(event.entity.name)
121
121
  const promises = indirectEntityListeners.map(listener => {
122
- if (event.data.some(val => listener[type].has(val.fieldName))) {
122
+ if (event.data.some(val => listener[type].has(val.fieldName) && (!('old' in val) || val.value !== val.old))) {
123
123
  return this.collectDeepChanges(event, listener, {
124
124
  [event.entity.primary]: { eq: event.id },
125
125
  })
@@ -23,7 +23,7 @@ export class TriggerPayloadBuilder {
23
23
  const selections = await this.fetchSelection(filteredEvents)
24
24
  const triggerType = filteredEvents[0].listener.trigger.type
25
25
  if (triggerType === 'basic') {
26
- return filteredEvents.map(it => ({ trigger: it.listener.trigger.name, ...this.buildBaseEventPayloads(it, selections[it.primary]) }))
26
+ return filteredEvents.map(it => ({ trigger: it.listener.trigger.name, ...this.buildBaseEventPayloads(it, it.selection ?? selections[it.primary]) }))
27
27
  }
28
28
  if (triggerType === 'watch') {
29
29
  return this.buildWatchEventPayloads(filteredEvents, selections)
@@ -56,7 +56,7 @@ export class TriggerPayloadBuilder {
56
56
  trigger: events[0].listener.trigger.name,
57
57
  entity: events[0].entity.name,
58
58
  id: eventsByPrimary.primary,
59
- selection: events[0].selection ?? selections[eventsByPrimary.primary],
59
+ selection: eventsByPrimary.events[0].selection ?? selections[eventsByPrimary.primary],
60
60
  events: eventsByPrimary.events.map(it => this.buildBaseEventPayloads(it)),
61
61
  })
62
62
  }
@@ -71,7 +71,7 @@ export class TriggerPayloadBuilder {
71
71
  entity: event.cause.entity.name,
72
72
  id: event.cause.id,
73
73
  selection,
74
- values: Object.fromEntries(event.cause.data.map(it => [it.fieldName, it.resolvedValue])),
74
+ values: Object.fromEntries(event.cause.data.map(it => [it.fieldName, it.value])),
75
75
  path: 'path' in event.listener ? event.listener.path : undefined,
76
76
  }
77
77
  case 'AfterUpdateEvent':
@@ -85,7 +85,7 @@ export class TriggerPayloadBuilder {
85
85
  entity: event.cause.entity.name,
86
86
  id: event.cause.id,
87
87
  selection,
88
- values: Object.fromEntries(event.cause.data.map(it => [it.fieldName, it.resolvedValue])),
88
+ values: Object.fromEntries(event.cause.data.map(it => [it.fieldName, it.value])),
89
89
  path: 'path' in event.listener ? event.listener.path : undefined,
90
90
  old: Object.fromEntries(afterEvent.data.map(it => [it.fieldName, it.old])),
91
91
  }
@@ -17,12 +17,15 @@ export class TriggerPayloadPersister {
17
17
  private readonly providers: { uuid: () => string },
18
18
  private readonly projectSlug: string,
19
19
  private readonly stageId: string,
20
- private readonly schemaId: number,
20
+ private readonly schemaId?: number,
21
21
  ) {
22
22
  }
23
23
 
24
24
  public async persist(trigger: Actions.AnyTrigger, payloads: ActionsPayload.AnyEventPayload[]): Promise<void> {
25
25
  const chunkSize = 100
26
+ if (!this.schemaId) {
27
+ throw new Error('Schema id is not set')
28
+ }
26
29
  for (let i = 0; i < payloads.length; i += chunkSize) {
27
30
  const chunk = payloads.slice(i, i + chunkSize)
28
31
  await InsertBuilder.create()
@@ -35,7 +38,7 @@ export class TriggerPayloadPersister {
35
38
  num_retries: 0,
36
39
  state: 'created',
37
40
  stage_id: this.stageId,
38
- schema_id: this.schemaId,
41
+ schema_id: this.schemaId!,
39
42
  target: trigger.target,
40
43
  trigger: trigger.name,
41
44
  priority: trigger.priority ?? 0,
@@ -1,9 +1,13 @@
1
1
  import { TriggerListenerBuilder, TriggerListeners } from '../../../src/triggers'
2
2
  import { SchemaDefinition as def } from '@contember/schema-definition'
3
3
  import { Actions, Model } from '@contember/schema'
4
- import { assert, test } from 'vitest'
4
+ import { expect, test } from 'bun:test'
5
5
 
6
6
 
7
+ const assert = {
8
+ equal: (a: any, b: any) => expect(a).toEqual(b),
9
+ deepStrictEqual: (a: any, b: any) => expect(a).toStrictEqual(b),
10
+ }
7
11
  const createTrigger = (watchNode: Actions.SelectionNode): Actions.AnyTrigger => ({
8
12
  type: 'watch',
9
13
  entity: 'Author',
@@ -1,4 +1,4 @@
1
- import { assert, describe, expect, test } from 'vitest'
1
+ import { describe, expect, test } from 'bun:test'
2
2
  import { WebhookTargetHandler } from '../../../src/dispatch/WebhookTargetHandler'
3
3
  import { FetcherResponse } from '../../../src/dispatch/WebhookFetcher'
4
4
  import { createLogger, Logger, TestLoggerHandler } from '@contember/logger'
@@ -8,6 +8,10 @@ import { HandledEvent } from '../../../src/dispatch/types'
8
8
  import { testUuid } from '../../src/uuid'
9
9
 
10
10
 
11
+ const assert = {
12
+ equal: (a: any, b: any) => expect(a).toEqual(b),
13
+ deepStrictEqual: (a: any, b: any) => expect(a).toStrictEqual(b),
14
+ }
11
15
  const now = new Date('2024-06-20T12:00:00Z')
12
16
  const createTestEvent = (i = 0, row: Partial<EventRow> = {}): EventRow => ({
13
17
  created_at: now,
@@ -2,7 +2,6 @@
2
2
  "extends": "../../tsconfig.settings.json",
3
3
  "compilerOptions": {
4
4
  "esModuleInterop": true,
5
- "typeRoots": ["node_modules/@types", "./types"],
6
5
  "experimentalDecorators": true
7
6
  }
8
7
  }