Справочник по SDK для TypeScript


Установка

npm i -s frameio

Использование

Создайте экземпляр клиента и используйте его следующим образом.

import { FrameioClient } from "frameio";
const client = new FrameioClient({ token: "YOUR_TOKEN" });
await client.metadataFields.metadataFieldDefinitionsCreate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
field_type: "select",
field_configuration: {
enable_add_new: false,
options: [
{
display_name: "Option 1",
},
{
display_name: "Option 2",
},
],
},
name: "Fields definition name",
},
});

Типы запросов и ответов

SDK экспортирует все типы запросов и ответов в виде интерфейсов TypeScript. Просто импортируйте их с помощью следующего пространства имен.

import { Frameio } from "frameio";
const request: Frameio.UpdateFieldDefinitionParams = {
...
};

Обработка исключений

Если API-интерфейс возвращает код состояния ошибки (ответ 4xx или 5xx), будет создано исключение, являющееся подклассом следующей ошибки.

import { FrameioError } from "frameio";
try {
await client.metadataFields.metadataFieldDefinitionsCreate(...);
} catch (err) {
if (err instanceof FrameioError) {
console.log(err.statusCode);
console.log(err.message);
console.log(err.body);
console.log(err.rawResponse);
}
}

Дополнительные возможности

Дополнительные заголовки

Чтобы отправить дополнительные заголовки в запросе, используйте параметр запроса headers.

const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
headers: {
'X-Custom-Header': 'custom value'
}
});

Дополнительные параметры строки запроса

Чтобы отправить дополнительные параметры строки в запросе, используйте параметр запроса queryParams.

const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
queryParams: {
'customQueryParamKey': 'custom query param value'
}
});

Повторные попытки

В SDK предусмотрен автоматический повтор попыток выполнить запрос с экспоненциальной задержкой. Повторные попытки будут выполняться до тех пор, пока запрос считается пригодным для повтора и количество попыток не превысит установленный лимит (по умолчанию: 2).

Запрос считается пригодным для повтора, если сервер возвращает любой из следующих кодов состояния HTTP:

  • 408 (истекло время ожидания)
  • 429 (слишком много запросов)
  • 5XX (внутренние ошибки сервера)


Используйте параметр запроса maxRetries, чтобы настроить это поведение.

const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
maxRetries: 0 // override maxRetries at the request level
});

Время ожидания

По умолчанию в SDK установлен лимит времени ожидания 60 секунд. Используйте параметр timeoutInSeconds, чтобы настроить это поведение.

const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
timeoutInSeconds: 30 // override timeout to 30s
});

Прерывание запросов

SDK позволяет пользователям прерывать запросы в любой момент путем передачи сигнала отмены.

const controller = new AbortController();
const response = await client.metadataFields.metadataFieldDefinitionsCreate(..., {
abortSignal: controller.signal
});
controller.abort(); // aborts the request

Доступ к необработанным данным ответа

SDK предоставляет доступ к необработанным данным ответа, включая заголовки, с помощью метода .withRawResponse(). Метод .withRawResponse() возвращает промис, результатом выполнения которого является объект со свойствами data и rawResponse.

const { data, rawResponse } = await client.metadataFields.metadataFieldDefinitionsCreate(...).withRawResponse();
console.log(data);
console.log(rawResponse.headers['X-My-Header']);

Совместимость со средами выполнения

SDK работает в следующих средах выполнения:

  • Node.js 18+
  • Vercel
  • Cloudflare Workers
  • Deno v1.25+
  • Bun 1.0+
  • React Native

Настройка Fetch-клиента

SDK предоставляет возможность настройки базового HTTP-клиента / функции Fetch. Если вы работаете в неподдерживаемой среде, эту возможность можно использовать как экстренное решение для обеспечения работы SDK.

import { FrameioClient } from "frameio";
const client = new FrameioClient({
...
fetcher: // provide your implementation here
});

Справочник

Разрешения учетной записи

Создает список ролей пользователя для указанной учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.accountPermissions.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include_deactivated: true,
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.accountPermissions.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include_deactivated: true,
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

request: Frameio.AccountPermissionsIndexRequest

requestOptions: AccountPermissions.RequestOptions

Учетные записи

Создает список учетных записей для текущего пользователя.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.accounts.index({
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.accounts.index({
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

request: Frameio.AccountsIndexRequest

requestOptions: Accounts.RequestOptions

Создает список журналов аудита с возможностями фильтрации через параметры запроса.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.accounts.auditlogIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "user",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.FrameOrAdobeId —

request: Frameio.AuditlogIndexRequest

requestOptions: Accounts.RequestOptions

Аутентификация

Выполняет аутентификацию с использованием типа разрешения client_credentials протокола OAuth 2.0. Этот процесс не подразумевает участия пользователя и не возвращает токен обновления. Когда срок действия токена доступа истекает, SDK автоматически запрашивает новый, используя учетные данные клиента.

usage
import { FrameioClient, ServerToServerAuth } from "frameio";
const auth = new ServerToServerAuth({
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET",
});
const client = new FrameioClient({ token: () => auth.getToken() });

Параметры

clientId: string — идентификатор клиента Oauth в Adobe IMS.

clientSecret: string — секретный ключ клиента Oauth в Adobe IMS.

scopes: string — разделенный пробелами список областей доступа (OAuth 2.0 RFC 6749). По умолчанию используются области доступа для межсерверной аутентификации.

imsBaseUrl: string — базовый URL-адрес сервиса IMS для работы в тестовых/альтернативных средах. По умолчанию указывает на производственную среду.

fetch: typeof fetch — пользовательская реализация функции fetch (для прокси, TLS и т. д.).

onTokenRefreshed: OnTokenRefreshed — дополнительный обратный вызов, срабатывающий после каждого получения токена.

timeout: number — время ожидания запроса HTTP в миллисекундах. По умолчанию: 30 000.

maxRetries: number — максимальное количество повторных попыток при временных сбоях. По умолчанию: 2.

refreshBuffer: number — количество секунд до истечения срока действия токена, при котором запускается упреждающее обновление. По умолчанию: 60.

logger: Logger — экземпляр логгера для вывода диагностических данных. Методы getToken(): Promise<string> — возвращает действующий токен доступа, при необходимости выполняя его обновление. Передайте его клиенту: new FrameioClient({ token: () => auth.getToken() }). authenticate(): Promise<TokenResponse> — принудительно запускает процесс получения нового токен доступа. revoke(): Promise<void> — аннулирует оба токена на стороне сервера и очищает локальные данные о состоянии токенов. exportTokens(): ExportedTokens — экспортирует текущее состояние токенов для последующего сохранения. importTokens(data: ExportedTokens): void — восстанавливает состояние токенов из ранее экспортированного объекта.

Выполняет аутентификацию с использованием типа разрешения authorization_code протокола OAuth 2.0. Используйте этот процесс для серверных приложений, которые могут безопасно хранить секретный ключ клиента.

usage
import { randomBytes } from "crypto";
import { FrameioClient, WebAppAuth } from "frameio";
const auth = new WebAppAuth({
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET",
redirectUri: "https://myapp.com/callback",
});
const url = auth.getAuthorizationUrl({ state: randomBytes(24).toString("hex") });
// redirect the user to url ...
await auth.exchangeCode("CODE_FROM_CALLBACK");
const client = new FrameioClient({ token: () => auth.getToken() });

Параметры

clientId: string — идентификатор клиента Oauth в Adobe IMS.

clientSecret: string — секретный ключ клиента Oauth в Adobe IMS.

redirectUri: string — зарегистрированный URI перенаправления.

scopes: string — разделенный пробелами список областей доступа (OAuth 2.0 RFC 6749).

imsBaseUrl: string — базовый URL-адрес сервиса IMS для работы в тестовых/альтернативных средах. По умолчанию указывает на производственную среду.

fetch: typeof fetch — пользовательская реализация функции fetch (для прокси, TLS и т. д.).

onTokenRefreshed: OnTokenRefreshed — дополнительный обратный вызов, срабатывающий после каждого обновления токена.

timeout: number — время ожидания запроса HTTP в миллисекундах. По умолчанию: 30 000.

maxRetries: number — максимальное количество повторных попыток при временных сбоях. По умолчанию: 2.

refreshBuffer: number — количество секунд до истечения срока действия токена, при котором запускается упреждающее обновление. По умолчанию: 60.

logger: Logger — экземпляр логгера для вывода диагностических данных. Методы getToken(): Promise<string> — возвращает действующий токен доступа, при необходимости выполняя его обновление. getAuthorizationUrl({ state }): string — формирует URL-адрес авторизации Adobe IMS. Передавайте непрозрачное значение CSRF/state, которое будет возвращаться обратно без изменений. exchangeCode(code: string): Promise<TokenResponse> — обменивает код авторизации на токены доступа и обновления. refresh(): Promise<TokenResponse> — позволяет вручную запустить обновление токена. revoke(): Promise<void> — аннулирует оба токена на стороне сервера и очищает локальные данные о состоянии токенов. exportTokens(): ExportedTokens — экспортирует текущее состояние токенов для последующего сохранения. importTokens(data: ExportedTokens): void — восстанавливает состояние токенов из ранее экспортированного объекта.

Выполняет аутентификацию с использованием комбинации authorization_code + PKCE (без секретного ключа клиента). Используйте этот процесс для браузерных одностраничных приложений, которые не могут безопасно хранить секретный ключ клиента.

usage
import { randomBytes } from "crypto";
import { FrameioClient, SPAAuth } from "frameio";
const auth = new SPAAuth({
clientId: "YOUR_CLIENT_ID",
redirectUri: "https://myapp.com/cb",
});
const result = await auth.getAuthorizationUrl({ state: randomBytes(24).toString("hex") });
// redirect the user to result.url, store result.codeVerifier ...
await auth.exchangeCode({ code: "CODE_FROM_CALLBACK", codeVerifier: result.codeVerifier });
const client = new FrameioClient({ token: () => auth.getToken() });

Параметры

clientId: string — идентификатор клиента Oauth в Adobe IMS.

redirectUri: string — зарегистрированный URI перенаправления.

scopes: string — разделенный пробелами список областей доступа (OAuth 2.0 RFC 6749).

imsBaseUrl: string — базовый URL-адрес сервиса IMS для работы в тестовых/альтернативных средах. По умолчанию указывает на производственную среду.

fetch: typeof fetch — пользовательская реализация функции fetch (для прокси, TLS и т. д.).

onTokenRefreshed: OnTokenRefreshed — дополнительный обратный вызов, срабатывающий после каждого обновления токена.

timeout: number — время ожидания запроса HTTP в миллисекундах. По умолчанию: 30 000.

maxRetries: number — максимальное количество повторных попыток при временных сбоях. По умолчанию: 2.

refreshBuffer: number — количество секунд до истечения срока действия токена, при котором запускается упреждающее обновление. По умолчанию: 60.

logger: Logger — экземпляр логгера для вывода диагностических данных. Методы getToken(): Promise<string> — возвращает действующий токен доступа, при необходимости выполняя его обновление. getAuthorizationUrl({ state }): Promise<AuthorizationUrlResult> — формирует URL-адрес авторизации Adobe IMS с проверкой PKCE. Возвращает результат AuthorizationUrlResult, содержащий url и codeVerifier. exchangeCode({ code, codeVerifier }): Promise<TokenResponse> — обменивает код авторизации совместно с проверочным ключом PKCE на токены. refresh(): Promise<TokenResponse> — позволяет вручную запустить обновление токена. revoke(): Promise<void> — аннулирует оба токена на стороне сервера и очищает локальные данные о состоянии токенов. exportTokens(): ExportedTokens — экспортирует текущее состояние токенов для последующего сохранения. importTokens(data: ExportedTokens): void — восстанавливает состояние токенов из ранее экспортированного объекта.

Выполняет аутентификацию с использованием authorization_code и PKCE для приложений для ПК и мобильных устройств. Использует тот же API-интерфейс, что и SPAAuth; применяется пользовательская схема URI (например, myapp://callback).

usage
import { randomBytes } from "crypto";
import { FrameioClient, NativeAppAuth } from "frameio";
const auth = new NativeAppAuth({
clientId: "YOUR_CLIENT_ID",
redirectUri: "myapp://callback",
});
const result = await auth.getAuthorizationUrl({ state: randomBytes(24).toString("hex") });
// open result.url in the system browser, store result.codeVerifier ...
await auth.exchangeCode({ code: "CODE_FROM_CALLBACK", codeVerifier: result.codeVerifier });
const client = new FrameioClient({ token: () => auth.getToken() });

Параметры

clientId: string — идентификатор клиента Oauth в Adobe IMS.

redirectUri: string — зарегистрированный URI перенаправления (с поддержкой пользовательских схем).

scopes: string — разделенный пробелами список областей доступа (OAuth 2.0 RFC 6749).

imsBaseUrl: string — базовый URL-адрес сервиса IMS для работы в тестовых/альтернативных средах. По умолчанию указывает на производственную среду.

fetch: typeof fetch — пользовательская реализация функции fetch (для прокси, TLS и т. д.).

onTokenRefreshed: OnTokenRefreshed — дополнительный обратный вызов, срабатывающий после каждого обновления токена.

timeout: number — время ожидания запроса HTTP в миллисекундах. По умолчанию: 30 000.

maxRetries: number — максимальное количество повторных попыток при временных сбоях. По умолчанию: 2.

refreshBuffer: number — количество секунд до истечения срока действия токена, при котором запускается упреждающее обновление. По умолчанию: 60.

logger: Logger — экземпляр логгера для вывода диагностических данных. Методы Такие же, как и для SPAAuth: getToken(), getAuthorizationUrl({ state }), exchangeCode({ code, codeVerifier }), refresh(), revoke(), exportTokens(), importTokens(data).

Объект, возвращаемый SPAAuth.getAuthorizationUrl() и NativeAppAuth.getAuthorizationUrl(). Содержит URL-адрес авторизации и проверочный ключ PKCE. Свойства url: string — полный URL-адрес авторизации, на который необходимо перенаправить пользователя. codeVerifier: string — проверочный ключ PKCE, который необходимо сохранить и затем передать в метод exchangeCode().

Исключения аутентификации

Все ошибки аутентификации расширяют класс FrameioAuthError и импортируются напрямую из frameio.

ИсключениеОписание
FrameioAuthErrorБазовый класс для всех ошибок, связанных с аутентификацией в SDK.
AuthenticationErrorСбой обмена или обновления токена. Имеет свойства errorCode и errorDescription.
TokenExpiredErrorИстек срок действия токена обновления; требуется повторная аутентификация.
NetworkErrorСбой сетевого запроса (превышение времени ожидания, ошибка подключения и т. д.).
RateLimitErrorAdobe IMS вернул ошибку 429, и исчерпан лимит повторных попыток. Имеет свойство retryAfter.
PKCEErrorСбой проверки PKCE.
ConfigurationErrorОтсутствуют или являются недопустимыми обязательные параметры конфигурации.

Коллекции

Создает список коллекций для проекта.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.collections.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator,project",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.CollectionsIndexRequest

requestOptions: Collections.RequestOptions

Показывает сведения о коллекции.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.collections.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator,project",
});

Параметры

accountId: Frameio.Uuid —

collectionId: Frameio.Uuid —

request: Frameio.CollectionsShowRequest

requestOptions: Collections.RequestOptions

Комментарии

Показывает отдельный комментарий к файлу.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.comments.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "owner",
});

Параметры

accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

request: Frameio.CommentsShowRequest

requestOptions: Comments.RequestOptions

Удаляет комментарий из ресурса.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.comments.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

requestOptions: Comments.RequestOptions

Обновляет комментарий к указанному ресурсу.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.comments.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
timestamp_as_timecode: true,
data: {
annotation:
'[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]',
completed: false,
page: 4,
text: "This is great!",
},
});

Параметры

accountId: Frameio.Uuid —

commentId: Frameio.Uuid —

request: Frameio.UpdateCommentParams

requestOptions: Comments.RequestOptions

Создает список комментариев к указанному ресурсу.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.comments.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include: "owner",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.comments.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "owner",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.CommentsIndexRequest

requestOptions: Comments.RequestOptions

Создает комментарий к файлу.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.comments.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
timestamp_as_timecode: true,
data: {
annotation:
'[{"tool":"rect","color":"#F22237","size":8,"x":0.277726001863933,"y":0.12909555568499534,"w":0.3153168321877913,"h":0.5308131407269339,"ix":0.277726001863933,"iy":0.12909555568499534,"radius":8}]',
completed: false,
page: 4,
text: "This is great!",
timestamp: "00:00:02:12",
},
});

Параметры

accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.CreateCommentParams

requestOptions: Comments.RequestOptions

Создает вложение к существующему комментарию.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.comments.createAttachment("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
file_size: 1024000,
media_type: "image/png",
name: "screenshot.png",
},
});

Параметры

accountId: Frameio.FrameOrAdobeId —

commentId: Frameio.Uuid —

request: Frameio.CreateAttachmentParams

requestOptions: Comments.RequestOptions

Удаляет вложение из комментария.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.comments.deleteAttachment("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.FrameOrAdobeId —

commentId: Frameio.Uuid —

attachmentId: Frameio.Uuid —

requestOptions: Comments.RequestOptions

Пользовательские действия

Создает список действий в указанной рабочей среде.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.customActions.actionsIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.FrameOrAdobeId —

workspaceId: Frameio.Uuid —

request: Frameio.ActionsIndexRequest

requestOptions: CustomActions.RequestOptions

Выводит сведения о пользовательском действии.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.customActions.actionsShow("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
});

Параметры

accountId: Frameio.FrameOrAdobeId —

actionId: Frameio.Uuid —

request: Frameio.ActionsShowRequest

requestOptions: CustomActions.RequestOptions

Создает пользовательское действие в рабочей среде.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.customActions.actionsCreate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
description: "customizing our workflow",
event: "my.event",
name: "First Custom Action",
timeout: 7,
url: "https://example.com/custom-action",
},
});

Параметры

accountId: Frameio.FrameOrAdobeId —

workspaceId: Frameio.Uuid —

request: Frameio.ActionCreateParams

requestOptions: CustomActions.RequestOptions

Обновляет сведения о пользовательском действии.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.customActions.actionsUpdate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
active: true,
description: "customizing our workflow",
event: "my.event",
multi_asset: true,
name: "First Custom Action",
timeout: 7,
url: "https://example.com/custom-action",
},
});

Параметры

accountId: Frameio.FrameOrAdobeId —

actionId: Frameio.Uuid —

request: Frameio.ActionUpdateParams

requestOptions: CustomActions.RequestOptions

Удаляет пользовательское действие.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.customActions.actionsDelete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.FrameOrAdobeId —

actionId: Frameio.Uuid —

requestOptions: CustomActions.RequestOptions

Файлы

Создает список файлов в указанной папке.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.files.list("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "media_links",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FilesListRequest

requestOptions: Files.RequestOptions

Создает новый файл в родительской папке. Создать файл (локальное добавление) и Создать файл (удаленное добавление) заменили эту конечную точку.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.files.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
file_size: 1137444,
media_type: "image/png",
name: "asset.png",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateParams

requestOptions: Files.RequestOptions

Показывает сведения о файле.

Используйте параметр запроса include, чтобы в ответ выборочно включались дополнительные свойства.

Если вы передадите параметр media_links.original, а у пользователя не будет прав на загрузку этого файла, то эта конечная точка вернет ошибку 403 (запрещено). Если контент недоступен из-за того, что для данного пользователя требуется водяной знак, а запрошенные media_links его не поддерживают, то запрос будет выполнен успешно, но неподдерживаемые ссылки на медиафайлы примут значение null. Точно так же, если запрашиваемая ссылка на перекодирование не существует для определенного файла (например, включение media_links.video_h264_180 для статического изображения) или процесс перекодирования еще не завершен (то есть статус файла — «добавлен», а не «перекодирован»), то в полезной нагрузке ответа эта ссылка также примет значение null. Проще говоря, клиент должен корректно обрабатывать ссылки на медиафайлы со значением null.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.files.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "media_links",
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FilesShowRequest

requestOptions: Files.RequestOptions

Удаляет файл по идентификатору.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.files.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

requestOptions: Files.RequestOptions

Обновляет сведения о файле.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.files.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
name: "asset.png",
},
});

Параметры

accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileUpdateParams

requestOptions: Files.RequestOptions

Копирует файл.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.files.copy("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
copy_metadata: true,
copy_comments: "none",
data: {
parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
},
});

Параметры

accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileCopyParams

requestOptions: Files.RequestOptions

Создает новый файл в родительской папке путем удаленного добавления.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.files.createRemoteUpload("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
name: "asset.png",
source_url: "https://upload.wikimedia.org/wikipedia/commons/e/e1/White_Pixel_1x1.png",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateRemoteUploadParams

requestOptions: Files.RequestOptions

Перемещает файл в папку или стек версий.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.files.move("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
},
});

Параметры

accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.FileMoveParams

requestOptions: Files.RequestOptions

Создает новый файл в родительской папке путем локального добавления.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.files.createLocalUpload("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
file_size: 1137444,
name: "asset.png",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FileCreateLocalUploadParams

requestOptions: Files.RequestOptions

Показать сведения о статусе добавления файла.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.files.showFileUploadStatus("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

requestOptions: Files.RequestOptions

Импортирует файл из хранилища, настроенного в учетной записи.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.files.importFile("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
key: "uploads/08091b0f-a541-42f5-a059-5e8c4afecc12/original.png",
name: "asset.png",
storage_location: "123e4567-e89b-12d3-a456-426614174000",
},
});

Параметры

accountId: Frameio.FrameOrAdobeId —

folderId: Frameio.FrameOrAdobeId —

request: Frameio.FileImportParams

requestOptions: Files.RequestOptions

Разрешения папки

Создает список ролей пользователей для указанной папки.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.folderPermissions.folderUserRolesIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include_deactivated: true,
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderUserRolesIndexRequest

requestOptions: FolderPermissions.RequestOptions

Обновляет роли пользователей для указанной папки, если пользователь уже добавлен в нее. Если пользователь не добавлен в эту папку, он будет добавлен с указанной ролью.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.folderPermissions.folderUserRolesUpdate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
role: "editor",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

userId: Frameio.Uuid —

request: Frameio.UpdateUserRolesParams

requestOptions: FolderPermissions.RequestOptions

Удаляет пользователя из указанной папки.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.folderPermissions.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

userId: Frameio.Uuid —

requestOptions: FolderPermissions.RequestOptions

Папки

Показывает сведения о папке.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.folders.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
});

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.FoldersShowRequest

requestOptions: Folders.RequestOptions

Удаляет папку по идентификатору.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.folders.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

requestOptions: Folders.RequestOptions

Обновляет сведения о папке.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.folders.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
name: "Folder name",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderUpdateParams

requestOptions: Folders.RequestOptions

Создает список дочерних элементов в указанной папке.

Используйте параметр запроса include, чтобы в ответ выборочно включались дополнительные свойства.

Если вы передадите параметр media_links.original, а у пользователя не будет прав на загрузку файлов в соответствующем проекте, то эта конечная точка вернет ошибку 403 (запрещено). Если контент недоступен из-за того, что для данного пользователя требуется водяной знак, а запрошенные media_links его не поддерживают, то запрос будет выполнен успешно, но неподдерживаемые ссылки на медиафайлы примут значение null. Точно так же, если запрашиваемая ссылка на перекодирование не существует для определенного файла (например, включение media_links.video_h264_180 для статического изображения) или процесс перекодирования еще не завершен (то есть статус файла — «добавлен», а не «перекодирован»), то в полезной нагрузке ответа ссылка на медиафайл также примет значение null. Проще говоря, клиент должен корректно обрабатывать ссылки на медиафайлы со значением null.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.folders.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "media_links",
type: "file,folder,version_stack",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderIndexRequest

requestOptions: Folders.RequestOptions

Копирует папку.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.folders.copy("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
copy_metadata: true,
data: {
parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderCopyParams

requestOptions: Folders.RequestOptions

Создает список папок в указанной папке.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.folders.list("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FoldersListRequest

requestOptions: Folders.RequestOptions

Создает новую папку внутри указанного параметра пути folder_id.

Лимиты запросов: 3 вызова в течение 1 секунды для account_user.

usage
await client.folders.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
name: "Folder name",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderCreateParams

requestOptions: Folders.RequestOptions

Перемещает папку в другую папку.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.folders.move("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.FolderMoveParams

requestOptions: Folders.RequestOptions

Группы

Создает список групп в учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.groups.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
sort: "creator_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.FrameOrAdobeId —

request: Frameio.GroupsIndexRequest

requestOptions: Groups.RequestOptions

Показывает сведения о группе.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.groups.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
});

Параметры

accountId: Frameio.FrameOrAdobeId —

groupId: Frameio.Uuid —

request: Frameio.GroupsShowRequest

requestOptions: Groups.RequestOptions

Создает группу для текущей учетной записи.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.groups.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
emoji: "smile",
name: "group-1",
},
});

Параметры

accountId: Frameio.FrameOrAdobeId —

request: Frameio.CreateGroupParams

requestOptions: Groups.RequestOptions

Обновляет сведения о группе.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.groups.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
emoji: "smile",
name: "group-1",
},
});

Параметры

accountId: Frameio.FrameOrAdobeId —

groupId: Frameio.Uuid —

request: Frameio.UpdateGroupParams

requestOptions: Groups.RequestOptions

Метаданные

Обновляет значения метаданных сразу в нескольких файлах.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.metadata.bulkUpdate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
file_ids: ["09b31c2a-04de-464a-a593-643a36ef0d98", "b967fc36-4e18-4b48-a3ab-c790100e2baa"],
values: [
{
field_definition_id: "ff41ce50-269b-4624-8306-aac10e28ab94",
value: [
{
id: "e60f47b4-cf8e-4273-96d5-3258a830a0aa",
type: "user",
},
{
id: "24eeaf7e-ce27-4555-bc77-cce39900626d",
type: "account_user_group",
},
],
},
],
},
});

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.BulkUpdateMetadataParams

requestOptions: Metadata.RequestOptions

Показывает метаданные файла.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.metadata.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
show_null: true,
});

Параметры

accountId: Frameio.Uuid —

fileId: Frameio.Uuid —

request: Frameio.MetadataShowRequest

requestOptions: Metadata.RequestOptions

Поля метаданных

Удаляет определения пользовательских полей на уровне учетной записи.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.metadataFields.metadataFieldDefinitionsDelete(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
);

Параметры

accountId: Frameio.Uuid —

fieldDefinitionId: Frameio.Uuid —

requestOptions: MetadataFields.RequestOptions

Обновляет определения пользовательских полей на уровне учетной записи.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.metadataFields.metadataFieldDefinitionsUpdate(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
data: {
field_type: "select",
field_configuration: {
enable_add_new: false,
options: [
{
display_name: "Option 1",
},
{
display_name: "Option 2",
},
],
},
name: "Updated-Field-Name",
},
},
);

Параметры

accountId: Frameio.Uuid —

fieldDefinitionId: Frameio.Uuid —

request: Frameio.UpdateFieldDefinitionParams

requestOptions: MetadataFields.RequestOptions

Создает список определений полей на уровне учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.metadataFields.metadataFieldDefinitionsIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

request: Frameio.MetadataFieldDefinitionsIndexRequest

requestOptions: MetadataFields.RequestOptions

Создает определения полей на уровне учетной записи.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.metadataFields.metadataFieldDefinitionsCreate("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
field_type: "select",
field_configuration: {
enable_add_new: false,
options: [
{
display_name: "Option 1",
},
{
display_name: "Option 2",
},
],
},
name: "Fields definition name",
},
});

Параметры

accountId: Frameio.Uuid —

request: Frameio.CreateFieldDefinitionParams

requestOptions: MetadataFields.RequestOptions

Разрешения проекта

Создает список ролей пользователя для указанного проекта.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.projectPermissions.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include_deactivated: true,
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.projectPermissions.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include_deactivated: true,
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectPermissionsIndexRequest

requestOptions: ProjectPermissions.RequestOptions

Удаляет пользователя из указанного проекта.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.projectPermissions.delete(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
);

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

userId: Frameio.Uuid —

requestOptions: ProjectPermissions.RequestOptions

Обновляет роли пользователя для указанного проекта, если пользователь уже добавлен в него. Если пользователь не добавлен в проект, он будет добавлен с указанной ролью.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.projectPermissions.projectUserRolesUpdate(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
data: {
role: "editor",
},
},
);

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

UserId: Frameio.Uuid —

request: Frameio.UpdateUserRolesParams

requestOptions: ProjectPermissions.RequestOptions

Проекты

Показывает сведения о проекте.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.projects.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "owner",
});

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectsShowRequest

requestOptions: Projects.RequestOptions

Удаляет проект.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.projects.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

requestOptions: Projects.RequestOptions

Обновляет сведения о проекте.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.projects.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
name: "Project Name",
restricted: true,
status: "active",
},
});

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.ProjectUpdateParams

requestOptions: Projects.RequestOptions

Создает список проектов в указанной рабочей среде.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.projects.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include: "owner",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.projects.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "owner",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.ProjectsIndexRequest

requestOptions: Projects.RequestOptions

Создает проект в указанной рабочей среде.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.projects.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
name: "Project Name",
restricted: true,
},
});

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.ProjectsParams

requestOptions: Projects.RequestOptions

Создает список всех проектов, к которым имеет доступ аутентифицированный пользователь в указанной учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.projects.accountProjectsIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "owner",
sort: "name_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.FrameOrAdobeId —

request: Frameio.AccountProjectsIndexRequest

requestOptions: Projects.RequestOptions

Создает список проектов, в которые текущий пользователь был приглашен в рамках указанной учетной записи, но к которым у него нет доступа на уровне рабочей среды. Это проекты, в которых пользователь имеет доступ для совместной работы на уровне конкретного проекта без более широких разрешений на уровне команды/рабочей среды.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.projects.invitedProjectsIndex("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "owner",
sort: "name_asc",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.FrameOrAdobeId —

request: Frameio.InvitedProjectsIndexRequest

requestOptions: Projects.RequestOptions

Поиск

Выполняет поиск по ресурсам, папкам и проектам в учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.search.search("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
engine: "nlp",
query: "red car driving on highway",
filters: {
files_and_version_stacks: true,
folders: false,
projects: false,
},
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

request: Frameio.SearchParams

requestOptions: Search.RequestOptions

Общие ресурсы

Показывает отдельный общий ресурс.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.shares.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

Удаляет общий ресурс.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.shares.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

Обновляет общий ресурс.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.shares.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
access: "public",
description: "A descriptive summary of the share",
downloading_enabled: true,
expiration: "2026-01-22T17:04:53Z",
name: "Share Name",
passphrase: "as!dfj39sd(*",
},
});

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.UpdateShareParams

requestOptions: Shares.RequestOptions

Создает список рецензентов общего ресурса.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
const response = await client.shares.listReviewers(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.shares.listReviewers(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.SharesListReviewersRequestreParams

requestOptions: Shares.RequestOptions

Добавляет рецензентов в безопасный общий ресурс по трем типам идентификаторов: adobe_user_id, email и user_id.

Запрос может включать только один параметр типа идентификатора.

email — единственный идентификатор, позволяющий добавлять в общий ресурс рецензентов, у которых нет учетной записи участника Frame в учетной записи, к которой принадлежит общий ресурс.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.shares.addReviewers("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
message: "Please join my share!",
reviewers: {
emails: ["email1@domain.com", "email2@domain.com"],
},
},
});

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.AddReviewersToShareParams

requestOptions: Shares.RequestOptions

Удаляет рецензентов из защищенного общего ресурса по трем типам идентификаторов: adobe_user_id, email и user_id.

Запрос может включать только один параметр типа идентификатора.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.shares.removeReviewers("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
reviewers: {
adobe_user_ids: ["2A3C1A3D66C621B20A494021@176719f5667c82b4499999.e"],
},
},
});

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.RemoveReviewerParams

requestOptions: Shares.RequestOptions

Удаляет ресурс, который в настоящий момент указан в ссылке общего доступа, из этой ссылки.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.shares.removeAsset(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
);

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

assetId: Frameio.Uuid —

requestOptions: Shares.RequestOptions

Добавляет новый ресурс в общий доступ.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.shares.addAsset("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
asset_id: "0cc1cb59-1d7c-4176-8532-afe099897318",
},
});

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.AddAssetParams

requestOptions: Shares.RequestOptions

Создает список общих ресурсов в проекте.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.shares.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.shares.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

shareId: Frameio.Uuid —

request: Frameio.SharesIndexRequest

requestOptions: Shares.RequestOptions

Создает общий ресурс.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.shares.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
type: "asset",
access: "public",
asset_ids: ["12eb1446-5736-4f93-85fc-3b636f156211", "f23a3b3e-7b1f-4655-b91a-acf0566e5bb9"],
downloading_enabled: true,
expiration: "2026-01-22T17:04:53Z",
name: "Share Name",
passphrase: "as!dfj39sd(*",
},
});

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.CreateShareParams

requestOptions: Shares.RequestOptions

Пользователи

Проверяет сведения о пользователе, связанном с токеном Bearer.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.users.show();

Параметры

requestOptions: Users.RequestOptions

Стеки версий

Создает список дочерних элементов (файлов) в указанном стеке версий.

Используйте параметр запроса include, чтобы в ответ выборочно включались дополнительные свойства.

Если вы передадите параметрmedia_links.original, а у пользователя не будет прав на загрузку файлов в соответствующем проекте, то эта конечная точка вернет ошибку 403 (запрещено). Если контент недоступен из-за того, что для данного пользователя требуется водяной знак, а запрошенные media_links его не поддерживают, то запрос будет выполнен успешно, но неподдерживаемые ссылки на медиафайлы примут значение null. Точно так же, если запрашиваемая ссылка на перекодирование не существует для определенного файла (например, включение media_links.video_h264_180 для статического изображения) или процесс перекодирования еще не завершен (то есть статус файла — «добавлен», а не «перекодирован»), то в полезной нагрузке ответа ссылка на медиафайл также примет значение null. Проще говоря, клиент должен корректно обрабатывать ссылки на медиафайлы со значением null.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.versionStacks.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "media_links",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

projectId: Frameio.Uuid —

request: Frameio.VersionStacksIndexRequest

requestOptions: VersionStacks.RequestOptions

Показывает сведения о стеке версий.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.versionStacks.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "media_links",
});

Параметры

accountId: Frameio.Uuid —

versionStackId: Frameio.Uuid —

request: Frameio.VersionStacksShowRequest

requestOptions: VersionStacks.RequestOptions

Копирует стек версий.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.versionStacks.copy("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
copy_metadata: true,
data: {
parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
},
});

Параметры

accountId: Frameio.Uuid —

versionStackId: Frameio.Uuid —

request: Frameio.VersionStackCopyParams

requestOptions: VersionStacks.RequestOptions

Создает список стеков версий в указанной папке.

Лимиты запросов: 5 вызовов в течение 1 секунды для account_user.

usage
await client.versionStacks.list("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "media_links",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStacksListRequest

requestOptions: VersionStacks.RequestOptions

Создает новый стек версий в родительской папке.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.versionStacks.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
file_ids: ["dd2a3cdd-fc90-41bd-a7b8-8a0447aec6d4", "79fed48a-8372-496e-8dcb-5e959b9b9fcf"],
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStackCreateParams

requestOptions: VersionStacks.RequestOptions

Перемещает стек версий в папку.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.versionStacks.move("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
parent_id: "2e426fe0-f965-4594-8b2b-b4dff1dc00ec",
},
});

Параметры

accountId: Frameio.Uuid —

folderId: Frameio.Uuid —

request: Frameio.VersionStackMoveParams

requestOptions: VersionStacks.RequestOptions

Веб-перехватчики

Создает список веб-перехватчиков для указанной рабочей среды.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.webhooks.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include: "creator",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.webhooks.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WebhooksIndexRequest

requestOptions: Webhooks.RequestOptions

Создает отдельный веб-перехватчик с секретным ключом.

Допустимые события:

file.created, file.deleted, file.ready, file.updated, file.upload.completed, file.versioned, file.copied, folder.created, folder.deleted, folder.updated, folder.copied, comment.completed, comment.created, comment.deleted, comment.uncompleted, comment.updated, customfield.created, customfield.updated, customfield.deleted, metadata.value.updated, project.created, project.deleted, project.updated, collection.created, collection.updated, collection.deleted, share.created, share.updated, share.deleted, share.viewed

Лимиты запросов: 10 вызовов в течение 1 минуты для учетной записи

usage
await client.webhooks.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
events: [
"file.created",
"file.deleted",
"file.ready",
"file.updated",
"file.upload.completed",
"file.versioned",
"file.copied",
"folder.created",
"folder.deleted",
"folder.updated",
"folder.copied",
"comment.completed",
"comment.created",
"comment.deleted",
"comment.uncompleted",
"comment.updated",
"customfield.created",
"customfield.updated",
"customfield.deleted",
"metadata.value.updated",
"project.created",
"project.deleted",
"project.updated",
"collection.created",
"collection.updated",
"collection.deleted",
"share.created",
"share.updated",
"share.deleted",
"share.viewed",
],
name: "New Webhook",
url: "https://url.example.com",
},
});

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WebhookCreateParams

requestOptions: Webhooks.RequestOptions

Показывает сведения о веб-перехватчике.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.webhooks.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
});

Параметры

accountId: Frameio.Uuid —

webhookId: Frameio.Uuid —

request: Frameio.WebhooksShowRequest

requestOptions: Webhooks.RequestOptions

Удаляет веб-перехватчик.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.webhooks.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

webhookId: Frameio.Uuid —

requestOptions: Webhooks.RequestOptions

Обновляет сведения о веб-перехватчике.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.webhooks.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
active: true,
events: [
"file.created",
"file.deleted",
"file.ready",
"file.updated",
"file.upload.completed",
"file.versioned",
"file.copied",
"folder.created",
"folder.deleted",
"folder.updated",
"folder.copied",
"comment.completed",
"comment.created",
"comment.deleted",
"comment.uncompleted",
"comment.updated",
"customfield.created",
"customfield.updated",
"customfield.deleted",
"metadata.value.updated",
"project.created",
"project.deleted",
"project.updated",
"collection.created",
"collection.updated",
"collection.deleted",
"share.created",
"share.updated",
"share.deleted",
"share.viewed",
],
name: "Updated Webhook",
url: "https://url.example.com",
},
});

Параметры

accountId: Frameio.Uuid —

webhookId: Frameio.Uuid—

request: Frameio.WebhookUpdateParams

requestOptions: Webhooks.RequestOptions

Разрешения рабочей среды

Создает список ролей пользователя для указанной рабочей среды.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.workspacePermissions.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include_deactivated: true,
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.workspacePermissions.index(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
include_deactivated: true,
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
},
);
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspacePermissionsIndexRequest

requestOptions: WorkspacePermissions.RequestOptions

Удаляет пользователя из указанной рабочей среды.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.workspacePermissions.workspaceUserRolesDelete(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
);

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

userId: Frameio.Uuid —

requestOptions: WorkspacePermissions.RequestOptions

Обновляет роли пользователя для указанной рабочей среды, если пользователь уже добавлен в нее. Если пользователь не добавлен в рабочую среду, он будет добавлен с указанной ролью.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.workspacePermissions.workspaceUserRolesUpdate(
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
"b2702c44-c6da-4bb6-8bbd-be6e547ccf1b",
{
data: {
role: "editor",
},
},
);

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

userId: Frameio.Uuid —

request: Frameio.UpdateUserRolesParams

requestOptions: WorkspacePermissions.RequestOptions

Рабочие среды

Показывает сведения о рабочей среде.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
await client.workspaces.show("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
});

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspacesShowRequest

requestOptions: Workspaces.RequestOptions

Удаляет рабочую среду из учетной записи.

Лимиты запросов: 60 вызовов в течение 1 минуты для account_user.

usage
await client.workspaces.delete("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b");

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

requestOptions: Workspaces.RequestOptions

Обновляет рабочую среду.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.workspaces.update("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", "b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
name: "My Workspace",
},
});

Параметры

accountId: Frameio.Uuid —

workspaceId: Frameio.Uuid —

request: Frameio.WorkspaceParams

requestOptions: Workspaces.RequestOptions

Создает список рабочих сред для указанной учетной записи.

Лимиты запросов: 100 вызовов в течение 1 минуты для account_user.

usage
const response = await client.workspaces.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
for await (const item of response) {
console.log(item);
}
// Or you can manually iterate page-by-page
let page = await client.workspaces.index("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
include: "creator",
after: "<opaque_cursor>",
page_size: 10,
include_total_count: false,
});
while (page.hasNextPage()) {
page = page.getNextPage();
}

Параметры

accountId: Frameio.Uuid —

request: Frameio.WorkspacesIndexRequest

requestOptions: Workspaces.RequestOptions

Создает рабочую среду из учетной записи.

Лимиты запросов: 10 вызовов в течение 1 минуты для account_user.

usage
await client.workspaces.create("b2702c44-c6da-4bb6-8bbd-be6e547ccf1b", {
data: {
name: "My Workspace",
},
});

Параметры

accountId: Frameio.Uuid —

request: Frameio.WorkspaceParams

requestOptions: Workspaces.RequestOptions


npm

Посмотреть в npm