@uptime.app/contracts 1.0.12 → 1.0.13-user-context.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/cjs/access-control/collection-access-control.d.ts +25 -0
  2. package/dist/cjs/access-control/collection-access-control.d.ts.map +1 -0
  3. package/dist/cjs/access-control/collection-access-control.js +3 -0
  4. package/dist/cjs/access-control/collection-access-control.js.map +1 -0
  5. package/dist/cjs/access-control/hack-access-control.d.ts +25 -0
  6. package/dist/cjs/access-control/hack-access-control.d.ts.map +1 -0
  7. package/dist/cjs/access-control/hack-access-control.js +3 -0
  8. package/dist/cjs/access-control/hack-access-control.js.map +1 -0
  9. package/dist/cjs/distribution/collection-distribution.d.ts +17 -0
  10. package/dist/cjs/distribution/collection-distribution.d.ts.map +1 -0
  11. package/dist/cjs/distribution/collection-distribution.js +3 -0
  12. package/dist/cjs/distribution/collection-distribution.js.map +1 -0
  13. package/dist/cjs/distribution/distribution-events.d.ts +53 -0
  14. package/dist/cjs/distribution/distribution-events.d.ts.map +1 -0
  15. package/dist/cjs/distribution/distribution-events.js +3 -0
  16. package/dist/cjs/distribution/distribution-events.js.map +1 -0
  17. package/dist/cjs/distribution/hack-distribution.d.ts +19 -0
  18. package/dist/cjs/distribution/hack-distribution.d.ts.map +1 -0
  19. package/dist/cjs/distribution/hack-distribution.js +3 -0
  20. package/dist/cjs/distribution/hack-distribution.js.map +1 -0
  21. package/dist/cjs/draft-hack-generation/draft-hack-generation-events.d.ts +36 -0
  22. package/dist/cjs/draft-hack-generation/draft-hack-generation-events.d.ts.map +1 -0
  23. package/dist/cjs/draft-hack-generation/draft-hack-generation-events.js +3 -0
  24. package/dist/cjs/draft-hack-generation/draft-hack-generation-events.js.map +1 -0
  25. package/dist/cjs/draft-hack-generation/draft-hack-generation.d.ts +39 -0
  26. package/dist/cjs/draft-hack-generation/draft-hack-generation.d.ts.map +1 -0
  27. package/dist/cjs/draft-hack-generation/draft-hack-generation.js +3 -0
  28. package/dist/cjs/draft-hack-generation/draft-hack-generation.js.map +1 -0
  29. package/dist/cjs/enriched-hack/enriched-hack-events.d.ts +18 -0
  30. package/dist/cjs/enriched-hack/enriched-hack-events.d.ts.map +1 -0
  31. package/dist/cjs/enriched-hack/enriched-hack-events.js +3 -0
  32. package/dist/cjs/enriched-hack/enriched-hack-events.js.map +1 -0
  33. package/dist/cjs/enriched-hack/enriched-hack.d.ts +90 -0
  34. package/dist/cjs/enriched-hack/enriched-hack.d.ts.map +1 -0
  35. package/dist/cjs/enriched-hack/enriched-hack.js +3 -0
  36. package/dist/cjs/enriched-hack/enriched-hack.js.map +1 -0
  37. package/dist/cjs/entitlement/user-entitlements-events.d.ts +18 -0
  38. package/dist/cjs/entitlement/user-entitlements-events.d.ts.map +1 -0
  39. package/dist/cjs/entitlement/user-entitlements-events.js +3 -0
  40. package/dist/cjs/entitlement/user-entitlements-events.js.map +1 -0
  41. package/dist/cjs/entitlement/user-entitlements.d.ts +17 -0
  42. package/dist/cjs/entitlement/user-entitlements.d.ts.map +1 -0
  43. package/dist/cjs/entitlement/user-entitlements.js +3 -0
  44. package/dist/cjs/entitlement/user-entitlements.js.map +1 -0
  45. package/dist/cjs/index.d.ts +13 -0
  46. package/dist/cjs/index.d.ts.map +1 -1
  47. package/dist/cjs/index.js +13 -0
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/user-context/user-context-events.d.ts +18 -0
  50. package/dist/cjs/user-context/user-context-events.d.ts.map +1 -0
  51. package/dist/cjs/user-context/user-context-events.js +3 -0
  52. package/dist/cjs/user-context/user-context-events.js.map +1 -0
  53. package/dist/cjs/user-context/user-context.d.ts +17 -0
  54. package/dist/cjs/user-context/user-context.d.ts.map +1 -0
  55. package/dist/cjs/user-context/user-context.js +3 -0
  56. package/dist/cjs/user-context/user-context.js.map +1 -0
  57. package/dist/esm/access-control/collection-access-control.d.ts +25 -0
  58. package/dist/esm/access-control/collection-access-control.d.ts.map +1 -0
  59. package/dist/esm/access-control/collection-access-control.js +2 -0
  60. package/dist/esm/access-control/collection-access-control.js.map +1 -0
  61. package/dist/esm/access-control/hack-access-control.d.ts +25 -0
  62. package/dist/esm/access-control/hack-access-control.d.ts.map +1 -0
  63. package/dist/esm/access-control/hack-access-control.js +2 -0
  64. package/dist/esm/access-control/hack-access-control.js.map +1 -0
  65. package/dist/esm/distribution/collection-distribution.d.ts +17 -0
  66. package/dist/esm/distribution/collection-distribution.d.ts.map +1 -0
  67. package/dist/esm/distribution/collection-distribution.js +2 -0
  68. package/dist/esm/distribution/collection-distribution.js.map +1 -0
  69. package/dist/esm/distribution/distribution-events.d.ts +53 -0
  70. package/dist/esm/distribution/distribution-events.d.ts.map +1 -0
  71. package/dist/esm/distribution/distribution-events.js +2 -0
  72. package/dist/esm/distribution/distribution-events.js.map +1 -0
  73. package/dist/esm/distribution/hack-distribution.d.ts +19 -0
  74. package/dist/esm/distribution/hack-distribution.d.ts.map +1 -0
  75. package/dist/esm/distribution/hack-distribution.js +2 -0
  76. package/dist/esm/distribution/hack-distribution.js.map +1 -0
  77. package/dist/esm/draft-hack-generation/draft-hack-generation-events.d.ts +36 -0
  78. package/dist/esm/draft-hack-generation/draft-hack-generation-events.d.ts.map +1 -0
  79. package/dist/esm/draft-hack-generation/draft-hack-generation-events.js +2 -0
  80. package/dist/esm/draft-hack-generation/draft-hack-generation-events.js.map +1 -0
  81. package/dist/esm/draft-hack-generation/draft-hack-generation.d.ts +39 -0
  82. package/dist/esm/draft-hack-generation/draft-hack-generation.d.ts.map +1 -0
  83. package/dist/esm/draft-hack-generation/draft-hack-generation.js +2 -0
  84. package/dist/esm/draft-hack-generation/draft-hack-generation.js.map +1 -0
  85. package/dist/esm/enriched-hack/enriched-hack-events.d.ts +18 -0
  86. package/dist/esm/enriched-hack/enriched-hack-events.d.ts.map +1 -0
  87. package/dist/esm/enriched-hack/enriched-hack-events.js +2 -0
  88. package/dist/esm/enriched-hack/enriched-hack-events.js.map +1 -0
  89. package/dist/esm/enriched-hack/enriched-hack.d.ts +90 -0
  90. package/dist/esm/enriched-hack/enriched-hack.d.ts.map +1 -0
  91. package/dist/esm/enriched-hack/enriched-hack.js +2 -0
  92. package/dist/esm/enriched-hack/enriched-hack.js.map +1 -0
  93. package/dist/esm/entitlement/user-entitlements-events.d.ts +18 -0
  94. package/dist/esm/entitlement/user-entitlements-events.d.ts.map +1 -0
  95. package/dist/esm/entitlement/user-entitlements-events.js +2 -0
  96. package/dist/esm/entitlement/user-entitlements-events.js.map +1 -0
  97. package/dist/esm/entitlement/user-entitlements.d.ts +17 -0
  98. package/dist/esm/entitlement/user-entitlements.d.ts.map +1 -0
  99. package/dist/esm/entitlement/user-entitlements.js +2 -0
  100. package/dist/esm/entitlement/user-entitlements.js.map +1 -0
  101. package/dist/esm/index.d.ts +13 -0
  102. package/dist/esm/index.d.ts.map +1 -1
  103. package/dist/esm/index.js +13 -0
  104. package/dist/esm/index.js.map +1 -1
  105. package/dist/esm/user-context/user-context-events.d.ts +18 -0
  106. package/dist/esm/user-context/user-context-events.d.ts.map +1 -0
  107. package/dist/esm/user-context/user-context-events.js +2 -0
  108. package/dist/esm/user-context/user-context-events.js.map +1 -0
  109. package/dist/esm/user-context/user-context.d.ts +17 -0
  110. package/dist/esm/user-context/user-context.d.ts.map +1 -0
  111. package/dist/esm/user-context/user-context.js +2 -0
  112. package/dist/esm/user-context/user-context.js.map +1 -0
  113. package/package.json +2 -2
  114. package/src/access-control/collection-access-control.ts +28 -0
  115. package/src/access-control/hack-access-control.ts +29 -0
  116. package/src/distribution/collection-distribution.ts +17 -0
  117. package/src/distribution/distribution-events.ts +61 -0
  118. package/src/distribution/hack-distribution.ts +19 -0
  119. package/src/draft-hack-generation/draft-hack-generation-events.ts +42 -0
  120. package/src/draft-hack-generation/draft-hack-generation.ts +38 -0
  121. package/src/enriched-hack/enriched-hack-events.ts +21 -0
  122. package/src/enriched-hack/enriched-hack.ts +101 -0
  123. package/src/entitlement/user-entitlements-events.ts +21 -0
  124. package/src/entitlement/user-entitlements.ts +18 -0
  125. package/src/index.ts +20 -1
  126. package/src/user-context/user-context-events.ts +21 -0
  127. package/src/user-context/user-context.ts +17 -0
@@ -0,0 +1,18 @@
1
+ import { UserContext } from "./user-context";
2
+ export interface UserContextCreatedEvent {
3
+ id: string;
4
+ type: 'UserContextCreated';
5
+ payload: UserContext;
6
+ }
7
+ export interface UserContextUpdatedEvent {
8
+ id: string;
9
+ type: 'UserContextUpdated';
10
+ payload: UserContext;
11
+ }
12
+ export interface UserContextDeletedEvent {
13
+ id: string;
14
+ type: 'UserContextDeleted';
15
+ payload: UserContext;
16
+ }
17
+ export type UserContextChangedEvent = UserContextCreatedEvent | UserContextUpdatedEvent | UserContextDeletedEvent;
18
+ //# sourceMappingURL=user-context-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-context-events.d.ts","sourceRoot":"","sources":["../../../src/user-context/user-context-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user-context-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-context-events.js","sourceRoot":"","sources":["../../../src/user-context/user-context-events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { Entitlement } from "../entitlement/user-entitlements";
2
+ export interface UserContext {
3
+ id: string;
4
+ v: number;
5
+ createdAt: string;
6
+ updatedAt: string;
7
+ userId: string;
8
+ entitlements: Entitlement[];
9
+ organisationIds: string[];
10
+ roles: string[];
11
+ acl: string[];
12
+ permissions: string[];
13
+ partnerId?: string;
14
+ brandId?: string;
15
+ skinId?: string;
16
+ }
17
+ //# sourceMappingURL=user-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-context.d.ts","sourceRoot":"","sources":["../../../src/user-context/user-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=user-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-context.js","sourceRoot":"","sources":["../../../src/user-context/user-context.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uptime.app/contracts",
3
- "version": "1.0.12",
3
+ "version": "1.0.13-user-context.1",
4
4
  "license": "MIT",
5
5
  "types": "./dist/esm/index.d.ts",
6
6
  "main": "./dist/cjs/index.js",
@@ -13,5 +13,5 @@
13
13
  "devDependencies": {
14
14
  "typescript": "^5.4.3"
15
15
  },
16
- "gitHead": "1c8aa56436af18e4f4c3cc854d3f9eb4e3e4f38f"
16
+ "gitHead": "cf9618d1a558c19965b58fbb69776dac8ab82530"
17
17
  }
@@ -0,0 +1,28 @@
1
+ export interface CollectionAccessControl {
2
+ id: string;
3
+ collectionId: string; // PK
4
+ v: number;
5
+ acl: string[]
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ }
9
+
10
+ export interface CollectionAccessControlCreatedEvent {
11
+ id: string;
12
+ type: 'CollectionAccessControlCreated';
13
+ payload: CollectionAccessControl;
14
+ }
15
+
16
+ export interface CollectionAccessControlUpdatedEvent {
17
+ id: string;
18
+ type: 'CollectionAccessControlUpdated';
19
+ payload: CollectionAccessControl;
20
+ }
21
+
22
+ export interface CollectionAccessControlDeletedEvent {
23
+ id: string;
24
+ type: 'CollectionAccessControlDeleted';
25
+ payload: CollectionAccessControl;
26
+ }
27
+
28
+ export type CollectionAccessControlChangedEvent = CollectionAccessControlCreatedEvent | CollectionAccessControlUpdatedEvent | CollectionAccessControlDeletedEvent;
@@ -0,0 +1,29 @@
1
+ export interface HackAccessControl {
2
+ id: string;
3
+ hackId: string; // PK
4
+ // do I need baseLocaleHackId ? don't think I do
5
+ v: number;
6
+ acl: string[]
7
+ createdAt: string;
8
+ updatedAt: string;
9
+ }
10
+
11
+ export interface HackAccessControlCreatedEvent {
12
+ id: string;
13
+ type: 'HackAccessControlCreated';
14
+ payload: HackAccessControl;
15
+ }
16
+
17
+ export interface HackAccessControlUpdatedEvent {
18
+ id: string;
19
+ type: 'HackAccessControlUpdated';
20
+ payload: HackAccessControl;
21
+ }
22
+
23
+ export interface HackAccessControlDeletedEvent {
24
+ id: string;
25
+ type: 'HackAccessControlDeleted';
26
+ payload: HackAccessControl;
27
+ }
28
+
29
+ export type HackAccessControlChangedEvent = HackAccessControlCreatedEvent | HackAccessControlUpdatedEvent | HackAccessControlDeletedEvent;
@@ -0,0 +1,17 @@
1
+ export interface CollectionDistribution extends CollectionDistributionProperties {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ collectionId: string;
7
+ baseLocaleCollectionId: string;
8
+ }
9
+
10
+ export interface CollectionDistributionProperties {
11
+ includeInEmailNotifications: boolean;
12
+ includeInPushNotifications: boolean;
13
+ includeInRecommendations: boolean;
14
+ includeInSearchResults: boolean;
15
+ includeInWebsite: boolean;
16
+ isHidden: boolean;
17
+ }
@@ -0,0 +1,61 @@
1
+ import { HackDistribution } from './hack-distribution';
2
+ import { CollectionDistribution } from './collection-distribution';
3
+
4
+ export interface HackDistributionCreatedEvent {
5
+ id: string;
6
+ type: 'HackDistributionCreated';
7
+ payload: HackDistribution;
8
+ }
9
+
10
+ export interface HackDistributionUpdatedEvent {
11
+ id: string;
12
+ type: 'HackDistributionUpdated';
13
+ payload: HackDistribution;
14
+ }
15
+
16
+ export interface HackDistributionDeletedEvent {
17
+ id: string;
18
+ type: 'HackDistributionDeleted';
19
+ payload: HackDistribution;
20
+ }
21
+
22
+ export interface CollectionDistributionCreatedEvent {
23
+ id: string;
24
+ type: 'CollectionDistributionCreated';
25
+ payload: CollectionDistribution;
26
+ }
27
+
28
+ export interface CollectionDistributionUpdatedEvent {
29
+ id: string;
30
+ type: 'CollectionDistributionUpdated';
31
+ payload: CollectionDistribution;
32
+ }
33
+
34
+ export interface CollectionDistributionDeletedEvent {
35
+ id: string;
36
+ type: 'CollectionDistributionDeleted';
37
+ payload: CollectionDistribution;
38
+ }
39
+
40
+ export type HackDistributionChangedEvent = HackDistributionCreatedEvent | HackDistributionUpdatedEvent | HackDistributionDeletedEvent;
41
+ export type CollectionDistributionChangedEvent = CollectionDistributionCreatedEvent | CollectionDistributionUpdatedEvent | CollectionDistributionDeletedEvent;
42
+
43
+ export interface CheckPrivateHackDistributionEvent {
44
+ id: string;
45
+ type: 'CheckPrivateHackDistribution'
46
+ payload: {
47
+ id: string;
48
+ v: number;
49
+ hackId: string;
50
+ }
51
+ }
52
+
53
+ export interface CheckPrivateCollectionDistributionEvent {
54
+ id: string;
55
+ type: 'CheckPrivateCollectionDistribution'
56
+ payload: {
57
+ id: string;
58
+ v: number;
59
+ collectionId: string;
60
+ }
61
+ }
@@ -0,0 +1,19 @@
1
+ export interface HackDistribution extends HackDistributionProperties {
2
+ id: string;
3
+ v: number;
4
+ createdAt: string;
5
+ updatedAt: string;
6
+ hackId: string;
7
+ baseLocaleHackId: string; // added 09/03/23 to allow syncing across hacks with the same baseLocaleHackId
8
+ }
9
+
10
+ export interface HackDistributionProperties {
11
+ includeInEmailNotifications: boolean;
12
+ includeInPushNotifications: boolean;
13
+ includeInRecommendations: boolean;
14
+ includeInSearchResults: boolean;
15
+ includeInTrending: boolean;
16
+ includeInHackOfTheDay: boolean;
17
+ includeInWebsite: boolean;
18
+ isHidden: boolean; // added 17/11/22, to replace Hack property with the same name
19
+ }
@@ -0,0 +1,42 @@
1
+ import { GeneratedDraftHackContent } from './draft-hack-generation';
2
+
3
+ export interface DraftHackGenerated {
4
+ id: string;
5
+ type: 'DraftHackGenerated';
6
+ payload: {
7
+ // the draft hack id
8
+ id: string;
9
+ // the version
10
+ v: number;
11
+ reference: string;
12
+ draftHackId: string;
13
+ draftHackContent: GeneratedDraftHackContent;
14
+ }
15
+ }
16
+
17
+ export interface DraftHackGenerationFailed {
18
+ id: string;
19
+ type: 'DraftHackGenerationFailed';
20
+ payload: {
21
+ reference: string;
22
+ errorMessage: string;
23
+ }
24
+ }
25
+
26
+ export interface GeneratedDraftHackSavedToGoogleDrive {
27
+ id: string;
28
+ type: 'GeneratedDraftHackSavedToGoogleDrive';
29
+ payload: {
30
+ // the draft hack id
31
+ id: string;
32
+ // the version
33
+ v: number;
34
+ reference: string;
35
+ draftHackId: string;
36
+ draftHackContent: GeneratedDraftHackContent;
37
+ driveFile: {
38
+ id: string;
39
+ parentId: string;
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,38 @@
1
+ export interface GeneratedDraftHackContent {
2
+ title: string;
3
+ segments: GeneratedDraftHackSegments;
4
+ coverUrl?: string;
5
+ topics: GeneratedDraftTopic[];
6
+ notification: GeneratedDraftHackNotification;
7
+ contributors: GeneratedDraftContributor[];
8
+ }
9
+ export interface GeneratedDraftHackSegments {
10
+ favouriteQuote: GeneratedDraftHackSegment;
11
+ inANutshell: GeneratedDraftHackSegment;
12
+ introduction: GeneratedDraftHackSegment;
13
+ insights: GeneratedDraftHackInsightSegment[];
14
+ conclusion: GeneratedDraftHackSegment;
15
+ }
16
+ export interface GeneratedDraftHackSegment {
17
+ paragraphCards: GeneratedDraftHackCard[][];
18
+ }
19
+ export interface GeneratedDraftHackCard {
20
+ markdown: string;
21
+ }
22
+ export interface GeneratedDraftHackInsightSegment extends GeneratedDraftHackSegment {
23
+ title: string;
24
+ actions: GeneratedDraftHackAction[];
25
+ }
26
+ export interface GeneratedDraftHackAction {
27
+ title: string;
28
+ markdown: string;
29
+ }
30
+ export interface GeneratedDraftTopic {
31
+ name: string;
32
+ }
33
+ export interface GeneratedDraftHackNotification {
34
+ aiGeneratedText: string;
35
+ }
36
+ export interface GeneratedDraftContributor {
37
+ name: string;
38
+ }
@@ -0,0 +1,21 @@
1
+ import { EnrichedHack } from './enriched-hack';
2
+
3
+ export interface EnrichedHackCreatedEvent {
4
+ id: string;
5
+ type: 'EnrichedHackCreated';
6
+ payload: EnrichedHack;
7
+ }
8
+
9
+ export interface EnrichedHackUpdatedEvent {
10
+ id: string;
11
+ type: 'EnrichedHackUpdated';
12
+ payload: EnrichedHack;
13
+ }
14
+
15
+ export interface EnrichedHackDeletedEvent {
16
+ id: string;
17
+ type: 'EnrichedHackDeleted';
18
+ payload: EnrichedHack;
19
+ }
20
+
21
+ export type EnrichedHackChangedEvent = EnrichedHackCreatedEvent | EnrichedHackUpdatedEvent | EnrichedHackDeletedEvent;
@@ -0,0 +1,101 @@
1
+ import { HackAffiliate, HackContributor, HackExternalLink, HackSourceData, HackTopic, HackType } from '../hack/hack';
2
+ import { KnowledgeSource } from '../knowledge-source/knowledge-source';
3
+ import { Profile } from '../profile/profile';
4
+ import { Theme } from '../theme/theme';
5
+ import { HackWithVoice } from '../hack/hack-with-voice';
6
+ import { ExtractedSubject } from '../hack/extracted-subject';
7
+ import { SegmentType, SegmentAction, SegmentSpeech, SegmentSection, SegmentTextCard } from '../segment/segment';
8
+
9
+ export interface EnrichedHack {
10
+ /** The hack id */
11
+ id: string;
12
+ /** The hack language e.g. 'fr' if it is French */
13
+ language: string;
14
+ /** The locale (language and region) of the hack e.g. fr-FR. Use @uptime.app/localisation-contracts */
15
+ locale: string;
16
+ /** The id of the hack in its original locale. */
17
+ baseLocaleHackId: string;
18
+ v: number;
19
+ hackVersion: number;
20
+ createdAt: string;
21
+ updatedAt: string;
22
+
23
+ /** introduced Oct 2023 **/
24
+ draftHackId: string;
25
+ draftHackVersion: number;
26
+
27
+ //@todo: Deprecate
28
+ source?: KnowledgeSource;
29
+ owner: string;
30
+ acl: string[];
31
+ theme: Theme;
32
+ title: string;
33
+ isHidden?: boolean;
34
+ editorialTags?: string[];
35
+ coverUrl?: string;
36
+ notifications?: EnrichedHackNotifications;
37
+ /* currently contains the inANutshell segment markdown */
38
+ description: string;
39
+ // ...
40
+
41
+ segments: HackWithVoice['segments']; // Use the 'HackWithVoice' type
42
+ affiliate?: HackAffiliate;
43
+ topics: HackTopic[];
44
+ contributors?: HackContributor[];
45
+ type: HackType;
46
+ sourceData?: HackSourceData;
47
+ externalLink?: HackExternalLink;
48
+ profile: EnrichHackProfile;
49
+
50
+ /** added April 2024 */
51
+ // TODO make it mandatory after a republish
52
+ subjects?: EnrichedHackSubjects;
53
+
54
+ // distribution
55
+ includeInEmailNotifications: boolean;
56
+ includeInPushNotifications: boolean;
57
+ includeInRecommendations: boolean;
58
+ includeInSearchResults: boolean;
59
+ includeInTrending: boolean;
60
+ includeInHackOfTheDay: boolean;
61
+ includeInWebsite: boolean;
62
+
63
+ /**
64
+ * Time saved in minutes by consuming the hack rather than the underlying knowledge source.
65
+ * calculated using the knowledge source page count / duration
66
+ * */
67
+ timeSaved?: number;
68
+ /**
69
+ * An estimation of the time saved in minutes when no reliable information is available on the knowledge source.
70
+ */
71
+ estimatedTimeSaved?: number;
72
+ }
73
+
74
+ export interface EnrichedHackNotifications {
75
+ aiGeneratedText?: string;
76
+ humanCuratedText?: string;
77
+ }
78
+
79
+ export interface EnrichedHackSubjects {
80
+ aiGenerated: ExtractedSubject[];
81
+ humanCurated?: ExtractedSubject[];
82
+ }
83
+
84
+ export interface EnrichedHackSegment {
85
+ id: string;
86
+ createdAt: string;
87
+ updatedAt: string;
88
+ title: string;
89
+ type: SegmentType;
90
+ keywords: string[];
91
+ actions: SegmentAction[];
92
+ speech: SegmentSpeech[];
93
+ sections: SegmentSection[];
94
+ storyMode?: {
95
+ cards: SegmentTextCard[];
96
+ speech: SegmentSpeech[];
97
+ },
98
+ textSummary?: string;
99
+ }
100
+
101
+ export type EnrichHackProfile = Profile | { deleted: boolean, uptimeOwned: boolean, avatarUrl: string };
@@ -0,0 +1,21 @@
1
+ import { UserEntitlements } from "./user-entitlements";
2
+
3
+ export interface UserEntitlementsCreatedEvent {
4
+ id: string;
5
+ type: 'UserEntitlementsCreated';
6
+ payload: UserEntitlements;
7
+ }
8
+
9
+ export interface UserEntitlementsUpdatedEvent {
10
+ id: string;
11
+ type: 'UserEntitlementsUpdated';
12
+ payload: UserEntitlements;
13
+ }
14
+
15
+ export interface UserEntitlementsDeletedEvent {
16
+ id: string;
17
+ type: 'UserEntitlementsDeleted';
18
+ payload: UserEntitlements;
19
+ }
20
+
21
+ export type UserEntitlementsChangedEvent = UserEntitlementsCreatedEvent | UserEntitlementsUpdatedEvent | UserEntitlementsDeletedEvent;
@@ -0,0 +1,18 @@
1
+ export type EntitlementName = 'premium' | 'trial';
2
+ export type EntitlementIssuer = 'Uptime' | 'RevenueCat';
3
+
4
+ export type Entitlement = {
5
+ entitlement: EntitlementName | string;
6
+ issuer: EntitlementIssuer | string;
7
+ expiresAt: string
8
+ issuedAt: string;
9
+ };
10
+
11
+ export interface UserEntitlements {
12
+ id: string;
13
+ v: number;
14
+ createdAt: string;
15
+ updatedAt: string;
16
+ userId: string;
17
+ entitlements: Entitlement[];
18
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,6 @@
1
+ export * from './access-control/collection-access-control';
2
+ export * from './access-control/hack-access-control';
3
+
1
4
  export * from './b2b-organisation/b2b-organisation';
2
5
  export * from './b2b-organisation/b2b-organisation-events';
3
6
 
@@ -7,9 +10,19 @@ export * from './b2b-organisation/b2b-organisation-member-events';
7
10
  export * from './brand/brand';
8
11
  export * from './brand/brand-events';
9
12
 
13
+ export * from './distribution/distribution-events';
14
+ export * from './distribution/hack-distribution';
15
+ export * from './distribution/collection-distribution';
16
+
10
17
  export * from './draft-hack/draft-hack';
11
18
  export * from './draft-hack/draft-hack-events';
12
19
 
20
+ export * from './draft-hack-generation/draft-hack-generation';
21
+ export * from './draft-hack-generation/draft-hack-generation-events';
22
+
23
+ export * from './enriched-hack/enriched-hack';
24
+ export * from './enriched-hack/enriched-hack-events';
25
+
13
26
  export * from './hack/extracted-subject';
14
27
  export * from './hack/hack';
15
28
  export * from './hack/hack-with-voice';
@@ -48,4 +61,10 @@ export * from './text-to-speech/speech-created-events';
48
61
  export * from './text-to-speech/text-segment';
49
62
 
50
63
  export * from './theme/theme';
51
- export * from './theme/theme-events';
64
+ export * from './theme/theme-events';
65
+
66
+ export * from './entitlement/user-entitlements';
67
+ export * from './entitlement/user-entitlements-events';
68
+
69
+ export * from './user-context/user-context';
70
+ export * from './user-context/user-context-events';
@@ -0,0 +1,21 @@
1
+ import { UserContext } from "./user-context";
2
+
3
+ export interface UserContextCreatedEvent {
4
+ id: string;
5
+ type: 'UserContextCreated';
6
+ payload: UserContext;
7
+ }
8
+
9
+ export interface UserContextUpdatedEvent {
10
+ id: string;
11
+ type: 'UserContextUpdated';
12
+ payload: UserContext;
13
+ }
14
+
15
+ export interface UserContextDeletedEvent {
16
+ id: string;
17
+ type: 'UserContextDeleted';
18
+ payload: UserContext;
19
+ }
20
+
21
+ export type UserContextChangedEvent = UserContextCreatedEvent | UserContextUpdatedEvent | UserContextDeletedEvent;
@@ -0,0 +1,17 @@
1
+ import { Entitlement } from "../entitlement/user-entitlements";
2
+
3
+ export interface UserContext {
4
+ id: string;
5
+ v: number;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ userId: string;
9
+ entitlements: Entitlement[];
10
+ organisationIds: string[];
11
+ roles: string[];
12
+ acl: string[];
13
+ permissions: string[];
14
+ partnerId?: string;
15
+ brandId?: string;
16
+ skinId?: string;
17
+ }