@37signals/basecamp 0.4.0 → 0.5.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.
package/dist/client.d.ts CHANGED
@@ -173,7 +173,7 @@ export interface BasecampClientOptions {
173
173
  /** Maximum pages to follow during auto-pagination (defaults to 10,000) */
174
174
  maxPages?: number;
175
175
  }
176
- export declare const VERSION = "0.4.0";
176
+ export declare const VERSION = "0.5.0";
177
177
  export declare const API_VERSION = "2026-01-26";
178
178
  /**
179
179
  * Creates a type-safe Basecamp API client with built-in middleware for:
package/dist/client.js CHANGED
@@ -60,7 +60,7 @@ import { BoostsService } from "./generated/services/boosts.js";
60
60
  // Services - Hand-written (not spec-driven, e.g., OAuth flows)
61
61
  // ============================================================================
62
62
  import { AuthorizationService } from "./services/authorization.js";
63
- export const VERSION = "0.4.0";
63
+ export const VERSION = "0.5.0";
64
64
  export const API_VERSION = "2026-01-26";
65
65
  const DEFAULT_USER_AGENT = `basecamp-sdk-ts/${VERSION} (api:${API_VERSION})`;
66
66
  /**
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://basecamp.com/schemas/sdk-metadata.json",
3
3
  "version": "1.0.0",
4
- "generated": "2026-03-11T03:06:35.785Z",
4
+ "generated": "2026-03-12T01:04:25.932Z",
5
5
  "operations": {
6
6
  "CreateAttachment": {
7
7
  "retry": {
@@ -5974,6 +5974,24 @@
5974
5974
  "format": "int64"
5975
5975
  },
5976
5976
  "required": true
5977
+ },
5978
+ {
5979
+ "name": "sort",
5980
+ "in": "query",
5981
+ "description": "created_at|updated_at",
5982
+ "schema": {
5983
+ "type": "string",
5984
+ "description": "created_at|updated_at"
5985
+ }
5986
+ },
5987
+ {
5988
+ "name": "direction",
5989
+ "in": "query",
5990
+ "description": "asc|desc",
5991
+ "schema": {
5992
+ "type": "string",
5993
+ "description": "asc|desc"
5994
+ }
5977
5995
  }
5978
5996
  ],
5979
5997
  "responses": {
@@ -17527,7 +17545,8 @@
17527
17545
  "type": "object",
17528
17546
  "properties": {
17529
17547
  "content": {
17530
- "type": "string"
17548
+ "type": "string",
17549
+ "maxLength": 16
17531
17550
  }
17532
17551
  },
17533
17552
  "required": [
@@ -17699,7 +17718,8 @@
17699
17718
  "type": "object",
17700
17719
  "properties": {
17701
17720
  "content": {
17702
- "type": "string"
17721
+ "type": "string",
17722
+ "maxLength": 16
17703
17723
  }
17704
17724
  },
17705
17725
  "required": [
@@ -20220,17 +20240,17 @@
20220
20240
  },
20221
20241
  "starts_at": {
20222
20242
  "type": "string",
20223
- "x-go-type": "time.Time",
20243
+ "x-go-type": "types.FlexibleTime",
20224
20244
  "x-go-type-import": {
20225
- "path": "time"
20245
+ "path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
20226
20246
  },
20227
20247
  "x-go-type-skip-optional-pointer": true
20228
20248
  },
20229
20249
  "ends_at": {
20230
20250
  "type": "string",
20231
- "x-go-type": "time.Time",
20251
+ "x-go-type": "types.FlexibleTime",
20232
20252
  "x-go-type-import": {
20233
- "path": "time"
20253
+ "path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
20234
20254
  },
20235
20255
  "x-go-type-skip-optional-pointer": true
20236
20256
  },
@@ -21831,11 +21851,21 @@
21831
21851
  },
21832
21852
  "width": {
21833
21853
  "type": "integer",
21834
- "format": "int32"
21854
+ "format": "int32",
21855
+ "x-go-type": "types.FlexInt",
21856
+ "x-go-type-import": {
21857
+ "path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
21858
+ },
21859
+ "x-go-type-skip-optional-pointer": true
21835
21860
  },
21836
21861
  "height": {
21837
21862
  "type": "integer",
21838
- "format": "int32"
21863
+ "format": "int32",
21864
+ "x-go-type": "types.FlexInt",
21865
+ "x-go-type-import": {
21866
+ "path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
21867
+ },
21868
+ "x-go-type-skip-optional-pointer": true
21839
21869
  },
21840
21870
  "download_url": {
21841
21871
  "type": "string"
@@ -8075,7 +8075,12 @@ export interface operations {
8075
8075
  };
8076
8076
  ListMessages: {
8077
8077
  parameters: {
8078
- query?: never;
8078
+ query?: {
8079
+ /** @description created_at|updated_at */
8080
+ sort?: string;
8081
+ /** @description asc|desc */
8082
+ direction?: string;
8083
+ };
8079
8084
  header?: never;
8080
8085
  path: {
8081
8086
  boardId: number;
@@ -13,6 +13,10 @@ export type Message = components["schemas"]["Message"];
13
13
  * Options for list.
14
14
  */
15
15
  export interface ListMessageOptions extends PaginationOptions {
16
+ /** Filter by sort */
17
+ sort?: "created_at" | "updated_at";
18
+ /** Filter by direction */
19
+ direction?: "asc" | "desc";
16
20
  }
17
21
  /**
18
22
  * Request parameters for create.
@@ -55,6 +59,9 @@ export declare class MessagesService extends BaseService {
55
59
  * @example
56
60
  * ```ts
57
61
  * const result = await client.messages.list(123);
62
+ *
63
+ * // With options
64
+ * const filtered = await client.messages.list(123, { sort: "created_at" });
58
65
  * ```
59
66
  */
60
67
  list(boardId: number, options?: ListMessageOptions): Promise<ListResult<Message>>;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/generated/services/messages.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,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAE9C;;;;;;;;;;OAUG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAmBvF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B1E;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB9C;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB5E;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C;;;;;;;;;;OAUG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/generated/services/messages.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,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,qBAAqB;IACrB,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACnC,0BAA0B;IAC1B,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAE9C;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAoBvF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B1E;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB9C;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB5E;;;;;;;;;;OAUG;IACG,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C;;;;;;;;;;OAUG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9C"}
@@ -21,6 +21,9 @@ export class MessagesService extends BaseService {
21
21
  * @example
22
22
  * ```ts
23
23
  * const result = await client.messages.list(123);
24
+ *
25
+ * // With options
26
+ * const filtered = await client.messages.list(123, { sort: "created_at" });
24
27
  * ```
25
28
  */
26
29
  async list(boardId, options) {
@@ -33,6 +36,7 @@ export class MessagesService extends BaseService {
33
36
  }, () => this.client.GET("/message_boards/{boardId}/messages.json", {
34
37
  params: {
35
38
  path: { boardId },
39
+ query: { sort: options?.sort, direction: options?.direction },
36
40
  },
37
41
  }), options);
38
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/generated/services/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/generated/services/messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAkDzC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAE9C;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,OAA4B;QACtD,OAAO,IAAI,CAAC,gBAAgB,CAC1B;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,OAAO;SACpB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,EAAE;YACzD,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,OAAO,EAAE;gBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;aAC9D;SACF,CAAC,EACF,OAAO,CACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,GAAyB;QACrD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,eAAe;YAC1B,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,OAAO;SACpB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;YAC1D,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,OAAO,EAAE;aAClB;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,GAAG,CAAC,UAAU;gBAC3B,aAAa,EAAE,GAAG,CAAC,aAAa;aACjC;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAC,SAAiB;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,SAAS;SACtB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACvC,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,GAAyB;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,eAAe;YAC1B,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,SAAS;SACtB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE;YACvC,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,WAAW,EAAE,GAAG,CAAC,UAAU;aAC5B;SACF,CAAC,CACL,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAC,SAAiB;QACzB,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,SAAS;SACtB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YACnD,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB;SACF,CAAC,CACL,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,SAAiB;QAC3B,MAAM,IAAI,CAAC,OAAO,CAChB;YACE,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,cAAc;YACzB,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,SAAS;SACtB,EACD,GAAG,EAAE,CACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kCAAkC,EAAE;YACrD,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,SAAS,EAAE;aACpB;SACF,CAAC,CACL,CAAC;IACJ,CAAC;CACF"}
@@ -21,6 +21,10 @@ export type Message = components["schemas"]["Message"];
21
21
  * Options for list.
22
22
  */
23
23
  export interface ListMessageOptions extends PaginationOptions {
24
+ /** Filter by sort */
25
+ sort?: "created_at" | "updated_at";
26
+ /** Filter by direction */
27
+ direction?: "asc" | "desc";
24
28
  }
25
29
 
26
30
  /**
@@ -72,6 +76,9 @@ export class MessagesService extends BaseService {
72
76
  * @example
73
77
  * ```ts
74
78
  * const result = await client.messages.list(123);
79
+ *
80
+ * // With options
81
+ * const filtered = await client.messages.list(123, { sort: "created_at" });
75
82
  * ```
76
83
  */
77
84
  async list(boardId: number, options?: ListMessageOptions): Promise<ListResult<Message>> {
@@ -87,6 +94,7 @@ export class MessagesService extends BaseService {
87
94
  this.client.GET("/message_boards/{boardId}/messages.json", {
88
95
  params: {
89
96
  path: { boardId },
97
+ query: { sort: options?.sort, direction: options?.direction },
90
98
  },
91
99
  })
92
100
  , options
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@37signals/basecamp",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "TypeScript SDK for the Basecamp API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://basecamp.com/schemas/sdk-metadata.json",
3
3
  "version": "1.0.0",
4
- "generated": "2026-03-11T03:06:35.785Z",
4
+ "generated": "2026-03-12T01:04:25.932Z",
5
5
  "operations": {
6
6
  "CreateAttachment": {
7
7
  "retry": {
@@ -5974,6 +5974,24 @@
5974
5974
  "format": "int64"
5975
5975
  },
5976
5976
  "required": true
5977
+ },
5978
+ {
5979
+ "name": "sort",
5980
+ "in": "query",
5981
+ "description": "created_at|updated_at",
5982
+ "schema": {
5983
+ "type": "string",
5984
+ "description": "created_at|updated_at"
5985
+ }
5986
+ },
5987
+ {
5988
+ "name": "direction",
5989
+ "in": "query",
5990
+ "description": "asc|desc",
5991
+ "schema": {
5992
+ "type": "string",
5993
+ "description": "asc|desc"
5994
+ }
5977
5995
  }
5978
5996
  ],
5979
5997
  "responses": {
@@ -17527,7 +17545,8 @@
17527
17545
  "type": "object",
17528
17546
  "properties": {
17529
17547
  "content": {
17530
- "type": "string"
17548
+ "type": "string",
17549
+ "maxLength": 16
17531
17550
  }
17532
17551
  },
17533
17552
  "required": [
@@ -17699,7 +17718,8 @@
17699
17718
  "type": "object",
17700
17719
  "properties": {
17701
17720
  "content": {
17702
- "type": "string"
17721
+ "type": "string",
17722
+ "maxLength": 16
17703
17723
  }
17704
17724
  },
17705
17725
  "required": [
@@ -20220,17 +20240,17 @@
20220
20240
  },
20221
20241
  "starts_at": {
20222
20242
  "type": "string",
20223
- "x-go-type": "time.Time",
20243
+ "x-go-type": "types.FlexibleTime",
20224
20244
  "x-go-type-import": {
20225
- "path": "time"
20245
+ "path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
20226
20246
  },
20227
20247
  "x-go-type-skip-optional-pointer": true
20228
20248
  },
20229
20249
  "ends_at": {
20230
20250
  "type": "string",
20231
- "x-go-type": "time.Time",
20251
+ "x-go-type": "types.FlexibleTime",
20232
20252
  "x-go-type-import": {
20233
- "path": "time"
20253
+ "path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
20234
20254
  },
20235
20255
  "x-go-type-skip-optional-pointer": true
20236
20256
  },
@@ -21831,11 +21851,21 @@
21831
21851
  },
21832
21852
  "width": {
21833
21853
  "type": "integer",
21834
- "format": "int32"
21854
+ "format": "int32",
21855
+ "x-go-type": "types.FlexInt",
21856
+ "x-go-type-import": {
21857
+ "path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
21858
+ },
21859
+ "x-go-type-skip-optional-pointer": true
21835
21860
  },
21836
21861
  "height": {
21837
21862
  "type": "integer",
21838
- "format": "int32"
21863
+ "format": "int32",
21864
+ "x-go-type": "types.FlexInt",
21865
+ "x-go-type-import": {
21866
+ "path": "github.com/basecamp/basecamp-sdk/go/pkg/types"
21867
+ },
21868
+ "x-go-type-skip-optional-pointer": true
21839
21869
  },
21840
21870
  "download_url": {
21841
21871
  "type": "string"
@@ -8075,7 +8075,12 @@ export interface operations {
8075
8075
  };
8076
8076
  ListMessages: {
8077
8077
  parameters: {
8078
- query?: never;
8078
+ query?: {
8079
+ /** @description created_at|updated_at */
8080
+ sort?: string;
8081
+ /** @description asc|desc */
8082
+ direction?: string;
8083
+ };
8079
8084
  header?: never;
8080
8085
  path: {
8081
8086
  boardId: number;
@@ -21,6 +21,10 @@ export type Message = components["schemas"]["Message"];
21
21
  * Options for list.
22
22
  */
23
23
  export interface ListMessageOptions extends PaginationOptions {
24
+ /** Filter by sort */
25
+ sort?: "created_at" | "updated_at";
26
+ /** Filter by direction */
27
+ direction?: "asc" | "desc";
24
28
  }
25
29
 
26
30
  /**
@@ -72,6 +76,9 @@ export class MessagesService extends BaseService {
72
76
  * @example
73
77
  * ```ts
74
78
  * const result = await client.messages.list(123);
79
+ *
80
+ * // With options
81
+ * const filtered = await client.messages.list(123, { sort: "created_at" });
75
82
  * ```
76
83
  */
77
84
  async list(boardId: number, options?: ListMessageOptions): Promise<ListResult<Message>> {
@@ -87,6 +94,7 @@ export class MessagesService extends BaseService {
87
94
  this.client.GET("/message_boards/{boardId}/messages.json", {
88
95
  params: {
89
96
  path: { boardId },
97
+ query: { sort: options?.sort, direction: options?.direction },
90
98
  },
91
99
  })
92
100
  , options