@air/api-rest 0.2.0 → 0.4.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/index.cjs CHANGED
@@ -42,6 +42,7 @@ __export(index_exports, {
42
42
  CustomFields: () => CustomFields,
43
43
  Imports: () => Imports,
44
44
  InternalServerError: () => import_api_core2.InternalServerError,
45
+ Libraries: () => Libraries,
45
46
  NotFoundError: () => import_api_core2.NotFoundError,
46
47
  PagePromise: () => import_api_core2.PagePromise,
47
48
  PermissionError: () => import_api_core2.PermissionError,
@@ -76,6 +77,9 @@ var Assets = class {
76
77
  if (params.includeNestedAssets !== void 0) {
77
78
  query.includeNestedAssets = params.includeNestedAssets;
78
79
  }
80
+ if (params.semantic !== void 0) {
81
+ query.semantic = params.semantic;
82
+ }
79
83
  if (params.tag) {
80
84
  query.tag = params.tag;
81
85
  }
@@ -172,7 +176,9 @@ var Boards = class {
172
176
  limit: params.limit,
173
177
  cursor: params.cursor,
174
178
  name: params.name,
175
- parentBoardId: params.parentBoardId
179
+ parentBoardId: params.parentBoardId,
180
+ libraryId: params.libraryId,
181
+ inGeneralLibrary: params.inGeneralLibrary
176
182
  };
177
183
  if (params.customField) {
178
184
  query.customField = params.customField;
@@ -338,6 +344,50 @@ var Imports = class {
338
344
  }
339
345
  };
340
346
 
347
+ // src/resources/libraries.ts
348
+ var Libraries = class {
349
+ constructor(client) {
350
+ this.client = client;
351
+ }
352
+ list(params = {}) {
353
+ const query = {
354
+ limit: params.limit,
355
+ cursor: params.cursor,
356
+ search: params.search
357
+ };
358
+ return this.client.requestCursorPage(
359
+ { method: "GET", path: "/libraries", query },
360
+ query
361
+ );
362
+ }
363
+ async get(libraryId) {
364
+ return this.client.request({
365
+ method: "GET",
366
+ path: `/libraries/${libraryId}`
367
+ });
368
+ }
369
+ async create(params) {
370
+ return this.client.request({
371
+ method: "POST",
372
+ path: "/libraries",
373
+ body: params
374
+ });
375
+ }
376
+ async update(libraryId, params) {
377
+ return this.client.request({
378
+ method: "PATCH",
379
+ path: `/libraries/${libraryId}`,
380
+ body: params
381
+ });
382
+ }
383
+ async delete(libraryId) {
384
+ return this.client.request({
385
+ method: "DELETE",
386
+ path: `/libraries/${libraryId}`
387
+ });
388
+ }
389
+ };
390
+
341
391
  // src/resources/roles.ts
342
392
  var Roles = class {
343
393
  constructor(client) {
@@ -642,6 +692,7 @@ var Workspaces = class {
642
692
  var AirApi = class extends import_api_core.AirBase {
643
693
  assets;
644
694
  boards;
695
+ libraries;
645
696
  tags;
646
697
  customFields;
647
698
  roles;
@@ -652,6 +703,7 @@ var AirApi = class extends import_api_core.AirBase {
652
703
  super(options);
653
704
  this.assets = new Assets(this);
654
705
  this.boards = new Boards(this);
706
+ this.libraries = new Libraries(this);
655
707
  this.tags = new Tags(this);
656
708
  this.customFields = new CustomFields(this);
657
709
  this.roles = new Roles(this);
@@ -677,6 +729,7 @@ var import_api_core2 = require("@air/api-core");
677
729
  CustomFields,
678
730
  Imports,
679
731
  InternalServerError,
732
+ Libraries,
680
733
  NotFoundError,
681
734
  PagePromise,
682
735
  PermissionError,
package/dist/index.d.cts CHANGED
@@ -62,6 +62,13 @@ interface AssetListParams extends CursorPageParams {
62
62
  tag?: string | string[];
63
63
  customField?: string | string[];
64
64
  search?: string;
65
+ /**
66
+ * When true, `search` is used for semantic search via AI embeddings.
67
+ * Requires a non-blank `search` value and Semantic Search enabled on the workspace.
68
+ * Returns a single page of results ordered by relevance. Combining with `tag`,
69
+ * `customField`, `createdAt`, or `cursor` is rejected by the API with 400.
70
+ */
71
+ semantic?: boolean;
65
72
  "createdAt[gte]"?: string;
66
73
  "createdAt[lte]"?: string;
67
74
  }
@@ -102,6 +109,17 @@ interface BoardListParams extends CursorPageParams {
102
109
  name?: string;
103
110
  parentBoardId?: string;
104
111
  customField?: string | string[];
112
+ /**
113
+ * Only return boards in this library. Mutually exclusive with
114
+ * `inGeneralLibrary` — passing both results in a `400` (BadRequestError).
115
+ */
116
+ libraryId?: string;
117
+ /**
118
+ * Only return boards in the General library (boards not in any real library).
119
+ * Mutually exclusive with `libraryId` — passing both results in a `400`
120
+ * (BadRequestError).
121
+ */
122
+ inGeneralLibrary?: boolean;
105
123
  }
106
124
  interface BoardCreateParams {
107
125
  title: string;
@@ -264,6 +282,41 @@ declare class Imports {
264
282
  getStatus(importId: string): Promise<ImportStatusResponse>;
265
283
  }
266
284
 
285
+ interface Library {
286
+ id: string;
287
+ title: string;
288
+ accessibility: "public" | "private";
289
+ visibility: "workspaceMembers" | "libraryMembers";
290
+ createdAt: string;
291
+ updatedAt: string;
292
+ description?: string;
293
+ }
294
+ interface LibraryListParams extends CursorPageParams {
295
+ search?: string;
296
+ }
297
+ interface LibraryCreateParams {
298
+ title: string;
299
+ description?: string;
300
+ accessibility?: "public" | "private";
301
+ visibility?: "workspaceMembers" | "libraryMembers";
302
+ }
303
+ interface LibraryUpdateParams {
304
+ title?: string;
305
+ description?: string | null;
306
+ accessibility?: "public" | "private";
307
+ visibility?: "workspaceMembers" | "libraryMembers";
308
+ }
309
+
310
+ declare class Libraries {
311
+ private client;
312
+ constructor(client: AirBase);
313
+ list(params?: LibraryListParams): PagePromise<Library>;
314
+ get(libraryId: string): Promise<Library>;
315
+ create(params: LibraryCreateParams): Promise<Library>;
316
+ update(libraryId: string, params: LibraryUpdateParams): Promise<void>;
317
+ delete(libraryId: string): Promise<void>;
318
+ }
319
+
267
320
  interface Role {
268
321
  id: string;
269
322
  name: string;
@@ -420,6 +473,7 @@ interface AirApiOptions extends AirBaseOptions {
420
473
  declare class AirApi extends AirBase {
421
474
  readonly assets: Assets;
422
475
  readonly boards: Boards;
476
+ readonly libraries: Libraries;
423
477
  readonly tags: Tags;
424
478
  readonly customFields: CustomFields;
425
479
  readonly roles: Roles;
@@ -429,4 +483,4 @@ declare class AirApi extends AirBase {
429
483
  constructor(options?: AirApiOptions);
430
484
  }
431
485
 
432
- export { type AddBoardAssetsParams, type AddGuestParams, type AddVersionTagParams, AirApi, type AirApiOptions, type Asset, type AssetBoardListParams, type AssetCustomFieldValue, type AssetListParams, type AssetVersion, type AssetVersionDownloadUrl, type AssetVersionListResponse, type AssetVersionUpdateParams, type AssetVersionUrls, Assets, type Board, type BoardCreateParams, type BoardListParams, type BoardUpdateParams, Boards, type CompleteMultipartParams, type CustomField, type CustomFieldCreateParams, type CustomFieldListParams, type CustomFieldType, type CustomFieldUpdateParams, type CustomFieldValue, type CustomFieldValueCreateParams, type CustomFieldValueUpdateParams, CustomFields, type FileMeta, type FileSource, type GetPartUploadUrlParams, type GetPartUploadUrlResponse, type Guest, type GuestListParams, type GuestListResponse, type ImportCreateParams, type ImportCreateResponse, type ImportStatus, type ImportStatusResponse, Imports, type LargeUploadResponse, type Role, type RoleListParams, type RoleListResponse, Roles, type SetBoardCustomFieldParams, type SetCustomFieldParams, type SmallUploadResponse, type SmartTag, type Tag, type TagCreateParams, type TagListParams, type TagUpdateParams, Tags, type UpdateGuestParams, type UploadCreateParams, type UploadCreateResponse, type UploadFileOptions, type UploadFileParams, type UploadFileResponse, Uploads, type Workspace, type WorkspaceListResponse, Workspaces };
486
+ export { type AddBoardAssetsParams, type AddGuestParams, type AddVersionTagParams, AirApi, type AirApiOptions, type Asset, type AssetBoardListParams, type AssetCustomFieldValue, type AssetListParams, type AssetVersion, type AssetVersionDownloadUrl, type AssetVersionListResponse, type AssetVersionUpdateParams, type AssetVersionUrls, Assets, type Board, type BoardCreateParams, type BoardListParams, type BoardUpdateParams, Boards, type CompleteMultipartParams, type CustomField, type CustomFieldCreateParams, type CustomFieldListParams, type CustomFieldType, type CustomFieldUpdateParams, type CustomFieldValue, type CustomFieldValueCreateParams, type CustomFieldValueUpdateParams, CustomFields, type FileMeta, type FileSource, type GetPartUploadUrlParams, type GetPartUploadUrlResponse, type Guest, type GuestListParams, type GuestListResponse, type ImportCreateParams, type ImportCreateResponse, type ImportStatus, type ImportStatusResponse, Imports, type LargeUploadResponse, Libraries, type Library, type LibraryCreateParams, type LibraryListParams, type LibraryUpdateParams, type Role, type RoleListParams, type RoleListResponse, Roles, type SetBoardCustomFieldParams, type SetCustomFieldParams, type SmallUploadResponse, type SmartTag, type Tag, type TagCreateParams, type TagListParams, type TagUpdateParams, Tags, type UpdateGuestParams, type UploadCreateParams, type UploadCreateResponse, type UploadFileOptions, type UploadFileParams, type UploadFileResponse, Uploads, type Workspace, type WorkspaceListResponse, Workspaces };
package/dist/index.d.ts CHANGED
@@ -62,6 +62,13 @@ interface AssetListParams extends CursorPageParams {
62
62
  tag?: string | string[];
63
63
  customField?: string | string[];
64
64
  search?: string;
65
+ /**
66
+ * When true, `search` is used for semantic search via AI embeddings.
67
+ * Requires a non-blank `search` value and Semantic Search enabled on the workspace.
68
+ * Returns a single page of results ordered by relevance. Combining with `tag`,
69
+ * `customField`, `createdAt`, or `cursor` is rejected by the API with 400.
70
+ */
71
+ semantic?: boolean;
65
72
  "createdAt[gte]"?: string;
66
73
  "createdAt[lte]"?: string;
67
74
  }
@@ -102,6 +109,17 @@ interface BoardListParams extends CursorPageParams {
102
109
  name?: string;
103
110
  parentBoardId?: string;
104
111
  customField?: string | string[];
112
+ /**
113
+ * Only return boards in this library. Mutually exclusive with
114
+ * `inGeneralLibrary` — passing both results in a `400` (BadRequestError).
115
+ */
116
+ libraryId?: string;
117
+ /**
118
+ * Only return boards in the General library (boards not in any real library).
119
+ * Mutually exclusive with `libraryId` — passing both results in a `400`
120
+ * (BadRequestError).
121
+ */
122
+ inGeneralLibrary?: boolean;
105
123
  }
106
124
  interface BoardCreateParams {
107
125
  title: string;
@@ -264,6 +282,41 @@ declare class Imports {
264
282
  getStatus(importId: string): Promise<ImportStatusResponse>;
265
283
  }
266
284
 
285
+ interface Library {
286
+ id: string;
287
+ title: string;
288
+ accessibility: "public" | "private";
289
+ visibility: "workspaceMembers" | "libraryMembers";
290
+ createdAt: string;
291
+ updatedAt: string;
292
+ description?: string;
293
+ }
294
+ interface LibraryListParams extends CursorPageParams {
295
+ search?: string;
296
+ }
297
+ interface LibraryCreateParams {
298
+ title: string;
299
+ description?: string;
300
+ accessibility?: "public" | "private";
301
+ visibility?: "workspaceMembers" | "libraryMembers";
302
+ }
303
+ interface LibraryUpdateParams {
304
+ title?: string;
305
+ description?: string | null;
306
+ accessibility?: "public" | "private";
307
+ visibility?: "workspaceMembers" | "libraryMembers";
308
+ }
309
+
310
+ declare class Libraries {
311
+ private client;
312
+ constructor(client: AirBase);
313
+ list(params?: LibraryListParams): PagePromise<Library>;
314
+ get(libraryId: string): Promise<Library>;
315
+ create(params: LibraryCreateParams): Promise<Library>;
316
+ update(libraryId: string, params: LibraryUpdateParams): Promise<void>;
317
+ delete(libraryId: string): Promise<void>;
318
+ }
319
+
267
320
  interface Role {
268
321
  id: string;
269
322
  name: string;
@@ -420,6 +473,7 @@ interface AirApiOptions extends AirBaseOptions {
420
473
  declare class AirApi extends AirBase {
421
474
  readonly assets: Assets;
422
475
  readonly boards: Boards;
476
+ readonly libraries: Libraries;
423
477
  readonly tags: Tags;
424
478
  readonly customFields: CustomFields;
425
479
  readonly roles: Roles;
@@ -429,4 +483,4 @@ declare class AirApi extends AirBase {
429
483
  constructor(options?: AirApiOptions);
430
484
  }
431
485
 
432
- export { type AddBoardAssetsParams, type AddGuestParams, type AddVersionTagParams, AirApi, type AirApiOptions, type Asset, type AssetBoardListParams, type AssetCustomFieldValue, type AssetListParams, type AssetVersion, type AssetVersionDownloadUrl, type AssetVersionListResponse, type AssetVersionUpdateParams, type AssetVersionUrls, Assets, type Board, type BoardCreateParams, type BoardListParams, type BoardUpdateParams, Boards, type CompleteMultipartParams, type CustomField, type CustomFieldCreateParams, type CustomFieldListParams, type CustomFieldType, type CustomFieldUpdateParams, type CustomFieldValue, type CustomFieldValueCreateParams, type CustomFieldValueUpdateParams, CustomFields, type FileMeta, type FileSource, type GetPartUploadUrlParams, type GetPartUploadUrlResponse, type Guest, type GuestListParams, type GuestListResponse, type ImportCreateParams, type ImportCreateResponse, type ImportStatus, type ImportStatusResponse, Imports, type LargeUploadResponse, type Role, type RoleListParams, type RoleListResponse, Roles, type SetBoardCustomFieldParams, type SetCustomFieldParams, type SmallUploadResponse, type SmartTag, type Tag, type TagCreateParams, type TagListParams, type TagUpdateParams, Tags, type UpdateGuestParams, type UploadCreateParams, type UploadCreateResponse, type UploadFileOptions, type UploadFileParams, type UploadFileResponse, Uploads, type Workspace, type WorkspaceListResponse, Workspaces };
486
+ export { type AddBoardAssetsParams, type AddGuestParams, type AddVersionTagParams, AirApi, type AirApiOptions, type Asset, type AssetBoardListParams, type AssetCustomFieldValue, type AssetListParams, type AssetVersion, type AssetVersionDownloadUrl, type AssetVersionListResponse, type AssetVersionUpdateParams, type AssetVersionUrls, Assets, type Board, type BoardCreateParams, type BoardListParams, type BoardUpdateParams, Boards, type CompleteMultipartParams, type CustomField, type CustomFieldCreateParams, type CustomFieldListParams, type CustomFieldType, type CustomFieldUpdateParams, type CustomFieldValue, type CustomFieldValueCreateParams, type CustomFieldValueUpdateParams, CustomFields, type FileMeta, type FileSource, type GetPartUploadUrlParams, type GetPartUploadUrlResponse, type Guest, type GuestListParams, type GuestListResponse, type ImportCreateParams, type ImportCreateResponse, type ImportStatus, type ImportStatusResponse, Imports, type LargeUploadResponse, Libraries, type Library, type LibraryCreateParams, type LibraryListParams, type LibraryUpdateParams, type Role, type RoleListParams, type RoleListResponse, Roles, type SetBoardCustomFieldParams, type SetCustomFieldParams, type SmallUploadResponse, type SmartTag, type Tag, type TagCreateParams, type TagListParams, type TagUpdateParams, Tags, type UpdateGuestParams, type UploadCreateParams, type UploadCreateResponse, type UploadFileOptions, type UploadFileParams, type UploadFileResponse, Uploads, type Workspace, type WorkspaceListResponse, Workspaces };
package/dist/index.js CHANGED
@@ -16,6 +16,9 @@ var Assets = class {
16
16
  if (params.includeNestedAssets !== void 0) {
17
17
  query.includeNestedAssets = params.includeNestedAssets;
18
18
  }
19
+ if (params.semantic !== void 0) {
20
+ query.semantic = params.semantic;
21
+ }
19
22
  if (params.tag) {
20
23
  query.tag = params.tag;
21
24
  }
@@ -112,7 +115,9 @@ var Boards = class {
112
115
  limit: params.limit,
113
116
  cursor: params.cursor,
114
117
  name: params.name,
115
- parentBoardId: params.parentBoardId
118
+ parentBoardId: params.parentBoardId,
119
+ libraryId: params.libraryId,
120
+ inGeneralLibrary: params.inGeneralLibrary
116
121
  };
117
122
  if (params.customField) {
118
123
  query.customField = params.customField;
@@ -278,6 +283,50 @@ var Imports = class {
278
283
  }
279
284
  };
280
285
 
286
+ // src/resources/libraries.ts
287
+ var Libraries = class {
288
+ constructor(client) {
289
+ this.client = client;
290
+ }
291
+ list(params = {}) {
292
+ const query = {
293
+ limit: params.limit,
294
+ cursor: params.cursor,
295
+ search: params.search
296
+ };
297
+ return this.client.requestCursorPage(
298
+ { method: "GET", path: "/libraries", query },
299
+ query
300
+ );
301
+ }
302
+ async get(libraryId) {
303
+ return this.client.request({
304
+ method: "GET",
305
+ path: `/libraries/${libraryId}`
306
+ });
307
+ }
308
+ async create(params) {
309
+ return this.client.request({
310
+ method: "POST",
311
+ path: "/libraries",
312
+ body: params
313
+ });
314
+ }
315
+ async update(libraryId, params) {
316
+ return this.client.request({
317
+ method: "PATCH",
318
+ path: `/libraries/${libraryId}`,
319
+ body: params
320
+ });
321
+ }
322
+ async delete(libraryId) {
323
+ return this.client.request({
324
+ method: "DELETE",
325
+ path: `/libraries/${libraryId}`
326
+ });
327
+ }
328
+ };
329
+
281
330
  // src/resources/roles.ts
282
331
  var Roles = class {
283
332
  constructor(client) {
@@ -582,6 +631,7 @@ var Workspaces = class {
582
631
  var AirApi = class extends AirBase {
583
632
  assets;
584
633
  boards;
634
+ libraries;
585
635
  tags;
586
636
  customFields;
587
637
  roles;
@@ -592,6 +642,7 @@ var AirApi = class extends AirBase {
592
642
  super(options);
593
643
  this.assets = new Assets(this);
594
644
  this.boards = new Boards(this);
645
+ this.libraries = new Libraries(this);
595
646
  this.tags = new Tags(this);
596
647
  this.customFields = new CustomFields(this);
597
648
  this.roles = new Roles(this);
@@ -633,6 +684,7 @@ export {
633
684
  CustomFields,
634
685
  Imports,
635
686
  InternalServerError,
687
+ Libraries,
636
688
  NotFoundError,
637
689
  PagePromise,
638
690
  PermissionError,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@air/api-rest",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "description": "Typed REST client for Air API",
6
6
  "main": "./dist/index.cjs",
@@ -29,7 +29,7 @@
29
29
  "clean": "rm -rf dist .tsc-out tsconfig.tsbuildinfo"
30
30
  },
31
31
  "dependencies": {
32
- "@air/api-core": "0.2.0"
32
+ "@air/api-core": "0.4.0"
33
33
  },
34
34
  "engines": {
35
35
  "node": ">=18"