@inneropen/marvin-sdk 4.2.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/publish.cjs CHANGED
@@ -524,6 +524,9 @@ var HttpClient = class _HttpClient {
524
524
  errorText
525
525
  );
526
526
  }
527
+ if (options?.responseType === "binary") {
528
+ return await this.readBinary(response, method, endpoint);
529
+ }
527
530
  const data = await this.readBody(response, method, endpoint);
528
531
  if (this.debug && data !== void 0) {
529
532
  const sanitized = this.sanitizeForLogging(data);
@@ -569,12 +572,34 @@ var HttpClient = class _HttpClient {
569
572
  );
570
573
  }
571
574
  }
575
+ /** A successful response's bytes; a 204/205 is an empty array. A failed read is a network error. */
576
+ async readBinary(response, method, endpoint) {
577
+ const contentType = response.headers.get("content-type");
578
+ if (response.status === 204 || response.status === 205) {
579
+ return { data: new Uint8Array(0), contentType };
580
+ }
581
+ try {
582
+ return { data: new Uint8Array(await response.arrayBuffer()), contentType };
583
+ } catch (error) {
584
+ const cause = error instanceof Error ? error : void 0;
585
+ throw new MarvinNetworkError(
586
+ `Reading the ${response.status} response to ${method} ${endpoint} failed: ${cause?.message ?? String(error)}`,
587
+ cause
588
+ );
589
+ }
590
+ }
572
591
  /**
573
592
  * GET request
574
593
  */
575
594
  async get(endpoint, params) {
576
595
  return this.request("GET", endpoint, { params });
577
596
  }
597
+ /**
598
+ * GET a binary body (a file download). Follows redirects; retried like any GET.
599
+ */
600
+ async getBinary(endpoint, params) {
601
+ return this.request("GET", endpoint, { params, responseType: "binary" });
602
+ }
578
603
  /**
579
604
  * POST request
580
605
  */
@@ -847,6 +872,11 @@ var Entry = class {
847
872
  };
848
873
 
849
874
  // src/entries/entries.ts
875
+ function csv(value) {
876
+ if (value === void 0) return void 0;
877
+ const joined = (Array.isArray(value) ? value : [value]).map((v) => v.trim()).filter(Boolean).join(",");
878
+ return joined || void 0;
879
+ }
850
880
  function toListEntry(raw) {
851
881
  const { collections, ...rest } = raw;
852
882
  return {
@@ -868,6 +898,9 @@ var EntriesModule = class {
868
898
  const queryString = this.http.buildQueryString({
869
899
  entry_type: options.entryType,
870
900
  collection: options.collection,
901
+ tag: csv(options.tag),
902
+ slug: csv(options.slug),
903
+ updated_since: options.updatedSince instanceof Date ? options.updatedSince.toISOString() : options.updatedSince,
871
904
  limit: options.limit,
872
905
  offset: options.offset,
873
906
  expand: options.expand
@@ -1080,6 +1113,14 @@ var AssetsModule = class {
1080
1113
  const endpoint = `/api/publish/${this.workspaceSlug}/assets/${slugOrId}`;
1081
1114
  return this.http.fetch(endpoint);
1082
1115
  }
1116
+ /**
1117
+ * Download a published asset's file by slug: its bytes and content type. The file route
1118
+ * redirects to storage; the redirect is followed. Needs the `read:assets` permission.
1119
+ */
1120
+ async download(slug) {
1121
+ const validSlug = this.http.validatePathParam(slug, "asset slug");
1122
+ return this.http.getBinary(`/api/publish/${this.workspaceSlug}/assets/${validSlug}/file`);
1123
+ }
1083
1124
  /**
1084
1125
  * Convenience: Get all images
1085
1126
  */
@@ -1,7 +1,7 @@
1
- import { M as MarvinConfig, a as MarvinClient } from './marvin-BiXcixLB.cjs';
2
- export { C as Collection, E as Entry, b as MarvinApiError, c as MarvinAuthError, d as MarvinCache, e as MarvinConfigError, f as MarvinError, g as MarvinNetworkError, h as MarvinNotFoundError, i as MarvinServerError, j as MarvinValidationError, P as PaginatedResponse, k as PaginationMeta, l as PaginationParams, R as Resource, W as Workspace, m as createConfigFromEnv, n as createPaginatedResponse, o as extractData, p as isFullEntryData, q as isPaginatedResponse, r as offsetToPage, s as pageToOffset } from './marvin-BiXcixLB.cjs';
3
- export { e as ExpandOptions, G as GetAssetsOptions, f as GetEntriesOptions, g as GetResourcesOptions, M as MarvinAsset, h as MarvinCollection, i as MarvinCollectionExpanded, j as MarvinEntry, k as MarvinEntryListItem, l as MarvinEntryType, m as MarvinPublishResponse, n as MarvinResource, o as MarvinSite, P as PublishedAssetRead, p as PublishedCollectionSummary, q as PublishedEntryAsset, r as PublishedEntryResource, S as SiteConfiguration, W as WorkspaceInfo } from './index-BEEbnrXV.cjs';
4
- export { A as AuthStrategy, B as BearerTokenAuth, H as HttpClient, a as HttpClientConfig } from './HttpClient-B_rEmJuO.cjs';
1
+ import { M as MarvinConfig, a as MarvinClient } from './marvin-5BuvJtTp.cjs';
2
+ export { C as Collection, E as Entry, b as MarvinApiError, c as MarvinAuthError, d as MarvinCache, e as MarvinConfigError, f as MarvinError, g as MarvinNetworkError, h as MarvinNotFoundError, i as MarvinServerError, j as MarvinValidationError, P as PaginatedResponse, k as PaginationMeta, l as PaginationParams, R as Resource, W as Workspace, m as createConfigFromEnv, n as createPaginatedResponse, o as extractData, p as isFullEntryData, q as isPaginatedResponse, r as offsetToPage, s as pageToOffset } from './marvin-5BuvJtTp.cjs';
3
+ export { e as ExpandOptions, G as GetAssetsOptions, f as GetEntriesOptions, g as GetResourcesOptions, M as MarvinAsset, h as MarvinCollection, i as MarvinCollectionExpanded, j as MarvinEntry, k as MarvinEntryListItem, l as MarvinEntryType, m as MarvinPublishResponse, n as MarvinResource, o as MarvinSite, P as PublishedAssetRead, p as PublishedCollectionSummary, q as PublishedEntryAsset, r as PublishedEntryResource, S as SiteConfiguration, W as WorkspaceInfo } from './index-7sv2m2Pe.cjs';
4
+ export { A as AuthStrategy, B as BearerTokenAuth, H as HttpClient, b as HttpClientConfig } from './HttpClient-DXMNOPqu.cjs';
5
5
 
6
6
  /**
7
7
  * Publishing API Entry Point
package/dist/publish.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { M as MarvinConfig, a as MarvinClient } from './marvin-BjJXe-YT.js';
2
- export { C as Collection, E as Entry, b as MarvinApiError, c as MarvinAuthError, d as MarvinCache, e as MarvinConfigError, f as MarvinError, g as MarvinNetworkError, h as MarvinNotFoundError, i as MarvinServerError, j as MarvinValidationError, P as PaginatedResponse, k as PaginationMeta, l as PaginationParams, R as Resource, W as Workspace, m as createConfigFromEnv, n as createPaginatedResponse, o as extractData, p as isFullEntryData, q as isPaginatedResponse, r as offsetToPage, s as pageToOffset } from './marvin-BjJXe-YT.js';
3
- export { e as ExpandOptions, G as GetAssetsOptions, f as GetEntriesOptions, g as GetResourcesOptions, M as MarvinAsset, h as MarvinCollection, i as MarvinCollectionExpanded, j as MarvinEntry, k as MarvinEntryListItem, l as MarvinEntryType, m as MarvinPublishResponse, n as MarvinResource, o as MarvinSite, P as PublishedAssetRead, p as PublishedCollectionSummary, q as PublishedEntryAsset, r as PublishedEntryResource, S as SiteConfiguration, W as WorkspaceInfo } from './index-BEEbnrXV.js';
4
- export { A as AuthStrategy, B as BearerTokenAuth, H as HttpClient, a as HttpClientConfig } from './HttpClient-B_rEmJuO.js';
1
+ import { M as MarvinConfig, a as MarvinClient } from './marvin-Bm0EveOU.js';
2
+ export { C as Collection, E as Entry, b as MarvinApiError, c as MarvinAuthError, d as MarvinCache, e as MarvinConfigError, f as MarvinError, g as MarvinNetworkError, h as MarvinNotFoundError, i as MarvinServerError, j as MarvinValidationError, P as PaginatedResponse, k as PaginationMeta, l as PaginationParams, R as Resource, W as Workspace, m as createConfigFromEnv, n as createPaginatedResponse, o as extractData, p as isFullEntryData, q as isPaginatedResponse, r as offsetToPage, s as pageToOffset } from './marvin-Bm0EveOU.js';
3
+ export { e as ExpandOptions, G as GetAssetsOptions, f as GetEntriesOptions, g as GetResourcesOptions, M as MarvinAsset, h as MarvinCollection, i as MarvinCollectionExpanded, j as MarvinEntry, k as MarvinEntryListItem, l as MarvinEntryType, m as MarvinPublishResponse, n as MarvinResource, o as MarvinSite, P as PublishedAssetRead, p as PublishedCollectionSummary, q as PublishedEntryAsset, r as PublishedEntryResource, S as SiteConfiguration, W as WorkspaceInfo } from './index-7sv2m2Pe.js';
4
+ export { A as AuthStrategy, B as BearerTokenAuth, H as HttpClient, b as HttpClientConfig } from './HttpClient-DXMNOPqu.js';
5
5
 
6
6
  /**
7
7
  * Publishing API Entry Point
package/dist/publish.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  init_resource,
14
14
  init_workspace,
15
15
  isFullEntryData
16
- } from "./chunk-HFNIFS2A.js";
16
+ } from "./chunk-KXI2FQSO.js";
17
17
  import {
18
18
  BearerTokenAuth,
19
19
  HttpClient,
@@ -33,7 +33,7 @@ import {
33
33
  isPaginatedResponse,
34
34
  offsetToPage,
35
35
  pageToOffset
36
- } from "./chunk-DSVYCVQD.js";
36
+ } from "./chunk-LTX3MAUE.js";
37
37
 
38
38
  // src/publish.ts
39
39
  init_marvin();
@@ -1 +1 @@
1
- export { u as AssetAttachment, v as AssetUploadRequest, A as AuthToken, w as CollectionAttachment, C as CollectionContext, a as CollectionEntry, b as CollectionEntryMetadata, E as EntryAsset, c as EntryCollectionContext, x as EntryCollectionRead, d as EntryResource, e as ExpandOptions, G as GetAssetsOptions, f as GetEntriesOptions, g as GetResourcesOptions, L as ListEntry, M as MarvinAsset, y as MarvinClientConfig, h as MarvinCollection, i as MarvinCollectionExpanded, j as MarvinEntry, k as MarvinEntryListItem, l as MarvinEntryType, m as MarvinPublishResponse, n as MarvinResource, o as MarvinSite, P as PublishedAssetRead, p as PublishedCollectionSummary, q as PublishedEntryAsset, z as PublishedEntryCollection, r as PublishedEntryResource, s as PublishedEntryType, B as PublishedResourceSummary, R as ResourceAttachment, S as SiteConfiguration, D as SiteSeo, F as SiteSeoVerification, W as WorkspaceInfo } from '../index-BEEbnrXV.cjs';
1
+ export { u as AssetAttachment, v as AssetUploadRequest, A as AuthToken, w as CollectionAttachment, C as CollectionContext, a as CollectionEntry, b as CollectionEntryMetadata, E as EntryAsset, c as EntryCollectionContext, x as EntryCollectionRead, d as EntryResource, e as ExpandOptions, G as GetAssetsOptions, f as GetEntriesOptions, g as GetResourcesOptions, L as ListEntry, M as MarvinAsset, y as MarvinClientConfig, h as MarvinCollection, i as MarvinCollectionExpanded, j as MarvinEntry, k as MarvinEntryListItem, l as MarvinEntryType, m as MarvinPublishResponse, n as MarvinResource, o as MarvinSite, P as PublishedAssetRead, p as PublishedCollectionSummary, q as PublishedEntryAsset, z as PublishedEntryCollection, r as PublishedEntryResource, s as PublishedEntryType, B as PublishedResourceSummary, R as ResourceAttachment, S as SiteConfiguration, D as SiteSeo, F as SiteSeoVerification, W as WorkspaceInfo } from '../index-7sv2m2Pe.cjs';
@@ -1 +1 @@
1
- export { u as AssetAttachment, v as AssetUploadRequest, A as AuthToken, w as CollectionAttachment, C as CollectionContext, a as CollectionEntry, b as CollectionEntryMetadata, E as EntryAsset, c as EntryCollectionContext, x as EntryCollectionRead, d as EntryResource, e as ExpandOptions, G as GetAssetsOptions, f as GetEntriesOptions, g as GetResourcesOptions, L as ListEntry, M as MarvinAsset, y as MarvinClientConfig, h as MarvinCollection, i as MarvinCollectionExpanded, j as MarvinEntry, k as MarvinEntryListItem, l as MarvinEntryType, m as MarvinPublishResponse, n as MarvinResource, o as MarvinSite, P as PublishedAssetRead, p as PublishedCollectionSummary, q as PublishedEntryAsset, z as PublishedEntryCollection, r as PublishedEntryResource, s as PublishedEntryType, B as PublishedResourceSummary, R as ResourceAttachment, S as SiteConfiguration, D as SiteSeo, F as SiteSeoVerification, W as WorkspaceInfo } from '../index-BEEbnrXV.js';
1
+ export { u as AssetAttachment, v as AssetUploadRequest, A as AuthToken, w as CollectionAttachment, C as CollectionContext, a as CollectionEntry, b as CollectionEntryMetadata, E as EntryAsset, c as EntryCollectionContext, x as EntryCollectionRead, d as EntryResource, e as ExpandOptions, G as GetAssetsOptions, f as GetEntriesOptions, g as GetResourcesOptions, L as ListEntry, M as MarvinAsset, y as MarvinClientConfig, h as MarvinCollection, i as MarvinCollectionExpanded, j as MarvinEntry, k as MarvinEntryListItem, l as MarvinEntryType, m as MarvinPublishResponse, n as MarvinResource, o as MarvinSite, P as PublishedAssetRead, p as PublishedCollectionSummary, q as PublishedEntryAsset, z as PublishedEntryCollection, r as PublishedEntryResource, s as PublishedEntryType, B as PublishedResourceSummary, R as ResourceAttachment, S as SiteConfiguration, D as SiteSeo, F as SiteSeoVerification, W as WorkspaceInfo } from '../index-7sv2m2Pe.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inneropen/marvin-sdk",
3
- "version": "4.2.0",
3
+ "version": "4.4.0",
4
4
  "description": "Official TypeScript SDK for Marvin CMS",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",