@gyldendalas/gyldendal-divine-api 0.0.13 → 0.0.14
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 +17 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +17 -14
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -284,7 +284,7 @@ var UserFolders = class extends tagging_service_default {
|
|
|
284
284
|
timeout
|
|
285
285
|
}
|
|
286
286
|
);
|
|
287
|
-
return { name: folder_name, uuid: tag["resource_name"], parent: parent_folder_uuid };
|
|
287
|
+
return { name: folder_name, uuid: tag["resource_name"], parent: parent_folder_uuid, created_at: tag["created_at"] };
|
|
288
288
|
}
|
|
289
289
|
/**
|
|
290
290
|
* Update a folder. Only name and color can be changed.
|
|
@@ -318,7 +318,7 @@ var UserFolders = class extends tagging_service_default {
|
|
|
318
318
|
const new_folder_name = folder_name ?? folder_payload["folder"];
|
|
319
319
|
const new_color = color ?? folder_payload["color"];
|
|
320
320
|
const new_folder_payload = JSON.stringify({ "folder": new_folder_name, "color": new_color });
|
|
321
|
-
await this.updateTag(
|
|
321
|
+
const updatedTag = await this.updateTag(
|
|
322
322
|
{
|
|
323
323
|
tag: {
|
|
324
324
|
identity: await this.getIdentity(),
|
|
@@ -331,7 +331,7 @@ var UserFolders = class extends tagging_service_default {
|
|
|
331
331
|
}
|
|
332
332
|
);
|
|
333
333
|
const parent = tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"];
|
|
334
|
-
return { name: new_folder_name, uuid: folder_uuid, parent };
|
|
334
|
+
return { name: new_folder_name, uuid: folder_uuid, parent, created_at: updatedTag["created_at"] };
|
|
335
335
|
}
|
|
336
336
|
/**
|
|
337
337
|
* List all folders in the user's account.
|
|
@@ -358,7 +358,8 @@ var UserFolders = class extends tagging_service_default {
|
|
|
358
358
|
name: folder_payload["folder"],
|
|
359
359
|
color: folder_payload["color"],
|
|
360
360
|
uuid: tag["resource_name"],
|
|
361
|
-
parent: tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"]
|
|
361
|
+
parent: tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"],
|
|
362
|
+
created_at: tag["created_at"]
|
|
362
363
|
}
|
|
363
364
|
);
|
|
364
365
|
}
|
|
@@ -396,7 +397,8 @@ var UserFolders = class extends tagging_service_default {
|
|
|
396
397
|
name: folder_payload["folder"],
|
|
397
398
|
color: folder_payload["color"],
|
|
398
399
|
uuid: tag["resource_name"],
|
|
399
|
-
parent: tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"]
|
|
400
|
+
parent: tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"],
|
|
401
|
+
created_at: tag["created_at"]
|
|
400
402
|
}
|
|
401
403
|
);
|
|
402
404
|
}
|
|
@@ -429,14 +431,16 @@ var UserFolders = class extends tagging_service_default {
|
|
|
429
431
|
name: folder_payload["folder"],
|
|
430
432
|
color: folder_payload["color"],
|
|
431
433
|
uuid: tag["resource_name"],
|
|
432
|
-
parent: tag["tag_name"]
|
|
434
|
+
parent: tag["tag_name"],
|
|
435
|
+
created_at: tag["created_at"]
|
|
433
436
|
});
|
|
434
437
|
} else {
|
|
435
438
|
content.push(
|
|
436
439
|
{
|
|
437
440
|
type: tag["resource_type"],
|
|
438
441
|
identifier: tag["resource_name"],
|
|
439
|
-
folder_uuid: tag["tag_name"]
|
|
442
|
+
folder_uuid: tag["tag_name"],
|
|
443
|
+
created_at: tag["created_at"]
|
|
440
444
|
}
|
|
441
445
|
);
|
|
442
446
|
}
|
|
@@ -473,14 +477,14 @@ var UserFolders = class extends tagging_service_default {
|
|
|
473
477
|
* @param isbn The ISBN of the book.
|
|
474
478
|
* @param timeout The timeout for the request in milliseconds.
|
|
475
479
|
*
|
|
476
|
-
* @return
|
|
480
|
+
* @return void
|
|
477
481
|
**/
|
|
478
482
|
async removeInternetbookFromFolder({
|
|
479
483
|
folder_uuid,
|
|
480
484
|
isbn,
|
|
481
485
|
timeout = 3e3
|
|
482
486
|
}) {
|
|
483
|
-
|
|
487
|
+
await this.removeContentFromFolder(
|
|
484
488
|
{
|
|
485
489
|
folder_uuid,
|
|
486
490
|
resource_type: "internetbook",
|
|
@@ -505,7 +509,7 @@ var UserFolders = class extends tagging_service_default {
|
|
|
505
509
|
resource_name,
|
|
506
510
|
timeout = 3e3
|
|
507
511
|
}) {
|
|
508
|
-
await this.createTag(
|
|
512
|
+
const tag = await this.createTag(
|
|
509
513
|
{
|
|
510
514
|
tag: {
|
|
511
515
|
identity: await this.getIdentity(),
|
|
@@ -517,17 +521,17 @@ var UserFolders = class extends tagging_service_default {
|
|
|
517
521
|
timeout
|
|
518
522
|
}
|
|
519
523
|
);
|
|
520
|
-
return { type: resource_type, identifier: resource_name, folder_uuid };
|
|
524
|
+
return { type: resource_type, identifier: resource_name, folder_uuid, created_at: tag["created_at"] };
|
|
521
525
|
}
|
|
522
526
|
/**
|
|
523
|
-
*
|
|
527
|
+
* Remove a folder content element.
|
|
524
528
|
*
|
|
525
529
|
* @param folder_uuid The UUID of the folder.
|
|
526
530
|
* @param resource_name The name of the resource.
|
|
527
531
|
* @param resource_type The type of the resource.
|
|
528
532
|
* @param timeout The timeout for the request in milliseconds.
|
|
529
533
|
*
|
|
530
|
-
* @return
|
|
534
|
+
* @return void
|
|
531
535
|
**/
|
|
532
536
|
async removeContentFromFolder({
|
|
533
537
|
folder_uuid,
|
|
@@ -544,7 +548,6 @@ var UserFolders = class extends tagging_service_default {
|
|
|
544
548
|
timeout
|
|
545
549
|
}
|
|
546
550
|
);
|
|
547
|
-
return { type: resource_type, identifier: resource_name, folder_uuid };
|
|
548
551
|
}
|
|
549
552
|
/**
|
|
550
553
|
* Delete a folder.
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/services/base_service.ts","../src/services/tagging_service.ts","../src/services/user_settings.ts","../src/services/highlevel/tagging/user_folders.ts"],"sourcesContent":["export * from 'services/tagging_service.js';\nexport * from 'services/user_settings.js';\nexport * from 'services/highlevel/tagging/user_folders.js';\n","class HTTPError extends Error {\n public response: Response;\n \n constructor(message: string, response: Response) {\n super();\n this.message = message;\n this.response = response;\n }\n}\n\nexport class BaseService {\n public bearerToken: string | undefined;\n public apiKey: string | undefined;\n public serviceUrl: string | undefined;\n public environment: string;\n public myAccountId: string;\n public baseDomain: string;\n\n constructor({\n bearerToken = undefined,\n apiKey = undefined,\n serviceUrl = undefined,\n environment = 'production',\n myAccountId = 'SYSTIMEMYACCOUNT',\n baseDomain = 'systime.dk',\n } : {\n bearerToken?: string,\n apiKey?: string,\n serviceUrl?: string,\n environment: string,\n myAccountId: string,\n baseDomain?: string\n }) {\n this.bearerToken = bearerToken;\n this.apiKey = apiKey;\n this.serviceUrl = serviceUrl;\n this.environment = environment;\n this.myAccountId = myAccountId;\n this.baseDomain = baseDomain;\n }\n\n protected discoverUrlPrefix(): string {\n throw new Error('Method not implemented.');\n }\n\n public getUrlPrefix(): string {\n // If the URL has been explicitly set, return it.\n if (this.serviceUrl) {\n return this.serviceUrl;\n }\n return this.discoverUrlPrefix()\n }\n\n public async addAuthHeaders(requestHeaders: Headers): Promise<Headers> {\n if (this.bearerToken) {\n requestHeaders.set('Authorization', `Bearer ${this.bearerToken}`);\n } else if (this.apiKey) {\n requestHeaders.set('x-api-key', this.apiKey);\n }\n return requestHeaders;\n }\n\n async getAsync(\n {\n url,\n headers,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<object> {\n const method = 'GET';\n const response = await this.callAsync({ url, body: null, method, headers, timeout });\n return response.json();\n }\n\n async putAsync(\n {\n url,\n headers,\n body,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n body: string | null | undefined,\n timeout: number\n }\n ): Promise<object> {\n const method = 'PUT';\n const response = await this.callAsync({ url, body, method, headers, timeout });\n return response.json();\n }\n\n async postAsync(\n {\n url,\n headers,\n body,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n body: string | null | undefined,\n timeout: number\n }\n ): Promise<object> {\n const method = 'POST';\n const response = await this.callAsync({ url, body, method, headers, timeout });\n return response.json();\n }\n\n async deleteAsync(\n {\n url,\n headers,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<object> {\n const method = 'DELETE';\n const response = await this.callAsync({ url, body: null, method, headers, timeout });\n return response.json();\n }\n\n async callAsync(\n {\n url,\n body,\n method,\n headers,\n timeout\n }:\n {\n url: URL | string,\n body: string | null | undefined,\n method: string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<Response> {\n if (!headers) {\n headers = new Headers();\n }\n\n headers = await this.addAuthHeaders(headers);\n const response = await fetch(url, {\n\t method: method,\n body: body,\n headers: headers,\n signal: AbortSignal.timeout(timeout)\n });\n\n if (!response.ok) {\n\t\tthrow new HTTPError(`Got ${response.status} while calling ${response.url}`, response);\n }\n return response;\n }\n}\nexport default BaseService;\n","import BaseService from './base_service.js';\n\nexport interface Tag {\n identity: string;\n resource_type: string;\n resource_name: string;\n tag_name: string;\n tag_value: string;\n}\n\nexport interface TagOutput extends Tag {\n created_at: number;\n}\n\nexport class TaggingService extends BaseService {\n discoverUrlPrefix(): string {\n switch (this.environment) {\n case 'local':\n return 'http://localhost:4000';\n case 'production':\n return `https://tagging.services.${this.baseDomain}`;\n case 'staging':\n return `https://${this.environment}-tagging.services.${this.baseDomain}`;\n default:\n throw new Error(`Unknown environment: ${this.environment}`);\n }\n };\n\n async getTagsByResource(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n tag_name?: string,\n resource_type?: string,\n resource_name?: string,\n timeout?: number\n }\n ): Promise<Tag[]> {\n const url = `${this.getUrlPrefix()}/tags/by_resource/${identity}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}${tag_name ? `/${tag_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n return await this.getAsync({url, headers, timeout}) as TagOutput[];\n }\n\n async getTagsByName(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n tag_name: string,\n resource_type?: string,\n resource_name?: string,\n timeout?: number\n }\n ): Promise<TagOutput[]> {\n const url = `${this.getUrlPrefix()}/tags/by_tag_name/${identity}/${tag_name}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n return await this.getAsync({url, headers, timeout}) as TagOutput[];\n }\n\n async createTag(\n {\n tag,\n timeout = 3000\n }:\n {\n tag: Tag,\n timeout?: number\n }\n ): Promise<TagOutput> {\n const url = `${this.getUrlPrefix()}/tags`;\n const headers: HeadersInit = new Headers();\n\n headers.append('Content-Type', \"application/json\");\n return await this.postAsync({url, headers, body: JSON.stringify(tag), timeout}) as TagOutput;\n }\n\n async updateTag(\n {\n tag,\n timeout = 3000\n }:\n {\n tag: Tag,\n timeout?: number\n }\n ): Promise<TagOutput> {\n const url = `${this.getUrlPrefix()}/tags`;\n const headers: HeadersInit = new Headers();\n\n headers.append('Content-Type', \"application/json\");\n return await this.putAsync({url, headers, body: JSON.stringify(tag), timeout}) as TagOutput;\n }\n\n async deleteTag(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n resource_type?: string,\n resource_name?: string,\n tag_name?: string,\n timeout?: number\n }\n ): Promise<void> {\n const url = `${this.getUrlPrefix()}/tags/${identity}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}${tag_name ? `/${tag_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n await this.deleteAsync({url, headers, timeout});\n }\n}\n\nexport default TaggingService;\n","import BaseService from './base_service.js';\n\nexport class UserSettings extends BaseService {\n discoverUrlPrefix(): string {\n switch (this.environment) {\n case 'local':\n return 'http://localhost:4000';\n case 'production':\n return `https://user-settings-service.services.${this.baseDomain}`;\n case 'staging':\n return `https://${this.environment}-user-settings-service.services.${this.baseDomain}`;\n default:\n throw new Error(`Unknown environment: ${this.environment}`);\n }\n }\n\n async getSettings(\n {\n isbn,\n timeout = 5000\n }:\n {\n isbn: string,\n timeout?: number\n }\n ): Promise<object> {\n const url = `${this.getUrlPrefix()}/clientsettings/isbn/${isbn}`;\n const headers: HeadersInit = new Headers();\n\n return await this.getAsync({url, headers, timeout});\n }\n\n async setSettings(\n {\n isbn,\n settings,\n timeout = 5000\n }: \n {\n isbn: string,\n settings: object,\n timeout?: number\n }\n ): Promise<object> {\n const url = `${this.getUrlPrefix()}/clientsettings/isbn/${isbn}`;\n const headers: HeadersInit = new Headers();\n\n headers.set('Content-Type', 'application/json');\n return await this.putAsync({url, headers, body: JSON.stringify(settings), timeout});\n }\n}\n\nexport default UserSettings;\n","import TaggingService from '../../tagging_service.js';\nimport {v4 as uuidv4} from 'uuid';\n\nexport interface FolderObject {\n created_at: number;\n}\n\nexport interface Folder extends FolderObject {\n name: string;\n color: string;\n uuid: string;\n parent?: string;\n}\n\nexport interface FolderContent extends FolderObject {\n type: string;\n identifier: string;\n folder_uuid: string;\n}\n\n/**\n * UserFolders is a service that allows users to create folders in their account. It's built on top of the Tagging service.\n * Folders are created with a name and an optional parent folder. If no parent folder is provided, the folder is created at the root level.\n * Folders are created with a unique UUID that can be used to reference the folder in future requests. The folder properties are stored as a base64 encoded JSON string.\n**/\nexport class UserFolders extends TaggingService {\n private readonly hasNoParent: string = '-';\n private identity?: string = undefined;\n\n async getIdentity() : Promise<string> {\n if (this.identity) {\n return this.identity;\n }\n\n if (this.bearerToken) {\n const tokenParts = this.bearerToken.split('.');\n const payload = Buffer.from(tokenParts[1], 'base64').toString();\n const payloadObject = JSON.parse(payload);\n // The identity is the keyword user, the user's authns and the ekeysuserid (user) concatenated with an underscore\n // This value is enforced by the Tagging service and this is the only identity\n // that the Service will accept when invoked with a user specific bearer token.\n return `user_${payloadObject.authns}_${payloadObject.user}`;\n }\n\n throw new Error('The UserFolders service must be invoked with a valid bearer token');\n }\n\n /**\n * Create a folder.\n * @param folder_name The name of the folder.\n * @param parent_folder_uuid The UUID of the parent folder. If no parent folder is provided, the folder is created at the root level.\n * @param color The color of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder\n **/\n async createFolder(\n {\n folder_name,\n parent_folder_uuid,\n color,\n timeout = 3000\n }:\n {\n folder_name: string,\n color: string,\n parent_folder_uuid?: string,\n timeout?: number\n }\n ): Promise<Folder> {\n const folder_payload = JSON.stringify({\"folder\": folder_name, \"color\": color});\n const tag = await this.createTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: uuidv4(),\n tag_name: parent_folder_uuid ?? this.hasNoParent,\n tag_value: Buffer.from(folder_payload).toString('base64'),\n },\n timeout\n }\n );\n return {name: folder_name, uuid: tag['resource_name'], parent: parent_folder_uuid} as Folder;\n }\n\n /**\n * Update a folder. Only name and color can be changed.\n *\n * @param folder_uuid The UUID of the folder.\n * @param folder_name The new name of the folder.\n * @param color The new color of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder\n **/\n async updateFolder(\n {\n folder_uuid,\n folder_name,\n color,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n folder_name?: string,\n color?: string,\n timeout?: number\n }\n ): Promise<Folder> {\n const tags = await this.getTagsByResource(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n timeout\n }\n );\n\n if (tags.length === 0) {\n throw new Error(`Folder with UUID ${folder_uuid} not found`);\n }\n\n const tag = tags[0];\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n const new_folder_name = folder_name ?? folder_payload['folder'];\n const new_color = color ?? folder_payload['color'];\n\n const new_folder_payload = JSON.stringify({\"folder\": new_folder_name, \"color\": new_color});\n\n await this.updateTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n tag_name: tag['tag_name'],\n tag_value: Buffer.from(new_folder_payload).toString('base64'),\n },\n timeout\n }\n );\n\n const parent = tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name'];\n return {name: new_folder_name, uuid: folder_uuid, parent: parent} as Folder;\n }\n\n /**\n * List all folders in the user's account.\n * \n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder[]\n **/\n async listAllFolders(\n {\n timeout = 3000\n }:\n {\n timeout?: number\n }\n ): Promise<Folder[]> {\n const tags = await this.getTagsByResource(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n timeout\n }\n );\n\n let folders = [];\n\n for (const tag of tags) {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n folders.push(\n {\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name']\n } as Folder\n );\n }\n\n return folders;\n }\n\n /**\n * List the next level of folders in the user's account.\n *\n * @param parent_folder_uuid The UUID of the parent folder. If no parent folder is provided, the folder is created at the root level.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder[]\n **/\n async listNextFolderLevel(\n {\n parent_folder_uuid,\n timeout = 3000\n }:\n {\n parent_folder_uuid?: string,\n timeout?: number\n }\n ): Promise<Folder[]> {\n let tags;\n if (!parent_folder_uuid) {\n parent_folder_uuid = this.hasNoParent;\n }\n\n tags = await this.getTagsByName(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n tag_name: parent_folder_uuid,\n timeout\n }\n );\n\n let folders = [];\n\n for (const tag of tags) {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n folders.push(\n {\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name']\n } as Folder\n );\n }\n\n return folders;\n }\n\n /**\n * List the content of a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent[]\n **/\n async getFolderContent(\n {\n folder_uuid,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n timeout?: number\n }\n ): Promise<FolderObject[]> {\n let tags = await this.getTagsByName(\n {\n identity: await this.getIdentity(),\n tag_name: folder_uuid,\n timeout\n }\n );\n\n let content = [];\n\n for (const tag of tags) {\n if (tag['resource_type'] === 'myaccount_user_folder') {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n content.push({\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name']\n } as Folder)\n } else {\n content.push(\n {\n type: tag['resource_type'],\n identifier: tag['resource_name'],\n folder_uuid: tag['tag_name']\n } as FolderContent\n );\n }\n }\n\n return content;\n }\n\n /**\n * Add a book to a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param isbn The ISBN of the book.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async addInternetbookToFolder(\n {\n folder_uuid,\n isbn,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n isbn: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n return await this.addContentToFolder(\n {\n folder_uuid,\n resource_type: 'internetbook',\n resource_name: isbn,\n timeout\n },\n );\n }\n\n /**\n * Remove a book from a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param isbn The ISBN of the book.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async removeInternetbookFromFolder(\n {\n folder_uuid,\n isbn,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n isbn: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n return await this.removeContentFromFolder(\n {\n folder_uuid,\n resource_type: 'internetbook',\n resource_name: isbn,\n timeout\n },\n );\n }\n\n /**\n * Create a new folder content element.\n *\n * @param folder_uuid The UUID of the folder.\n * @param resource_name The name of the resource.\n * @param resource_type The type of the resource.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async addContentToFolder(\n {\n folder_uuid,\n resource_type,\n resource_name,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n resource_name: string,\n resource_type: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n await this.createTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: resource_type,\n resource_name: resource_name,\n tag_name: folder_uuid,\n tag_value: 'MYACCOUNT_USER_FOLDER'\n },\n timeout\n }\n );\n return {type: resource_type, identifier: resource_name, folder_uuid} as FolderContent;\n }\n\n /**\n * Create a new folder content element.\n *\n * @param folder_uuid The UUID of the folder.\n * @param resource_name The name of the resource.\n * @param resource_type The type of the resource.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async removeContentFromFolder(\n {\n folder_uuid,\n resource_name,\n resource_type,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n resource_name: string,\n resource_type: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: resource_type,\n resource_name: resource_name,\n tag_name: folder_uuid,\n timeout\n }\n );\n return {type: resource_type, identifier: resource_name, folder_uuid} as FolderContent;\n }\n\n /**\n * Delete a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async deleteFolder(\n {\n folder_uuid,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n timeout\n }\n );\n }\n\n /**\n * Delete all folders. Note, this will not delete the content of the folders.\n *\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async deleteAllFolders(\n {\n timeout = 3000\n }:\n {\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n timeout\n }\n );\n }\n}\n\nexport default UserFolders;\n"],"mappings":"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","names":["uuidv4"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/services/base_service.ts","../src/services/tagging_service.ts","../src/services/user_settings.ts","../src/services/highlevel/tagging/user_folders.ts"],"sourcesContent":["export * from 'services/tagging_service.js';\nexport * from 'services/user_settings.js';\nexport * from 'services/highlevel/tagging/user_folders.js';\n","class HTTPError extends Error {\n public response: Response;\n \n constructor(message: string, response: Response) {\n super();\n this.message = message;\n this.response = response;\n }\n}\n\nexport class BaseService {\n public bearerToken: string | undefined;\n public apiKey: string | undefined;\n public serviceUrl: string | undefined;\n public environment: string;\n public myAccountId: string;\n public baseDomain: string;\n\n constructor({\n bearerToken = undefined,\n apiKey = undefined,\n serviceUrl = undefined,\n environment = 'production',\n myAccountId = 'SYSTIMEMYACCOUNT',\n baseDomain = 'systime.dk',\n } : {\n bearerToken?: string,\n apiKey?: string,\n serviceUrl?: string,\n environment: string,\n myAccountId: string,\n baseDomain?: string\n }) {\n this.bearerToken = bearerToken;\n this.apiKey = apiKey;\n this.serviceUrl = serviceUrl;\n this.environment = environment;\n this.myAccountId = myAccountId;\n this.baseDomain = baseDomain;\n }\n\n protected discoverUrlPrefix(): string {\n throw new Error('Method not implemented.');\n }\n\n public getUrlPrefix(): string {\n // If the URL has been explicitly set, return it.\n if (this.serviceUrl) {\n return this.serviceUrl;\n }\n return this.discoverUrlPrefix()\n }\n\n public async addAuthHeaders(requestHeaders: Headers): Promise<Headers> {\n if (this.bearerToken) {\n requestHeaders.set('Authorization', `Bearer ${this.bearerToken}`);\n } else if (this.apiKey) {\n requestHeaders.set('x-api-key', this.apiKey);\n }\n return requestHeaders;\n }\n\n async getAsync(\n {\n url,\n headers,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<object> {\n const method = 'GET';\n const response = await this.callAsync({ url, body: null, method, headers, timeout });\n return response.json();\n }\n\n async putAsync(\n {\n url,\n headers,\n body,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n body: string | null | undefined,\n timeout: number\n }\n ): Promise<object> {\n const method = 'PUT';\n const response = await this.callAsync({ url, body, method, headers, timeout });\n return response.json();\n }\n\n async postAsync(\n {\n url,\n headers,\n body,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n body: string | null | undefined,\n timeout: number\n }\n ): Promise<object> {\n const method = 'POST';\n const response = await this.callAsync({ url, body, method, headers, timeout });\n return response.json();\n }\n\n async deleteAsync(\n {\n url,\n headers,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<object> {\n const method = 'DELETE';\n const response = await this.callAsync({ url, body: null, method, headers, timeout });\n return response.json();\n }\n\n async callAsync(\n {\n url,\n body,\n method,\n headers,\n timeout\n }:\n {\n url: URL | string,\n body: string | null | undefined,\n method: string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<Response> {\n if (!headers) {\n headers = new Headers();\n }\n\n headers = await this.addAuthHeaders(headers);\n const response = await fetch(url, {\n\t method: method,\n body: body,\n headers: headers,\n signal: AbortSignal.timeout(timeout)\n });\n\n if (!response.ok) {\n\t\tthrow new HTTPError(`Got ${response.status} while calling ${response.url}`, response);\n }\n return response;\n }\n}\nexport default BaseService;\n","import BaseService from './base_service.js';\n\nexport interface Tag {\n identity: string;\n resource_type: string;\n resource_name: string;\n tag_name: string;\n tag_value: string;\n}\n\nexport interface TagOutput extends Tag {\n created_at: number;\n}\n\nexport class TaggingService extends BaseService {\n discoverUrlPrefix(): string {\n switch (this.environment) {\n case 'local':\n return 'http://localhost:4000';\n case 'production':\n return `https://tagging.services.${this.baseDomain}`;\n case 'staging':\n return `https://${this.environment}-tagging.services.${this.baseDomain}`;\n default:\n throw new Error(`Unknown environment: ${this.environment}`);\n }\n };\n\n async getTagsByResource(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n tag_name?: string,\n resource_type?: string,\n resource_name?: string,\n timeout?: number\n }\n ): Promise<TagOutput[]> {\n const url = `${this.getUrlPrefix()}/tags/by_resource/${identity}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}${tag_name ? `/${tag_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n return await this.getAsync({url, headers, timeout}) as TagOutput[];\n }\n\n async getTagsByName(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n tag_name: string,\n resource_type?: string,\n resource_name?: string,\n timeout?: number\n }\n ): Promise<TagOutput[]> {\n const url = `${this.getUrlPrefix()}/tags/by_tag_name/${identity}/${tag_name}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n return await this.getAsync({url, headers, timeout}) as TagOutput[];\n }\n\n async createTag(\n {\n tag,\n timeout = 3000\n }:\n {\n tag: Tag,\n timeout?: number\n }\n ): Promise<TagOutput> {\n const url = `${this.getUrlPrefix()}/tags`;\n const headers: HeadersInit = new Headers();\n\n headers.append('Content-Type', \"application/json\");\n return await this.postAsync({url, headers, body: JSON.stringify(tag), timeout}) as TagOutput;\n }\n\n async updateTag(\n {\n tag,\n timeout = 3000\n }:\n {\n tag: Tag,\n timeout?: number\n }\n ): Promise<TagOutput> {\n const url = `${this.getUrlPrefix()}/tags`;\n const headers: HeadersInit = new Headers();\n\n headers.append('Content-Type', \"application/json\");\n return await this.putAsync({url, headers, body: JSON.stringify(tag), timeout}) as TagOutput;\n }\n\n async deleteTag(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n resource_type?: string,\n resource_name?: string,\n tag_name?: string,\n timeout?: number\n }\n ): Promise<void> {\n const url = `${this.getUrlPrefix()}/tags/${identity}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}${tag_name ? `/${tag_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n await this.deleteAsync({url, headers, timeout});\n }\n}\n\nexport default TaggingService;\n","import BaseService from './base_service.js';\n\nexport class UserSettings extends BaseService {\n discoverUrlPrefix(): string {\n switch (this.environment) {\n case 'local':\n return 'http://localhost:4000';\n case 'production':\n return `https://user-settings-service.services.${this.baseDomain}`;\n case 'staging':\n return `https://${this.environment}-user-settings-service.services.${this.baseDomain}`;\n default:\n throw new Error(`Unknown environment: ${this.environment}`);\n }\n }\n\n async getSettings(\n {\n isbn,\n timeout = 5000\n }:\n {\n isbn: string,\n timeout?: number\n }\n ): Promise<object> {\n const url = `${this.getUrlPrefix()}/clientsettings/isbn/${isbn}`;\n const headers: HeadersInit = new Headers();\n\n return await this.getAsync({url, headers, timeout});\n }\n\n async setSettings(\n {\n isbn,\n settings,\n timeout = 5000\n }: \n {\n isbn: string,\n settings: object,\n timeout?: number\n }\n ): Promise<object> {\n const url = `${this.getUrlPrefix()}/clientsettings/isbn/${isbn}`;\n const headers: HeadersInit = new Headers();\n\n headers.set('Content-Type', 'application/json');\n return await this.putAsync({url, headers, body: JSON.stringify(settings), timeout});\n }\n}\n\nexport default UserSettings;\n","import TaggingService from '../../tagging_service.js';\nimport {v4 as uuidv4} from 'uuid';\n\nexport interface FolderObject {\n created_at: number;\n}\n\nexport interface Folder extends FolderObject {\n name: string;\n color: string;\n uuid: string;\n parent?: string;\n}\n\nexport interface FolderContent extends FolderObject {\n type: string;\n identifier: string;\n folder_uuid: string;\n}\n\n/**\n * UserFolders is a service that allows users to create folders in their account. It's built on top of the Tagging service.\n * Folders are created with a name and an optional parent folder. If no parent folder is provided, the folder is created at the root level.\n * Folders are created with a unique UUID that can be used to reference the folder in future requests. The folder properties are stored as a base64 encoded JSON string.\n**/\nexport class UserFolders extends TaggingService {\n private readonly hasNoParent: string = '-';\n private identity?: string = undefined;\n\n async getIdentity() : Promise<string> {\n if (this.identity) {\n return this.identity;\n }\n\n if (this.bearerToken) {\n const tokenParts = this.bearerToken.split('.');\n const payload = Buffer.from(tokenParts[1], 'base64').toString();\n const payloadObject = JSON.parse(payload);\n // The identity is the keyword user, the user's authns and the ekeysuserid (user) concatenated with an underscore\n // This value is enforced by the Tagging service and this is the only identity\n // that the Service will accept when invoked with a user specific bearer token.\n return `user_${payloadObject.authns}_${payloadObject.user}`;\n }\n\n throw new Error('The UserFolders service must be invoked with a valid bearer token');\n }\n\n /**\n * Create a folder.\n * @param folder_name The name of the folder.\n * @param parent_folder_uuid The UUID of the parent folder. If no parent folder is provided, the folder is created at the root level.\n * @param color The color of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder\n **/\n async createFolder(\n {\n folder_name,\n parent_folder_uuid,\n color,\n timeout = 3000\n }:\n {\n folder_name: string,\n color: string,\n parent_folder_uuid?: string,\n timeout?: number\n }\n ): Promise<Folder> {\n const folder_payload = JSON.stringify({\"folder\": folder_name, \"color\": color});\n const tag = await this.createTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: uuidv4(),\n tag_name: parent_folder_uuid ?? this.hasNoParent,\n tag_value: Buffer.from(folder_payload).toString('base64'),\n },\n timeout\n }\n );\n return {name: folder_name, uuid: tag['resource_name'], parent: parent_folder_uuid, created_at: tag['created_at']} as Folder;\n }\n\n /**\n * Update a folder. Only name and color can be changed.\n *\n * @param folder_uuid The UUID of the folder.\n * @param folder_name The new name of the folder.\n * @param color The new color of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder\n **/\n async updateFolder(\n {\n folder_uuid,\n folder_name,\n color,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n folder_name?: string,\n color?: string,\n timeout?: number\n }\n ): Promise<Folder> {\n const tags = await this.getTagsByResource(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n timeout\n }\n );\n\n if (tags.length === 0) {\n throw new Error(`Folder with UUID ${folder_uuid} not found`);\n }\n\n const tag = tags[0];\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n const new_folder_name = folder_name ?? folder_payload['folder'];\n const new_color = color ?? folder_payload['color'];\n\n const new_folder_payload = JSON.stringify({\"folder\": new_folder_name, \"color\": new_color});\n\n const updatedTag = await this.updateTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n tag_name: tag['tag_name'],\n tag_value: Buffer.from(new_folder_payload).toString('base64'),\n },\n timeout\n }\n );\n\n const parent = tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name'];\n return {name: new_folder_name, uuid: folder_uuid, parent: parent, created_at: updatedTag['created_at']} as Folder;\n }\n\n /**\n * List all folders in the user's account.\n * \n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder[]\n **/\n async listAllFolders(\n {\n timeout = 3000\n }:\n {\n timeout?: number\n }\n ): Promise<Folder[]> {\n const tags = await this.getTagsByResource(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n timeout\n }\n );\n\n let folders = [];\n\n for (const tag of tags) {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n folders.push(\n {\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name'],\n created_at: tag['created_at']\n } as Folder\n );\n }\n\n return folders;\n }\n\n /**\n * List the next level of folders in the user's account.\n *\n * @param parent_folder_uuid The UUID of the parent folder. If no parent folder is provided, the folder is created at the root level.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder[]\n **/\n async listNextFolderLevel(\n {\n parent_folder_uuid,\n timeout = 3000\n }:\n {\n parent_folder_uuid?: string,\n timeout?: number\n }\n ): Promise<Folder[]> {\n let tags;\n if (!parent_folder_uuid) {\n parent_folder_uuid = this.hasNoParent;\n }\n\n tags = await this.getTagsByName(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n tag_name: parent_folder_uuid,\n timeout\n }\n );\n\n let folders = [];\n\n for (const tag of tags) {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n folders.push(\n {\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name'],\n created_at: tag['created_at']\n } as Folder\n );\n }\n\n return folders;\n }\n\n /**\n * List the content of a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent[]\n **/\n async getFolderContent(\n {\n folder_uuid,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n timeout?: number\n }\n ): Promise<FolderObject[]> {\n let tags = await this.getTagsByName(\n {\n identity: await this.getIdentity(),\n tag_name: folder_uuid,\n timeout\n }\n );\n\n let content = [];\n\n for (const tag of tags) {\n if (tag['resource_type'] === 'myaccount_user_folder') {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n content.push({\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'],\n created_at: tag['created_at']\n } as Folder)\n } else {\n content.push(\n {\n type: tag['resource_type'],\n identifier: tag['resource_name'],\n folder_uuid: tag['tag_name'],\n created_at: tag['created_at']\n } as FolderContent\n );\n }\n }\n\n return content;\n }\n\n /**\n * Add a book to a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param isbn The ISBN of the book.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async addInternetbookToFolder(\n {\n folder_uuid,\n isbn,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n isbn: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n return await this.addContentToFolder(\n {\n folder_uuid,\n resource_type: 'internetbook',\n resource_name: isbn,\n timeout\n },\n );\n }\n\n /**\n * Remove a book from a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param isbn The ISBN of the book.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async removeInternetbookFromFolder(\n {\n folder_uuid,\n isbn,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n isbn: string,\n timeout?: number\n }\n ): Promise<void> {\n await this.removeContentFromFolder(\n {\n folder_uuid,\n resource_type: 'internetbook',\n resource_name: isbn,\n timeout\n },\n );\n }\n\n /**\n * Create a new folder content element.\n *\n * @param folder_uuid The UUID of the folder.\n * @param resource_name The name of the resource.\n * @param resource_type The type of the resource.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async addContentToFolder(\n {\n folder_uuid,\n resource_type,\n resource_name,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n resource_name: string,\n resource_type: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n const tag = await this.createTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: resource_type,\n resource_name: resource_name,\n tag_name: folder_uuid,\n tag_value: 'MYACCOUNT_USER_FOLDER'\n },\n timeout\n }\n );\n return {type: resource_type, identifier: resource_name, folder_uuid, created_at: tag['created_at']} as FolderContent;\n }\n\n /**\n * Remove a folder content element.\n *\n * @param folder_uuid The UUID of the folder.\n * @param resource_name The name of the resource.\n * @param resource_type The type of the resource.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async removeContentFromFolder(\n {\n folder_uuid,\n resource_name,\n resource_type,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n resource_name: string,\n resource_type: string,\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: resource_type,\n resource_name: resource_name,\n tag_name: folder_uuid,\n timeout\n }\n );\n }\n\n /**\n * Delete a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async deleteFolder(\n {\n folder_uuid,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n timeout\n }\n );\n }\n\n /**\n * Delete all folders. Note, this will not delete the content of the folders.\n *\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async deleteAllFolders(\n {\n timeout = 3000\n }:\n {\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n timeout\n }\n );\n }\n}\n\nexport default UserFolders;\n"],"mappings":"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","names":["uuidv4"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -65,7 +65,7 @@ declare class TaggingService extends BaseService {
|
|
|
65
65
|
resource_type?: string;
|
|
66
66
|
resource_name?: string;
|
|
67
67
|
timeout?: number;
|
|
68
|
-
}): Promise<
|
|
68
|
+
}): Promise<TagOutput[]>;
|
|
69
69
|
getTagsByName({ identity, resource_type, resource_name, tag_name, timeout }: {
|
|
70
70
|
identity: string;
|
|
71
71
|
tag_name: string;
|
|
@@ -212,13 +212,13 @@ declare class UserFolders extends TaggingService {
|
|
|
212
212
|
* @param isbn The ISBN of the book.
|
|
213
213
|
* @param timeout The timeout for the request in milliseconds.
|
|
214
214
|
*
|
|
215
|
-
* @return
|
|
215
|
+
* @return void
|
|
216
216
|
**/
|
|
217
217
|
removeInternetbookFromFolder({ folder_uuid, isbn, timeout }: {
|
|
218
218
|
folder_uuid: string;
|
|
219
219
|
isbn: string;
|
|
220
220
|
timeout?: number;
|
|
221
|
-
}): Promise<
|
|
221
|
+
}): Promise<void>;
|
|
222
222
|
/**
|
|
223
223
|
* Create a new folder content element.
|
|
224
224
|
*
|
|
@@ -236,21 +236,21 @@ declare class UserFolders extends TaggingService {
|
|
|
236
236
|
timeout?: number;
|
|
237
237
|
}): Promise<FolderContent>;
|
|
238
238
|
/**
|
|
239
|
-
*
|
|
239
|
+
* Remove a folder content element.
|
|
240
240
|
*
|
|
241
241
|
* @param folder_uuid The UUID of the folder.
|
|
242
242
|
* @param resource_name The name of the resource.
|
|
243
243
|
* @param resource_type The type of the resource.
|
|
244
244
|
* @param timeout The timeout for the request in milliseconds.
|
|
245
245
|
*
|
|
246
|
-
* @return
|
|
246
|
+
* @return void
|
|
247
247
|
**/
|
|
248
248
|
removeContentFromFolder({ folder_uuid, resource_name, resource_type, timeout }: {
|
|
249
249
|
folder_uuid: string;
|
|
250
250
|
resource_name: string;
|
|
251
251
|
resource_type: string;
|
|
252
252
|
timeout?: number;
|
|
253
|
-
}): Promise<
|
|
253
|
+
}): Promise<void>;
|
|
254
254
|
/**
|
|
255
255
|
* Delete a folder.
|
|
256
256
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ declare class TaggingService extends BaseService {
|
|
|
65
65
|
resource_type?: string;
|
|
66
66
|
resource_name?: string;
|
|
67
67
|
timeout?: number;
|
|
68
|
-
}): Promise<
|
|
68
|
+
}): Promise<TagOutput[]>;
|
|
69
69
|
getTagsByName({ identity, resource_type, resource_name, tag_name, timeout }: {
|
|
70
70
|
identity: string;
|
|
71
71
|
tag_name: string;
|
|
@@ -212,13 +212,13 @@ declare class UserFolders extends TaggingService {
|
|
|
212
212
|
* @param isbn The ISBN of the book.
|
|
213
213
|
* @param timeout The timeout for the request in milliseconds.
|
|
214
214
|
*
|
|
215
|
-
* @return
|
|
215
|
+
* @return void
|
|
216
216
|
**/
|
|
217
217
|
removeInternetbookFromFolder({ folder_uuid, isbn, timeout }: {
|
|
218
218
|
folder_uuid: string;
|
|
219
219
|
isbn: string;
|
|
220
220
|
timeout?: number;
|
|
221
|
-
}): Promise<
|
|
221
|
+
}): Promise<void>;
|
|
222
222
|
/**
|
|
223
223
|
* Create a new folder content element.
|
|
224
224
|
*
|
|
@@ -236,21 +236,21 @@ declare class UserFolders extends TaggingService {
|
|
|
236
236
|
timeout?: number;
|
|
237
237
|
}): Promise<FolderContent>;
|
|
238
238
|
/**
|
|
239
|
-
*
|
|
239
|
+
* Remove a folder content element.
|
|
240
240
|
*
|
|
241
241
|
* @param folder_uuid The UUID of the folder.
|
|
242
242
|
* @param resource_name The name of the resource.
|
|
243
243
|
* @param resource_type The type of the resource.
|
|
244
244
|
* @param timeout The timeout for the request in milliseconds.
|
|
245
245
|
*
|
|
246
|
-
* @return
|
|
246
|
+
* @return void
|
|
247
247
|
**/
|
|
248
248
|
removeContentFromFolder({ folder_uuid, resource_name, resource_type, timeout }: {
|
|
249
249
|
folder_uuid: string;
|
|
250
250
|
resource_name: string;
|
|
251
251
|
resource_type: string;
|
|
252
252
|
timeout?: number;
|
|
253
|
-
}): Promise<
|
|
253
|
+
}): Promise<void>;
|
|
254
254
|
/**
|
|
255
255
|
* Delete a folder.
|
|
256
256
|
*
|
package/dist/index.js
CHANGED
|
@@ -256,7 +256,7 @@ var UserFolders = class extends tagging_service_default {
|
|
|
256
256
|
timeout
|
|
257
257
|
}
|
|
258
258
|
);
|
|
259
|
-
return { name: folder_name, uuid: tag["resource_name"], parent: parent_folder_uuid };
|
|
259
|
+
return { name: folder_name, uuid: tag["resource_name"], parent: parent_folder_uuid, created_at: tag["created_at"] };
|
|
260
260
|
}
|
|
261
261
|
/**
|
|
262
262
|
* Update a folder. Only name and color can be changed.
|
|
@@ -290,7 +290,7 @@ var UserFolders = class extends tagging_service_default {
|
|
|
290
290
|
const new_folder_name = folder_name ?? folder_payload["folder"];
|
|
291
291
|
const new_color = color ?? folder_payload["color"];
|
|
292
292
|
const new_folder_payload = JSON.stringify({ "folder": new_folder_name, "color": new_color });
|
|
293
|
-
await this.updateTag(
|
|
293
|
+
const updatedTag = await this.updateTag(
|
|
294
294
|
{
|
|
295
295
|
tag: {
|
|
296
296
|
identity: await this.getIdentity(),
|
|
@@ -303,7 +303,7 @@ var UserFolders = class extends tagging_service_default {
|
|
|
303
303
|
}
|
|
304
304
|
);
|
|
305
305
|
const parent = tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"];
|
|
306
|
-
return { name: new_folder_name, uuid: folder_uuid, parent };
|
|
306
|
+
return { name: new_folder_name, uuid: folder_uuid, parent, created_at: updatedTag["created_at"] };
|
|
307
307
|
}
|
|
308
308
|
/**
|
|
309
309
|
* List all folders in the user's account.
|
|
@@ -330,7 +330,8 @@ var UserFolders = class extends tagging_service_default {
|
|
|
330
330
|
name: folder_payload["folder"],
|
|
331
331
|
color: folder_payload["color"],
|
|
332
332
|
uuid: tag["resource_name"],
|
|
333
|
-
parent: tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"]
|
|
333
|
+
parent: tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"],
|
|
334
|
+
created_at: tag["created_at"]
|
|
334
335
|
}
|
|
335
336
|
);
|
|
336
337
|
}
|
|
@@ -368,7 +369,8 @@ var UserFolders = class extends tagging_service_default {
|
|
|
368
369
|
name: folder_payload["folder"],
|
|
369
370
|
color: folder_payload["color"],
|
|
370
371
|
uuid: tag["resource_name"],
|
|
371
|
-
parent: tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"]
|
|
372
|
+
parent: tag["tag_name"] === this.hasNoParent ? void 0 : tag["tag_name"],
|
|
373
|
+
created_at: tag["created_at"]
|
|
372
374
|
}
|
|
373
375
|
);
|
|
374
376
|
}
|
|
@@ -401,14 +403,16 @@ var UserFolders = class extends tagging_service_default {
|
|
|
401
403
|
name: folder_payload["folder"],
|
|
402
404
|
color: folder_payload["color"],
|
|
403
405
|
uuid: tag["resource_name"],
|
|
404
|
-
parent: tag["tag_name"]
|
|
406
|
+
parent: tag["tag_name"],
|
|
407
|
+
created_at: tag["created_at"]
|
|
405
408
|
});
|
|
406
409
|
} else {
|
|
407
410
|
content.push(
|
|
408
411
|
{
|
|
409
412
|
type: tag["resource_type"],
|
|
410
413
|
identifier: tag["resource_name"],
|
|
411
|
-
folder_uuid: tag["tag_name"]
|
|
414
|
+
folder_uuid: tag["tag_name"],
|
|
415
|
+
created_at: tag["created_at"]
|
|
412
416
|
}
|
|
413
417
|
);
|
|
414
418
|
}
|
|
@@ -445,14 +449,14 @@ var UserFolders = class extends tagging_service_default {
|
|
|
445
449
|
* @param isbn The ISBN of the book.
|
|
446
450
|
* @param timeout The timeout for the request in milliseconds.
|
|
447
451
|
*
|
|
448
|
-
* @return
|
|
452
|
+
* @return void
|
|
449
453
|
**/
|
|
450
454
|
async removeInternetbookFromFolder({
|
|
451
455
|
folder_uuid,
|
|
452
456
|
isbn,
|
|
453
457
|
timeout = 3e3
|
|
454
458
|
}) {
|
|
455
|
-
|
|
459
|
+
await this.removeContentFromFolder(
|
|
456
460
|
{
|
|
457
461
|
folder_uuid,
|
|
458
462
|
resource_type: "internetbook",
|
|
@@ -477,7 +481,7 @@ var UserFolders = class extends tagging_service_default {
|
|
|
477
481
|
resource_name,
|
|
478
482
|
timeout = 3e3
|
|
479
483
|
}) {
|
|
480
|
-
await this.createTag(
|
|
484
|
+
const tag = await this.createTag(
|
|
481
485
|
{
|
|
482
486
|
tag: {
|
|
483
487
|
identity: await this.getIdentity(),
|
|
@@ -489,17 +493,17 @@ var UserFolders = class extends tagging_service_default {
|
|
|
489
493
|
timeout
|
|
490
494
|
}
|
|
491
495
|
);
|
|
492
|
-
return { type: resource_type, identifier: resource_name, folder_uuid };
|
|
496
|
+
return { type: resource_type, identifier: resource_name, folder_uuid, created_at: tag["created_at"] };
|
|
493
497
|
}
|
|
494
498
|
/**
|
|
495
|
-
*
|
|
499
|
+
* Remove a folder content element.
|
|
496
500
|
*
|
|
497
501
|
* @param folder_uuid The UUID of the folder.
|
|
498
502
|
* @param resource_name The name of the resource.
|
|
499
503
|
* @param resource_type The type of the resource.
|
|
500
504
|
* @param timeout The timeout for the request in milliseconds.
|
|
501
505
|
*
|
|
502
|
-
* @return
|
|
506
|
+
* @return void
|
|
503
507
|
**/
|
|
504
508
|
async removeContentFromFolder({
|
|
505
509
|
folder_uuid,
|
|
@@ -516,7 +520,6 @@ var UserFolders = class extends tagging_service_default {
|
|
|
516
520
|
timeout
|
|
517
521
|
}
|
|
518
522
|
);
|
|
519
|
-
return { type: resource_type, identifier: resource_name, folder_uuid };
|
|
520
523
|
}
|
|
521
524
|
/**
|
|
522
525
|
* Delete a folder.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/services/base_service.ts","../src/services/tagging_service.ts","../src/services/user_settings.ts","../src/services/highlevel/tagging/user_folders.ts"],"sourcesContent":["class HTTPError extends Error {\n public response: Response;\n \n constructor(message: string, response: Response) {\n super();\n this.message = message;\n this.response = response;\n }\n}\n\nexport class BaseService {\n public bearerToken: string | undefined;\n public apiKey: string | undefined;\n public serviceUrl: string | undefined;\n public environment: string;\n public myAccountId: string;\n public baseDomain: string;\n\n constructor({\n bearerToken = undefined,\n apiKey = undefined,\n serviceUrl = undefined,\n environment = 'production',\n myAccountId = 'SYSTIMEMYACCOUNT',\n baseDomain = 'systime.dk',\n } : {\n bearerToken?: string,\n apiKey?: string,\n serviceUrl?: string,\n environment: string,\n myAccountId: string,\n baseDomain?: string\n }) {\n this.bearerToken = bearerToken;\n this.apiKey = apiKey;\n this.serviceUrl = serviceUrl;\n this.environment = environment;\n this.myAccountId = myAccountId;\n this.baseDomain = baseDomain;\n }\n\n protected discoverUrlPrefix(): string {\n throw new Error('Method not implemented.');\n }\n\n public getUrlPrefix(): string {\n // If the URL has been explicitly set, return it.\n if (this.serviceUrl) {\n return this.serviceUrl;\n }\n return this.discoverUrlPrefix()\n }\n\n public async addAuthHeaders(requestHeaders: Headers): Promise<Headers> {\n if (this.bearerToken) {\n requestHeaders.set('Authorization', `Bearer ${this.bearerToken}`);\n } else if (this.apiKey) {\n requestHeaders.set('x-api-key', this.apiKey);\n }\n return requestHeaders;\n }\n\n async getAsync(\n {\n url,\n headers,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<object> {\n const method = 'GET';\n const response = await this.callAsync({ url, body: null, method, headers, timeout });\n return response.json();\n }\n\n async putAsync(\n {\n url,\n headers,\n body,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n body: string | null | undefined,\n timeout: number\n }\n ): Promise<object> {\n const method = 'PUT';\n const response = await this.callAsync({ url, body, method, headers, timeout });\n return response.json();\n }\n\n async postAsync(\n {\n url,\n headers,\n body,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n body: string | null | undefined,\n timeout: number\n }\n ): Promise<object> {\n const method = 'POST';\n const response = await this.callAsync({ url, body, method, headers, timeout });\n return response.json();\n }\n\n async deleteAsync(\n {\n url,\n headers,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<object> {\n const method = 'DELETE';\n const response = await this.callAsync({ url, body: null, method, headers, timeout });\n return response.json();\n }\n\n async callAsync(\n {\n url,\n body,\n method,\n headers,\n timeout\n }:\n {\n url: URL | string,\n body: string | null | undefined,\n method: string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<Response> {\n if (!headers) {\n headers = new Headers();\n }\n\n headers = await this.addAuthHeaders(headers);\n const response = await fetch(url, {\n\t method: method,\n body: body,\n headers: headers,\n signal: AbortSignal.timeout(timeout)\n });\n\n if (!response.ok) {\n\t\tthrow new HTTPError(`Got ${response.status} while calling ${response.url}`, response);\n }\n return response;\n }\n}\nexport default BaseService;\n","import BaseService from './base_service.js';\n\nexport interface Tag {\n identity: string;\n resource_type: string;\n resource_name: string;\n tag_name: string;\n tag_value: string;\n}\n\nexport interface TagOutput extends Tag {\n created_at: number;\n}\n\nexport class TaggingService extends BaseService {\n discoverUrlPrefix(): string {\n switch (this.environment) {\n case 'local':\n return 'http://localhost:4000';\n case 'production':\n return `https://tagging.services.${this.baseDomain}`;\n case 'staging':\n return `https://${this.environment}-tagging.services.${this.baseDomain}`;\n default:\n throw new Error(`Unknown environment: ${this.environment}`);\n }\n };\n\n async getTagsByResource(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n tag_name?: string,\n resource_type?: string,\n resource_name?: string,\n timeout?: number\n }\n ): Promise<Tag[]> {\n const url = `${this.getUrlPrefix()}/tags/by_resource/${identity}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}${tag_name ? `/${tag_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n return await this.getAsync({url, headers, timeout}) as TagOutput[];\n }\n\n async getTagsByName(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n tag_name: string,\n resource_type?: string,\n resource_name?: string,\n timeout?: number\n }\n ): Promise<TagOutput[]> {\n const url = `${this.getUrlPrefix()}/tags/by_tag_name/${identity}/${tag_name}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n return await this.getAsync({url, headers, timeout}) as TagOutput[];\n }\n\n async createTag(\n {\n tag,\n timeout = 3000\n }:\n {\n tag: Tag,\n timeout?: number\n }\n ): Promise<TagOutput> {\n const url = `${this.getUrlPrefix()}/tags`;\n const headers: HeadersInit = new Headers();\n\n headers.append('Content-Type', \"application/json\");\n return await this.postAsync({url, headers, body: JSON.stringify(tag), timeout}) as TagOutput;\n }\n\n async updateTag(\n {\n tag,\n timeout = 3000\n }:\n {\n tag: Tag,\n timeout?: number\n }\n ): Promise<TagOutput> {\n const url = `${this.getUrlPrefix()}/tags`;\n const headers: HeadersInit = new Headers();\n\n headers.append('Content-Type', \"application/json\");\n return await this.putAsync({url, headers, body: JSON.stringify(tag), timeout}) as TagOutput;\n }\n\n async deleteTag(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n resource_type?: string,\n resource_name?: string,\n tag_name?: string,\n timeout?: number\n }\n ): Promise<void> {\n const url = `${this.getUrlPrefix()}/tags/${identity}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}${tag_name ? `/${tag_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n await this.deleteAsync({url, headers, timeout});\n }\n}\n\nexport default TaggingService;\n","import BaseService from './base_service.js';\n\nexport class UserSettings extends BaseService {\n discoverUrlPrefix(): string {\n switch (this.environment) {\n case 'local':\n return 'http://localhost:4000';\n case 'production':\n return `https://user-settings-service.services.${this.baseDomain}`;\n case 'staging':\n return `https://${this.environment}-user-settings-service.services.${this.baseDomain}`;\n default:\n throw new Error(`Unknown environment: ${this.environment}`);\n }\n }\n\n async getSettings(\n {\n isbn,\n timeout = 5000\n }:\n {\n isbn: string,\n timeout?: number\n }\n ): Promise<object> {\n const url = `${this.getUrlPrefix()}/clientsettings/isbn/${isbn}`;\n const headers: HeadersInit = new Headers();\n\n return await this.getAsync({url, headers, timeout});\n }\n\n async setSettings(\n {\n isbn,\n settings,\n timeout = 5000\n }: \n {\n isbn: string,\n settings: object,\n timeout?: number\n }\n ): Promise<object> {\n const url = `${this.getUrlPrefix()}/clientsettings/isbn/${isbn}`;\n const headers: HeadersInit = new Headers();\n\n headers.set('Content-Type', 'application/json');\n return await this.putAsync({url, headers, body: JSON.stringify(settings), timeout});\n }\n}\n\nexport default UserSettings;\n","import TaggingService from '../../tagging_service.js';\nimport {v4 as uuidv4} from 'uuid';\n\nexport interface FolderObject {\n created_at: number;\n}\n\nexport interface Folder extends FolderObject {\n name: string;\n color: string;\n uuid: string;\n parent?: string;\n}\n\nexport interface FolderContent extends FolderObject {\n type: string;\n identifier: string;\n folder_uuid: string;\n}\n\n/**\n * UserFolders is a service that allows users to create folders in their account. It's built on top of the Tagging service.\n * Folders are created with a name and an optional parent folder. If no parent folder is provided, the folder is created at the root level.\n * Folders are created with a unique UUID that can be used to reference the folder in future requests. The folder properties are stored as a base64 encoded JSON string.\n**/\nexport class UserFolders extends TaggingService {\n private readonly hasNoParent: string = '-';\n private identity?: string = undefined;\n\n async getIdentity() : Promise<string> {\n if (this.identity) {\n return this.identity;\n }\n\n if (this.bearerToken) {\n const tokenParts = this.bearerToken.split('.');\n const payload = Buffer.from(tokenParts[1], 'base64').toString();\n const payloadObject = JSON.parse(payload);\n // The identity is the keyword user, the user's authns and the ekeysuserid (user) concatenated with an underscore\n // This value is enforced by the Tagging service and this is the only identity\n // that the Service will accept when invoked with a user specific bearer token.\n return `user_${payloadObject.authns}_${payloadObject.user}`;\n }\n\n throw new Error('The UserFolders service must be invoked with a valid bearer token');\n }\n\n /**\n * Create a folder.\n * @param folder_name The name of the folder.\n * @param parent_folder_uuid The UUID of the parent folder. If no parent folder is provided, the folder is created at the root level.\n * @param color The color of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder\n **/\n async createFolder(\n {\n folder_name,\n parent_folder_uuid,\n color,\n timeout = 3000\n }:\n {\n folder_name: string,\n color: string,\n parent_folder_uuid?: string,\n timeout?: number\n }\n ): Promise<Folder> {\n const folder_payload = JSON.stringify({\"folder\": folder_name, \"color\": color});\n const tag = await this.createTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: uuidv4(),\n tag_name: parent_folder_uuid ?? this.hasNoParent,\n tag_value: Buffer.from(folder_payload).toString('base64'),\n },\n timeout\n }\n );\n return {name: folder_name, uuid: tag['resource_name'], parent: parent_folder_uuid} as Folder;\n }\n\n /**\n * Update a folder. Only name and color can be changed.\n *\n * @param folder_uuid The UUID of the folder.\n * @param folder_name The new name of the folder.\n * @param color The new color of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder\n **/\n async updateFolder(\n {\n folder_uuid,\n folder_name,\n color,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n folder_name?: string,\n color?: string,\n timeout?: number\n }\n ): Promise<Folder> {\n const tags = await this.getTagsByResource(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n timeout\n }\n );\n\n if (tags.length === 0) {\n throw new Error(`Folder with UUID ${folder_uuid} not found`);\n }\n\n const tag = tags[0];\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n const new_folder_name = folder_name ?? folder_payload['folder'];\n const new_color = color ?? folder_payload['color'];\n\n const new_folder_payload = JSON.stringify({\"folder\": new_folder_name, \"color\": new_color});\n\n await this.updateTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n tag_name: tag['tag_name'],\n tag_value: Buffer.from(new_folder_payload).toString('base64'),\n },\n timeout\n }\n );\n\n const parent = tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name'];\n return {name: new_folder_name, uuid: folder_uuid, parent: parent} as Folder;\n }\n\n /**\n * List all folders in the user's account.\n * \n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder[]\n **/\n async listAllFolders(\n {\n timeout = 3000\n }:\n {\n timeout?: number\n }\n ): Promise<Folder[]> {\n const tags = await this.getTagsByResource(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n timeout\n }\n );\n\n let folders = [];\n\n for (const tag of tags) {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n folders.push(\n {\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name']\n } as Folder\n );\n }\n\n return folders;\n }\n\n /**\n * List the next level of folders in the user's account.\n *\n * @param parent_folder_uuid The UUID of the parent folder. If no parent folder is provided, the folder is created at the root level.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder[]\n **/\n async listNextFolderLevel(\n {\n parent_folder_uuid,\n timeout = 3000\n }:\n {\n parent_folder_uuid?: string,\n timeout?: number\n }\n ): Promise<Folder[]> {\n let tags;\n if (!parent_folder_uuid) {\n parent_folder_uuid = this.hasNoParent;\n }\n\n tags = await this.getTagsByName(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n tag_name: parent_folder_uuid,\n timeout\n }\n );\n\n let folders = [];\n\n for (const tag of tags) {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n folders.push(\n {\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name']\n } as Folder\n );\n }\n\n return folders;\n }\n\n /**\n * List the content of a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent[]\n **/\n async getFolderContent(\n {\n folder_uuid,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n timeout?: number\n }\n ): Promise<FolderObject[]> {\n let tags = await this.getTagsByName(\n {\n identity: await this.getIdentity(),\n tag_name: folder_uuid,\n timeout\n }\n );\n\n let content = [];\n\n for (const tag of tags) {\n if (tag['resource_type'] === 'myaccount_user_folder') {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n content.push({\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name']\n } as Folder)\n } else {\n content.push(\n {\n type: tag['resource_type'],\n identifier: tag['resource_name'],\n folder_uuid: tag['tag_name']\n } as FolderContent\n );\n }\n }\n\n return content;\n }\n\n /**\n * Add a book to a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param isbn The ISBN of the book.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async addInternetbookToFolder(\n {\n folder_uuid,\n isbn,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n isbn: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n return await this.addContentToFolder(\n {\n folder_uuid,\n resource_type: 'internetbook',\n resource_name: isbn,\n timeout\n },\n );\n }\n\n /**\n * Remove a book from a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param isbn The ISBN of the book.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async removeInternetbookFromFolder(\n {\n folder_uuid,\n isbn,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n isbn: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n return await this.removeContentFromFolder(\n {\n folder_uuid,\n resource_type: 'internetbook',\n resource_name: isbn,\n timeout\n },\n );\n }\n\n /**\n * Create a new folder content element.\n *\n * @param folder_uuid The UUID of the folder.\n * @param resource_name The name of the resource.\n * @param resource_type The type of the resource.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async addContentToFolder(\n {\n folder_uuid,\n resource_type,\n resource_name,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n resource_name: string,\n resource_type: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n await this.createTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: resource_type,\n resource_name: resource_name,\n tag_name: folder_uuid,\n tag_value: 'MYACCOUNT_USER_FOLDER'\n },\n timeout\n }\n );\n return {type: resource_type, identifier: resource_name, folder_uuid} as FolderContent;\n }\n\n /**\n * Create a new folder content element.\n *\n * @param folder_uuid The UUID of the folder.\n * @param resource_name The name of the resource.\n * @param resource_type The type of the resource.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async removeContentFromFolder(\n {\n folder_uuid,\n resource_name,\n resource_type,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n resource_name: string,\n resource_type: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: resource_type,\n resource_name: resource_name,\n tag_name: folder_uuid,\n timeout\n }\n );\n return {type: resource_type, identifier: resource_name, folder_uuid} as FolderContent;\n }\n\n /**\n * Delete a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async deleteFolder(\n {\n folder_uuid,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n timeout\n }\n );\n }\n\n /**\n * Delete all folders. Note, this will not delete the content of the folders.\n *\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async deleteAllFolders(\n {\n timeout = 3000\n }:\n {\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n timeout\n }\n );\n }\n}\n\nexport default UserFolders;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/services/base_service.ts","../src/services/tagging_service.ts","../src/services/user_settings.ts","../src/services/highlevel/tagging/user_folders.ts"],"sourcesContent":["class HTTPError extends Error {\n public response: Response;\n \n constructor(message: string, response: Response) {\n super();\n this.message = message;\n this.response = response;\n }\n}\n\nexport class BaseService {\n public bearerToken: string | undefined;\n public apiKey: string | undefined;\n public serviceUrl: string | undefined;\n public environment: string;\n public myAccountId: string;\n public baseDomain: string;\n\n constructor({\n bearerToken = undefined,\n apiKey = undefined,\n serviceUrl = undefined,\n environment = 'production',\n myAccountId = 'SYSTIMEMYACCOUNT',\n baseDomain = 'systime.dk',\n } : {\n bearerToken?: string,\n apiKey?: string,\n serviceUrl?: string,\n environment: string,\n myAccountId: string,\n baseDomain?: string\n }) {\n this.bearerToken = bearerToken;\n this.apiKey = apiKey;\n this.serviceUrl = serviceUrl;\n this.environment = environment;\n this.myAccountId = myAccountId;\n this.baseDomain = baseDomain;\n }\n\n protected discoverUrlPrefix(): string {\n throw new Error('Method not implemented.');\n }\n\n public getUrlPrefix(): string {\n // If the URL has been explicitly set, return it.\n if (this.serviceUrl) {\n return this.serviceUrl;\n }\n return this.discoverUrlPrefix()\n }\n\n public async addAuthHeaders(requestHeaders: Headers): Promise<Headers> {\n if (this.bearerToken) {\n requestHeaders.set('Authorization', `Bearer ${this.bearerToken}`);\n } else if (this.apiKey) {\n requestHeaders.set('x-api-key', this.apiKey);\n }\n return requestHeaders;\n }\n\n async getAsync(\n {\n url,\n headers,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<object> {\n const method = 'GET';\n const response = await this.callAsync({ url, body: null, method, headers, timeout });\n return response.json();\n }\n\n async putAsync(\n {\n url,\n headers,\n body,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n body: string | null | undefined,\n timeout: number\n }\n ): Promise<object> {\n const method = 'PUT';\n const response = await this.callAsync({ url, body, method, headers, timeout });\n return response.json();\n }\n\n async postAsync(\n {\n url,\n headers,\n body,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n body: string | null | undefined,\n timeout: number\n }\n ): Promise<object> {\n const method = 'POST';\n const response = await this.callAsync({ url, body, method, headers, timeout });\n return response.json();\n }\n\n async deleteAsync(\n {\n url,\n headers,\n timeout\n }:\n {\n url: URL | string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<object> {\n const method = 'DELETE';\n const response = await this.callAsync({ url, body: null, method, headers, timeout });\n return response.json();\n }\n\n async callAsync(\n {\n url,\n body,\n method,\n headers,\n timeout\n }:\n {\n url: URL | string,\n body: string | null | undefined,\n method: string,\n headers: Headers | undefined | null,\n timeout: number\n }\n ): Promise<Response> {\n if (!headers) {\n headers = new Headers();\n }\n\n headers = await this.addAuthHeaders(headers);\n const response = await fetch(url, {\n\t method: method,\n body: body,\n headers: headers,\n signal: AbortSignal.timeout(timeout)\n });\n\n if (!response.ok) {\n\t\tthrow new HTTPError(`Got ${response.status} while calling ${response.url}`, response);\n }\n return response;\n }\n}\nexport default BaseService;\n","import BaseService from './base_service.js';\n\nexport interface Tag {\n identity: string;\n resource_type: string;\n resource_name: string;\n tag_name: string;\n tag_value: string;\n}\n\nexport interface TagOutput extends Tag {\n created_at: number;\n}\n\nexport class TaggingService extends BaseService {\n discoverUrlPrefix(): string {\n switch (this.environment) {\n case 'local':\n return 'http://localhost:4000';\n case 'production':\n return `https://tagging.services.${this.baseDomain}`;\n case 'staging':\n return `https://${this.environment}-tagging.services.${this.baseDomain}`;\n default:\n throw new Error(`Unknown environment: ${this.environment}`);\n }\n };\n\n async getTagsByResource(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n tag_name?: string,\n resource_type?: string,\n resource_name?: string,\n timeout?: number\n }\n ): Promise<TagOutput[]> {\n const url = `${this.getUrlPrefix()}/tags/by_resource/${identity}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}${tag_name ? `/${tag_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n return await this.getAsync({url, headers, timeout}) as TagOutput[];\n }\n\n async getTagsByName(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n tag_name: string,\n resource_type?: string,\n resource_name?: string,\n timeout?: number\n }\n ): Promise<TagOutput[]> {\n const url = `${this.getUrlPrefix()}/tags/by_tag_name/${identity}/${tag_name}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n return await this.getAsync({url, headers, timeout}) as TagOutput[];\n }\n\n async createTag(\n {\n tag,\n timeout = 3000\n }:\n {\n tag: Tag,\n timeout?: number\n }\n ): Promise<TagOutput> {\n const url = `${this.getUrlPrefix()}/tags`;\n const headers: HeadersInit = new Headers();\n\n headers.append('Content-Type', \"application/json\");\n return await this.postAsync({url, headers, body: JSON.stringify(tag), timeout}) as TagOutput;\n }\n\n async updateTag(\n {\n tag,\n timeout = 3000\n }:\n {\n tag: Tag,\n timeout?: number\n }\n ): Promise<TagOutput> {\n const url = `${this.getUrlPrefix()}/tags`;\n const headers: HeadersInit = new Headers();\n\n headers.append('Content-Type', \"application/json\");\n return await this.putAsync({url, headers, body: JSON.stringify(tag), timeout}) as TagOutput;\n }\n\n async deleteTag(\n {\n identity,\n resource_type,\n resource_name,\n tag_name,\n timeout = 3000\n }:\n {\n identity: string,\n resource_type?: string,\n resource_name?: string,\n tag_name?: string,\n timeout?: number\n }\n ): Promise<void> {\n const url = `${this.getUrlPrefix()}/tags/${identity}${resource_type ? `/${resource_type}` : ''}${resource_name ? `/${resource_name}` : ''}${tag_name ? `/${tag_name}` : ''}`;\n\n const headers: HeadersInit = new Headers();\n await this.deleteAsync({url, headers, timeout});\n }\n}\n\nexport default TaggingService;\n","import BaseService from './base_service.js';\n\nexport class UserSettings extends BaseService {\n discoverUrlPrefix(): string {\n switch (this.environment) {\n case 'local':\n return 'http://localhost:4000';\n case 'production':\n return `https://user-settings-service.services.${this.baseDomain}`;\n case 'staging':\n return `https://${this.environment}-user-settings-service.services.${this.baseDomain}`;\n default:\n throw new Error(`Unknown environment: ${this.environment}`);\n }\n }\n\n async getSettings(\n {\n isbn,\n timeout = 5000\n }:\n {\n isbn: string,\n timeout?: number\n }\n ): Promise<object> {\n const url = `${this.getUrlPrefix()}/clientsettings/isbn/${isbn}`;\n const headers: HeadersInit = new Headers();\n\n return await this.getAsync({url, headers, timeout});\n }\n\n async setSettings(\n {\n isbn,\n settings,\n timeout = 5000\n }: \n {\n isbn: string,\n settings: object,\n timeout?: number\n }\n ): Promise<object> {\n const url = `${this.getUrlPrefix()}/clientsettings/isbn/${isbn}`;\n const headers: HeadersInit = new Headers();\n\n headers.set('Content-Type', 'application/json');\n return await this.putAsync({url, headers, body: JSON.stringify(settings), timeout});\n }\n}\n\nexport default UserSettings;\n","import TaggingService from '../../tagging_service.js';\nimport {v4 as uuidv4} from 'uuid';\n\nexport interface FolderObject {\n created_at: number;\n}\n\nexport interface Folder extends FolderObject {\n name: string;\n color: string;\n uuid: string;\n parent?: string;\n}\n\nexport interface FolderContent extends FolderObject {\n type: string;\n identifier: string;\n folder_uuid: string;\n}\n\n/**\n * UserFolders is a service that allows users to create folders in their account. It's built on top of the Tagging service.\n * Folders are created with a name and an optional parent folder. If no parent folder is provided, the folder is created at the root level.\n * Folders are created with a unique UUID that can be used to reference the folder in future requests. The folder properties are stored as a base64 encoded JSON string.\n**/\nexport class UserFolders extends TaggingService {\n private readonly hasNoParent: string = '-';\n private identity?: string = undefined;\n\n async getIdentity() : Promise<string> {\n if (this.identity) {\n return this.identity;\n }\n\n if (this.bearerToken) {\n const tokenParts = this.bearerToken.split('.');\n const payload = Buffer.from(tokenParts[1], 'base64').toString();\n const payloadObject = JSON.parse(payload);\n // The identity is the keyword user, the user's authns and the ekeysuserid (user) concatenated with an underscore\n // This value is enforced by the Tagging service and this is the only identity\n // that the Service will accept when invoked with a user specific bearer token.\n return `user_${payloadObject.authns}_${payloadObject.user}`;\n }\n\n throw new Error('The UserFolders service must be invoked with a valid bearer token');\n }\n\n /**\n * Create a folder.\n * @param folder_name The name of the folder.\n * @param parent_folder_uuid The UUID of the parent folder. If no parent folder is provided, the folder is created at the root level.\n * @param color The color of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder\n **/\n async createFolder(\n {\n folder_name,\n parent_folder_uuid,\n color,\n timeout = 3000\n }:\n {\n folder_name: string,\n color: string,\n parent_folder_uuid?: string,\n timeout?: number\n }\n ): Promise<Folder> {\n const folder_payload = JSON.stringify({\"folder\": folder_name, \"color\": color});\n const tag = await this.createTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: uuidv4(),\n tag_name: parent_folder_uuid ?? this.hasNoParent,\n tag_value: Buffer.from(folder_payload).toString('base64'),\n },\n timeout\n }\n );\n return {name: folder_name, uuid: tag['resource_name'], parent: parent_folder_uuid, created_at: tag['created_at']} as Folder;\n }\n\n /**\n * Update a folder. Only name and color can be changed.\n *\n * @param folder_uuid The UUID of the folder.\n * @param folder_name The new name of the folder.\n * @param color The new color of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder\n **/\n async updateFolder(\n {\n folder_uuid,\n folder_name,\n color,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n folder_name?: string,\n color?: string,\n timeout?: number\n }\n ): Promise<Folder> {\n const tags = await this.getTagsByResource(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n timeout\n }\n );\n\n if (tags.length === 0) {\n throw new Error(`Folder with UUID ${folder_uuid} not found`);\n }\n\n const tag = tags[0];\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n const new_folder_name = folder_name ?? folder_payload['folder'];\n const new_color = color ?? folder_payload['color'];\n\n const new_folder_payload = JSON.stringify({\"folder\": new_folder_name, \"color\": new_color});\n\n const updatedTag = await this.updateTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n tag_name: tag['tag_name'],\n tag_value: Buffer.from(new_folder_payload).toString('base64'),\n },\n timeout\n }\n );\n\n const parent = tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name'];\n return {name: new_folder_name, uuid: folder_uuid, parent: parent, created_at: updatedTag['created_at']} as Folder;\n }\n\n /**\n * List all folders in the user's account.\n * \n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder[]\n **/\n async listAllFolders(\n {\n timeout = 3000\n }:\n {\n timeout?: number\n }\n ): Promise<Folder[]> {\n const tags = await this.getTagsByResource(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n timeout\n }\n );\n\n let folders = [];\n\n for (const tag of tags) {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n folders.push(\n {\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name'],\n created_at: tag['created_at']\n } as Folder\n );\n }\n\n return folders;\n }\n\n /**\n * List the next level of folders in the user's account.\n *\n * @param parent_folder_uuid The UUID of the parent folder. If no parent folder is provided, the folder is created at the root level.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return Folder[]\n **/\n async listNextFolderLevel(\n {\n parent_folder_uuid,\n timeout = 3000\n }:\n {\n parent_folder_uuid?: string,\n timeout?: number\n }\n ): Promise<Folder[]> {\n let tags;\n if (!parent_folder_uuid) {\n parent_folder_uuid = this.hasNoParent;\n }\n\n tags = await this.getTagsByName(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n tag_name: parent_folder_uuid,\n timeout\n }\n );\n\n let folders = [];\n\n for (const tag of tags) {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n folders.push(\n {\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'] === this.hasNoParent ? undefined : tag['tag_name'],\n created_at: tag['created_at']\n } as Folder\n );\n }\n\n return folders;\n }\n\n /**\n * List the content of a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent[]\n **/\n async getFolderContent(\n {\n folder_uuid,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n timeout?: number\n }\n ): Promise<FolderObject[]> {\n let tags = await this.getTagsByName(\n {\n identity: await this.getIdentity(),\n tag_name: folder_uuid,\n timeout\n }\n );\n\n let content = [];\n\n for (const tag of tags) {\n if (tag['resource_type'] === 'myaccount_user_folder') {\n const folder_payload = JSON.parse(Buffer.from(tag['tag_value'], 'base64').toString());\n content.push({\n name: folder_payload['folder'],\n color: folder_payload['color'],\n uuid: tag['resource_name'],\n parent: tag['tag_name'],\n created_at: tag['created_at']\n } as Folder)\n } else {\n content.push(\n {\n type: tag['resource_type'],\n identifier: tag['resource_name'],\n folder_uuid: tag['tag_name'],\n created_at: tag['created_at']\n } as FolderContent\n );\n }\n }\n\n return content;\n }\n\n /**\n * Add a book to a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param isbn The ISBN of the book.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async addInternetbookToFolder(\n {\n folder_uuid,\n isbn,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n isbn: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n return await this.addContentToFolder(\n {\n folder_uuid,\n resource_type: 'internetbook',\n resource_name: isbn,\n timeout\n },\n );\n }\n\n /**\n * Remove a book from a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param isbn The ISBN of the book.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async removeInternetbookFromFolder(\n {\n folder_uuid,\n isbn,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n isbn: string,\n timeout?: number\n }\n ): Promise<void> {\n await this.removeContentFromFolder(\n {\n folder_uuid,\n resource_type: 'internetbook',\n resource_name: isbn,\n timeout\n },\n );\n }\n\n /**\n * Create a new folder content element.\n *\n * @param folder_uuid The UUID of the folder.\n * @param resource_name The name of the resource.\n * @param resource_type The type of the resource.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return FolderContent\n **/\n async addContentToFolder(\n {\n folder_uuid,\n resource_type,\n resource_name,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n resource_name: string,\n resource_type: string,\n timeout?: number\n }\n ): Promise<FolderContent> {\n const tag = await this.createTag(\n {\n tag: {\n identity: await this.getIdentity(),\n resource_type: resource_type,\n resource_name: resource_name,\n tag_name: folder_uuid,\n tag_value: 'MYACCOUNT_USER_FOLDER'\n },\n timeout\n }\n );\n return {type: resource_type, identifier: resource_name, folder_uuid, created_at: tag['created_at']} as FolderContent;\n }\n\n /**\n * Remove a folder content element.\n *\n * @param folder_uuid The UUID of the folder.\n * @param resource_name The name of the resource.\n * @param resource_type The type of the resource.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async removeContentFromFolder(\n {\n folder_uuid,\n resource_name,\n resource_type,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n resource_name: string,\n resource_type: string,\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: resource_type,\n resource_name: resource_name,\n tag_name: folder_uuid,\n timeout\n }\n );\n }\n\n /**\n * Delete a folder.\n *\n * @param folder_uuid The UUID of the folder.\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async deleteFolder(\n {\n folder_uuid,\n timeout = 3000\n }:\n {\n folder_uuid: string,\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n resource_name: folder_uuid,\n timeout\n }\n );\n }\n\n /**\n * Delete all folders. Note, this will not delete the content of the folders.\n *\n * @param timeout The timeout for the request in milliseconds.\n *\n * @return void\n **/\n async deleteAllFolders(\n {\n timeout = 3000\n }:\n {\n timeout?: number\n }\n ): Promise<void> {\n await this.deleteTag(\n {\n identity: await this.getIdentity(),\n resource_type: 'myaccount_user_folder',\n timeout\n }\n );\n }\n}\n\nexport default UserFolders;\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"uuid": "^11"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
|
+
"@types/node": "^22.10.10",
|
|
11
12
|
"tsup": "^8.4",
|
|
12
|
-
"typescript": "^5.7.3"
|
|
13
|
-
"@types/node": "^22.10.10"
|
|
13
|
+
"typescript": "^5.7.3"
|
|
14
14
|
},
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"files": [
|
|
@@ -20,5 +20,5 @@
|
|
|
20
20
|
"types": "./dist/index.d.ts",
|
|
21
21
|
"main": "./dist/index.js",
|
|
22
22
|
"module": "./dist/index.js",
|
|
23
|
-
"version": "0.0.
|
|
23
|
+
"version": "0.0.14"
|
|
24
24
|
}
|