@contractspec/example.integration-hub 1.44.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 (80) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +156 -0
  3. package/dist/connection/connection.enum.d.ts +10 -0
  4. package/dist/connection/connection.enum.d.ts.map +1 -0
  5. package/dist/connection/connection.enum.js +17 -0
  6. package/dist/connection/connection.enum.js.map +1 -0
  7. package/dist/connection/connection.operation.d.ts +107 -0
  8. package/dist/connection/connection.operation.d.ts.map +1 -0
  9. package/dist/connection/connection.operation.js +63 -0
  10. package/dist/connection/connection.operation.js.map +1 -0
  11. package/dist/connection/connection.presentation.d.ts +8 -0
  12. package/dist/connection/connection.presentation.d.ts.map +1 -0
  13. package/dist/connection/connection.presentation.js +60 -0
  14. package/dist/connection/connection.presentation.js.map +1 -0
  15. package/dist/connection/connection.schema.d.ts +68 -0
  16. package/dist/connection/connection.schema.d.ts.map +1 -0
  17. package/dist/connection/connection.schema.js +76 -0
  18. package/dist/connection/connection.schema.js.map +1 -0
  19. package/dist/connection/index.d.ts +4 -0
  20. package/dist/connection/index.js +5 -0
  21. package/dist/docs/index.d.ts +1 -0
  22. package/dist/docs/index.js +1 -0
  23. package/dist/docs/integration-hub.docblock.d.ts +1 -0
  24. package/dist/docs/integration-hub.docblock.js +115 -0
  25. package/dist/docs/integration-hub.docblock.js.map +1 -0
  26. package/dist/events.d.ts +153 -0
  27. package/dist/events.d.ts.map +1 -0
  28. package/dist/events.js +289 -0
  29. package/dist/events.js.map +1 -0
  30. package/dist/example.d.ts +40 -0
  31. package/dist/example.d.ts.map +1 -0
  32. package/dist/example.js +51 -0
  33. package/dist/example.js.map +1 -0
  34. package/dist/index.d.ts +14 -0
  35. package/dist/index.js +15 -0
  36. package/dist/integration/index.d.ts +4 -0
  37. package/dist/integration/index.js +5 -0
  38. package/dist/integration/integration.enum.d.ts +10 -0
  39. package/dist/integration/integration.enum.d.ts.map +1 -0
  40. package/dist/integration/integration.enum.js +17 -0
  41. package/dist/integration/integration.enum.js.map +1 -0
  42. package/dist/integration/integration.operations.d.ts +99 -0
  43. package/dist/integration/integration.operations.d.ts.map +1 -0
  44. package/dist/integration/integration.operations.js +57 -0
  45. package/dist/integration/integration.operations.js.map +1 -0
  46. package/dist/integration/integration.presentation.d.ts +9 -0
  47. package/dist/integration/integration.presentation.d.ts.map +1 -0
  48. package/dist/integration/integration.presentation.js +77 -0
  49. package/dist/integration/integration.presentation.js.map +1 -0
  50. package/dist/integration/integration.schema.d.ts +68 -0
  51. package/dist/integration/integration.schema.d.ts.map +1 -0
  52. package/dist/integration/integration.schema.js +76 -0
  53. package/dist/integration/integration.schema.js.map +1 -0
  54. package/dist/integration-hub.feature.d.ts +8 -0
  55. package/dist/integration-hub.feature.d.ts.map +1 -0
  56. package/dist/integration-hub.feature.js +239 -0
  57. package/dist/integration-hub.feature.js.map +1 -0
  58. package/dist/sync/index.d.ts +4 -0
  59. package/dist/sync/index.js +5 -0
  60. package/dist/sync/sync.enum.d.ts +18 -0
  61. package/dist/sync/sync.enum.d.ts.map +1 -0
  62. package/dist/sync/sync.enum.js +35 -0
  63. package/dist/sync/sync.enum.js.map +1 -0
  64. package/dist/sync/sync.operations.d.ts +509 -0
  65. package/dist/sync/sync.operations.d.ts.map +1 -0
  66. package/dist/sync/sync.operations.js +203 -0
  67. package/dist/sync/sync.operations.js.map +1 -0
  68. package/dist/sync/sync.presentation.d.ts +12 -0
  69. package/dist/sync/sync.presentation.d.ts.map +1 -0
  70. package/dist/sync/sync.presentation.js +168 -0
  71. package/dist/sync/sync.presentation.js.map +1 -0
  72. package/dist/sync/sync.schema.d.ts +356 -0
  73. package/dist/sync/sync.schema.d.ts.map +1 -0
  74. package/dist/sync/sync.schema.js +304 -0
  75. package/dist/sync/sync.schema.js.map +1 -0
  76. package/dist/sync-engine/index.d.ts +109 -0
  77. package/dist/sync-engine/index.d.ts.map +1 -0
  78. package/dist/sync-engine/index.js +148 -0
  79. package/dist/sync-engine/index.js.map +1 -0
  80. package/package.json +103 -0
@@ -0,0 +1,51 @@
1
+ //#region src/example.ts
2
+ const example = {
3
+ id: "integration-hub",
4
+ title: "Integration Hub",
5
+ summary: "Provider-agnostic integration center with connectors, connections, field mappings, and sync logs.",
6
+ tags: [
7
+ "integrations",
8
+ "sync",
9
+ "etl",
10
+ "connectors"
11
+ ],
12
+ kind: "template",
13
+ visibility: "public",
14
+ docs: {
15
+ rootDocId: "docs.examples.integration-hub",
16
+ goalDocId: "docs.examples.integration-hub.goal",
17
+ usageDocId: "docs.examples.integration-hub.usage",
18
+ constraintsDocId: "docs.examples.integration-hub.constraints"
19
+ },
20
+ entrypoints: {
21
+ packageName: "@contractspec/example.integration-hub",
22
+ feature: "./feature",
23
+ contracts: "./contracts",
24
+ presentations: "./presentations",
25
+ handlers: "./handlers",
26
+ docs: "./docs"
27
+ },
28
+ surfaces: {
29
+ templates: true,
30
+ sandbox: {
31
+ enabled: true,
32
+ modes: [
33
+ "playground",
34
+ "specs",
35
+ "builder",
36
+ "markdown",
37
+ "evolution"
38
+ ]
39
+ },
40
+ studio: {
41
+ enabled: true,
42
+ installable: true
43
+ },
44
+ mcp: { enabled: true }
45
+ }
46
+ };
47
+ var example_default = example;
48
+
49
+ //#endregion
50
+ export { example_default as default };
51
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["const example = {\n id: 'integration-hub',\n title: 'Integration Hub',\n summary:\n 'Provider-agnostic integration center with connectors, connections, field mappings, and sync logs.',\n tags: ['integrations', 'sync', 'etl', 'connectors'],\n kind: 'template',\n visibility: 'public',\n docs: {\n rootDocId: 'docs.examples.integration-hub',\n goalDocId: 'docs.examples.integration-hub.goal',\n usageDocId: 'docs.examples.integration-hub.usage',\n constraintsDocId: 'docs.examples.integration-hub.constraints',\n },\n entrypoints: {\n packageName: '@contractspec/example.integration-hub',\n feature: './feature',\n contracts: './contracts',\n presentations: './presentations',\n handlers: './handlers',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: {\n enabled: true,\n modes: ['playground', 'specs', 'builder', 'markdown', 'evolution'],\n },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n} as const;\n\nexport default example;\n"],"mappings":";AAAA,MAAM,UAAU;CACd,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;EAAC;EAAgB;EAAQ;EAAO;EAAa;CACnD,MAAM;CACN,YAAY;CACZ,MAAM;EACJ,WAAW;EACX,WAAW;EACX,YAAY;EACZ,kBAAkB;EACnB;CACD,aAAa;EACX,aAAa;EACb,SAAS;EACT,WAAW;EACX,eAAe;EACf,UAAU;EACV,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GACP,SAAS;GACT,OAAO;IAAC;IAAc;IAAS;IAAW;IAAY;IAAY;GACnE;EACD,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
@@ -0,0 +1,14 @@
1
+ import { ConnectionStatusEnum } from "./connection/connection.enum.js";
2
+ import { CreateConnectionContract } from "./connection/connection.operation.js";
3
+ import { ConnectionModel, CreateConnectionInputModel } from "./connection/connection.schema.js";
4
+ import "./connection/index.js";
5
+ import { IntegrationStatusEnum } from "./integration/integration.enum.js";
6
+ import { CreateIntegrationInputModel, IntegrationModel } from "./integration/integration.schema.js";
7
+ import { CreateIntegrationContract } from "./integration/integration.operations.js";
8
+ import "./integration/index.js";
9
+ import { MappingTypeEnum, SyncDirectionEnum, SyncStatusEnum } from "./sync/sync.enum.js";
10
+ import { AddFieldMappingInputModel, CreateSyncConfigInputModel, FieldMappingModel, ListSyncRunsInputModel, ListSyncRunsOutputModel, SyncConfigModel, SyncRunModel, TriggerSyncInputModel } from "./sync/sync.schema.js";
11
+ import { AddFieldMappingContract, CreateSyncConfigContract, ListSyncRunsContract, TriggerSyncContract } from "./sync/sync.operations.js";
12
+ import "./sync/index.js";
13
+ import { BasicFieldTransformer, BasicSyncEngine, FieldMapping, IFieldTransformer, ISyncEngine, LookupConfig, SourceRecord, SyncConfig, SyncContext, SyncError, SyncResult, TargetRecord, computeChecksum, createSyncEngine, hasChanges } from "./sync-engine/index.js";
14
+ export { AddFieldMappingContract, AddFieldMappingInputModel, BasicFieldTransformer, BasicSyncEngine, ConnectionModel, ConnectionStatusEnum, CreateConnectionContract, CreateConnectionInputModel, CreateIntegrationContract, CreateIntegrationInputModel, CreateSyncConfigContract, CreateSyncConfigInputModel, FieldMapping, FieldMappingModel, IFieldTransformer, ISyncEngine, IntegrationModel, IntegrationStatusEnum, ListSyncRunsContract, ListSyncRunsInputModel, ListSyncRunsOutputModel, LookupConfig, MappingTypeEnum, SourceRecord, SyncConfig, SyncConfigModel, SyncContext, SyncDirectionEnum, SyncError, SyncResult, SyncRunModel, SyncStatusEnum, TargetRecord, TriggerSyncContract, TriggerSyncInputModel, computeChecksum, createSyncEngine, hasChanges };
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ import { IntegrationStatusEnum } from "./integration/integration.enum.js";
2
+ import { CreateIntegrationInputModel, IntegrationModel } from "./integration/integration.schema.js";
3
+ import { CreateIntegrationContract } from "./integration/integration.operations.js";
4
+ import "./integration/index.js";
5
+ import { ConnectionStatusEnum } from "./connection/connection.enum.js";
6
+ import { ConnectionModel, CreateConnectionInputModel } from "./connection/connection.schema.js";
7
+ import { CreateConnectionContract } from "./connection/connection.operation.js";
8
+ import "./connection/index.js";
9
+ import { MappingTypeEnum, SyncDirectionEnum, SyncStatusEnum } from "./sync/sync.enum.js";
10
+ import { AddFieldMappingInputModel, CreateSyncConfigInputModel, FieldMappingModel, ListSyncRunsInputModel, ListSyncRunsOutputModel, SyncConfigModel, SyncRunModel, TriggerSyncInputModel } from "./sync/sync.schema.js";
11
+ import { AddFieldMappingContract, CreateSyncConfigContract, ListSyncRunsContract, TriggerSyncContract } from "./sync/sync.operations.js";
12
+ import "./sync/index.js";
13
+ import { BasicFieldTransformer, BasicSyncEngine, computeChecksum, createSyncEngine, hasChanges } from "./sync-engine/index.js";
14
+
15
+ export { AddFieldMappingContract, AddFieldMappingInputModel, BasicFieldTransformer, BasicSyncEngine, ConnectionModel, ConnectionStatusEnum, CreateConnectionContract, CreateConnectionInputModel, CreateIntegrationContract, CreateIntegrationInputModel, CreateSyncConfigContract, CreateSyncConfigInputModel, FieldMappingModel, IntegrationModel, IntegrationStatusEnum, ListSyncRunsContract, ListSyncRunsInputModel, ListSyncRunsOutputModel, MappingTypeEnum, SyncConfigModel, SyncDirectionEnum, SyncRunModel, SyncStatusEnum, TriggerSyncContract, TriggerSyncInputModel, computeChecksum, createSyncEngine, hasChanges };
@@ -0,0 +1,4 @@
1
+ import { IntegrationStatusEnum } from "./integration.enum.js";
2
+ import { CreateIntegrationInputModel, IntegrationModel } from "./integration.schema.js";
3
+ import { CreateIntegrationContract } from "./integration.operations.js";
4
+ export { CreateIntegrationContract, CreateIntegrationInputModel, IntegrationModel, IntegrationStatusEnum };
@@ -0,0 +1,5 @@
1
+ import { IntegrationStatusEnum } from "./integration.enum.js";
2
+ import { CreateIntegrationInputModel, IntegrationModel } from "./integration.schema.js";
3
+ import { CreateIntegrationContract } from "./integration.operations.js";
4
+
5
+ export { CreateIntegrationContract, CreateIntegrationInputModel, IntegrationModel, IntegrationStatusEnum };
@@ -0,0 +1,10 @@
1
+ import * as _contractspec_lib_schema81 from "@contractspec/lib.schema";
2
+
3
+ //#region src/integration/integration.enum.d.ts
4
+ /**
5
+ * Integration status enum.
6
+ */
7
+ declare const IntegrationStatusEnum: _contractspec_lib_schema81.EnumType<[string, string, string, string, string]>;
8
+ //#endregion
9
+ export { IntegrationStatusEnum };
10
+ //# sourceMappingURL=integration.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.enum.d.ts","names":[],"sources":["../../src/integration/integration.enum.ts"],"sourcesContent":[],"mappings":";;;;;;AAKa,cAAA,qBAMX,EAAA,0BAAA,CANgC,QAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { defineEnum } from "@contractspec/lib.schema";
2
+
3
+ //#region src/integration/integration.enum.ts
4
+ /**
5
+ * Integration status enum.
6
+ */
7
+ const IntegrationStatusEnum = defineEnum("IntegrationStatus", [
8
+ "DRAFT",
9
+ "ACTIVE",
10
+ "PAUSED",
11
+ "ERROR",
12
+ "ARCHIVED"
13
+ ]);
14
+
15
+ //#endregion
16
+ export { IntegrationStatusEnum };
17
+ //# sourceMappingURL=integration.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.enum.js","names":[],"sources":["../../src/integration/integration.enum.ts"],"sourcesContent":["import { defineEnum } from '@contractspec/lib.schema';\n\n/**\n * Integration status enum.\n */\nexport const IntegrationStatusEnum = defineEnum('IntegrationStatus', [\n 'DRAFT',\n 'ACTIVE',\n 'PAUSED',\n 'ERROR',\n 'ARCHIVED',\n]);\n"],"mappings":";;;;;;AAKA,MAAa,wBAAwB,WAAW,qBAAqB;CACnE;CACA;CACA;CACA;CACA;CACD,CAAC"}
@@ -0,0 +1,99 @@
1
+ import * as _contractspec_lib_contracts9 from "@contractspec/lib.contracts";
2
+ import * as _contractspec_lib_schema82 from "@contractspec/lib.schema";
3
+
4
+ //#region src/integration/integration.operations.d.ts
5
+ /**
6
+ * Create a new integration.
7
+ */
8
+ declare const CreateIntegrationContract: _contractspec_lib_contracts9.OperationSpec<_contractspec_lib_schema82.SchemaModel<{
9
+ name: {
10
+ type: _contractspec_lib_schema82.FieldType<string, string>;
11
+ isOptional: false;
12
+ };
13
+ slug: {
14
+ type: _contractspec_lib_schema82.FieldType<string, string>;
15
+ isOptional: false;
16
+ };
17
+ description: {
18
+ type: _contractspec_lib_schema82.FieldType<string, string>;
19
+ isOptional: true;
20
+ };
21
+ provider: {
22
+ type: _contractspec_lib_schema82.FieldType<string, string>;
23
+ isOptional: false;
24
+ };
25
+ config: {
26
+ type: _contractspec_lib_schema82.FieldType<unknown, unknown>;
27
+ isOptional: true;
28
+ };
29
+ featureFlagKey: {
30
+ type: _contractspec_lib_schema82.FieldType<string, string>;
31
+ isOptional: true;
32
+ };
33
+ }>, _contractspec_lib_schema82.SchemaModel<{
34
+ id: {
35
+ type: _contractspec_lib_schema82.FieldType<string, string>;
36
+ isOptional: false;
37
+ };
38
+ name: {
39
+ type: _contractspec_lib_schema82.FieldType<string, string>;
40
+ isOptional: false;
41
+ };
42
+ slug: {
43
+ type: _contractspec_lib_schema82.FieldType<string, string>;
44
+ isOptional: false;
45
+ };
46
+ description: {
47
+ type: _contractspec_lib_schema82.FieldType<string, string>;
48
+ isOptional: true;
49
+ };
50
+ provider: {
51
+ type: _contractspec_lib_schema82.FieldType<string, string>;
52
+ isOptional: false;
53
+ };
54
+ status: {
55
+ type: _contractspec_lib_schema82.EnumType<[string, string, string, string, string]>;
56
+ isOptional: false;
57
+ };
58
+ createdAt: {
59
+ type: _contractspec_lib_schema82.FieldType<Date, string>;
60
+ isOptional: false;
61
+ };
62
+ }>, {
63
+ key: string;
64
+ version: number;
65
+ when: string;
66
+ payload: _contractspec_lib_schema82.SchemaModel<{
67
+ id: {
68
+ type: _contractspec_lib_schema82.FieldType<string, string>;
69
+ isOptional: false;
70
+ };
71
+ name: {
72
+ type: _contractspec_lib_schema82.FieldType<string, string>;
73
+ isOptional: false;
74
+ };
75
+ slug: {
76
+ type: _contractspec_lib_schema82.FieldType<string, string>;
77
+ isOptional: false;
78
+ };
79
+ description: {
80
+ type: _contractspec_lib_schema82.FieldType<string, string>;
81
+ isOptional: true;
82
+ };
83
+ provider: {
84
+ type: _contractspec_lib_schema82.FieldType<string, string>;
85
+ isOptional: false;
86
+ };
87
+ status: {
88
+ type: _contractspec_lib_schema82.EnumType<[string, string, string, string, string]>;
89
+ isOptional: false;
90
+ };
91
+ createdAt: {
92
+ type: _contractspec_lib_schema82.FieldType<Date, string>;
93
+ isOptional: false;
94
+ };
95
+ }>;
96
+ }[]>;
97
+ //#endregion
98
+ export { CreateIntegrationContract };
99
+ //# sourceMappingURL=integration.operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.operations.d.ts","names":[],"sources":["../../src/integration/integration.operations.ts"],"sourcesContent":[],"mappings":";;;;;;;cASa,wDAAyB,yCAAA;EAAzB,IAAA,EAAA;IA4CX,IAAA,EAAA,0BAAA,CAAA,SAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;EA5CoC,WAAA,EAAA;;;;;;;;;;;;;;;;;;UAAA,0BAAA,CAAA,SAAA,CAAA,MAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAAA,KAAA"}
@@ -0,0 +1,57 @@
1
+ import { CreateIntegrationInputModel, IntegrationModel } from "./integration.schema.js";
2
+ import { defineCommand } from "@contractspec/lib.contracts/operations";
3
+
4
+ //#region src/integration/integration.operations.ts
5
+ /**
6
+ * Create a new integration.
7
+ */
8
+ const CreateIntegrationContract = defineCommand({
9
+ meta: {
10
+ key: "integration.create",
11
+ version: 1,
12
+ stability: "stable",
13
+ owners: ["@example.integration-hub"],
14
+ tags: ["integration", "create"],
15
+ description: "Create a new integration.",
16
+ goal: "Allow users to set up integrations with external systems.",
17
+ context: "Integration setup."
18
+ },
19
+ io: {
20
+ input: CreateIntegrationInputModel,
21
+ output: IntegrationModel
22
+ },
23
+ policy: { auth: "user" },
24
+ sideEffects: {
25
+ emits: [{
26
+ key: "integration.created",
27
+ version: 1,
28
+ when: "Integration created",
29
+ payload: IntegrationModel
30
+ }],
31
+ audit: ["integration.created"]
32
+ },
33
+ acceptance: {
34
+ scenarios: [{
35
+ key: "create-integration-happy-path",
36
+ given: ["User is admin"],
37
+ when: ["User defines new integration type"],
38
+ then: ["Integration definition is created", "IntegrationCreated event is emitted"]
39
+ }],
40
+ examples: [{
41
+ key: "create-slack",
42
+ input: {
43
+ name: "Slack",
44
+ category: "communication",
45
+ authType: "oauth2"
46
+ },
47
+ output: {
48
+ id: "slack",
49
+ status: "active"
50
+ }
51
+ }]
52
+ }
53
+ });
54
+
55
+ //#endregion
56
+ export { CreateIntegrationContract };
57
+ //# sourceMappingURL=integration.operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.operations.js","names":[],"sources":["../../src/integration/integration.operations.ts"],"sourcesContent":["import { defineCommand } from '@contractspec/lib.contracts/operations';\nimport {\n CreateIntegrationInputModel,\n IntegrationModel,\n} from './integration.schema';\n\n/**\n * Create a new integration.\n */\nexport const CreateIntegrationContract = defineCommand({\n meta: {\n key: 'integration.create',\n version: 1,\n stability: 'stable',\n owners: ['@example.integration-hub'],\n tags: ['integration', 'create'],\n description: 'Create a new integration.',\n goal: 'Allow users to set up integrations with external systems.',\n context: 'Integration setup.',\n },\n io: { input: CreateIntegrationInputModel, output: IntegrationModel },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n key: 'integration.created',\n version: 1,\n when: 'Integration created',\n payload: IntegrationModel,\n },\n ],\n audit: ['integration.created'],\n },\n acceptance: {\n scenarios: [\n {\n key: 'create-integration-happy-path',\n given: ['User is admin'],\n when: ['User defines new integration type'],\n then: [\n 'Integration definition is created',\n 'IntegrationCreated event is emitted',\n ],\n },\n ],\n examples: [\n {\n key: 'create-slack',\n input: { name: 'Slack', category: 'communication', authType: 'oauth2' },\n output: { id: 'slack', status: 'active' },\n },\n ],\n },\n});\n"],"mappings":";;;;;;;AASA,MAAa,4BAA4B,cAAc;CACrD,MAAM;EACJ,KAAK;EACL,SAAS;EACT,WAAW;EACX,QAAQ,CAAC,2BAA2B;EACpC,MAAM,CAAC,eAAe,SAAS;EAC/B,aAAa;EACb,MAAM;EACN,SAAS;EACV;CACD,IAAI;EAAE,OAAO;EAA6B,QAAQ;EAAkB;CACpE,QAAQ,EAAE,MAAM,QAAQ;CACxB,aAAa;EACX,OAAO,CACL;GACE,KAAK;GACL,SAAS;GACT,MAAM;GACN,SAAS;GACV,CACF;EACD,OAAO,CAAC,sBAAsB;EAC/B;CACD,YAAY;EACV,WAAW,CACT;GACE,KAAK;GACL,OAAO,CAAC,gBAAgB;GACxB,MAAM,CAAC,oCAAoC;GAC3C,MAAM,CACJ,qCACA,sCACD;GACF,CACF;EACD,UAAU,CACR;GACE,KAAK;GACL,OAAO;IAAE,MAAM;IAAS,UAAU;IAAiB,UAAU;IAAU;GACvE,QAAQ;IAAE,IAAI;IAAS,QAAQ;IAAU;GAC1C,CACF;EACF;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { PresentationSpec } from "@contractspec/lib.contracts";
2
+
3
+ //#region src/integration/integration.presentation.d.ts
4
+ declare const IntegrationListPresentation: PresentationSpec;
5
+ declare const IntegrationDetailPresentation: PresentationSpec;
6
+ declare const IntegrationHealthPresentation: PresentationSpec;
7
+ //#endregion
8
+ export { IntegrationDetailPresentation, IntegrationHealthPresentation, IntegrationListPresentation };
9
+ //# sourceMappingURL=integration.presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.presentation.d.ts","names":[],"sources":["../../src/integration/integration.presentation.ts"],"sourcesContent":[],"mappings":";;;cAIa,6BAA6B;cAyB7B,+BAA+B;AAzB/B,cAkDA,6BAlD6B,EAkDE,gBA3B3C"}
@@ -0,0 +1,77 @@
1
+ import { IntegrationModel } from "./integration.schema.js";
2
+ import { StabilityEnum } from "@contractspec/lib.contracts";
3
+
4
+ //#region src/integration/integration.presentation.ts
5
+ const IntegrationListPresentation = {
6
+ meta: {
7
+ key: "integration.list",
8
+ version: 1,
9
+ title: "Integration List",
10
+ description: "List of available integrations",
11
+ domain: "integration",
12
+ owners: ["@integration-team"],
13
+ tags: ["integration", "list"],
14
+ stability: StabilityEnum.Experimental,
15
+ goal: "Show users available integrations they can connect to.",
16
+ context: "The marketplace of integrations within the hub."
17
+ },
18
+ source: {
19
+ type: "component",
20
+ framework: "react",
21
+ componentKey: "IntegrationList",
22
+ props: IntegrationModel
23
+ },
24
+ targets: ["react", "markdown"],
25
+ policy: { flags: ["integration.enabled"] }
26
+ };
27
+ const IntegrationDetailPresentation = {
28
+ meta: {
29
+ key: "integration.detail",
30
+ version: 1,
31
+ title: "Integration Details",
32
+ description: "Detailed view of an integration",
33
+ domain: "integration",
34
+ owners: ["@integration-team"],
35
+ tags: ["integration", "detail"],
36
+ stability: StabilityEnum.Experimental,
37
+ goal: "Show capabilities and documentation for a specific integration.",
38
+ context: "Integration showcase and support page."
39
+ },
40
+ source: {
41
+ type: "component",
42
+ framework: "react",
43
+ componentKey: "IntegrationDetail",
44
+ props: IntegrationModel
45
+ },
46
+ targets: ["react", "markdown"],
47
+ policy: { flags: ["integration.enabled"] }
48
+ };
49
+ const IntegrationHealthPresentation = {
50
+ meta: {
51
+ key: "integration.health",
52
+ version: 1,
53
+ title: "Integration Health",
54
+ description: "Integration health monitoring dashboard",
55
+ domain: "integration",
56
+ owners: ["@integration-team"],
57
+ tags: [
58
+ "integration",
59
+ "health",
60
+ "monitoring"
61
+ ],
62
+ stability: StabilityEnum.Experimental,
63
+ goal: "Monitor connectivity and error rates for active integrations.",
64
+ context: "Operations dashboard for integration hub health."
65
+ },
66
+ source: {
67
+ type: "component",
68
+ framework: "react",
69
+ componentKey: "IntegrationHealth"
70
+ },
71
+ targets: ["react", "markdown"],
72
+ policy: { flags: ["integration.monitoring.enabled"] }
73
+ };
74
+
75
+ //#endregion
76
+ export { IntegrationDetailPresentation, IntegrationHealthPresentation, IntegrationListPresentation };
77
+ //# sourceMappingURL=integration.presentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.presentation.js","names":["IntegrationListPresentation: PresentationSpec","IntegrationDetailPresentation: PresentationSpec","IntegrationHealthPresentation: PresentationSpec"],"sources":["../../src/integration/integration.presentation.ts"],"sourcesContent":["import type { PresentationSpec } from '@contractspec/lib.contracts';\nimport { StabilityEnum } from '@contractspec/lib.contracts';\nimport { IntegrationModel } from './integration.schema';\n\nexport const IntegrationListPresentation: PresentationSpec = {\n meta: {\n key: 'integration.list',\n version: 1,\n title: 'Integration List',\n description: 'List of available integrations',\n domain: 'integration',\n owners: ['@integration-team'],\n tags: ['integration', 'list'],\n stability: StabilityEnum.Experimental,\n goal: 'Show users available integrations they can connect to.',\n context: 'The marketplace of integrations within the hub.',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'IntegrationList',\n props: IntegrationModel,\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['integration.enabled'],\n },\n};\n\nexport const IntegrationDetailPresentation: PresentationSpec = {\n meta: {\n key: 'integration.detail',\n version: 1,\n title: 'Integration Details',\n description: 'Detailed view of an integration',\n domain: 'integration',\n owners: ['@integration-team'],\n tags: ['integration', 'detail'],\n stability: StabilityEnum.Experimental,\n goal: 'Show capabilities and documentation for a specific integration.',\n context: 'Integration showcase and support page.',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'IntegrationDetail',\n props: IntegrationModel,\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['integration.enabled'],\n },\n};\n\nexport const IntegrationHealthPresentation: PresentationSpec = {\n meta: {\n key: 'integration.health',\n version: 1,\n title: 'Integration Health',\n description: 'Integration health monitoring dashboard',\n domain: 'integration',\n owners: ['@integration-team'],\n tags: ['integration', 'health', 'monitoring'],\n stability: StabilityEnum.Experimental,\n goal: 'Monitor connectivity and error rates for active integrations.',\n context: 'Operations dashboard for integration hub health.',\n },\n source: {\n type: 'component',\n framework: 'react',\n componentKey: 'IntegrationHealth',\n },\n targets: ['react', 'markdown'],\n policy: {\n flags: ['integration.monitoring.enabled'],\n },\n};\n"],"mappings":";;;;AAIA,MAAaA,8BAAgD;CAC3D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,oBAAoB;EAC7B,MAAM,CAAC,eAAe,OAAO;EAC7B,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACd,OAAO;EACR;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,sBAAsB,EAC/B;CACF;AAED,MAAaC,gCAAkD;CAC7D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,oBAAoB;EAC7B,MAAM,CAAC,eAAe,SAAS;EAC/B,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACd,OAAO;EACR;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,sBAAsB,EAC/B;CACF;AAED,MAAaC,gCAAkD;CAC7D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,oBAAoB;EAC7B,MAAM;GAAC;GAAe;GAAU;GAAa;EAC7C,WAAW,cAAc;EACzB,MAAM;EACN,SAAS;EACV;CACD,QAAQ;EACN,MAAM;EACN,WAAW;EACX,cAAc;EACf;CACD,SAAS,CAAC,SAAS,WAAW;CAC9B,QAAQ,EACN,OAAO,CAAC,iCAAiC,EAC1C;CACF"}
@@ -0,0 +1,68 @@
1
+ import * as _contractspec_lib_schema105 from "@contractspec/lib.schema";
2
+
3
+ //#region src/integration/integration.schema.d.ts
4
+ /**
5
+ * An integration with an external system.
6
+ */
7
+ declare const IntegrationModel: _contractspec_lib_schema105.SchemaModel<{
8
+ id: {
9
+ type: _contractspec_lib_schema105.FieldType<string, string>;
10
+ isOptional: false;
11
+ };
12
+ name: {
13
+ type: _contractspec_lib_schema105.FieldType<string, string>;
14
+ isOptional: false;
15
+ };
16
+ slug: {
17
+ type: _contractspec_lib_schema105.FieldType<string, string>;
18
+ isOptional: false;
19
+ };
20
+ description: {
21
+ type: _contractspec_lib_schema105.FieldType<string, string>;
22
+ isOptional: true;
23
+ };
24
+ provider: {
25
+ type: _contractspec_lib_schema105.FieldType<string, string>;
26
+ isOptional: false;
27
+ };
28
+ status: {
29
+ type: _contractspec_lib_schema105.EnumType<[string, string, string, string, string]>;
30
+ isOptional: false;
31
+ };
32
+ createdAt: {
33
+ type: _contractspec_lib_schema105.FieldType<Date, string>;
34
+ isOptional: false;
35
+ };
36
+ }>;
37
+ /**
38
+ * Input for creating an integration.
39
+ */
40
+ declare const CreateIntegrationInputModel: _contractspec_lib_schema105.SchemaModel<{
41
+ name: {
42
+ type: _contractspec_lib_schema105.FieldType<string, string>;
43
+ isOptional: false;
44
+ };
45
+ slug: {
46
+ type: _contractspec_lib_schema105.FieldType<string, string>;
47
+ isOptional: false;
48
+ };
49
+ description: {
50
+ type: _contractspec_lib_schema105.FieldType<string, string>;
51
+ isOptional: true;
52
+ };
53
+ provider: {
54
+ type: _contractspec_lib_schema105.FieldType<string, string>;
55
+ isOptional: false;
56
+ };
57
+ config: {
58
+ type: _contractspec_lib_schema105.FieldType<unknown, unknown>;
59
+ isOptional: true;
60
+ };
61
+ featureFlagKey: {
62
+ type: _contractspec_lib_schema105.FieldType<string, string>;
63
+ isOptional: true;
64
+ };
65
+ }>;
66
+ //#endregion
67
+ export { CreateIntegrationInputModel, IntegrationModel };
68
+ //# sourceMappingURL=integration.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.schema.d.ts","names":[],"sources":["../../src/integration/integration.schema.ts"],"sourcesContent":[],"mappings":";;;;;;AAMa,cAAA,gBAWX,8BAX2B,WAW3B,CAAA;EAAA,EAAA,EAAA;UAAA,2BAAA,CAAA;;;;;;;;IAX2B,IAAA,uCAAA,CAAA,MAAA,EAAA,MAAA,CAAA;IAgBhB,UAAA,EAAA,KAAA;EAaX,CAAA;;;;;;+CAbsC,CAAA,MAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAAA,KAAA;;;;;;;;;;;;;;cAA3B,yDAA2B;;UAatC,2BAAA,CAAA"}
@@ -0,0 +1,76 @@
1
+ import { IntegrationStatusEnum } from "./integration.enum.js";
2
+ import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
3
+
4
+ //#region src/integration/integration.schema.ts
5
+ /**
6
+ * An integration with an external system.
7
+ */
8
+ const IntegrationModel = defineSchemaModel({
9
+ name: "IntegrationModel",
10
+ fields: {
11
+ id: {
12
+ type: ScalarTypeEnum.String_unsecure(),
13
+ isOptional: false
14
+ },
15
+ name: {
16
+ type: ScalarTypeEnum.String_unsecure(),
17
+ isOptional: false
18
+ },
19
+ slug: {
20
+ type: ScalarTypeEnum.String_unsecure(),
21
+ isOptional: false
22
+ },
23
+ description: {
24
+ type: ScalarTypeEnum.String_unsecure(),
25
+ isOptional: true
26
+ },
27
+ provider: {
28
+ type: ScalarTypeEnum.String_unsecure(),
29
+ isOptional: false
30
+ },
31
+ status: {
32
+ type: IntegrationStatusEnum,
33
+ isOptional: false
34
+ },
35
+ createdAt: {
36
+ type: ScalarTypeEnum.DateTime(),
37
+ isOptional: false
38
+ }
39
+ }
40
+ });
41
+ /**
42
+ * Input for creating an integration.
43
+ */
44
+ const CreateIntegrationInputModel = defineSchemaModel({
45
+ name: "CreateIntegrationInput",
46
+ fields: {
47
+ name: {
48
+ type: ScalarTypeEnum.NonEmptyString(),
49
+ isOptional: false
50
+ },
51
+ slug: {
52
+ type: ScalarTypeEnum.NonEmptyString(),
53
+ isOptional: false
54
+ },
55
+ description: {
56
+ type: ScalarTypeEnum.String_unsecure(),
57
+ isOptional: true
58
+ },
59
+ provider: {
60
+ type: ScalarTypeEnum.NonEmptyString(),
61
+ isOptional: false
62
+ },
63
+ config: {
64
+ type: ScalarTypeEnum.JSON(),
65
+ isOptional: true
66
+ },
67
+ featureFlagKey: {
68
+ type: ScalarTypeEnum.String_unsecure(),
69
+ isOptional: true
70
+ }
71
+ }
72
+ });
73
+
74
+ //#endregion
75
+ export { CreateIntegrationInputModel, IntegrationModel };
76
+ //# sourceMappingURL=integration.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.schema.js","names":[],"sources":["../../src/integration/integration.schema.ts"],"sourcesContent":["import { defineSchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';\nimport { IntegrationStatusEnum } from './integration.enum';\n\n/**\n * An integration with an external system.\n */\nexport const IntegrationModel = defineSchemaModel({\n name: 'IntegrationModel',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n provider: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: IntegrationStatusEnum, isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\n/**\n * Input for creating an integration.\n */\nexport const CreateIntegrationInputModel = defineSchemaModel({\n name: 'CreateIntegrationInput',\n fields: {\n name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n slug: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n provider: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n config: { type: ScalarTypeEnum.JSON(), isOptional: true },\n featureFlagKey: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n },\n});\n"],"mappings":";;;;;;;AAMA,MAAa,mBAAmB,kBAAkB;CAChD,MAAM;CACN,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,MAAM;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACnE,MAAM;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACnE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,UAAU;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACvE,QAAQ;GAAE,MAAM;GAAuB,YAAY;GAAO;EAC1D,WAAW;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;;;;AAKF,MAAa,8BAA8B,kBAAkB;CAC3D,MAAM;CACN,QAAQ;EACN,MAAM;GAAE,MAAM,eAAe,gBAAgB;GAAE,YAAY;GAAO;EAClE,MAAM;GAAE,MAAM,eAAe,gBAAgB;GAAE,YAAY;GAAO;EAClE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,UAAU;GAAE,MAAM,eAAe,gBAAgB;GAAE,YAAY;GAAO;EACtE,QAAQ;GAAE,MAAM,eAAe,MAAM;GAAE,YAAY;GAAM;EACzD,gBAAgB;GACd,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACF;CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { FeatureModuleSpec } from "@contractspec/lib.contracts";
2
+
3
+ //#region src/integration-hub.feature.d.ts
4
+
5
+ declare const IntegrationHubFeature: FeatureModuleSpec;
6
+ //#endregion
7
+ export { IntegrationHubFeature };
8
+ //# sourceMappingURL=integration-hub.feature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-hub.feature.d.ts","names":[],"sources":["../src/integration-hub.feature.ts"],"sourcesContent":[],"mappings":";;;;cAKa,uBAAuB"}