@giveitsmaller/sdk 0.8.0 → 0.10.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/README.md +8 -0
- package/dist/_audit.js +5 -1
- package/dist/builder.d.ts +1 -8
- package/dist/builder.js +72 -18
- package/dist/client.d.ts +38 -2
- package/dist/client.js +131 -7
- package/dist/credentials.js +4 -2
- package/dist/ergonomic/preset_resolver.js +4 -5
- package/dist/ergonomic/presets/image_compress.d.ts +1 -9
- package/dist/ergonomic/presets/image_compress.js +6 -25
- package/dist/ergonomic/presets/index.d.ts +1 -1
- package/dist/ergonomic/presets/index.js +1 -1
- package/dist/errors.d.ts +75 -1
- package/dist/errors.js +73 -0
- package/dist/file-first.d.ts +456 -4
- package/dist/file-first.js +1042 -83
- package/dist/generated/sdk_spec/enums.d.ts +0 -11
- package/dist/generated/sdk_spec/enums.js +0 -7
- package/dist/generated/sdk_spec/errors.d.ts +1 -1
- package/dist/generated/sdk_spec/errors.js +26 -0
- package/dist/generated/sdk_spec/presets.js +0 -3
- package/dist/generated/sdk_spec/version.d.ts +2 -2
- package/dist/generated/sdk_spec/version.js +2 -2
- package/dist/gisl.d.ts +22 -1
- package/dist/gisl.js +31 -1
- package/dist/handle.d.ts +153 -0
- package/dist/handle.js +273 -0
- package/dist/index.browser.d.ts +1 -0
- package/dist/index.browser.js +14 -0
- package/dist/index.core.d.ts +35 -0
- package/dist/index.core.js +102 -0
- package/dist/index.d.ts +1 -30
- package/dist/index.js +9 -73
- package/dist/lazy-downloader.d.ts +19 -0
- package/dist/lazy-downloader.js +19 -0
- package/dist/merge.d.ts +13 -1
- package/dist/merge.js +186 -55
- package/dist/node-fs.browser.d.ts +17 -0
- package/dist/node-fs.browser.js +7 -0
- package/dist/node-fs.d.ts +14 -0
- package/dist/node-fs.js +14 -0
- package/dist/sha256.d.ts +20 -0
- package/dist/sha256.js +108 -0
- package/dist/types.d.ts +54 -2
- package/dist/types.js +2 -0
- package/package.json +15 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Browser entry point — selected by the `browser` exports condition in
|
|
2
|
+
// package.json (Vite / webpack / Rollup / esbuild / Parcel; Node ignores it).
|
|
3
|
+
//
|
|
4
|
+
// Re-exports ONLY the browser-safe shared surface (`index.core.ts`). It
|
|
5
|
+
// deliberately OMITS the Node-only `verifyWebhook` (node:crypto) and
|
|
6
|
+
// `HttpDownloader` (node:fs) that the Node entry (`index.ts`) adds — keeping
|
|
7
|
+
// `node:` built-ins out of the browser static import graph. A strict subset of
|
|
8
|
+
// the Node entry by construction, so it cannot silently drift.
|
|
9
|
+
//
|
|
10
|
+
// Output sinks (`RunResult.downloadTo()` / `toFile()`) are Node-only and throw
|
|
11
|
+
// `GislSinkError` in a browser by design — read `RunResult.artifacts[].url`
|
|
12
|
+
// (or `RunResult.url` for a single output) and fetch it in the browser. See
|
|
13
|
+
// docs/typescript/browser.md.
|
|
14
|
+
export * from './index.core.js';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export { GislClient, DEFAULT_MULTIPART_FIRST_CHUNK_SIZE } from './client.js';
|
|
2
|
+
export { parseSseStream } from './sse.js';
|
|
3
|
+
export type { CreditsUsageOptions, ListWorkflowsOptions, GetSchemaOptions, GetSchemaResult, PreflightClipError, PreflightClipsResult, GislClientConfig, GislSseEvent, UploadOptions, WaitOptions, WorkflowCreatePayload, OperationDef, WorkflowSourcePayload, MultiInputSourcePayload, UploadSourcePayload, JobOutputSourcePayload, ExternalImportSourcePayload, ConnectionSourcePayload, JobInputV2Payload, JobDefinitionPayload, ExternalDestinationPayload, DeliveryPayload, DeliveryModePayload, DeliveryBundleFormatPayload, DeliverySelectionPayload, DeliverySelectionTypePayload, DeliveryOutputRefPayload, WorkflowProcessingPayload, ProcessingClassHintPayload, MultipartCheckpointState, _Sdk3HandCodedUploadedPart, _Sdk3HandCodedMultipartStatusResult, _Sdk3HandCodedPresignedPart, _Sdk3HandCodedPresignPartsResult, _Sdk3HandCodedKeepaliveResult, } from './types.js';
|
|
4
|
+
export { uploadSource, jobOutputSource, externalImportSource, connectionSource, } from './types.js';
|
|
5
|
+
export type { GislConfigErrorMetadata } from './errors.js';
|
|
6
|
+
export { GislError, GislApiError, GislValidationError, GislBalanceExhaustedError, GislTierRestrictedError, GislFeatureTierRestrictedError, GislFeatureNotAvailableError, GislWorkflowExpiredError, GislProbePendingError, GislAuthError, GislUploadCapExceededError, GislMultipartPartError, GislMultipartPartCountError, GislMultipartSessionNotFoundError, GislMultipartSessionOwnershipError, GislMultipartSessionAuthRequiredError, GislTimeoutError, GislAbortError, GislNetworkError, GislConfigError, GislMissingCredentialsError, GislFeatureRequiresAuthError, GislUndeclaredAssetError, GislUnusedAssetError, GislPerInputOptionsNotSupportedError, GislChainCardinalityMismatchError, GislNoSuchKeyError, GislSinkError, GislResultNotReadyError, } from './errors.js';
|
|
7
|
+
export type { GislApiErrorOptions, GislUploadCapKind } from './errors.js';
|
|
8
|
+
export { RunResult } from './file-first.js';
|
|
9
|
+
export type { OutputFile, ItemResult, ItemFailure, Manifest, Downloader, } from './file-first.js';
|
|
10
|
+
export { Recipe, fileInput } from './file-first.js';
|
|
11
|
+
export type { FileInput } from './file-first.js';
|
|
12
|
+
export { FilesRecipe } from './file-first.js';
|
|
13
|
+
export { MergedRecipe } from './file-first.js';
|
|
14
|
+
export { ArchivedRecipe } from './file-first.js';
|
|
15
|
+
export type { ArchiveRecipeOptions } from './file-first.js';
|
|
16
|
+
export { Handle, StatusSnapshot } from './handle.js';
|
|
17
|
+
export { gisl, create } from './gisl.js';
|
|
18
|
+
export type { GislCreateOptions, Environment, ErgonomicClient } from './gisl.js';
|
|
19
|
+
export { presetDefaults, PresetDefaults, type PresetMedia, type PresetOp, type AnyPresetOptions, ImageCompressPresetOptions, type ImageCompressPresetOptionsInput, AudioCompressPresetOptions, type AudioCompressPresetOptionsInput, VideoCompressPresetOptions, type VideoCompressPresetOptionsInput, DocumentPdfCompressPresetOptions, type DocumentPdfCompressPresetOptionsInput, DocumentOfficeCompressPresetOptions, type DocumentOfficeCompressPresetOptionsInput, DocumentOdfCompressPresetOptions, type DocumentOdfCompressPresetOptionsInput, DocumentEpubCompressPresetOptions, type DocumentEpubCompressPresetOptionsInput, OptimizeFor, ImageMode, ImageMetadataPolicy, IccProfilePolicy, ImageFormat, VideoCodec, VideoPreset, VideoFit, AudioBitrate, AudioCodec, AudioSampleRate, PdfProfile, PdfColorspace, } from './ergonomic/presets/index.js';
|
|
20
|
+
export { OperationBuilder, MapEachBuilder } from './builder.js';
|
|
21
|
+
export { MergeBuilder, asset, handle, clip } from './merge.js';
|
|
22
|
+
export type { Asset, ClipEntry, ClipOptions, MergeMediaKind, MergeOptions, SequenceEntry, } from './merge.js';
|
|
23
|
+
export type { Artifact, ArtifactRef, JobBreakdown, OperationBreakdown, ProcessingProgressEvent, ProgressEvent, ResolvedOptions, ResolvedOptionsSources, Result, RunOptions, SubmitOptions, UploadProgressEvent, } from './builder.js';
|
|
24
|
+
export { PRESET_VERSION, resolveCompressOptions } from './ergonomic/preset_resolver.js';
|
|
25
|
+
export type { ResolveCompressOptionsInput, ResolveCompressOptionsOutput, } from './ergonomic/preset_resolver.js';
|
|
26
|
+
export type { AudioWatermarkDecodeRequest, AudioWatermarkDecodeResponse, ContactRequest, CreditsBalanceResponse, CreditsUsageResponse, CreditTransaction, ExternalImportCreatedResponse, ExternalImportRequest, LoginUserRequest, LoginUser200ResponseData, LoginUser200ResponseDataUser, WorkflowCancelResponse, WorkflowResumeResponse, WorkflowPausedDetail, WorkflowPausedDetailLinks, UploadResponse, UploadConstraintsApplied, UploadProbeResponse, UploadProbeMediaMetadata, MultipartInitiateRequestMetadataHint, WorkflowCreateResponse, WorkflowStatusResponse, WorkflowListResponse, WorkflowSummary, WorkflowDownloadResponse, MetadataResponse, MetadataResponseDimensions, MetadataResponseExif, MetadataResponseExifGps, OperationsSchemaResponse, OperationSchemaDefinition, MimeGroupSchema, OptionSchema, PerValueAvailabilityEntry, PerRoleCardinalityEntry, RetryResponse, JobDownload, OperationDownload, WebhookPayload, WebhookOperationContext, JobResponse, OperationResponse, OperationResult, OperationResultMetrics, ExternalDestination, Delivery, DeliveryPlan, DeliveryPlanOutput, WorkflowProcessing, ProcessingPlan, ProcessingPlanJob, WorkflowEdge, WorkflowWarning, JobInputV2, WorkflowSource, UploadSource, JobOutputSource, ConnectionSource, ExternalImportToken, BalanceExhaustedResponse, BalanceExhaustedResponseAllOfLinks, TierRestrictionResponse, FeatureTierRestrictedResponse, FeatureNotAvailableResponse, FeatureViolation, WorkflowExpiredResponse, ProbePendingResponse, AuthErrorResponse, } from '@giveitsmaller/contracts/openapi';
|
|
27
|
+
export { AudioWatermarkDecodeRequestMethodHintEnum, AudioWatermarkDecodeResponseMethodEnum, OperationInputModel, ExternalImportRequestProviderHintEnum, ContactSubject, CreditTransactionSourceBucket, UploadProbeStatus, UploadProbeProcessingClass, WorkflowCancelBillingEffect, WorkflowPauseRequiredAction, WorkflowStatus, WarningType, WorkflowWarningSeverity, OperationType, SseEventType, CallbackEventType, OperationStatus, JobStatus, JobInputV2RoleEnum, AuthErrorType, TierRestrictionKind, BalanceExhaustedResponseRequiredActionEnum, ProcessingClassReason, DeliveryPlanReason, UserTier, ProcessingClass, } from '@giveitsmaller/contracts/openapi';
|
|
28
|
+
export type { SseOperationProgressData, SseOperationCompletedData, SseOperationFailedData, SseJobCompletedData, SseJobFailedData, SseWorkflowTerminalData, } from '@giveitsmaller/contracts/openapi';
|
|
29
|
+
export type { MultiOutputCompletion, PageIndexed, PositionIndexed, Unindexed, } from '@giveitsmaller/contracts/asyncapi';
|
|
30
|
+
import type { MultiOutputCompletion as _MultiOutputCompletion } from '@giveitsmaller/contracts/asyncapi';
|
|
31
|
+
export type OperationResultOutputEntry = _MultiOutputCompletion['outputs'][number];
|
|
32
|
+
export type { CompressImageOptions, CompressVideoOptions, CompressAudioOptions, CompressDocumentPdfOptions, CompressDocumentOfficeOptions, CompressDocumentOdfOptions, CompressDocumentEpubOptions, ThumbnailImageOptions, ThumbnailVideoOptions, ThumbnailDocumentOptions, ConvertImageOptions, ConvertVideoOptions, ConvertAudioOptions, ConvertDocumentPdfOptions, MergeImageOptions, MergeVideoOptions, MergeVideoPerInputOptions, MergeAudioOptions, MergeAudioPerInputOptions, ArchiveOptions, ImageWatermarkImageOptions, ImageWatermarkImageGifOptions, TextWatermarkImageOptions, CustomLumaVideoOptions, AudioOverlayAudioOptions, AudioOverlayVideoOptions, AudioWatermarkAudioOptions, AudioWatermarkVideoOptions, AudioToVideoAudioOptions, VideoWatermarkVideoOptions, VideoTextWatermarkVideoOptions, SplitImageGifOptions, SplitDocumentPdfOptions, SplitAudioOptions, SplitVideoOptions, } from '@giveitsmaller/contracts/operations';
|
|
33
|
+
export { ImageWatermarkImageAnchor, ImageWatermarkImageGifAnchor, TextWatermarkImageAnchor, TextWatermarkImageFontFamily, TextWatermarkImageWatermarkMode, AudioOverlayAudioMode, AudioOverlayVideoMode, AudioOverlayVideoNoAudioTrackBehaviour, AudioWatermarkAudioMethod, AudioWatermarkAudioRobustness, AudioWatermarkAudioDensity, AudioWatermarkVideoMethod, AudioWatermarkVideoRobustness, AudioWatermarkVideoDensity, AudioToVideoAudioOutputResolution, AudioToVideoAudioImageFit, AudioToVideoAudioOutputFormat, VideoWatermarkVideoAnchor, VideoTextWatermarkVideoFontFamily, VideoTextWatermarkVideoWatermarkMode, VideoTextWatermarkVideoAnchor, SplitImageGifOutputFormat, SplitDocumentPdfMode, SplitAudioMode, SplitAudioPrecision, SplitVideoMode, SplitVideoPrecision, } from '@giveitsmaller/contracts/operations';
|
|
34
|
+
export { archiveMetadata, audioOverlayMetadata, audioWatermarkMetadata, compressMetadata, convertMetadata, customLumaMetadata, imageWatermarkMetadata, mergeMetadata, textWatermarkMetadata, thumbnailMetadata, audioToVideoMetadata, videoWatermarkMetadata, videoTextWatermarkMetadata, splitMetadata, } from '@giveitsmaller/contracts/operations';
|
|
35
|
+
export type { OperationMetadata, AvailabilityValue, AvailabilityEntry, FeatureEntry, MimeGroupMetadata, OptionMetadata, ProcessingClassConstraints, } from '@giveitsmaller/contracts/operations';
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// Browser-safe shared surface. The Node-only entry (`index.ts`) re-exports
|
|
2
|
+
// everything here PLUS the Node-only symbols (`verifyWebhook`, `HttpDownloader`)
|
|
3
|
+
// that statically import node:crypto / node:fs; the browser entry
|
|
4
|
+
// (`index.browser.ts`) re-exports ONLY this core, so it is a strict subset by
|
|
5
|
+
// construction (no hand-maintained subset to drift). Keep this file free of any
|
|
6
|
+
// static `node:` import — see the bundle-gate test.
|
|
7
|
+
// SDK classes and functions
|
|
8
|
+
export { GislClient, DEFAULT_MULTIPART_FIRST_CHUNK_SIZE } from './client.js';
|
|
9
|
+
export { parseSseStream } from './sse.js';
|
|
10
|
+
export { uploadSource, jobOutputSource, externalImportSource, connectionSource, } from './types.js';
|
|
11
|
+
// Errors
|
|
12
|
+
export { GislError, GislApiError, GislValidationError, GislBalanceExhaustedError, GislTierRestrictedError, GislFeatureTierRestrictedError, GislFeatureNotAvailableError, GislWorkflowExpiredError, GislProbePendingError, GislAuthError, GislUploadCapExceededError, GislMultipartPartError, GislMultipartPartCountError,
|
|
13
|
+
// SDK-3 (Wb6ebOMM) — typed errors for the 3 resume-support endpoints.
|
|
14
|
+
GislMultipartSessionNotFoundError, GislMultipartSessionOwnershipError, GislMultipartSessionAuthRequiredError, GislTimeoutError, GislAbortError,
|
|
15
|
+
// FF2b / tywwynmN — transport-level failure (mirrors PHP GislNetworkError);
|
|
16
|
+
// raised by the file-first HttpDownloader when an output URL cannot be read.
|
|
17
|
+
GislNetworkError,
|
|
18
|
+
// T1 / wVU4xHx3 — local config-error tree (pre-I/O; sibling of GislApiError).
|
|
19
|
+
GislConfigError, GislMissingCredentialsError, GislFeatureRequiresAuthError,
|
|
20
|
+
// T3 / cuecCmb5 — merge-compose local validation errors.
|
|
21
|
+
GislUndeclaredAssetError, GislUnusedAssetError, GislPerInputOptionsNotSupportedError,
|
|
22
|
+
// T6 / aDR1jnyZ — chain-cardinality validation (dormant until chain
|
|
23
|
+
// methods on OperationBuilder ship; type + audit registration land
|
|
24
|
+
// here so the future chain-method PR is a pure addition).
|
|
25
|
+
GislChainCardinalityMismatchError,
|
|
26
|
+
// FF1 / 3BIxEnfR — file-first result sink errors.
|
|
27
|
+
GislNoSuchKeyError, GislSinkError,
|
|
28
|
+
// FF5a / Ao8RPVxD — thrown by the file-first Handle.result() when the
|
|
29
|
+
// workflow is not yet terminal (the non-blocking accessor).
|
|
30
|
+
GislResultNotReadyError, } from './errors.js';
|
|
31
|
+
// File-first result surface (FF1 / 3BIxEnfR) — coexists with the
|
|
32
|
+
// operation-first `Result`/`Artifact` until FF6 removes the old layer.
|
|
33
|
+
export { RunResult } from './file-first.js';
|
|
34
|
+
// File-first builder (FF2a / MfV0PDok) — `client.file(path).op()...` lowering.
|
|
35
|
+
export { Recipe, fileInput } from './file-first.js';
|
|
36
|
+
// File-first homogeneous fan-out (FF3a / u0hBt6fl) — `client.files([...]).op()...`
|
|
37
|
+
// applies one recipe to many inputs in one workflow; run() partitions per input.
|
|
38
|
+
// `projectMultiJobToRunResult` is intentionally NOT re-exported — it is the
|
|
39
|
+
// @internal per-job producer consumed only by FilesRecipe.run (codex).
|
|
40
|
+
export { FilesRecipe } from './file-first.js';
|
|
41
|
+
// File-first N→1 combine (FF3b / IE29x9QL) — `client.files([...]).merge(opts?)`
|
|
42
|
+
// returns a single-output MergedRecipe you chain post-combine ops on, then
|
|
43
|
+
// run()/submit(). Mirrors the operation-first `client.merge()` wire shape.
|
|
44
|
+
export { MergedRecipe } from './file-first.js';
|
|
45
|
+
// File-first N→1 bundle (FF3b) — `client.files([...]).archive(opts?)` returns a
|
|
46
|
+
// terminal ArchivedRecipe (zip / tar.gz; no post-bundle chain), then run()/submit().
|
|
47
|
+
export { ArchivedRecipe } from './file-first.js';
|
|
48
|
+
// `HttpDownloader` (Node streaming downloader) is re-exported from the Node-only
|
|
49
|
+
// entry `index.ts`, NOT here — it statically imports node:fs/node:stream.
|
|
50
|
+
// `projectDownloadsToRunResult` is intentionally NOT re-exported here — it is an
|
|
51
|
+
// @internal helper shared between `file-first.ts` (Recipe.run) and `handle.ts`
|
|
52
|
+
// (Handle.wait/result) via direct intra-package import, not public API (codex).
|
|
53
|
+
// File-first Handle + StatusSnapshot (FF5a / Ao8RPVxD) — method-bearing,
|
|
54
|
+
// client-bound value objects. `Handle` is the return of `submit()` (no client)
|
|
55
|
+
// AND `client.workflow(id)` (client-bound, reattach). Exported as VALUES (the
|
|
56
|
+
// prior `export type { Handle }` is replaced) because `Handle` is now a class.
|
|
57
|
+
export { Handle, StatusSnapshot } from './handle.js';
|
|
58
|
+
// Ergonomic-layer entrypoint (T1 / wVU4xHx3) — `gisl.create()` factory +
|
|
59
|
+
// credential-chain types. `gisl.anonymous()` (public export) lands once
|
|
60
|
+
// the anonymous-capable operation allowlist is non-empty (plan §12).
|
|
61
|
+
export { gisl, create } from './gisl.js';
|
|
62
|
+
// Ergonomic preset defaults (T4a / VhIj4S7T) — typed leaf DTOs + immutable
|
|
63
|
+
// `PresetDefaults` builder + `presetDefaults()` factory + ergonomic enum
|
|
64
|
+
// re-exports. Resolver wiring (T4b) consumes `PresetDefaults.cellFor()`.
|
|
65
|
+
export { presetDefaults, PresetDefaults, ImageCompressPresetOptions, AudioCompressPresetOptions, VideoCompressPresetOptions, DocumentPdfCompressPresetOptions, DocumentOfficeCompressPresetOptions, DocumentOdfCompressPresetOptions, DocumentEpubCompressPresetOptions, OptimizeFor, ImageMode, ImageMetadataPolicy, IccProfilePolicy, ImageFormat, VideoCodec, VideoPreset, VideoFit, AudioBitrate, AudioCodec, AudioSampleRate, PdfProfile, PdfColorspace, } from './ergonomic/presets/index.js';
|
|
66
|
+
// Operation-builder surface (T2 / xVDTIm8C) — `client.compress/convert/thumbnail`
|
|
67
|
+
// returns an `OperationBuilder`; `.run()` projects to a flat `Result` /
|
|
68
|
+
// `.submit({webhook})` returns a `Handle`. Progress events are the
|
|
69
|
+
// SDK-synthesised `{phase:'upload'|'processing', ...}` discriminated union.
|
|
70
|
+
export { OperationBuilder, MapEachBuilder } from './builder.js';
|
|
71
|
+
export { MergeBuilder, asset, handle, clip } from './merge.js';
|
|
72
|
+
// T4b — preset resolver public surface (PRESET_VERSION constant + types).
|
|
73
|
+
export { PRESET_VERSION, resolveCompressOptions } from './ergonomic/preset_resolver.js';
|
|
74
|
+
export { AudioWatermarkDecodeRequestMethodHintEnum, AudioWatermarkDecodeResponseMethodEnum,
|
|
75
|
+
// OperationInputModel — value-bearing enum (`single` | `multi`).
|
|
76
|
+
// Surfaced on OperationSchemaDefinition.inputModel so form-renderers
|
|
77
|
+
// can decide whether to render a single-file picker or a multi-file
|
|
78
|
+
// input list.
|
|
79
|
+
OperationInputModel, ExternalImportRequestProviderHintEnum, ContactSubject, CreditTransactionSourceBucket, UploadProbeStatus, UploadProbeProcessingClass, WorkflowCancelBillingEffect, WorkflowPauseRequiredAction, WorkflowStatus, WarningType, WorkflowWarningSeverity, OperationType, SseEventType, CallbackEventType, OperationStatus, JobStatus, JobInputV2RoleEnum,
|
|
80
|
+
// Error-payload discriminator enums — pair with the typed payload
|
|
81
|
+
// types above for narrowing inside `error instanceof Gisl<X>Error`
|
|
82
|
+
// branches.
|
|
83
|
+
AuthErrorType, TierRestrictionKind, BalanceExhaustedResponseRequiredActionEnum, ProcessingClassReason, DeliveryPlanReason,
|
|
84
|
+
// UserTier + ProcessingClass — value-bearing forms (typeof const +
|
|
85
|
+
// type alias). Sourced from openapi so consumers can do
|
|
86
|
+
// `Object.values(UserTier)` for tier dropdowns or
|
|
87
|
+
// `if (tier === UserTier.enterprise)` for narrowing typed error
|
|
88
|
+
// payloads. The operations metadata-types versions are pure type
|
|
89
|
+
// aliases (no runtime value); the openapi versions carry both the
|
|
90
|
+
// string-union type and a const map. Per audit follow-up.
|
|
91
|
+
UserTier, ProcessingClass, } from '@giveitsmaller/contracts/openapi';
|
|
92
|
+
export { ImageWatermarkImageAnchor, ImageWatermarkImageGifAnchor, TextWatermarkImageAnchor, TextWatermarkImageFontFamily, TextWatermarkImageWatermarkMode, AudioOverlayAudioMode, AudioOverlayVideoMode, AudioOverlayVideoNoAudioTrackBehaviour, AudioWatermarkAudioMethod, AudioWatermarkAudioRobustness, AudioWatermarkAudioDensity, AudioWatermarkVideoMethod, AudioWatermarkVideoRobustness, AudioWatermarkVideoDensity,
|
|
93
|
+
// New planned operation enums — contracts v2.15 (AJCLLGaG).
|
|
94
|
+
AudioToVideoAudioOutputResolution, AudioToVideoAudioImageFit, AudioToVideoAudioOutputFormat, VideoWatermarkVideoAnchor, VideoTextWatermarkVideoFontFamily, VideoTextWatermarkVideoWatermarkMode, VideoTextWatermarkVideoAnchor, SplitImageGifOutputFormat, SplitDocumentPdfMode, SplitAudioMode, SplitAudioPrecision, SplitVideoMode, SplitVideoPrecision, } from '@giveitsmaller/contracts/operations';
|
|
95
|
+
// Per-operation metadata sidecars. Inspect `availability`,
|
|
96
|
+
// `required_tier`, per-value gating, mime-group availability and
|
|
97
|
+
// per-feature flags before submitting a workflow — the API will
|
|
98
|
+
// otherwise reject planned ops with `feature_not_available` (422,
|
|
99
|
+
// surfaces as `GislFeatureNotAvailableError`).
|
|
100
|
+
export { archiveMetadata, audioOverlayMetadata, audioWatermarkMetadata, compressMetadata, convertMetadata, customLumaMetadata, imageWatermarkMetadata, mergeMetadata, textWatermarkMetadata, thumbnailMetadata,
|
|
101
|
+
// New planned operation metadata sidecars — contracts v2.15 (AJCLLGaG).
|
|
102
|
+
audioToVideoMetadata, videoWatermarkMetadata, videoTextWatermarkMetadata, splitMetadata, } from '@giveitsmaller/contracts/operations';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './index.core.js';
|
|
2
2
|
export { verifyWebhook } from './webhook.js';
|
|
3
|
-
export { parseSseStream } from './sse.js';
|
|
4
|
-
export type { CreditsUsageOptions, GetSchemaOptions, GetSchemaResult, PreflightClipError, PreflightClipsResult, GislClientConfig, GislSseEvent, UploadOptions, WaitOptions, WorkflowCreatePayload, OperationDef, WorkflowSourcePayload, UploadSourcePayload, JobOutputSourcePayload, ExternalImportSourcePayload, ConnectionSourcePayload, JobInputV2Payload, JobDefinitionPayload, ExternalDestinationPayload, DeliveryPayload, DeliveryModePayload, DeliveryBundleFormatPayload, DeliverySelectionPayload, DeliverySelectionTypePayload, DeliveryOutputRefPayload, WorkflowProcessingPayload, ProcessingClassHintPayload, MultipartCheckpointState, _Sdk3HandCodedUploadedPart, _Sdk3HandCodedMultipartStatusResult, _Sdk3HandCodedPresignedPart, _Sdk3HandCodedPresignPartsResult, _Sdk3HandCodedKeepaliveResult, } from './types.js';
|
|
5
|
-
export { uploadSource, jobOutputSource, externalImportSource, connectionSource, } from './types.js';
|
|
6
|
-
export type { GislConfigErrorMetadata } from './errors.js';
|
|
7
|
-
export { GislError, GislApiError, GislValidationError, GislBalanceExhaustedError, GislTierRestrictedError, GislFeatureTierRestrictedError, GislFeatureNotAvailableError, GislWorkflowExpiredError, GislProbePendingError, GislAuthError, GislUploadCapExceededError, GislMultipartPartError, GislMultipartPartCountError, GislMultipartSessionNotFoundError, GislMultipartSessionOwnershipError, GislMultipartSessionAuthRequiredError, GislTimeoutError, GislAbortError, GislNetworkError, GislConfigError, GislMissingCredentialsError, GislFeatureRequiresAuthError, GislUndeclaredAssetError, GislUnusedAssetError, GislPerInputOptionsNotSupportedError, GislChainCardinalityMismatchError, GislNoSuchKeyError, GislSinkError, } from './errors.js';
|
|
8
|
-
export type { GislApiErrorOptions, GislUploadCapKind } from './errors.js';
|
|
9
|
-
export { RunResult } from './file-first.js';
|
|
10
|
-
export type { OutputFile, ItemResult, ItemFailure, Manifest, Downloader, } from './file-first.js';
|
|
11
|
-
export { Recipe, fileInput } from './file-first.js';
|
|
12
|
-
export type { FileInput } from './file-first.js';
|
|
13
3
|
export { HttpDownloader } from './http-downloader.js';
|
|
14
|
-
export { gisl, create } from './gisl.js';
|
|
15
|
-
export type { GislCreateOptions, Environment, ErgonomicClient } from './gisl.js';
|
|
16
|
-
export { presetDefaults, PresetDefaults, type PresetMedia, type PresetOp, type AnyPresetOptions, ImageCompressPresetOptions, type ImageCompressPresetOptionsInput, AudioCompressPresetOptions, type AudioCompressPresetOptionsInput, VideoCompressPresetOptions, type VideoCompressPresetOptionsInput, DocumentPdfCompressPresetOptions, type DocumentPdfCompressPresetOptionsInput, DocumentOfficeCompressPresetOptions, type DocumentOfficeCompressPresetOptionsInput, DocumentOdfCompressPresetOptions, type DocumentOdfCompressPresetOptionsInput, DocumentEpubCompressPresetOptions, type DocumentEpubCompressPresetOptionsInput, OptimizeFor, ImageMode, ImageFit, ImageMetadataPolicy, IccProfilePolicy, ImageFormat, VideoCodec, VideoPreset, VideoFit, AudioBitrate, AudioCodec, AudioSampleRate, PdfProfile, PdfColorspace, } from './ergonomic/presets/index.js';
|
|
17
|
-
export { OperationBuilder, MapEachBuilder } from './builder.js';
|
|
18
|
-
export { MergeBuilder, asset, handle, clip } from './merge.js';
|
|
19
|
-
export type { Asset, ClipEntry, ClipOptions, MergeMediaKind, MergeOptions, SequenceEntry, } from './merge.js';
|
|
20
|
-
export type { Artifact, ArtifactRef, Handle, JobBreakdown, OperationBreakdown, ProcessingProgressEvent, ProgressEvent, ResolvedOptions, ResolvedOptionsSources, Result, RunOptions, SubmitOptions, UploadProgressEvent, } from './builder.js';
|
|
21
|
-
export { PRESET_VERSION, resolveCompressOptions } from './ergonomic/preset_resolver.js';
|
|
22
|
-
export type { ResolveCompressOptionsInput, ResolveCompressOptionsOutput, } from './ergonomic/preset_resolver.js';
|
|
23
|
-
export type { AudioWatermarkDecodeRequest, AudioWatermarkDecodeResponse, ContactRequest, CreditsBalanceResponse, CreditsUsageResponse, CreditTransaction, ExternalImportCreatedResponse, ExternalImportRequest, LoginUserRequest, LoginUser200ResponseData, LoginUser200ResponseDataUser, WorkflowCancelResponse, WorkflowResumeResponse, WorkflowPausedDetail, WorkflowPausedDetailLinks, UploadResponse, UploadConstraintsApplied, UploadProbeResponse, UploadProbeMediaMetadata, MultipartInitiateRequestMetadataHint, WorkflowCreateResponse, WorkflowStatusResponse, WorkflowDownloadResponse, MetadataResponse, MetadataResponseDimensions, MetadataResponseExif, MetadataResponseExifGps, OperationsSchemaResponse, OperationSchemaDefinition, MimeGroupSchema, OptionSchema, PerValueAvailabilityEntry, PerRoleCardinalityEntry, RetryResponse, JobDownload, OperationDownload, WebhookPayload, WebhookOperationContext, JobResponse, OperationResponse, OperationResult, OperationResultMetrics, ExternalDestination, Delivery, DeliveryPlan, DeliveryPlanOutput, WorkflowProcessing, ProcessingPlan, ProcessingPlanJob, WorkflowEdge, WorkflowWarning, JobInputV2, WorkflowSource, UploadSource, JobOutputSource, ConnectionSource, ExternalImportToken, BalanceExhaustedResponse, BalanceExhaustedResponseAllOfLinks, TierRestrictionResponse, FeatureTierRestrictedResponse, FeatureNotAvailableResponse, FeatureViolation, WorkflowExpiredResponse, ProbePendingResponse, AuthErrorResponse, } from '@giveitsmaller/contracts/openapi';
|
|
24
|
-
export { AudioWatermarkDecodeRequestMethodHintEnum, AudioWatermarkDecodeResponseMethodEnum, OperationInputModel, ExternalImportRequestProviderHintEnum, ContactSubject, CreditTransactionSourceBucket, UploadProbeStatus, UploadProbeProcessingClass, WorkflowCancelBillingEffect, WorkflowPauseRequiredAction, WorkflowStatus, WarningType, WorkflowWarningSeverity, OperationType, SseEventType, CallbackEventType, OperationStatus, JobStatus, JobInputV2RoleEnum, AuthErrorType, TierRestrictionKind, BalanceExhaustedResponseRequiredActionEnum, ProcessingClassReason, DeliveryPlanReason, UserTier, ProcessingClass, } from '@giveitsmaller/contracts/openapi';
|
|
25
|
-
export type { SseOperationProgressData, SseOperationCompletedData, SseOperationFailedData, SseJobCompletedData, SseJobFailedData, SseWorkflowTerminalData, } from '@giveitsmaller/contracts/openapi';
|
|
26
|
-
export type { MultiOutputCompletion, PageIndexed, PositionIndexed, Unindexed, } from '@giveitsmaller/contracts/asyncapi';
|
|
27
|
-
import type { MultiOutputCompletion as _MultiOutputCompletion } from '@giveitsmaller/contracts/asyncapi';
|
|
28
|
-
export type OperationResultOutputEntry = _MultiOutputCompletion['outputs'][number];
|
|
29
|
-
export type { CompressImageOptions, CompressVideoOptions, CompressAudioOptions, CompressDocumentPdfOptions, CompressDocumentOfficeOptions, CompressDocumentOdfOptions, CompressDocumentEpubOptions, ThumbnailImageOptions, ThumbnailVideoOptions, ThumbnailDocumentOptions, ConvertImageOptions, ConvertVideoOptions, ConvertAudioOptions, ConvertDocumentPdfOptions, MergeImageOptions, MergeVideoOptions, MergeVideoPerInputOptions, MergeAudioOptions, MergeAudioPerInputOptions, ArchiveOptions, ImageWatermarkImageOptions, ImageWatermarkImageGifOptions, TextWatermarkImageOptions, CustomLumaVideoOptions, AudioOverlayAudioOptions, AudioOverlayVideoOptions, AudioWatermarkAudioOptions, AudioWatermarkVideoOptions, AudioToVideoAudioOptions, VideoWatermarkVideoOptions, VideoTextWatermarkVideoOptions, SplitImageGifOptions, SplitDocumentPdfOptions, SplitAudioOptions, SplitVideoOptions, } from '@giveitsmaller/contracts/operations';
|
|
30
|
-
export { ImageWatermarkImageAnchor, ImageWatermarkImageGifAnchor, TextWatermarkImageAnchor, TextWatermarkImageFontFamily, TextWatermarkImageWatermarkMode, AudioOverlayAudioMode, AudioOverlayVideoMode, AudioOverlayVideoNoAudioTrackBehaviour, AudioWatermarkAudioMethod, AudioWatermarkAudioRobustness, AudioWatermarkAudioDensity, AudioWatermarkVideoMethod, AudioWatermarkVideoRobustness, AudioWatermarkVideoDensity, AudioToVideoAudioOutputResolution, AudioToVideoAudioImageFit, AudioToVideoAudioOutputFormat, VideoWatermarkVideoAnchor, VideoTextWatermarkVideoFontFamily, VideoTextWatermarkVideoWatermarkMode, VideoTextWatermarkVideoAnchor, SplitImageGifOutputFormat, SplitDocumentPdfMode, SplitAudioMode, SplitAudioPrecision, SplitVideoMode, SplitVideoPrecision, } from '@giveitsmaller/contracts/operations';
|
|
31
|
-
export { archiveMetadata, audioOverlayMetadata, audioWatermarkMetadata, compressMetadata, convertMetadata, customLumaMetadata, imageWatermarkMetadata, mergeMetadata, textWatermarkMetadata, thumbnailMetadata, audioToVideoMetadata, videoWatermarkMetadata, videoTextWatermarkMetadata, splitMetadata, } from '@giveitsmaller/contracts/operations';
|
|
32
|
-
export type { OperationMetadata, AvailabilityValue, AvailabilityEntry, FeatureEntry, MimeGroupMetadata, OptionMetadata, ProcessingClassConstraints, } from '@giveitsmaller/contracts/operations';
|
package/dist/index.js
CHANGED
|
@@ -1,75 +1,11 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
1
|
+
// Node entry point — the package's `default` exports condition (and the
|
|
2
|
+
// historical single entry). Re-exports the browser-safe shared surface
|
|
3
|
+
// (`index.core.ts`) PLUS the Node-only symbols that statically import Node
|
|
4
|
+
// built-ins: `verifyWebhook` (node:crypto) and `HttpDownloader` (node:fs).
|
|
5
|
+
//
|
|
6
|
+
// The browser entry (`index.browser.ts`, selected by the `browser` exports
|
|
7
|
+
// condition) re-exports ONLY the core, omitting these two — so the browser
|
|
8
|
+
// surface is a strict subset of this one by construction and cannot drift.
|
|
9
|
+
export * from './index.core.js';
|
|
3
10
|
export { verifyWebhook } from './webhook.js';
|
|
4
|
-
export { parseSseStream } from './sse.js';
|
|
5
|
-
export { uploadSource, jobOutputSource, externalImportSource, connectionSource, } from './types.js';
|
|
6
|
-
// Errors
|
|
7
|
-
export { GislError, GislApiError, GislValidationError, GislBalanceExhaustedError, GislTierRestrictedError, GislFeatureTierRestrictedError, GislFeatureNotAvailableError, GislWorkflowExpiredError, GislProbePendingError, GislAuthError, GislUploadCapExceededError, GislMultipartPartError, GislMultipartPartCountError,
|
|
8
|
-
// SDK-3 (Wb6ebOMM) — typed errors for the 3 resume-support endpoints.
|
|
9
|
-
GislMultipartSessionNotFoundError, GislMultipartSessionOwnershipError, GislMultipartSessionAuthRequiredError, GislTimeoutError, GislAbortError,
|
|
10
|
-
// FF2b / tywwynmN — transport-level failure (mirrors PHP GislNetworkError);
|
|
11
|
-
// raised by the file-first HttpDownloader when an output URL cannot be read.
|
|
12
|
-
GislNetworkError,
|
|
13
|
-
// T1 / wVU4xHx3 — local config-error tree (pre-I/O; sibling of GislApiError).
|
|
14
|
-
GislConfigError, GislMissingCredentialsError, GislFeatureRequiresAuthError,
|
|
15
|
-
// T3 / cuecCmb5 — merge-compose local validation errors.
|
|
16
|
-
GislUndeclaredAssetError, GislUnusedAssetError, GislPerInputOptionsNotSupportedError,
|
|
17
|
-
// T6 / aDR1jnyZ — chain-cardinality validation (dormant until chain
|
|
18
|
-
// methods on OperationBuilder ship; type + audit registration land
|
|
19
|
-
// here so the future chain-method PR is a pure addition).
|
|
20
|
-
GislChainCardinalityMismatchError,
|
|
21
|
-
// FF1 / 3BIxEnfR — file-first result sink errors.
|
|
22
|
-
GislNoSuchKeyError, GislSinkError, } from './errors.js';
|
|
23
|
-
// File-first result surface (FF1 / 3BIxEnfR) — coexists with the
|
|
24
|
-
// operation-first `Result`/`Artifact` until FF6 removes the old layer.
|
|
25
|
-
export { RunResult } from './file-first.js';
|
|
26
|
-
// File-first builder (FF2a / MfV0PDok) — `client.file(path).op()...` lowering.
|
|
27
|
-
export { Recipe, fileInput } from './file-first.js';
|
|
28
|
-
// File-first execution (FF2b / MfV0PDok) — Node streaming downloader bound by
|
|
29
|
-
// `Recipe.run()` to write pre-signed output URLs to disk.
|
|
30
11
|
export { HttpDownloader } from './http-downloader.js';
|
|
31
|
-
// Ergonomic-layer entrypoint (T1 / wVU4xHx3) — `gisl.create()` factory +
|
|
32
|
-
// credential-chain types. `gisl.anonymous()` (public export) lands once
|
|
33
|
-
// the anonymous-capable operation allowlist is non-empty (plan §12).
|
|
34
|
-
export { gisl, create } from './gisl.js';
|
|
35
|
-
// Ergonomic preset defaults (T4a / VhIj4S7T) — typed leaf DTOs + immutable
|
|
36
|
-
// `PresetDefaults` builder + `presetDefaults()` factory + ergonomic enum
|
|
37
|
-
// re-exports. Resolver wiring (T4b) consumes `PresetDefaults.cellFor()`.
|
|
38
|
-
export { presetDefaults, PresetDefaults, ImageCompressPresetOptions, AudioCompressPresetOptions, VideoCompressPresetOptions, DocumentPdfCompressPresetOptions, DocumentOfficeCompressPresetOptions, DocumentOdfCompressPresetOptions, DocumentEpubCompressPresetOptions, OptimizeFor, ImageMode, ImageFit, ImageMetadataPolicy, IccProfilePolicy, ImageFormat, VideoCodec, VideoPreset, VideoFit, AudioBitrate, AudioCodec, AudioSampleRate, PdfProfile, PdfColorspace, } from './ergonomic/presets/index.js';
|
|
39
|
-
// Operation-builder surface (T2 / xVDTIm8C) — `client.compress/convert/thumbnail`
|
|
40
|
-
// returns an `OperationBuilder`; `.run()` projects to a flat `Result` /
|
|
41
|
-
// `.submit({webhook})` returns a `Handle`. Progress events are the
|
|
42
|
-
// SDK-synthesised `{phase:'upload'|'processing', ...}` discriminated union.
|
|
43
|
-
export { OperationBuilder, MapEachBuilder } from './builder.js';
|
|
44
|
-
export { MergeBuilder, asset, handle, clip } from './merge.js';
|
|
45
|
-
// T4b — preset resolver public surface (PRESET_VERSION constant + types).
|
|
46
|
-
export { PRESET_VERSION, resolveCompressOptions } from './ergonomic/preset_resolver.js';
|
|
47
|
-
export { AudioWatermarkDecodeRequestMethodHintEnum, AudioWatermarkDecodeResponseMethodEnum,
|
|
48
|
-
// OperationInputModel — value-bearing enum (`single` | `multi`).
|
|
49
|
-
// Surfaced on OperationSchemaDefinition.inputModel so form-renderers
|
|
50
|
-
// can decide whether to render a single-file picker or a multi-file
|
|
51
|
-
// input list.
|
|
52
|
-
OperationInputModel, ExternalImportRequestProviderHintEnum, ContactSubject, CreditTransactionSourceBucket, UploadProbeStatus, UploadProbeProcessingClass, WorkflowCancelBillingEffect, WorkflowPauseRequiredAction, WorkflowStatus, WarningType, WorkflowWarningSeverity, OperationType, SseEventType, CallbackEventType, OperationStatus, JobStatus, JobInputV2RoleEnum,
|
|
53
|
-
// Error-payload discriminator enums — pair with the typed payload
|
|
54
|
-
// types above for narrowing inside `error instanceof Gisl<X>Error`
|
|
55
|
-
// branches.
|
|
56
|
-
AuthErrorType, TierRestrictionKind, BalanceExhaustedResponseRequiredActionEnum, ProcessingClassReason, DeliveryPlanReason,
|
|
57
|
-
// UserTier + ProcessingClass — value-bearing forms (typeof const +
|
|
58
|
-
// type alias). Sourced from openapi so consumers can do
|
|
59
|
-
// `Object.values(UserTier)` for tier dropdowns or
|
|
60
|
-
// `if (tier === UserTier.enterprise)` for narrowing typed error
|
|
61
|
-
// payloads. The operations metadata-types versions are pure type
|
|
62
|
-
// aliases (no runtime value); the openapi versions carry both the
|
|
63
|
-
// string-union type and a const map. Per audit follow-up.
|
|
64
|
-
UserTier, ProcessingClass, } from '@giveitsmaller/contracts/openapi';
|
|
65
|
-
export { ImageWatermarkImageAnchor, ImageWatermarkImageGifAnchor, TextWatermarkImageAnchor, TextWatermarkImageFontFamily, TextWatermarkImageWatermarkMode, AudioOverlayAudioMode, AudioOverlayVideoMode, AudioOverlayVideoNoAudioTrackBehaviour, AudioWatermarkAudioMethod, AudioWatermarkAudioRobustness, AudioWatermarkAudioDensity, AudioWatermarkVideoMethod, AudioWatermarkVideoRobustness, AudioWatermarkVideoDensity,
|
|
66
|
-
// New planned operation enums — contracts v2.15 (AJCLLGaG).
|
|
67
|
-
AudioToVideoAudioOutputResolution, AudioToVideoAudioImageFit, AudioToVideoAudioOutputFormat, VideoWatermarkVideoAnchor, VideoTextWatermarkVideoFontFamily, VideoTextWatermarkVideoWatermarkMode, VideoTextWatermarkVideoAnchor, SplitImageGifOutputFormat, SplitDocumentPdfMode, SplitAudioMode, SplitAudioPrecision, SplitVideoMode, SplitVideoPrecision, } from '@giveitsmaller/contracts/operations';
|
|
68
|
-
// Per-operation metadata sidecars. Inspect `availability`,
|
|
69
|
-
// `required_tier`, per-value gating, mime-group availability and
|
|
70
|
-
// per-feature flags before submitting a workflow — the API will
|
|
71
|
-
// otherwise reject planned ops with `feature_not_available` (422,
|
|
72
|
-
// surfaces as `GislFeatureNotAvailableError`).
|
|
73
|
-
export { archiveMetadata, audioOverlayMetadata, audioWatermarkMetadata, compressMetadata, convertMetadata, customLumaMetadata, imageWatermarkMetadata, mergeMetadata, textWatermarkMetadata, thumbnailMetadata,
|
|
74
|
-
// New planned operation metadata sidecars — contracts v2.15 (AJCLLGaG).
|
|
75
|
-
audioToVideoMetadata, videoWatermarkMetadata, videoTextWatermarkMetadata, splitMetadata, } from '@giveitsmaller/contracts/operations';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser-safe {@link Downloader} that defers loading the Node-only
|
|
3
|
+
* {@link HttpDownloader} until a sink (`downloadTo` / `toFile`) actually runs.
|
|
4
|
+
*
|
|
5
|
+
* `HttpDownloader` statically imports `node:fs` / `node:stream`
|
|
6
|
+
* (`http-downloader.ts`). Binding it eagerly in `run()` would drag those
|
|
7
|
+
* built-ins into the ergonomic static import graph, breaking browser bundles
|
|
8
|
+
* even though the browser run path never writes to disk. This wrapper is what
|
|
9
|
+
* `run()` / `Handle` bind instead: it is constructed synchronously (no
|
|
10
|
+
* async ripple through the parity-pinned `RunResult` / `Handle`), and the
|
|
11
|
+
* `await import('./http-downloader.js')` only fires when a caller invokes a
|
|
12
|
+
* sink. A browser caller that reads `RunResult.artifacts[].url` never triggers
|
|
13
|
+
* the dynamic import, so `node:fs` stays out of the main browser chunk
|
|
14
|
+
* (bundlers code-split dynamic imports).
|
|
15
|
+
*/
|
|
16
|
+
import type { Downloader } from './file-first.js';
|
|
17
|
+
export declare class LazyHttpDownloader implements Downloader {
|
|
18
|
+
downloadTo(url: string, destPath: string): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GislSinkError } from './errors.js';
|
|
2
|
+
export class LazyHttpDownloader {
|
|
3
|
+
async downloadTo(url, destPath) {
|
|
4
|
+
// In a browser there is no filesystem — fail with the same clean
|
|
5
|
+
// `downloader_unavailable` GislSinkError a downloader-less RunResult throws,
|
|
6
|
+
// rather than a confusing module-load error from importing node:fs. Output
|
|
7
|
+
// is reachable via RunResult.artifacts[].url; fetch it in the browser.
|
|
8
|
+
if (typeof process === 'undefined' || process.versions?.node === undefined) {
|
|
9
|
+
throw new GislSinkError('Output sinks (downloadTo/toFile) require Node.js. In a browser, read ' +
|
|
10
|
+
'RunResult.url / RunResult.artifacts[].url and fetch it instead.', { reason: 'downloader_unavailable' });
|
|
11
|
+
}
|
|
12
|
+
// Magic comments keep bundlers (webpack/Vite) from pulling the Node-only
|
|
13
|
+
// http-downloader (node:fs/node:stream) into a browser build — they leave
|
|
14
|
+
// this as a literal runtime import that only Node ever reaches.
|
|
15
|
+
const { HttpDownloader } = await import(
|
|
16
|
+
/* webpackIgnore: true */ /* @vite-ignore */ './http-downloader.js');
|
|
17
|
+
return new HttpDownloader().downloadTo(url, destPath);
|
|
18
|
+
}
|
|
19
|
+
}
|
package/dist/merge.d.ts
CHANGED
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
* assets both fail fast so the caller saves bandwidth on typo'd composes.
|
|
27
27
|
*/
|
|
28
28
|
import type { GislClient } from './client.js';
|
|
29
|
-
import { type
|
|
29
|
+
import { type Result, type RunOptions, type SubmitOptions } from './builder.js';
|
|
30
|
+
import { Handle } from './handle.js';
|
|
30
31
|
/**
|
|
31
32
|
* A declared merge asset. `path` carries a string or Blob (deduped by
|
|
32
33
|
* normalised source key); `handle` wraps an already-uploaded file (deduped
|
|
@@ -140,3 +141,14 @@ export declare class MergeBuilder {
|
|
|
140
141
|
private opOptionsForResolved;
|
|
141
142
|
private awaitTerminal;
|
|
142
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Project the merge-level {@link MergeOptions} into the per-media wire
|
|
146
|
+
* allowlist. Exported so the file-first `MergedRecipe`
|
|
147
|
+
* (`files([...]).merge(...)`) lowers identically to this operation-first
|
|
148
|
+
* `client.merge(...)` builder — one allowlist, no drift. Mirrors the PHP
|
|
149
|
+
* `MergeBuilder::wireMergeOptions()` public-static seam.
|
|
150
|
+
*
|
|
151
|
+
* @internal Not re-exported from `index.ts`; shared between the two merge
|
|
152
|
+
* surfaces only.
|
|
153
|
+
*/
|
|
154
|
+
export declare function wireMergeOptions(opts: MergeOptions, mediaKind: MergeMediaKind): Record<string, unknown>;
|