@37signals/basecamp 0.9.0 → 0.10.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 (81) hide show
  1. package/README.md +1 -1
  2. package/dist/client.d.ts +6 -3
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +33 -13
  5. package/dist/client.js.map +1 -1
  6. package/dist/generated/metadata.d.ts.map +1 -1
  7. package/dist/generated/metadata.js +290 -12
  8. package/dist/generated/metadata.js.map +1 -1
  9. package/dist/generated/metadata.ts +290 -12
  10. package/dist/generated/openapi-stripped.json +6274 -3872
  11. package/dist/generated/path-mapping.d.ts.map +1 -1
  12. package/dist/generated/path-mapping.js +23 -5
  13. package/dist/generated/path-mapping.js.map +1 -1
  14. package/dist/generated/path-mapping.ts +23 -5
  15. package/dist/generated/schema.d.ts +3004 -1145
  16. package/dist/generated/services/boosts.d.ts +13 -10
  17. package/dist/generated/services/boosts.d.ts.map +1 -1
  18. package/dist/generated/services/boosts.js +5 -5
  19. package/dist/generated/services/boosts.js.map +1 -1
  20. package/dist/generated/services/boosts.ts +12 -10
  21. package/dist/generated/services/cards.d.ts +4 -4
  22. package/dist/generated/services/cards.d.ts.map +1 -1
  23. package/dist/generated/services/cards.js +2 -2
  24. package/dist/generated/services/cards.js.map +1 -1
  25. package/dist/generated/services/cards.ts +4 -4
  26. package/dist/generated/services/everything.d.ts +323 -0
  27. package/dist/generated/services/everything.d.ts.map +1 -0
  28. package/dist/generated/services/everything.js +381 -0
  29. package/dist/generated/services/everything.js.map +1 -0
  30. package/dist/generated/services/everything.ts +632 -0
  31. package/dist/generated/services/index.d.ts +2 -1
  32. package/dist/generated/services/index.d.ts.map +1 -1
  33. package/dist/generated/services/index.js +2 -1
  34. package/dist/generated/services/index.js.map +1 -1
  35. package/dist/generated/services/index.ts +2 -1
  36. package/dist/generated/services/message-types.d.ts +15 -10
  37. package/dist/generated/services/message-types.d.ts.map +1 -1
  38. package/dist/generated/services/message-types.js +35 -18
  39. package/dist/generated/services/message-types.js.map +1 -1
  40. package/dist/generated/services/message-types.ts +34 -18
  41. package/dist/generated/services/my-notifications.d.ts +27 -0
  42. package/dist/generated/services/my-notifications.d.ts.map +1 -1
  43. package/dist/generated/services/my-notifications.js +23 -1
  44. package/dist/generated/services/my-notifications.js.map +1 -1
  45. package/dist/generated/services/my-notifications.ts +46 -1
  46. package/dist/generated/services/recordings.d.ts +2 -2
  47. package/dist/generated/services/recordings.d.ts.map +1 -1
  48. package/dist/generated/services/recordings.js +1 -1
  49. package/dist/generated/services/recordings.js.map +1 -1
  50. package/dist/generated/services/recordings.ts +2 -2
  51. package/dist/generated/services/schedules.d.ts +9 -1
  52. package/dist/generated/services/schedules.d.ts.map +1 -1
  53. package/dist/generated/services/schedules.js.map +1 -1
  54. package/dist/generated/services/schedules.ts +9 -1
  55. package/dist/generated/services/tools.d.ts +2 -0
  56. package/dist/generated/services/tools.d.ts.map +1 -1
  57. package/dist/generated/services/tools.js +1 -0
  58. package/dist/generated/services/tools.js.map +1 -1
  59. package/dist/generated/services/tools.ts +3 -0
  60. package/dist/index.d.ts +4 -2
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +6 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/services/cards-extensions.d.ts +76 -0
  65. package/dist/services/cards-extensions.d.ts.map +1 -0
  66. package/dist/services/cards-extensions.js +67 -0
  67. package/dist/services/cards-extensions.js.map +1 -0
  68. package/package.json +2 -2
  69. package/src/generated/metadata.ts +290 -12
  70. package/src/generated/openapi-stripped.json +6274 -3872
  71. package/src/generated/path-mapping.ts +23 -5
  72. package/src/generated/schema.d.ts +3004 -1145
  73. package/src/generated/services/boosts.ts +12 -10
  74. package/src/generated/services/cards.ts +4 -4
  75. package/src/generated/services/everything.ts +632 -0
  76. package/src/generated/services/index.ts +2 -1
  77. package/src/generated/services/message-types.ts +34 -18
  78. package/src/generated/services/my-notifications.ts +46 -1
  79. package/src/generated/services/recordings.ts +2 -2
  80. package/src/generated/services/schedules.ts +9 -1
  81. package/src/generated/services/tools.ts +3 -0
@@ -1,14 +1,15 @@
1
1
  export { AccountService } from "./account.js";
2
2
  export { AttachmentsService } from "./attachments.js";
3
+ export { EverythingService } from "./everything.js";
3
4
  export { BoostsService } from "./boosts.js";
4
5
  export { CardColumnsService } from "./card-columns.js";
5
6
  export { WormholesService } from "./wormholes.js";
7
+ export { MessageTypesService } from "./message-types.js";
6
8
  export { ToolsService } from "./tools.js";
7
9
  export { WebhooksService } from "./webhooks.js";
8
10
  export { CardsService } from "./cards.js";
9
11
  export { CardStepsService } from "./card-steps.js";
10
12
  export { CardTablesService } from "./card-tables.js";
11
- export { MessageTypesService } from "./message-types.js";
12
13
  export { CampfiresService } from "./campfires.js";
13
14
  export { PeopleService } from "./people.js";
14
15
  export { ClientApprovalsService } from "./client-approvals.js";
@@ -38,41 +38,45 @@ export interface UpdateMessageTypeRequest {
38
38
  export declare class MessageTypesService extends BaseService {
39
39
  /**
40
40
  * List message types in a project
41
+ * @param bucketId - The bucket ID
41
42
  * @param options - Optional query parameters
42
43
  * @returns All MessageType across all pages, with .meta.totalCount
43
44
  *
44
45
  * @example
45
46
  * ```ts
46
- * const result = await client.messageTypes.list();
47
+ * const result = await client.messageTypes.list(123);
47
48
  * ```
48
49
  */
49
- list(options?: ListMessageTypeOptions): Promise<ListResult<MessageType>>;
50
+ list(bucketId: number, options?: ListMessageTypeOptions): Promise<ListResult<MessageType>>;
50
51
  /**
51
52
  * Create a new message type in a project
53
+ * @param bucketId - The bucket ID
52
54
  * @param req - Message_type creation parameters
53
55
  * @returns The MessageType
54
56
  * @throws {BasecampError} If required fields are missing or invalid
55
57
  *
56
58
  * @example
57
59
  * ```ts
58
- * const result = await client.messageTypes.create({ name: "My example", icon: "example" });
60
+ * const result = await client.messageTypes.create(123, { name: "My example", icon: "example" });
59
61
  * ```
60
62
  */
61
- create(req: CreateMessageTypeRequest): Promise<MessageType>;
63
+ create(bucketId: number, req: CreateMessageTypeRequest): Promise<MessageType>;
62
64
  /**
63
65
  * Get a single message type by id
66
+ * @param bucketId - The bucket ID
64
67
  * @param typeId - The type ID
65
68
  * @returns The MessageType
66
69
  * @throws {BasecampError} If the resource is not found
67
70
  *
68
71
  * @example
69
72
  * ```ts
70
- * const result = await client.messageTypes.get(123);
73
+ * const result = await client.messageTypes.get(123, 123);
71
74
  * ```
72
75
  */
73
- get(typeId: number): Promise<MessageType>;
76
+ get(bucketId: number, typeId: number): Promise<MessageType>;
74
77
  /**
75
78
  * Update an existing message type
79
+ * @param bucketId - The bucket ID
76
80
  * @param typeId - The type ID
77
81
  * @param req - Message_type update parameters
78
82
  * @returns The MessageType
@@ -80,21 +84,22 @@ export declare class MessageTypesService extends BaseService {
80
84
  *
81
85
  * @example
82
86
  * ```ts
83
- * const result = await client.messageTypes.update(123, { });
87
+ * const result = await client.messageTypes.update(123, 123, { });
84
88
  * ```
85
89
  */
86
- update(typeId: number, req: UpdateMessageTypeRequest): Promise<MessageType>;
90
+ update(bucketId: number, typeId: number, req: UpdateMessageTypeRequest): Promise<MessageType>;
87
91
  /**
88
92
  * Delete a message type
93
+ * @param bucketId - The bucket ID
89
94
  * @param typeId - The type ID
90
95
  * @returns void
91
96
  * @throws {BasecampError} If the request fails
92
97
  *
93
98
  * @example
94
99
  * ```ts
95
- * await client.messageTypes.delete(123);
100
+ * await client.messageTypes.delete(123, 123);
96
101
  * ```
97
102
  */
98
- delete(typeId: number): Promise<void>;
103
+ delete(bucketId: number, typeId: number): Promise<void>;
99
104
  }
100
105
  //# sourceMappingURL=message-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-types.d.ts","sourceRoot":"","sources":["../../../src/generated/services/message-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO7D,gDAAgD;AAChD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAElD;;;;;;;;;OASG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAe9E;;;;;;;;;;OAUG;IACG,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBjE;;;;;;;;;;OAUG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmB/C;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBjF;;;;;;;;;;OAUG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB5C"}
1
+ {"version":3,"file":"message-types.d.ts","sourceRoot":"","sources":["../../../src/generated/services/message-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO7D,gDAAgD;AAChD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;CAChE;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAOD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;IAElD;;;;;;;;;;OAUG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAmBhG;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IA6BnF;;;;;;;;;;;OAWG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBjE;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBnG;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAkB9D"}
@@ -14,34 +14,41 @@ import { Errors } from "../../errors.js";
14
14
  export class MessageTypesService extends BaseService {
15
15
  /**
16
16
  * List message types in a project
17
+ * @param bucketId - The bucket ID
17
18
  * @param options - Optional query parameters
18
19
  * @returns All MessageType across all pages, with .meta.totalCount
19
20
  *
20
21
  * @example
21
22
  * ```ts
22
- * const result = await client.messageTypes.list();
23
+ * const result = await client.messageTypes.list(123);
23
24
  * ```
24
25
  */
25
- async list(options) {
26
+ async list(bucketId, options) {
26
27
  return this.requestPaginated({
27
28
  service: "MessageTypes",
28
29
  operation: "ListMessageTypes",
29
30
  resourceType: "message_type",
30
31
  isMutation: false,
31
- }, () => this.client.GET("/categories.json", {}), options);
32
+ projectId: bucketId,
33
+ }, () => this.client.GET("/buckets/{bucketId}/categories.json", {
34
+ params: {
35
+ path: { bucketId },
36
+ },
37
+ }), options);
32
38
  }
33
39
  /**
34
40
  * Create a new message type in a project
41
+ * @param bucketId - The bucket ID
35
42
  * @param req - Message_type creation parameters
36
43
  * @returns The MessageType
37
44
  * @throws {BasecampError} If required fields are missing or invalid
38
45
  *
39
46
  * @example
40
47
  * ```ts
41
- * const result = await client.messageTypes.create({ name: "My example", icon: "example" });
48
+ * const result = await client.messageTypes.create(123, { name: "My example", icon: "example" });
42
49
  * ```
43
50
  */
44
- async create(req) {
51
+ async create(bucketId, req) {
45
52
  if (!req.name) {
46
53
  throw Errors.validation("Name is required");
47
54
  }
@@ -53,7 +60,11 @@ export class MessageTypesService extends BaseService {
53
60
  operation: "CreateMessageType",
54
61
  resourceType: "message_type",
55
62
  isMutation: true,
56
- }, () => this.client.POST("/categories.json", {
63
+ projectId: bucketId,
64
+ }, () => this.client.POST("/buckets/{bucketId}/categories.json", {
65
+ params: {
66
+ path: { bucketId },
67
+ },
57
68
  body: {
58
69
  name: req.name,
59
70
  icon: req.icon,
@@ -63,31 +74,34 @@ export class MessageTypesService extends BaseService {
63
74
  }
64
75
  /**
65
76
  * Get a single message type by id
77
+ * @param bucketId - The bucket ID
66
78
  * @param typeId - The type ID
67
79
  * @returns The MessageType
68
80
  * @throws {BasecampError} If the resource is not found
69
81
  *
70
82
  * @example
71
83
  * ```ts
72
- * const result = await client.messageTypes.get(123);
84
+ * const result = await client.messageTypes.get(123, 123);
73
85
  * ```
74
86
  */
75
- async get(typeId) {
87
+ async get(bucketId, typeId) {
76
88
  const response = await this.request({
77
89
  service: "MessageTypes",
78
90
  operation: "GetMessageType",
79
91
  resourceType: "message_type",
80
92
  isMutation: false,
93
+ projectId: bucketId,
81
94
  resourceId: typeId,
82
- }, () => this.client.GET("/categories/{typeId}", {
95
+ }, () => this.client.GET("/buckets/{bucketId}/categories/{typeId}", {
83
96
  params: {
84
- path: { typeId },
97
+ path: { bucketId, typeId },
85
98
  },
86
99
  }));
87
100
  return response;
88
101
  }
89
102
  /**
90
103
  * Update an existing message type
104
+ * @param bucketId - The bucket ID
91
105
  * @param typeId - The type ID
92
106
  * @param req - Message_type update parameters
93
107
  * @returns The MessageType
@@ -95,19 +109,20 @@ export class MessageTypesService extends BaseService {
95
109
  *
96
110
  * @example
97
111
  * ```ts
98
- * const result = await client.messageTypes.update(123, { });
112
+ * const result = await client.messageTypes.update(123, 123, { });
99
113
  * ```
100
114
  */
101
- async update(typeId, req) {
115
+ async update(bucketId, typeId, req) {
102
116
  const response = await this.request({
103
117
  service: "MessageTypes",
104
118
  operation: "UpdateMessageType",
105
119
  resourceType: "message_type",
106
120
  isMutation: true,
121
+ projectId: bucketId,
107
122
  resourceId: typeId,
108
- }, () => this.client.PUT("/categories/{typeId}", {
123
+ }, () => this.client.PUT("/buckets/{bucketId}/categories/{typeId}", {
109
124
  params: {
110
- path: { typeId },
125
+ path: { bucketId, typeId },
111
126
  },
112
127
  body: {
113
128
  name: req.name,
@@ -118,25 +133,27 @@ export class MessageTypesService extends BaseService {
118
133
  }
119
134
  /**
120
135
  * Delete a message type
136
+ * @param bucketId - The bucket ID
121
137
  * @param typeId - The type ID
122
138
  * @returns void
123
139
  * @throws {BasecampError} If the request fails
124
140
  *
125
141
  * @example
126
142
  * ```ts
127
- * await client.messageTypes.delete(123);
143
+ * await client.messageTypes.delete(123, 123);
128
144
  * ```
129
145
  */
130
- async delete(typeId) {
146
+ async delete(bucketId, typeId) {
131
147
  await this.request({
132
148
  service: "MessageTypes",
133
149
  operation: "DeleteMessageType",
134
150
  resourceType: "message_type",
135
151
  isMutation: true,
152
+ projectId: bucketId,
136
153
  resourceId: typeId,
137
- }, () => this.client.DELETE("/categories/{typeId}", {
154
+ }, () => this.client.DELETE("/buckets/{bucketId}/categories/{typeId}", {
138
155
  params: {
139
- path: { typeId },
156
+ path: { bucketId, typeId },
140
157
  },
141
158
  }));
142
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message-types.js","sourceRoot":"","sources":["../../../src/generated/services/message-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-types.js","sourceRoot":"","sources":["../../../src/generated/services/message-types.ts"],"names":[],"mappings":"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"}
@@ -55,24 +55,29 @@ export class MessageTypesService extends BaseService {
55
55
 
56
56
  /**
57
57
  * List message types in a project
58
+ * @param bucketId - The bucket ID
58
59
  * @param options - Optional query parameters
59
60
  * @returns All MessageType across all pages, with .meta.totalCount
60
61
  *
61
62
  * @example
62
63
  * ```ts
63
- * const result = await client.messageTypes.list();
64
+ * const result = await client.messageTypes.list(123);
64
65
  * ```
65
66
  */
66
- async list(options?: ListMessageTypeOptions): Promise<ListResult<MessageType>> {
67
+ async list(bucketId: number, options?: ListMessageTypeOptions): Promise<ListResult<MessageType>> {
67
68
  return this.requestPaginated(
68
69
  {
69
70
  service: "MessageTypes",
70
71
  operation: "ListMessageTypes",
71
72
  resourceType: "message_type",
72
73
  isMutation: false,
74
+ projectId: bucketId,
73
75
  },
74
76
  () =>
75
- this.client.GET("/categories.json", {
77
+ this.client.GET("/buckets/{bucketId}/categories.json", {
78
+ params: {
79
+ path: { bucketId },
80
+ },
76
81
  })
77
82
  , options
78
83
  );
@@ -80,16 +85,17 @@ export class MessageTypesService extends BaseService {
80
85
 
81
86
  /**
82
87
  * Create a new message type in a project
88
+ * @param bucketId - The bucket ID
83
89
  * @param req - Message_type creation parameters
84
90
  * @returns The MessageType
85
91
  * @throws {BasecampError} If required fields are missing or invalid
86
92
  *
87
93
  * @example
88
94
  * ```ts
89
- * const result = await client.messageTypes.create({ name: "My example", icon: "example" });
95
+ * const result = await client.messageTypes.create(123, { name: "My example", icon: "example" });
90
96
  * ```
91
97
  */
92
- async create(req: CreateMessageTypeRequest): Promise<MessageType> {
98
+ async create(bucketId: number, req: CreateMessageTypeRequest): Promise<MessageType> {
93
99
  if (!req.name) {
94
100
  throw Errors.validation("Name is required");
95
101
  }
@@ -102,9 +108,13 @@ export class MessageTypesService extends BaseService {
102
108
  operation: "CreateMessageType",
103
109
  resourceType: "message_type",
104
110
  isMutation: true,
111
+ projectId: bucketId,
105
112
  },
106
113
  () =>
107
- this.client.POST("/categories.json", {
114
+ this.client.POST("/buckets/{bucketId}/categories.json", {
115
+ params: {
116
+ path: { bucketId },
117
+ },
108
118
  body: {
109
119
  name: req.name,
110
120
  icon: req.icon,
@@ -116,28 +126,30 @@ export class MessageTypesService extends BaseService {
116
126
 
117
127
  /**
118
128
  * Get a single message type by id
129
+ * @param bucketId - The bucket ID
119
130
  * @param typeId - The type ID
120
131
  * @returns The MessageType
121
132
  * @throws {BasecampError} If the resource is not found
122
133
  *
123
134
  * @example
124
135
  * ```ts
125
- * const result = await client.messageTypes.get(123);
136
+ * const result = await client.messageTypes.get(123, 123);
126
137
  * ```
127
138
  */
128
- async get(typeId: number): Promise<MessageType> {
139
+ async get(bucketId: number, typeId: number): Promise<MessageType> {
129
140
  const response = await this.request(
130
141
  {
131
142
  service: "MessageTypes",
132
143
  operation: "GetMessageType",
133
144
  resourceType: "message_type",
134
145
  isMutation: false,
146
+ projectId: bucketId,
135
147
  resourceId: typeId,
136
148
  },
137
149
  () =>
138
- this.client.GET("/categories/{typeId}", {
150
+ this.client.GET("/buckets/{bucketId}/categories/{typeId}", {
139
151
  params: {
140
- path: { typeId },
152
+ path: { bucketId, typeId },
141
153
  },
142
154
  })
143
155
  );
@@ -146,6 +158,7 @@ export class MessageTypesService extends BaseService {
146
158
 
147
159
  /**
148
160
  * Update an existing message type
161
+ * @param bucketId - The bucket ID
149
162
  * @param typeId - The type ID
150
163
  * @param req - Message_type update parameters
151
164
  * @returns The MessageType
@@ -153,22 +166,23 @@ export class MessageTypesService extends BaseService {
153
166
  *
154
167
  * @example
155
168
  * ```ts
156
- * const result = await client.messageTypes.update(123, { });
169
+ * const result = await client.messageTypes.update(123, 123, { });
157
170
  * ```
158
171
  */
159
- async update(typeId: number, req: UpdateMessageTypeRequest): Promise<MessageType> {
172
+ async update(bucketId: number, typeId: number, req: UpdateMessageTypeRequest): Promise<MessageType> {
160
173
  const response = await this.request(
161
174
  {
162
175
  service: "MessageTypes",
163
176
  operation: "UpdateMessageType",
164
177
  resourceType: "message_type",
165
178
  isMutation: true,
179
+ projectId: bucketId,
166
180
  resourceId: typeId,
167
181
  },
168
182
  () =>
169
- this.client.PUT("/categories/{typeId}", {
183
+ this.client.PUT("/buckets/{bucketId}/categories/{typeId}", {
170
184
  params: {
171
- path: { typeId },
185
+ path: { bucketId, typeId },
172
186
  },
173
187
  body: {
174
188
  name: req.name,
@@ -181,28 +195,30 @@ export class MessageTypesService extends BaseService {
181
195
 
182
196
  /**
183
197
  * Delete a message type
198
+ * @param bucketId - The bucket ID
184
199
  * @param typeId - The type ID
185
200
  * @returns void
186
201
  * @throws {BasecampError} If the request fails
187
202
  *
188
203
  * @example
189
204
  * ```ts
190
- * await client.messageTypes.delete(123);
205
+ * await client.messageTypes.delete(123, 123);
191
206
  * ```
192
207
  */
193
- async delete(typeId: number): Promise<void> {
208
+ async delete(bucketId: number, typeId: number): Promise<void> {
194
209
  await this.request(
195
210
  {
196
211
  service: "MessageTypes",
197
212
  operation: "DeleteMessageType",
198
213
  resourceType: "message_type",
199
214
  isMutation: true,
215
+ projectId: bucketId,
200
216
  resourceId: typeId,
201
217
  },
202
218
  () =>
203
- this.client.DELETE("/categories/{typeId}", {
219
+ this.client.DELETE("/buckets/{bucketId}/categories/{typeId}", {
204
220
  params: {
205
- path: { typeId },
221
+ path: { bucketId, typeId },
206
222
  },
207
223
  })
208
224
  );
@@ -5,12 +5,28 @@
5
5
  */
6
6
  import { BaseService } from "../../services/base.js";
7
7
  import type { components } from "../schema.js";
8
+ import { ListResult } from "../../pagination.js";
9
+ import type { PaginationOptions } from "../../pagination.js";
10
+ /** Notification entity from the Basecamp API. */
11
+ export type Notification = components["schemas"]["Notification"];
8
12
  /**
9
13
  * Options for myNotifications.
10
14
  */
11
15
  export interface MyNotificationsMyNotificationOptions {
12
16
  /** Page number for paginating through read items. Defaults to 1. */
13
17
  page?: number;
18
+ /** Set to true to cap `bubble_ups` at 2 current bubble-ups and omit the
19
+ `scheduled_bubble_ups` key entirely. Defaults to false. Use the dedicated
20
+ bubble-ups endpoint (GetBubbleUps) to page through all current and
21
+ scheduled bubble-ups. */
22
+ limitBubbleUps?: boolean;
23
+ }
24
+ /**
25
+ * Options for bubbleUps.
26
+ */
27
+ export interface BubbleUpsMyNotificationOptions extends PaginationOptions {
28
+ /** Page number. Defaults to 1. */
29
+ page?: number;
14
30
  }
15
31
  /**
16
32
  * Request parameters for markAsRead.
@@ -34,6 +50,17 @@ export declare class MyNotificationsService extends BaseService {
34
50
  * ```
35
51
  */
36
52
  myNotifications(options?: MyNotificationsMyNotificationOptions): Promise<components["schemas"]["GetMyNotificationsResponseContent"]>;
53
+ /**
54
+ * Get the current user's current and scheduled bubble-ups (paginated, 50 per page).
55
+ * @param options - Optional query parameters
56
+ * @returns All Notification across all pages, with .meta.totalCount
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const result = await client.myNotifications.bubbleUps();
61
+ * ```
62
+ */
63
+ bubbleUps(options?: BubbleUpsMyNotificationOptions): Promise<ListResult<Notification>>;
37
64
  /**
38
65
  * Mark specified items as read
39
66
  * @param req - Resource request parameters
@@ -1 +1 @@
1
- {"version":3,"file":"my-notifications.d.ts","sourceRoot":"","sources":["../../../src/generated/services/my-notifications.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ/C;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAOD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IAErD;;;;;;;;;OASG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,oCAAoC,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,mCAAmC,CAAC,CAAC;IAkB1I;;;;;;;;;;OAUG;IACG,UAAU,CAAC,GAAG,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBtE"}
1
+ {"version":3,"file":"my-notifications.d.ts","sourceRoot":"","sources":["../../../src/generated/services/my-notifications.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAO7D,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;0BAGsB;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,iBAAiB;IACvE,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAOD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IAErD;;;;;;;;;OASG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,oCAAoC,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,mCAAmC,CAAC,CAAC;IAkB1I;;;;;;;;;OASG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAkB5F;;;;;;;;;;OAUG;IACG,UAAU,CAAC,GAAG,EAAE,+BAA+B,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBtE"}
@@ -30,11 +30,33 @@ export class MyNotificationsService extends BaseService {
30
30
  isMutation: false,
31
31
  }, () => this.client.GET("/my/readings.json", {
32
32
  params: {
33
- query: { page: options?.page },
33
+ query: { page: options?.page, "limit_bubble_ups": options?.limitBubbleUps },
34
34
  },
35
35
  }));
36
36
  return response;
37
37
  }
38
+ /**
39
+ * Get the current user's current and scheduled bubble-ups (paginated, 50 per page).
40
+ * @param options - Optional query parameters
41
+ * @returns All Notification across all pages, with .meta.totalCount
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * const result = await client.myNotifications.bubbleUps();
46
+ * ```
47
+ */
48
+ async bubbleUps(options) {
49
+ return this.requestPaginated({
50
+ service: "MyNotifications",
51
+ operation: "GetBubbleUps",
52
+ resourceType: "bubble_up",
53
+ isMutation: false,
54
+ }, () => this.client.GET("/my/readings/bubble_ups.json", {
55
+ params: {
56
+ query: { page: options?.page },
57
+ },
58
+ }), options);
59
+ }
38
60
  /**
39
61
  * Mark specified items as read
40
62
  * @param req - Resource request parameters
@@ -1 +1 @@
1
- {"version":3,"file":"my-notifications.js","sourceRoot":"","sources":["../../../src/generated/services/my-notifications.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAwBzC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAErD;;;;;;;;;OASG;IACH,KAAK,CAAC,eAAe,CAAC,OAA8C;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,iBAAiB;YAC/B,UAAU,EAAE,KAAK;SAClB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACnC,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAC/B;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,GAAoC;QACnD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,IAAI;SACjB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;YAClC,IAAI,EAAE;gBACJ,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB;SACF,CAAC,CACL,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"my-notifications.js","sourceRoot":"","sources":["../../../src/generated/services/my-notifications.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAuCzC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAErD;;;;;;;;;OASG;IACH,KAAK,CAAC,eAAe,CAAC,OAA8C;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,iBAAiB;YAC/B,UAAU,EAAE,KAAK;SAClB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACnC,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,cAAc,EAAE;aAC5E;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS,CAAC,OAAwC;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,KAAK;SAClB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE;YAC9C,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;aAC/B;SACF,CAAC,EACF,OAAO,CACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,GAAoC;QACnD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,IAAI;SACjB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;YAClC,IAAI,EAAE;gBACJ,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB;SACF,CAAC,CACL,CAAC;IACJ,CAAC;CACF"}
@@ -6,12 +6,16 @@
6
6
 
7
7
  import { BaseService } from "../../services/base.js";
8
8
  import type { components } from "../schema.js";
9
+ import { ListResult } from "../../pagination.js";
10
+ import type { PaginationOptions } from "../../pagination.js";
9
11
  import { Errors } from "../../errors.js";
10
12
 
11
13
  // =============================================================================
12
14
  // Types
13
15
  // =============================================================================
14
16
 
17
+ /** Notification entity from the Basecamp API. */
18
+ export type Notification = components["schemas"]["Notification"];
15
19
 
16
20
  /**
17
21
  * Options for myNotifications.
@@ -19,6 +23,19 @@ import { Errors } from "../../errors.js";
19
23
  export interface MyNotificationsMyNotificationOptions {
20
24
  /** Page number for paginating through read items. Defaults to 1. */
21
25
  page?: number;
26
+ /** Set to true to cap `bubble_ups` at 2 current bubble-ups and omit the
27
+ `scheduled_bubble_ups` key entirely. Defaults to false. Use the dedicated
28
+ bubble-ups endpoint (GetBubbleUps) to page through all current and
29
+ scheduled bubble-ups. */
30
+ limitBubbleUps?: boolean;
31
+ }
32
+
33
+ /**
34
+ * Options for bubbleUps.
35
+ */
36
+ export interface BubbleUpsMyNotificationOptions extends PaginationOptions {
37
+ /** Page number. Defaults to 1. */
38
+ page?: number;
22
39
  }
23
40
 
24
41
  /**
@@ -60,13 +77,41 @@ export class MyNotificationsService extends BaseService {
60
77
  () =>
61
78
  this.client.GET("/my/readings.json", {
62
79
  params: {
63
- query: { page: options?.page },
80
+ query: { page: options?.page, "limit_bubble_ups": options?.limitBubbleUps },
64
81
  },
65
82
  })
66
83
  );
67
84
  return response;
68
85
  }
69
86
 
87
+ /**
88
+ * Get the current user's current and scheduled bubble-ups (paginated, 50 per page).
89
+ * @param options - Optional query parameters
90
+ * @returns All Notification across all pages, with .meta.totalCount
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * const result = await client.myNotifications.bubbleUps();
95
+ * ```
96
+ */
97
+ async bubbleUps(options?: BubbleUpsMyNotificationOptions): Promise<ListResult<Notification>> {
98
+ return this.requestPaginated(
99
+ {
100
+ service: "MyNotifications",
101
+ operation: "GetBubbleUps",
102
+ resourceType: "bubble_up",
103
+ isMutation: false,
104
+ },
105
+ () =>
106
+ this.client.GET("/my/readings/bubble_ups.json", {
107
+ params: {
108
+ query: { page: options?.page },
109
+ },
110
+ })
111
+ , options
112
+ );
113
+ }
114
+
70
115
  /**
71
116
  * Mark specified items as read
72
117
  * @param req - Resource request parameters
@@ -28,7 +28,7 @@ export interface ListRecordingOptions extends PaginationOptions {
28
28
  export declare class RecordingsService extends BaseService {
29
29
  /**
30
30
  * List recordings of a given type across projects
31
- * @param type - Comment|Document|Kanban::Card|Kanban::Step|Message|Question::Answer|Schedule::Entry|Todo|Todolist|Upload|Vault
31
+ * @param type - Comment|Document|Door|Kanban::Card|Kanban::Step|Message|Question::Answer|Schedule::Entry|Todo|Todolist|Upload|Vault
32
32
  * @param options - Optional query parameters
33
33
  * @returns All Recording across all pages, with .meta.totalCount
34
34
  *
@@ -40,7 +40,7 @@ export declare class RecordingsService extends BaseService {
40
40
  * const filtered = await client.recordings.list("type", { bucket: [123] });
41
41
  * ```
42
42
  */
43
- list(type: "Comment" | "Document" | "Kanban::Card" | "Kanban::Step" | "Message" | "Question::Answer" | "Schedule::Entry" | "Todo" | "Todolist" | "Upload" | "Vault", options?: ListRecordingOptions): Promise<ListResult<Recording>>;
43
+ list(type: "Comment" | "Document" | "Door" | "Kanban::Card" | "Kanban::Step" | "Message" | "Question::Answer" | "Schedule::Entry" | "Todo" | "Todolist" | "Upload" | "Vault", options?: ListRecordingOptions): Promise<ListResult<Recording>>;
44
44
  /**
45
45
  * Get a single recording by id
46
46
  * @param recordingId - The recording ID
@@ -1 +1 @@
1
- {"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../../src/generated/services/recordings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,uBAAuB;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,qBAAqB;IACrB,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACnC,0BAA0B;IAC1B,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAOD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAEhD;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAkB1O;;;;;;;;;;OAUG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAmBlD;;;;;;;;;;OAUG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnD;;;;;;;;;;OAUG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjD;;;;;;;;;;OAUG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBhD"}
1
+ {"version":3,"file":"recordings.d.ts","sourceRoot":"","sources":["../../../src/generated/services/recordings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,uBAAuB;IACvB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,qBAAqB;IACrB,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACnC,0BAA0B;IAC1B,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAOD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAEhD;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAkBnP;;;;;;;;;;OAUG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAmBlD;;;;;;;;;;OAUG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnD;;;;;;;;;;OAUG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjD;;;;;;;;;;OAUG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBhD"}