@lssm/example.integration-hub 0.0.0-canary-20251215234153 → 0.0.0-canary-20251216023757

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/example.integration-hub",
3
- "version": "0.0.0-canary-20251215234153",
3
+ "version": "0.0.0-canary-20251216023757",
4
4
  "description": "Integration Hub example with sync engine and field mappings for ContractSpec",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -35,16 +35,23 @@
35
35
  },
36
36
  "exports": {
37
37
  ".": "./src/index.ts",
38
- "./contracts": "./src/contracts/index.ts",
38
+ "./connection": "./src/connection/index.ts",
39
+ "./connection/connection.contracts": "./src/connection/connection.contracts.ts",
40
+ "./connection/connection.enum": "./src/connection/connection.enum.ts",
41
+ "./connection/connection.schema": "./src/connection/connection.schema.ts",
39
42
  "./docs": "./src/docs/index.ts",
40
43
  "./docs/integration-hub.docblock": "./src/docs/integration-hub.docblock.ts",
41
- "./entities": "./src/entities/index.ts",
42
- "./events": "./src/events.ts",
43
44
  "./example": "./src/example.ts",
44
45
  "./feature": "./src/feature.ts",
45
- "./handlers": "./src/handlers/index.ts",
46
- "./presentations": "./src/presentations/index.ts",
46
+ "./integration": "./src/integration/index.ts",
47
+ "./integration/integration.contracts": "./src/integration/integration.contracts.ts",
48
+ "./integration/integration.enum": "./src/integration/integration.enum.ts",
49
+ "./integration/integration.schema": "./src/integration/integration.schema.ts",
50
+ "./sync": "./src/sync/index.ts",
47
51
  "./sync-engine": "./src/sync-engine/index.ts",
52
+ "./sync/sync.contracts": "./src/sync/sync.contracts.ts",
53
+ "./sync/sync.enum": "./src/sync/sync.enum.ts",
54
+ "./sync/sync.schema": "./src/sync/sync.schema.ts",
48
55
  "./*": "./*"
49
56
  },
50
57
  "module": "./dist/index.js",
@@ -56,16 +63,23 @@
56
63
  "access": "public",
57
64
  "exports": {
58
65
  ".": "./dist/index.js",
59
- "./contracts": "./dist/contracts/index.js",
66
+ "./connection": "./dist/connection/index.js",
67
+ "./connection/connection.contracts": "./dist/connection/connection.contracts.js",
68
+ "./connection/connection.enum": "./dist/connection/connection.enum.js",
69
+ "./connection/connection.schema": "./dist/connection/connection.schema.js",
60
70
  "./docs": "./dist/docs/index.js",
61
71
  "./docs/integration-hub.docblock": "./dist/docs/integration-hub.docblock.js",
62
- "./entities": "./dist/entities/index.js",
63
- "./events": "./dist/events.js",
64
72
  "./example": "./dist/example.js",
65
73
  "./feature": "./dist/feature.js",
66
- "./handlers": "./dist/handlers/index.js",
67
- "./presentations": "./dist/presentations/index.js",
74
+ "./integration": "./dist/integration/index.js",
75
+ "./integration/integration.contracts": "./dist/integration/integration.contracts.js",
76
+ "./integration/integration.enum": "./dist/integration/integration.enum.js",
77
+ "./integration/integration.schema": "./dist/integration/integration.schema.js",
78
+ "./sync": "./dist/sync/index.js",
68
79
  "./sync-engine": "./dist/sync-engine/index.js",
80
+ "./sync/sync.contracts": "./dist/sync/sync.contracts.js",
81
+ "./sync/sync.enum": "./dist/sync/sync.enum.js",
82
+ "./sync/sync.schema": "./dist/sync/sync.schema.js",
69
83
  "./*": "./*"
70
84
  }
71
85
  }
@@ -1 +0,0 @@
1
- import{ScalarTypeEnum as e,defineEnum as t,defineSchemaModel as n}from"@lssm/lib.schema";import{defineCommand as r,defineQuery as i}from"@lssm/lib.contracts/spec";const a=[`example.integration-hub`],o=t(`IntegrationStatus`,[`DRAFT`,`ACTIVE`,`PAUSED`,`ERROR`,`ARCHIVED`]),s=t(`ConnectionStatus`,[`PENDING`,`CONNECTED`,`DISCONNECTED`,`ERROR`,`EXPIRED`]),c=t(`SyncDirection`,[`INBOUND`,`OUTBOUND`,`BIDIRECTIONAL`]),l=t(`SyncStatus`,[`PENDING`,`RUNNING`,`COMPLETED`,`FAILED`,`CANCELLED`]),u=t(`MappingType`,[`DIRECT`,`TRANSFORM`,`LOOKUP`,`CONSTANT`,`COMPUTED`]),d=n({name:`IntegrationModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},slug:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},provider:{type:e.String_unsecure(),isOptional:!1},status:{type:o,isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1}}}),f=n({name:`ConnectionModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},integrationId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},status:{type:s,isOptional:!1},authType:{type:e.String_unsecure(),isOptional:!1},externalAccountName:{type:e.String_unsecure(),isOptional:!0},connectedAt:{type:e.DateTime(),isOptional:!0},lastHealthCheck:{type:e.DateTime(),isOptional:!0},healthStatus:{type:e.String_unsecure(),isOptional:!0}}}),p=n({name:`FieldMappingModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},sourceField:{type:e.String_unsecure(),isOptional:!1},targetField:{type:e.String_unsecure(),isOptional:!1},mappingType:{type:u,isOptional:!1},transformExpression:{type:e.String_unsecure(),isOptional:!0},isRequired:{type:e.Boolean(),isOptional:!1}}}),m=n({name:`SyncConfigModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},integrationId:{type:e.String_unsecure(),isOptional:!1},connectionId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},direction:{type:c,isOptional:!1},sourceObject:{type:e.String_unsecure(),isOptional:!1},targetObject:{type:e.String_unsecure(),isOptional:!1},scheduleEnabled:{type:e.Boolean(),isOptional:!1},scheduleCron:{type:e.String_unsecure(),isOptional:!0},isActive:{type:e.Boolean(),isOptional:!1},lastSyncAt:{type:e.DateTime(),isOptional:!0},fieldMappings:{type:p,isArray:!0,isOptional:!0}}}),h=n({name:`SyncRunModel`,fields:{id:{type:e.String_unsecure(),isOptional:!1},syncConfigId:{type:e.String_unsecure(),isOptional:!1},status:{type:l,isOptional:!1},direction:{type:c,isOptional:!1},trigger:{type:e.String_unsecure(),isOptional:!1},recordsProcessed:{type:e.Int_unsecure(),isOptional:!1},recordsCreated:{type:e.Int_unsecure(),isOptional:!1},recordsUpdated:{type:e.Int_unsecure(),isOptional:!1},recordsFailed:{type:e.Int_unsecure(),isOptional:!1},errorMessage:{type:e.String_unsecure(),isOptional:!0},startedAt:{type:e.DateTime(),isOptional:!0},completedAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),g=n({name:`CreateIntegrationInput`,fields:{name:{type:e.NonEmptyString(),isOptional:!1},slug:{type:e.NonEmptyString(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},provider:{type:e.NonEmptyString(),isOptional:!1},config:{type:e.JSON(),isOptional:!0},featureFlagKey:{type:e.String_unsecure(),isOptional:!0}}}),_=n({name:`CreateConnectionInput`,fields:{integrationId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.NonEmptyString(),isOptional:!1},authType:{type:e.NonEmptyString(),isOptional:!1},credentials:{type:e.JSON(),isOptional:!0}}}),v=n({name:`CreateSyncConfigInput`,fields:{integrationId:{type:e.String_unsecure(),isOptional:!1},connectionId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.NonEmptyString(),isOptional:!1},direction:{type:c,isOptional:!1},sourceObject:{type:e.NonEmptyString(),isOptional:!1},targetObject:{type:e.NonEmptyString(),isOptional:!1},scheduleEnabled:{type:e.Boolean(),isOptional:!0},scheduleCron:{type:e.String_unsecure(),isOptional:!0}}}),y=n({name:`AddFieldMappingInput`,fields:{syncConfigId:{type:e.String_unsecure(),isOptional:!1},sourceField:{type:e.NonEmptyString(),isOptional:!1},targetField:{type:e.NonEmptyString(),isOptional:!1},mappingType:{type:u,isOptional:!1},transformExpression:{type:e.String_unsecure(),isOptional:!0},lookupConfig:{type:e.JSON(),isOptional:!0},constantValue:{type:e.JSON(),isOptional:!0},isRequired:{type:e.Boolean(),isOptional:!0},defaultValue:{type:e.JSON(),isOptional:!0}}}),b=n({name:`TriggerSyncInput`,fields:{syncConfigId:{type:e.String_unsecure(),isOptional:!1},direction:{type:c,isOptional:!0},fullSync:{type:e.Boolean(),isOptional:!0}}}),x=n({name:`ListSyncRunsInput`,fields:{syncConfigId:{type:e.String_unsecure(),isOptional:!1},status:{type:l,isOptional:!0},limit:{type:e.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:e.Int_unsecure(),isOptional:!0,defaultValue:0}}}),S=n({name:`ListSyncRunsOutput`,fields:{runs:{type:h,isArray:!0,isOptional:!1},total:{type:e.Int_unsecure(),isOptional:!1}}}),C=r({meta:{name:`integration.create`,version:1,stability:`stable`,owners:[...a],tags:[`integration`,`create`],description:`Create a new integration.`,goal:`Allow users to set up integrations with external systems.`,context:`Integration setup.`},io:{input:g,output:d},policy:{auth:`user`},sideEffects:{emits:[{name:`integration.created`,version:1,when:`Integration created`,payload:d}],audit:[`integration.created`]}}),w=r({meta:{name:`integration.connection.create`,version:1,stability:`stable`,owners:[...a],tags:[`integration`,`connection`,`create`],description:`Create a connection to an external system.`,goal:`Authenticate with external systems.`,context:`Connection setup.`},io:{input:_,output:f},policy:{auth:`user`},sideEffects:{emits:[{name:`integration.connection.created`,version:1,when:`Connection created`,payload:f}],audit:[`integration.connection.created`]}}),T=r({meta:{name:`integration.syncConfig.create`,version:1,stability:`stable`,owners:[...a],tags:[`integration`,`sync`,`config`,`create`],description:`Create a sync configuration.`,goal:`Define how data should be synchronized.`,context:`Sync setup.`},io:{input:v,output:m},policy:{auth:`user`},sideEffects:{emits:[{name:`integration.syncConfig.created`,version:1,when:`Sync config created`,payload:m}],audit:[`integration.syncConfig.created`]}}),E=r({meta:{name:`integration.fieldMapping.add`,version:1,stability:`stable`,owners:[...a],tags:[`integration`,`mapping`,`field`],description:`Add a field mapping to a sync config.`,goal:`Map fields between systems.`,context:`Mapping configuration.`},io:{input:y,output:p},policy:{auth:`user`},sideEffects:{emits:[{name:`integration.fieldMapping.added`,version:1,when:`Mapping added`,payload:p}]}}),D=r({meta:{name:`integration.sync.trigger`,version:1,stability:`stable`,owners:[...a],tags:[`integration`,`sync`,`trigger`],description:`Trigger a manual sync.`,goal:`Start data synchronization.`,context:`Manual sync or webhook trigger.`},io:{input:b,output:h},policy:{auth:`user`},sideEffects:{emits:[{name:`integration.sync.started`,version:1,when:`Sync starts`,payload:h}],audit:[`integration.sync.triggered`]}}),O=i({meta:{name:`integration.syncRun.list`,version:1,stability:`stable`,owners:[...a],tags:[`integration`,`sync`,`run`,`list`],description:`List sync run history.`,goal:`View sync history and status.`,context:`Sync monitoring.`},io:{input:x,output:S},policy:{auth:`user`}});export{E as AddFieldMappingContract,y as AddFieldMappingInputModel,f as ConnectionModel,w as CreateConnectionContract,_ as CreateConnectionInputModel,C as CreateIntegrationContract,g as CreateIntegrationInputModel,T as CreateSyncConfigContract,v as CreateSyncConfigInputModel,p as FieldMappingModel,d as IntegrationModel,O as ListSyncRunsContract,x as ListSyncRunsInputModel,S as ListSyncRunsOutputModel,m as SyncConfigModel,h as SyncRunModel,D as TriggerSyncContract,b as TriggerSyncInputModel};
@@ -1 +0,0 @@
1
- import{defineEntity as e,defineEntityEnum as t,field as n,index as r}from"@lssm/lib.schema";const i=t({name:`IntegrationStatus`,values:[`DRAFT`,`ACTIVE`,`PAUSED`,`ERROR`,`ARCHIVED`],schema:`integration`,description:`Status of an integration.`}),a=t({name:`ConnectionStatus`,values:[`PENDING`,`CONNECTED`,`DISCONNECTED`,`ERROR`,`EXPIRED`],schema:`integration`,description:`Status of a connection.`}),o=t({name:`SyncDirection`,values:[`INBOUND`,`OUTBOUND`,`BIDIRECTIONAL`],schema:`integration`,description:`Direction of data sync.`}),s=t({name:`SyncStatus`,values:[`PENDING`,`RUNNING`,`COMPLETED`,`FAILED`,`CANCELLED`],schema:`integration`,description:`Status of a sync run.`}),c=t({name:`MappingType`,values:[`DIRECT`,`TRANSFORM`,`LOOKUP`,`CONSTANT`,`COMPUTED`],schema:`integration`,description:`Type of field mapping.`}),l=e({name:`Integration`,description:`An integration with an external system.`,schema:`integration`,map:`integration`,fields:{id:n.id({description:`Unique integration ID`}),name:n.string({description:`Integration name`}),slug:n.string({description:`URL-friendly identifier`}),description:n.string({isOptional:!0}),provider:n.string({description:`Integration provider (e.g., "salesforce", "hubspot")`}),providerVersion:n.string({isOptional:!0}),status:n.enum(`IntegrationStatus`,{default:`DRAFT`}),featureFlagKey:n.string({isOptional:!0}),config:n.json({isOptional:!0,description:`Integration-specific configuration`}),organizationId:n.foreignKey(),createdBy:n.foreignKey(),createdAt:n.createdAt(),updatedAt:n.updatedAt(),connections:n.hasMany(`Connection`),syncConfigs:n.hasMany(`SyncConfig`)},indexes:[r.unique([`organizationId`,`slug`]),r.on([`organizationId`,`status`]),r.on([`provider`])],enums:[i]}),u=e({name:`Connection`,description:`An authenticated connection to an external system.`,schema:`integration`,map:`connection`,fields:{id:n.id(),integrationId:n.foreignKey(),name:n.string({description:`Connection name`}),status:n.enum(`ConnectionStatus`,{default:`PENDING`}),authType:n.string({description:`Auth type (oauth2, api_key, basic)`}),credentials:n.json({isOptional:!0,description:`Encrypted credentials`}),accessToken:n.string({isOptional:!0}),refreshToken:n.string({isOptional:!0}),tokenExpiresAt:n.dateTime({isOptional:!0}),externalAccountId:n.string({isOptional:!0}),externalAccountName:n.string({isOptional:!0}),lastHealthCheck:n.dateTime({isOptional:!0}),healthStatus:n.string({isOptional:!0}),errorMessage:n.string({isOptional:!0}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),connectedAt:n.dateTime({isOptional:!0}),integration:n.belongsTo(`Integration`,[`integrationId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`integrationId`,`status`]),r.on([`externalAccountId`])],enums:[a]}),d=e({name:`SyncConfig`,description:`Configuration for data synchronization.`,schema:`integration`,map:`sync_config`,fields:{id:n.id(),integrationId:n.foreignKey(),connectionId:n.foreignKey(),name:n.string({description:`Sync config name`}),direction:n.enum(`SyncDirection`,{default:`BIDIRECTIONAL`}),sourceObject:n.string({description:`Source object type`}),targetObject:n.string({description:`Target object type`}),scheduleEnabled:n.boolean({default:!1}),scheduleCron:n.string({isOptional:!0}),createNew:n.boolean({default:!0}),updateExisting:n.boolean({default:!0}),deleteRemoved:n.boolean({default:!1}),sourceFilter:n.json({isOptional:!0}),isActive:n.boolean({default:!0}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),lastSyncAt:n.dateTime({isOptional:!0}),integration:n.belongsTo(`Integration`,[`integrationId`],[`id`]),connection:n.belongsTo(`Connection`,[`connectionId`],[`id`]),fieldMappings:n.hasMany(`FieldMapping`),syncRuns:n.hasMany(`SyncRun`)},indexes:[r.on([`integrationId`,`isActive`]),r.on([`connectionId`]),r.on([`scheduleEnabled`,`isActive`])],enums:[o]}),f=e({name:`FieldMapping`,description:`Field mapping between source and target.`,schema:`integration`,map:`field_mapping`,fields:{id:n.id(),syncConfigId:n.foreignKey(),sourceField:n.string({description:`Source field path`}),targetField:n.string({description:`Target field path`}),mappingType:n.enum(`MappingType`,{default:`DIRECT`}),transformExpression:n.string({isOptional:!0,description:`Transform expression for TRANSFORM type`}),lookupConfig:n.json({isOptional:!0,description:`Lookup configuration for LOOKUP type`}),constantValue:n.json({isOptional:!0,description:`Constant value for CONSTANT type`}),isRequired:n.boolean({default:!1}),defaultValue:n.json({isOptional:!0}),position:n.int({default:0}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),syncConfig:n.belongsTo(`SyncConfig`,[`syncConfigId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`syncConfigId`,`position`]),r.on([`syncConfigId`,`targetField`])],enums:[c]}),p=e({name:`SyncRun`,description:`A single sync execution.`,schema:`integration`,map:`sync_run`,fields:{id:n.id(),syncConfigId:n.foreignKey(),status:n.enum(`SyncStatus`,{default:`PENDING`}),direction:n.enum(`SyncDirection`),trigger:n.string({description:`What triggered this run (schedule, manual, webhook)`}),triggeredBy:n.string({isOptional:!0}),recordsProcessed:n.int({default:0}),recordsCreated:n.int({default:0}),recordsUpdated:n.int({default:0}),recordsDeleted:n.int({default:0}),recordsFailed:n.int({default:0}),recordsSkipped:n.int({default:0}),errorMessage:n.string({isOptional:!0}),errorDetails:n.json({isOptional:!0}),startedAt:n.dateTime({isOptional:!0}),completedAt:n.dateTime({isOptional:!0}),createdAt:n.createdAt(),syncConfig:n.belongsTo(`SyncConfig`,[`syncConfigId`],[`id`]),logs:n.hasMany(`SyncLog`)},indexes:[r.on([`syncConfigId`,`status`]),r.on([`status`,`createdAt`]),r.on([`createdAt`])],enums:[s,o]}),m=e({name:`SyncLog`,description:`Log entry for a sync run.`,schema:`integration`,map:`sync_log`,fields:{id:n.id(),syncRunId:n.foreignKey(),level:n.string({description:`Log level (info, warn, error)`}),message:n.string(),recordId:n.string({isOptional:!0,description:`Related record ID`}),details:n.json({isOptional:!0}),createdAt:n.createdAt(),syncRun:n.belongsTo(`SyncRun`,[`syncRunId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`syncRunId`,`level`]),r.on([`syncRunId`,`createdAt`])]}),h=e({name:`SyncRecord`,description:`Tracks synced records.`,schema:`integration`,map:`sync_record`,fields:{id:n.id(),syncConfigId:n.foreignKey(),sourceId:n.string({description:`ID in source system`}),targetId:n.string({description:`ID in target system`}),sourceChecksum:n.string({isOptional:!0}),targetChecksum:n.string({isOptional:!0}),lastSyncedAt:n.dateTime(),lastSyncRunId:n.string({isOptional:!0}),syncStatus:n.string({default:`"SYNCED"`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),syncConfig:n.belongsTo(`SyncConfig`,[`syncConfigId`],[`id`])},indexes:[r.unique([`syncConfigId`,`sourceId`]),r.on([`syncConfigId`,`targetId`]),r.on([`lastSyncedAt`])]}),g=[l,u,d,f,p,m,h],_={moduleId:`@lssm/example.integration-hub`,entities:g,enums:[i,a,o,s,c]};export{u as ConnectionEntity,a as ConnectionStatusEnum,f as FieldMappingEntity,l as IntegrationEntity,i as IntegrationStatusEnum,c as MappingTypeEnum,d as SyncConfigEntity,o as SyncDirectionEnum,m as SyncLogEntity,h as SyncRecordEntity,p as SyncRunEntity,s as SyncStatusEnum,g as integrationHubEntities,_ as integrationHubSchemaContribution};
package/dist/events.js DELETED
@@ -1 +0,0 @@
1
- import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineEvent as n}from"@lssm/lib.contracts";const r=t({name:`IntegrationCreatedEventPayload`,fields:{integrationId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},provider:{type:e.String_unsecure(),isOptional:!1},organizationId:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),i=t({name:`ConnectionCreatedEventPayload`,fields:{connectionId:{type:e.String_unsecure(),isOptional:!1},integrationId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},authType:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),a=t({name:`ConnectionStatusChangedEventPayload`,fields:{connectionId:{type:e.String_unsecure(),isOptional:!1},integrationId:{type:e.String_unsecure(),isOptional:!1},previousStatus:{type:e.String_unsecure(),isOptional:!1},newStatus:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1}}}),o=t({name:`SyncConfigCreatedEventPayload`,fields:{syncConfigId:{type:e.String_unsecure(),isOptional:!1},integrationId:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},sourceObject:{type:e.String_unsecure(),isOptional:!1},targetObject:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`SyncStartedEventPayload`,fields:{syncRunId:{type:e.String_unsecure(),isOptional:!1},syncConfigId:{type:e.String_unsecure(),isOptional:!1},direction:{type:e.String_unsecure(),isOptional:!1},trigger:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),c=t({name:`SyncCompletedEventPayload`,fields:{syncRunId:{type:e.String_unsecure(),isOptional:!1},syncConfigId:{type:e.String_unsecure(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},recordsProcessed:{type:e.Int_unsecure(),isOptional:!1},recordsCreated:{type:e.Int_unsecure(),isOptional:!1},recordsUpdated:{type:e.Int_unsecure(),isOptional:!1},recordsFailed:{type:e.Int_unsecure(),isOptional:!1},durationMs:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),l=t({name:`SyncFailedEventPayload`,fields:{syncRunId:{type:e.String_unsecure(),isOptional:!1},syncConfigId:{type:e.String_unsecure(),isOptional:!1},errorMessage:{type:e.String_unsecure(),isOptional:!1},recordsProcessed:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),u=t({name:`RecordSyncedEventPayload`,fields:{syncRunId:{type:e.String_unsecure(),isOptional:!1},syncConfigId:{type:e.String_unsecure(),isOptional:!1},sourceId:{type:e.String_unsecure(),isOptional:!1},targetId:{type:e.String_unsecure(),isOptional:!1},operation:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),d=n({name:`integration.created`,version:1,description:`A new integration has been created.`,payload:r}),f=n({name:`integration.connection.created`,version:1,description:`A new connection has been created.`,payload:i}),p=n({name:`integration.connection.statusChanged`,version:1,description:`A connection status has changed.`,payload:a}),m=n({name:`integration.syncConfig.created`,version:1,description:`A sync configuration has been created.`,payload:o}),h=n({name:`integration.sync.started`,version:1,description:`A sync has started.`,payload:s}),g=n({name:`integration.sync.completed`,version:1,description:`A sync has completed.`,payload:c}),_=n({name:`integration.sync.failed`,version:1,description:`A sync has failed.`,payload:l}),v=n({name:`integration.record.synced`,version:1,description:`A record has been synced.`,payload:u}),y={IntegrationCreatedEvent:d,ConnectionCreatedEvent:f,ConnectionStatusChangedEvent:p,SyncConfigCreatedEvent:m,SyncStartedEvent:h,SyncCompletedEvent:g,SyncFailedEvent:_,RecordSyncedEvent:v};export{f as ConnectionCreatedEvent,p as ConnectionStatusChangedEvent,d as IntegrationCreatedEvent,y as IntegrationHubEvents,v as RecordSyncedEvent,g as SyncCompletedEvent,m as SyncConfigCreatedEvent,_ as SyncFailedEvent,h as SyncStartedEvent};
@@ -1 +0,0 @@
1
- const e={integrations:new Map,connections:new Map,syncConfigs:new Map,fieldMappings:new Map,syncRuns:new Map,syncRecords:new Map};async function t(t,n){let r=`int_${Date.now()}`,i=new Date,a={id:r,name:t.name,slug:t.slug,description:t.description,provider:t.provider,status:`DRAFT`,featureFlagKey:t.featureFlagKey,config:t.config,organizationId:n.organizationId,createdBy:n.userId,createdAt:i,updatedAt:i};return e.integrations.set(r,a),{id:r,name:t.name,slug:t.slug,provider:t.provider,status:`DRAFT`,createdAt:i}}async function n(t,n){let r=`conn_${Date.now()}`,i=new Date,a={id:r,integrationId:t.integrationId,name:t.name,status:`PENDING`,authType:t.authType,credentials:t.credentials,createdAt:i,updatedAt:i};return e.connections.set(r,a),{id:r,integrationId:t.integrationId,name:t.name,status:`PENDING`,authType:t.authType}}async function r(t,n){let r=`sync_${Date.now()}`,i=new Date,a={id:r,integrationId:t.integrationId,connectionId:t.connectionId,name:t.name,direction:t.direction,sourceObject:t.sourceObject,targetObject:t.targetObject,scheduleEnabled:t.scheduleEnabled??!1,scheduleCron:t.scheduleCron,createNew:!0,updateExisting:!0,deleteRemoved:!1,isActive:!0,createdAt:i,updatedAt:i};return e.syncConfigs.set(r,a),{id:r,name:t.name,direction:t.direction,sourceObject:t.sourceObject,targetObject:t.targetObject,isActive:!0}}async function i(t,n){let r=`map_${Date.now()}`,i=new Date,a=Array.from(e.fieldMappings.values()).filter(e=>e.syncConfigId===t.syncConfigId),o={id:r,syncConfigId:t.syncConfigId,sourceField:t.sourceField,targetField:t.targetField,mappingType:t.mappingType,transformExpression:t.transformExpression,lookupConfig:t.lookupConfig,constantValue:t.constantValue,isRequired:t.isRequired??!1,defaultValue:t.defaultValue,position:a.length,createdAt:i,updatedAt:i};return e.fieldMappings.set(r,o),{id:r,sourceField:t.sourceField,targetField:t.targetField,mappingType:t.mappingType}}async function a(t,n){let r=`run_${Date.now()}`,i=new Date,a=e.syncConfigs.get(t.syncConfigId),o=t.direction??a?.direction??`BIDIRECTIONAL`,s={id:r,syncConfigId:t.syncConfigId,status:`RUNNING`,direction:o,trigger:`manual`,triggeredBy:n.userId,recordsProcessed:0,recordsCreated:0,recordsUpdated:0,recordsDeleted:0,recordsFailed:0,recordsSkipped:0,startedAt:i,createdAt:i};return e.syncRuns.set(r,s),{id:r,syncConfigId:t.syncConfigId,status:`RUNNING`,trigger:`manual`,startedAt:i,createdAt:i}}async function o(t,n){let r=Array.from(e.syncRuns.values()).filter(e=>e.syncConfigId===t.syncConfigId);t.status&&(r=r.filter(e=>e.status===t.status));let i=r.length,a=t.offset??0,o=t.limit??20;return r=r.sort((e,t)=>{let n=e.createdAt.getTime();return t.createdAt.getTime()-n}).slice(a,a+o),{runs:r,total:i}}export{i as handleAddFieldMapping,n as handleCreateConnection,t as handleCreateIntegration,r as handleCreateSyncConfig,o as handleListSyncRuns,a as handleTriggerSync,e as mockIntegrationStore};
@@ -1 +0,0 @@
1
- import{ConnectionModel as e,IntegrationModel as t,SyncConfigModel as n,SyncRunModel as r}from"../contracts/index.js";const i={meta:{name:`integration.list`,version:1,description:`List of configured integrations`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`list`]},source:{type:`component`,framework:`react`,componentKey:`IntegrationList`,props:t},targets:[`react`,`markdown`],policy:{flags:[`integration.enabled`]}},a={meta:{name:`integration.detail`,version:1,description:`Integration detail with connections and syncs`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`detail`]},source:{type:`component`,framework:`react`,componentKey:`IntegrationDetail`,props:t},targets:[`react`,`markdown`],policy:{flags:[`integration.enabled`]}},o={meta:{name:`integration.connection.list`,version:1,description:`List of connections for an integration`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`connection`,`list`]},source:{type:`component`,framework:`react`,componentKey:`ConnectionList`,props:e},targets:[`react`,`markdown`],policy:{flags:[`integration.enabled`]}},s={meta:{name:`integration.connection.setup`,version:1,description:`Connection setup wizard`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`connection`,`setup`]},source:{type:`component`,framework:`react`,componentKey:`ConnectionSetup`},targets:[`react`],policy:{flags:[`integration.enabled`]}},c={meta:{name:`integration.syncConfig.list`,version:1,description:`List of sync configurations`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`sync`,`config`,`list`]},source:{type:`component`,framework:`react`,componentKey:`SyncConfigList`,props:n},targets:[`react`,`markdown`],policy:{flags:[`integration.sync.enabled`]}},l={meta:{name:`integration.syncConfig.editor`,version:1,description:`Sync configuration editor with field mappings`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`sync`,`config`,`editor`]},source:{type:`component`,framework:`react`,componentKey:`SyncConfigEditor`,props:n},targets:[`react`],policy:{flags:[`integration.sync.enabled`]}},u={meta:{name:`integration.fieldMapping.editor`,version:1,description:`Visual field mapping editor`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`mapping`,`editor`]},source:{type:`component`,framework:`react`,componentKey:`FieldMappingEditor`},targets:[`react`],policy:{flags:[`integration.sync.enabled`]}},d={meta:{name:`integration.syncRun.list`,version:1,description:`Sync run history with status and stats`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`sync`,`run`,`history`]},source:{type:`component`,framework:`react`,componentKey:`SyncRunList`,props:r},targets:[`react`,`markdown`],policy:{flags:[`integration.sync.enabled`]}},f={meta:{name:`integration.syncRun.detail`,version:1,description:`Sync run detail with logs and records`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`sync`,`run`,`detail`]},source:{type:`component`,framework:`react`,componentKey:`SyncRunDetail`,props:r},targets:[`react`,`markdown`],policy:{flags:[`integration.sync.enabled`]}},p={meta:{name:`integration.health`,version:1,description:`Integration health dashboard widget`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`health`,`dashboard`]},source:{type:`component`,framework:`react`,componentKey:`IntegrationHealthWidget`},targets:[`react`],policy:{flags:[`integration.enabled`]}},m={meta:{name:`integration.sync.activity`,version:1,description:`Recent sync activity widget`,domain:`integration-hub`,owners:[`integration-team`],tags:[`integration`,`sync`,`activity`,`dashboard`]},source:{type:`component`,framework:`react`,componentKey:`SyncActivityWidget`},targets:[`react`],policy:{flags:[`integration.sync.enabled`]}},h={IntegrationListPresentation:i,IntegrationDetailPresentation:a,ConnectionListPresentation:o,ConnectionSetupPresentation:s,SyncConfigListPresentation:c,SyncConfigEditorPresentation:l,FieldMappingEditorPresentation:u,SyncRunListPresentation:d,SyncRunDetailPresentation:f,IntegrationHealthPresentation:p,SyncActivityPresentation:m};export{o as ConnectionListPresentation,s as ConnectionSetupPresentation,u as FieldMappingEditorPresentation,a as IntegrationDetailPresentation,p as IntegrationHealthPresentation,h as IntegrationHubPresentations,i as IntegrationListPresentation,m as SyncActivityPresentation,l as SyncConfigEditorPresentation,c as SyncConfigListPresentation,f as SyncRunDetailPresentation,d as SyncRunListPresentation};