canopycms 0.0.57 → 0.0.59
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/ai/json-to-markdown.js +74 -3
- package/dist/ai/json-to-markdown.js.map +1 -1
- package/dist/api/__test__/mock-client.d.ts +9 -5
- package/dist/api/__test__/mock-client.d.ts.map +1 -1
- package/dist/api/__test__/mock-client.js +15 -7
- package/dist/api/__test__/mock-client.js.map +1 -1
- package/dist/api/assets.d.ts +100 -36
- package/dist/api/assets.d.ts.map +1 -1
- package/dist/api/assets.js +338 -51
- package/dist/api/assets.js.map +1 -1
- package/dist/api/client.d.ts +16 -5
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +24 -6
- package/dist/api/client.js.map +1 -1
- package/dist/api/entries.d.ts +4 -4
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/route-builder.d.ts +9 -0
- package/dist/api/route-builder.d.ts.map +1 -1
- package/dist/api/route-builder.js +1 -0
- package/dist/api/route-builder.js.map +1 -1
- package/dist/api/schema.d.ts +4 -4
- package/dist/api/types.d.ts +11 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/assets/asset-prefixes.d.ts +31 -0
- package/dist/assets/asset-prefixes.d.ts.map +1 -0
- package/dist/assets/asset-prefixes.js +20 -0
- package/dist/assets/asset-prefixes.js.map +1 -0
- package/dist/assets/asset-src.d.ts +23 -0
- package/dist/assets/asset-src.d.ts.map +1 -0
- package/dist/assets/asset-src.js +28 -0
- package/dist/assets/asset-src.js.map +1 -0
- package/dist/assets/asset-url.d.ts +35 -0
- package/dist/assets/asset-url.d.ts.map +1 -0
- package/dist/assets/asset-url.js +77 -0
- package/dist/assets/asset-url.js.map +1 -0
- package/dist/assets/factory.d.ts +18 -0
- package/dist/assets/factory.d.ts.map +1 -0
- package/dist/assets/factory.js +42 -0
- package/dist/assets/factory.js.map +1 -0
- package/dist/assets/finalize.d.ts +36 -0
- package/dist/assets/finalize.d.ts.map +1 -0
- package/dist/assets/finalize.js +72 -0
- package/dist/assets/finalize.js.map +1 -0
- package/dist/assets/index.d.ts +20 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +19 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/assets/keys.d.ts +56 -0
- package/dist/assets/keys.d.ts.map +1 -0
- package/dist/assets/keys.js +88 -0
- package/dist/assets/keys.js.map +1 -0
- package/dist/assets/pipeline.d.ts +50 -0
- package/dist/assets/pipeline.d.ts.map +1 -0
- package/dist/assets/pipeline.js +202 -0
- package/dist/assets/pipeline.js.map +1 -0
- package/dist/assets/store-local.d.ts +84 -0
- package/dist/assets/store-local.d.ts.map +1 -0
- package/dist/assets/store-local.js +254 -0
- package/dist/assets/store-local.js.map +1 -0
- package/dist/assets/store-s3.d.ts +71 -0
- package/dist/assets/store-s3.d.ts.map +1 -0
- package/dist/assets/store-s3.js +183 -0
- package/dist/assets/store-s3.js.map +1 -0
- package/dist/assets/svg-sanitizer.d.ts +37 -0
- package/dist/assets/svg-sanitizer.d.ts.map +1 -0
- package/dist/assets/svg-sanitizer.js +222 -0
- package/dist/assets/svg-sanitizer.js.map +1 -0
- package/dist/assets/transform-directives.d.ts +97 -0
- package/dist/assets/transform-directives.d.ts.map +1 -0
- package/dist/assets/transform-directives.js +267 -0
- package/dist/assets/transform-directives.js.map +1 -0
- package/dist/assets/transform.d.ts +51 -0
- package/dist/assets/transform.d.ts.map +1 -0
- package/dist/assets/transform.js +190 -0
- package/dist/assets/transform.js.map +1 -0
- package/dist/assets/types.d.ts +82 -0
- package/dist/assets/types.d.ts.map +1 -0
- package/dist/assets/types.js +10 -0
- package/dist/assets/types.js.map +1 -0
- package/dist/authorization/groups/schema.d.ts +2 -2
- package/dist/authorization/permissions/schema.d.ts +2 -2
- package/dist/branch-workspace.d.ts.map +1 -1
- package/dist/branch-workspace.js +1 -0
- package/dist/branch-workspace.js.map +1 -1
- package/dist/cli/cli.d.ts +20 -0
- package/dist/cli/cli.d.ts.map +1 -1
- package/dist/cli/cli.js +9561 -246
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/generate-ai-content.js +175 -16
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +29 -5
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/template-files/Dockerfile.cms.template +33 -1
- package/dist/cli/template-files/deploy-cms.yml.template +9 -1
- package/dist/cli/template-files/dockerignore.template +13 -0
- package/dist/cli/template-files/middleware-clerk.ts.template +12 -5
- package/dist/cli/template-files/middleware.ts.template +10 -5
- package/dist/cli/templates.d.ts +1 -0
- package/dist/cli/templates.d.ts.map +1 -1
- package/dist/cli/templates.js +3 -0
- package/dist/cli/templates.js.map +1 -1
- package/dist/config/helpers.d.ts.map +1 -1
- package/dist/config/helpers.js +2 -1
- package/dist/config/helpers.js.map +1 -1
- package/dist/config/index.d.ts +2 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/schemas/config.d.ts +23 -1
- package/dist/config/schemas/config.d.ts.map +1 -1
- package/dist/config/schemas/config.js +14 -1
- package/dist/config/schemas/config.js.map +1 -1
- package/dist/config/schemas/field.d.ts +38 -3
- package/dist/config/schemas/field.d.ts.map +1 -1
- package/dist/config/schemas/field.js +18 -0
- package/dist/config/schemas/field.js.map +1 -1
- package/dist/config/schemas/media.d.ts +8 -0
- package/dist/config/schemas/media.d.ts.map +1 -1
- package/dist/config/schemas/media.js +9 -0
- package/dist/config/schemas/media.js.map +1 -1
- package/dist/config/types.d.ts +63 -3
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +4 -1
- package/dist/config/types.js.map +1 -1
- package/dist/editor/CanopyEditor.d.ts.map +1 -1
- package/dist/editor/CanopyEditor.js +1 -1
- package/dist/editor/CanopyEditor.js.map +1 -1
- package/dist/editor/Editor.d.ts +2 -0
- package/dist/editor/Editor.d.ts.map +1 -1
- package/dist/editor/Editor.js +82 -80
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/FormRenderer.d.ts.map +1 -1
- package/dist/editor/FormRenderer.js +9 -0
- package/dist/editor/FormRenderer.js.map +1 -1
- package/dist/editor/components/EditorSidebar.d.ts +6 -1
- package/dist/editor/components/EditorSidebar.d.ts.map +1 -1
- package/dist/editor/components/EditorSidebar.js +4 -3
- package/dist/editor/components/EditorSidebar.js.map +1 -1
- package/dist/editor/context/AssetContext.d.ts +25 -0
- package/dist/editor/context/AssetContext.d.ts.map +1 -0
- package/dist/editor/context/AssetContext.js +26 -0
- package/dist/editor/context/AssetContext.js.map +1 -0
- package/dist/editor/context/index.d.ts +1 -0
- package/dist/editor/context/index.d.ts.map +1 -1
- package/dist/editor/context/index.js +1 -0
- package/dist/editor/context/index.js.map +1 -1
- package/dist/editor/fields/ImageField.d.ts +22 -0
- package/dist/editor/fields/ImageField.d.ts.map +1 -0
- package/dist/editor/fields/ImageField.js +100 -0
- package/dist/editor/fields/ImageField.js.map +1 -0
- package/dist/editor/fields/MarkdownField.d.ts.map +1 -1
- package/dist/editor/fields/MarkdownField.js +30 -4
- package/dist/editor/fields/MarkdownField.js.map +1 -1
- package/dist/editor/fields/MdxImageDialog.d.ts +16 -0
- package/dist/editor/fields/MdxImageDialog.d.ts.map +1 -0
- package/dist/editor/fields/MdxImageDialog.js +73 -0
- package/dist/editor/fields/MdxImageDialog.js.map +1 -0
- package/dist/editor/media/AssetCard.d.ts +21 -0
- package/dist/editor/media/AssetCard.d.ts.map +1 -0
- package/dist/editor/media/AssetCard.js +41 -0
- package/dist/editor/media/AssetCard.js.map +1 -0
- package/dist/editor/media/CropStep.d.ts +26 -0
- package/dist/editor/media/CropStep.d.ts.map +1 -0
- package/dist/editor/media/CropStep.js +38 -0
- package/dist/editor/media/CropStep.js.map +1 -0
- package/dist/editor/media/MediaLibrary.d.ts +22 -0
- package/dist/editor/media/MediaLibrary.d.ts.map +1 -0
- package/dist/editor/media/MediaLibrary.js +17 -0
- package/dist/editor/media/MediaLibrary.js.map +1 -0
- package/dist/editor/media/MediaLibraryBody.d.ts +17 -0
- package/dist/editor/media/MediaLibraryBody.d.ts.map +1 -0
- package/dist/editor/media/MediaLibraryBody.js +133 -0
- package/dist/editor/media/MediaLibraryBody.js.map +1 -0
- package/dist/editor/media/crop-math.d.ts +37 -0
- package/dist/editor/media/crop-math.d.ts.map +1 -0
- package/dist/editor/media/crop-math.js +62 -0
- package/dist/editor/media/crop-math.js.map +1 -0
- package/dist/editor/media/upload-asset.d.ts +31 -0
- package/dist/editor/media/upload-asset.d.ts.map +1 -0
- package/dist/editor/media/upload-asset.js +56 -0
- package/dist/editor/media/upload-asset.js.map +1 -0
- package/dist/editor/media/upload-constants.d.ts +27 -0
- package/dist/editor/media/upload-constants.d.ts.map +1 -0
- package/dist/editor/media/upload-constants.js +40 -0
- package/dist/editor/media/upload-constants.js.map +1 -0
- package/dist/editor/media/useAssetUpload.d.ts +19 -0
- package/dist/editor/media/useAssetUpload.d.ts.map +1 -0
- package/dist/editor/media/useAssetUpload.js +53 -0
- package/dist/editor/media/useAssetUpload.js.map +1 -0
- package/dist/editor/media/xhr-upload.d.ts +20 -0
- package/dist/editor/media/xhr-upload.d.ts.map +1 -0
- package/dist/editor/media/xhr-upload.js +42 -0
- package/dist/editor/media/xhr-upload.js.map +1 -0
- package/dist/editor/theme.d.ts +2 -1
- package/dist/editor/theme.d.ts.map +1 -1
- package/dist/editor/theme.js +1 -0
- package/dist/editor/theme.js.map +1 -1
- package/dist/entry-schema.d.ts +19 -0
- package/dist/entry-schema.d.ts.map +1 -1
- package/dist/entry-schema.js.map +1 -1
- package/dist/git-manager.d.ts +39 -0
- package/dist/git-manager.d.ts.map +1 -1
- package/dist/git-manager.js +98 -8
- package/dist/git-manager.js.map +1 -1
- package/dist/http/handler.d.ts +5 -2
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/handler.js +13 -4
- package/dist/http/handler.js.map +1 -1
- package/dist/http/index.d.ts +2 -2
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/http/index.js.map +1 -1
- package/dist/http/router.d.ts +14 -1
- package/dist/http/router.d.ts.map +1 -1
- package/dist/http/router.js +4 -1
- package/dist/http/router.js.map +1 -1
- package/dist/http/types.d.ts +40 -0
- package/dist/http/types.d.ts.map +1 -1
- package/dist/http/types.js +9 -0
- package/dist/http/types.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/schema/schema-store.d.ts +2 -2
- package/dist/server.d.ts +45 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +41 -0
- package/dist/server.js.map +1 -1
- package/dist/settings-workspace.d.ts.map +1 -1
- package/dist/settings-workspace.js +1 -0
- package/dist/settings-workspace.js.map +1 -1
- package/dist/utils/git.d.ts +19 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +47 -0
- package/dist/utils/git.js.map +1 -1
- package/dist/validation/entry-validator.d.ts.map +1 -1
- package/dist/validation/entry-validator.js +56 -1
- package/dist/validation/entry-validator.js.map +1 -1
- package/dist/worker/cms-worker.d.ts +28 -0
- package/dist/worker/cms-worker.d.ts.map +1 -1
- package/dist/worker/cms-worker.js +100 -20
- package/dist/worker/cms-worker.js.map +1 -1
- package/package.json +13 -1
- package/dist/asset-store.d.ts +0 -32
- package/dist/asset-store.d.ts.map +0 -1
- package/dist/asset-store.js +0 -85
- package/dist/asset-store.js.map +0 -1
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared transform engine: applies a parsed `TransformDirectives` to
|
|
3
|
+
* source image bytes with sharp. Server-only - never import this from
|
|
4
|
+
* client/editor code (this is why it lives in its own file, separate from
|
|
5
|
+
* the dependency-free transform-directives.ts). Used by the dev-mode lazy
|
|
6
|
+
* `/assets/t/*` emulation in api/assets.ts today, and will be reused
|
|
7
|
+
* unchanged by the prod transform Lambda (PR 7).
|
|
8
|
+
*
|
|
9
|
+
* Pipeline: a cheap metadata-only probe (`limitInputPixels: MAX_INPUT_PIXELS`,
|
|
10
|
+
* decompression-bomb defense #1) learns the real page count, so animated
|
|
11
|
+
* GIF/WebP frames can be capped at `MAX_ANIMATED_FRAMES` (decompression-bomb
|
|
12
|
+
* defense #2) without exceeding it and making sharp throw -> load for real
|
|
13
|
+
* with `{ pages: min(totalPages, MAX_ANIMATED_FRAMES), limitInputPixels }` ->
|
|
14
|
+
* `.rotate()` with no args (bakes EXIF orientation into pixels,
|
|
15
|
+
* dropping the orientation tag) -> optional crop via `.extract()` -> optional
|
|
16
|
+
* `.resize({ width, withoutEnlargement: true })` (never upscales) -> encode.
|
|
17
|
+
*
|
|
18
|
+
* Identity (`orig`) and any request that omits an explicit `f=` format
|
|
19
|
+
* re-encode through the SOURCE format rather than a fixed one: this is what
|
|
20
|
+
* guarantees EXIF/GPS gets stripped even when no other change is requested
|
|
21
|
+
* (sharp strips metadata by default on re-encode - `withMetadata()` is never
|
|
22
|
+
* called here, which would undo that).
|
|
23
|
+
*
|
|
24
|
+
* GIF has no EXIF segment (EXIF is a JPEG/TIFF APP1 marker; GIF has no such
|
|
25
|
+
* extension block), so an identity GIF has nothing to strip - it is still
|
|
26
|
+
* re-encoded through sharp's `.gif()` (verified: current sharp bundles cgif
|
|
27
|
+
* and re-encodes multi-frame GIFs through the `{ animated: true }` input
|
|
28
|
+
* path with no extra native dependency) purely for pipeline uniformity, not
|
|
29
|
+
* because GIF needs stripping.
|
|
30
|
+
*/
|
|
31
|
+
import sharp from 'sharp';
|
|
32
|
+
import { getErrorMessage } from '../utils/error.js';
|
|
33
|
+
import { MAX_INPUT_PIXELS, } from './transform-directives.js';
|
|
34
|
+
/** Raster formats the transform engine accepts as input. svg/pdf never reach here - they're served statically. */
|
|
35
|
+
const ALLOWED_INPUT_EXTS = new Set(['png', 'jpg', 'jpeg', 'webp', 'gif']);
|
|
36
|
+
/** Defensive cap on encoded output size - prevents cache-stuffing with giant re-encodes. */
|
|
37
|
+
const MAX_OUTPUT_BYTES = 10 * 1024 * 1024;
|
|
38
|
+
/**
|
|
39
|
+
* Cap on decoded animated frames (GIF/WebP) - without this, `{ animated: true }`
|
|
40
|
+
* (sharp's `pages: -1`) decodes every frame of a maliciously-crafted
|
|
41
|
+
* many-thousand-frame animation into memory at once, a decompression-bomb
|
|
42
|
+
* vector distinct from (and not covered by) `limitInputPixels`, which only
|
|
43
|
+
* bounds a single frame's width x height. 60 frames covers any reasonable
|
|
44
|
+
* animated asset (2s at 30fps) with headroom.
|
|
45
|
+
*/
|
|
46
|
+
const MAX_ANIMATED_FRAMES = 60;
|
|
47
|
+
const CONTENT_TYPE_BY_FORMAT = {
|
|
48
|
+
webp: 'image/webp',
|
|
49
|
+
jpeg: 'image/jpeg',
|
|
50
|
+
png: 'image/png',
|
|
51
|
+
};
|
|
52
|
+
const CONTENT_TYPE_BY_EXT = {
|
|
53
|
+
png: 'image/png',
|
|
54
|
+
jpg: 'image/jpeg',
|
|
55
|
+
jpeg: 'image/jpeg',
|
|
56
|
+
webp: 'image/webp',
|
|
57
|
+
gif: 'image/gif',
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Dimensions AFTER `.rotate()` has auto-oriented the pixels. sharp's
|
|
61
|
+
* `metadata()` reports the RAW (pre-rotation) width/height plus the EXIF
|
|
62
|
+
* `orientation` tag; for orientation 5-8 (the 90-degree rotations that
|
|
63
|
+
* portrait phone photos almost always carry) the visual axes are swapped.
|
|
64
|
+
* The crop rect was normalized by the editor against the browser's
|
|
65
|
+
* auto-oriented preview, so `.extract()` - which runs on the post-rotation
|
|
66
|
+
* pipeline - must be computed against these swapped dims, NOT the raw ones.
|
|
67
|
+
* Using the raw dims makes the extract region exceed the rotated image's
|
|
68
|
+
* bounds and sharp throws `bad extract area`. sharp >=0.33 also exposes an
|
|
69
|
+
* `autoOrient` block with the corrected dims; prefer it when present.
|
|
70
|
+
*/
|
|
71
|
+
function orientedDimensions(meta) {
|
|
72
|
+
const auto = meta.autoOrient;
|
|
73
|
+
if (auto && auto.width && auto.height) {
|
|
74
|
+
return { width: auto.width, height: auto.height };
|
|
75
|
+
}
|
|
76
|
+
if (!meta.width || !meta.height)
|
|
77
|
+
return null;
|
|
78
|
+
const swap = typeof meta.orientation === 'number' && meta.orientation >= 5 && meta.orientation <= 8;
|
|
79
|
+
return swap
|
|
80
|
+
? { width: meta.height, height: meta.width }
|
|
81
|
+
: { width: meta.width, height: meta.height };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Compute a sharp `.extract()` region from a normalized crop rect and the
|
|
85
|
+
* (post-rotation) image dimensions. Rounds the left/top and right/bottom
|
|
86
|
+
* edges independently, then derives width/height from their difference -
|
|
87
|
+
* rounding width/height directly from `crop.w`/`crop.h` could drift the
|
|
88
|
+
* region past the image bounds when combined with independently-rounded
|
|
89
|
+
* left/top. Clamped defensively so float error can never produce an
|
|
90
|
+
* out-of-range extract (which sharp throws on).
|
|
91
|
+
*/
|
|
92
|
+
function computeExtractRegion(crop, width, height) {
|
|
93
|
+
const left = Math.min(Math.max(Math.round(crop.x * width), 0), Math.max(width - 1, 0));
|
|
94
|
+
const top = Math.min(Math.max(Math.round(crop.y * height), 0), Math.max(height - 1, 0));
|
|
95
|
+
const right = Math.min(Math.round((crop.x + crop.w) * width), width);
|
|
96
|
+
const bottom = Math.min(Math.round((crop.y + crop.h) * height), height);
|
|
97
|
+
const extractWidth = Math.max(1, right - left);
|
|
98
|
+
const extractHeight = Math.max(1, bottom - top);
|
|
99
|
+
return { left, top, width: extractWidth, height: extractHeight };
|
|
100
|
+
}
|
|
101
|
+
function encode(pipeline, format, quality) {
|
|
102
|
+
const options = quality !== undefined ? { quality } : undefined;
|
|
103
|
+
switch (format) {
|
|
104
|
+
case 'webp':
|
|
105
|
+
return pipeline.webp(options);
|
|
106
|
+
case 'jpeg':
|
|
107
|
+
return pipeline.jpeg(options);
|
|
108
|
+
case 'png':
|
|
109
|
+
return pipeline.png(options);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** Re-encode through the source container format - used for identity and for requests that omit `f=`. */
|
|
113
|
+
function encodeSourceFormat(pipeline, sourceExt) {
|
|
114
|
+
switch (sourceExt) {
|
|
115
|
+
case 'gif':
|
|
116
|
+
return pipeline.gif();
|
|
117
|
+
case 'webp':
|
|
118
|
+
return pipeline.webp();
|
|
119
|
+
case 'jpg':
|
|
120
|
+
case 'jpeg':
|
|
121
|
+
return pipeline.jpeg();
|
|
122
|
+
case 'png':
|
|
123
|
+
default:
|
|
124
|
+
return pipeline.png();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
export async function applyTransform(input, directives) {
|
|
128
|
+
const sourceExt = input.ext.toLowerCase();
|
|
129
|
+
if (!ALLOWED_INPUT_EXTS.has(sourceExt)) {
|
|
130
|
+
return {
|
|
131
|
+
ok: false,
|
|
132
|
+
status: 400,
|
|
133
|
+
error: `Unsupported input format for transform: '${sourceExt}'`,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
const resize = directives.identity ? undefined : directives;
|
|
137
|
+
const format = resize?.format;
|
|
138
|
+
const quality = resize?.quality;
|
|
139
|
+
try {
|
|
140
|
+
// A cheap header/metadata-only probe (no pixel decode - verified this
|
|
141
|
+
// costs effectively nothing even for a several-hundred-frame source) to
|
|
142
|
+
// learn the source's real page count before deciding whether to cap it.
|
|
143
|
+
// This has to happen before constructing the real pipeline: sharp's
|
|
144
|
+
// `pages` constructor option is a fixed request, not an upper bound - a
|
|
145
|
+
// `pages` value that EXCEEDS the source's actual page count makes sharp
|
|
146
|
+
// throw ("bad page number") rather than clamping, so `MAX_ANIMATED_FRAMES`
|
|
147
|
+
// can only be applied as `Math.min(totalPages, MAX_ANIMATED_FRAMES)`.
|
|
148
|
+
// `limitInputPixels` gates this probe exactly like it gates the real
|
|
149
|
+
// pipeline below - an oversized source throws here already, before any
|
|
150
|
+
// pixel buffer is ever allocated.
|
|
151
|
+
const probeMeta = await sharp(input.data, { limitInputPixels: MAX_INPUT_PIXELS }).metadata();
|
|
152
|
+
const totalPages = probeMeta.pages ?? 1;
|
|
153
|
+
const pagesToRead = Math.min(totalPages, MAX_ANIMATED_FRAMES);
|
|
154
|
+
let pipeline = sharp(input.data, {
|
|
155
|
+
pages: pagesToRead,
|
|
156
|
+
limitInputPixels: MAX_INPUT_PIXELS,
|
|
157
|
+
}).rotate();
|
|
158
|
+
if (resize?.crop) {
|
|
159
|
+
const oriented = orientedDimensions(await pipeline.metadata());
|
|
160
|
+
if (!oriented) {
|
|
161
|
+
return { ok: false, status: 422, error: 'Could not read image dimensions for crop' };
|
|
162
|
+
}
|
|
163
|
+
pipeline = pipeline.extract(computeExtractRegion(resize.crop, oriented.width, oriented.height));
|
|
164
|
+
}
|
|
165
|
+
if (resize?.width) {
|
|
166
|
+
pipeline = pipeline.resize({ width: resize.width, withoutEnlargement: true });
|
|
167
|
+
}
|
|
168
|
+
pipeline = format ? encode(pipeline, format, quality) : encodeSourceFormat(pipeline, sourceExt);
|
|
169
|
+
const data = await pipeline.toBuffer();
|
|
170
|
+
if (data.byteLength > MAX_OUTPUT_BYTES) {
|
|
171
|
+
return {
|
|
172
|
+
ok: false,
|
|
173
|
+
status: 413,
|
|
174
|
+
error: `Transformed output (${data.byteLength} bytes) exceeds the ${MAX_OUTPUT_BYTES}-byte cap`,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
const outExt = format ?? sourceExt;
|
|
178
|
+
const contentType = format ? CONTENT_TYPE_BY_FORMAT[format] : CONTENT_TYPE_BY_EXT[sourceExt];
|
|
179
|
+
return {
|
|
180
|
+
ok: true,
|
|
181
|
+
data: new Uint8Array(data.buffer, data.byteOffset, data.byteLength),
|
|
182
|
+
contentType,
|
|
183
|
+
ext: outExt,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
catch (err) {
|
|
187
|
+
return { ok: false, status: 422, error: `Transform failed: ${getErrorMessage(err)}` };
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/assets/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset store v2 contract.
|
|
3
|
+
*
|
|
4
|
+
* Pure type declarations only — no runtime imports. This lets client-side code
|
|
5
|
+
* (the editor) `import type` from this file without ever pulling node:fs or the
|
|
6
|
+
* S3 SDK into a browser bundle. The concrete stores (store-local.ts, store-s3.ts)
|
|
7
|
+
* and the factory are server-only and must never be imported from client code.
|
|
8
|
+
*/
|
|
9
|
+
export interface AssetMeta {
|
|
10
|
+
hash32: string;
|
|
11
|
+
filename: string;
|
|
12
|
+
slug: string;
|
|
13
|
+
ext: string;
|
|
14
|
+
mime: string;
|
|
15
|
+
size: number;
|
|
16
|
+
width?: number;
|
|
17
|
+
height?: number;
|
|
18
|
+
kind: 'raster' | 'svg' | 'pdf';
|
|
19
|
+
uploadedBy?: string;
|
|
20
|
+
uploadedAt: string;
|
|
21
|
+
}
|
|
22
|
+
export type StagedUploadTarget = {
|
|
23
|
+
mode: 'direct';
|
|
24
|
+
url: string;
|
|
25
|
+
fields: Record<string, string>;
|
|
26
|
+
stagingKey: string;
|
|
27
|
+
maxBytes: number;
|
|
28
|
+
} | {
|
|
29
|
+
mode: 'proxied';
|
|
30
|
+
stagingKey: string;
|
|
31
|
+
maxBytes: number;
|
|
32
|
+
};
|
|
33
|
+
export interface BeginUploadInput {
|
|
34
|
+
filename: string;
|
|
35
|
+
contentType: string;
|
|
36
|
+
size?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface PublicObject {
|
|
39
|
+
data: Uint8Array;
|
|
40
|
+
contentType?: string;
|
|
41
|
+
contentDisposition?: string;
|
|
42
|
+
cacheControl?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface AssetStore {
|
|
45
|
+
readonly capabilities: {
|
|
46
|
+
directUpload: boolean;
|
|
47
|
+
};
|
|
48
|
+
beginUpload(input: BeginUploadInput): Promise<StagedUploadTarget>;
|
|
49
|
+
writeStaging(stagingKey: string, data: Uint8Array, contentType?: string): Promise<void>;
|
|
50
|
+
readStaging(stagingKey: string): Promise<Uint8Array | null>;
|
|
51
|
+
deleteStaging(stagingKey: string): Promise<void>;
|
|
52
|
+
putOriginal(input: {
|
|
53
|
+
hash32: string;
|
|
54
|
+
ext: string;
|
|
55
|
+
data: Uint8Array;
|
|
56
|
+
contentType: string;
|
|
57
|
+
}): Promise<void>;
|
|
58
|
+
readOriginal(hash32: string): Promise<{
|
|
59
|
+
data: Uint8Array;
|
|
60
|
+
ext: string;
|
|
61
|
+
contentType?: string;
|
|
62
|
+
} | null>;
|
|
63
|
+
putPublicObject(input: {
|
|
64
|
+
key: string;
|
|
65
|
+
data: Uint8Array;
|
|
66
|
+
contentType: string;
|
|
67
|
+
contentDisposition?: string;
|
|
68
|
+
cacheControl?: string;
|
|
69
|
+
}): Promise<void>;
|
|
70
|
+
readPublicObject(key: string): Promise<PublicObject | null>;
|
|
71
|
+
putMetaIfAbsent(hash32: string, meta: AssetMeta): Promise<'created' | 'already-exists'>;
|
|
72
|
+
getMeta(hash32: string): Promise<AssetMeta | null>;
|
|
73
|
+
listMeta(input?: {
|
|
74
|
+
cursor?: string;
|
|
75
|
+
limit?: number;
|
|
76
|
+
}): Promise<{
|
|
77
|
+
items: AssetMeta[];
|
|
78
|
+
nextCursor?: string;
|
|
79
|
+
}>;
|
|
80
|
+
deleteMeta(hash32: string): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asset store v2 contract.
|
|
3
|
+
*
|
|
4
|
+
* Pure type declarations only — no runtime imports. This lets client-side code
|
|
5
|
+
* (the editor) `import type` from this file without ever pulling node:fs or the
|
|
6
|
+
* S3 SDK into a browser bundle. The concrete stores (store-local.ts, store-s3.ts)
|
|
7
|
+
* and the factory are server-only and must never be imported from client code.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -28,8 +28,8 @@ export declare const GroupsFileSchema: z.ZodObject<{
|
|
|
28
28
|
description?: string | undefined;
|
|
29
29
|
}>, "many">;
|
|
30
30
|
}, "strip", z.ZodTypeAny, {
|
|
31
|
-
updatedAt: string;
|
|
32
31
|
version: 1;
|
|
32
|
+
updatedAt: string;
|
|
33
33
|
groups: {
|
|
34
34
|
name: string;
|
|
35
35
|
members: string[];
|
|
@@ -39,8 +39,8 @@ export declare const GroupsFileSchema: z.ZodObject<{
|
|
|
39
39
|
updatedBy: string;
|
|
40
40
|
contentVersion?: number | undefined;
|
|
41
41
|
}, {
|
|
42
|
-
updatedAt: string;
|
|
43
42
|
version: 1;
|
|
43
|
+
updatedAt: string;
|
|
44
44
|
groups: {
|
|
45
45
|
name: string;
|
|
46
46
|
members: string[];
|
|
@@ -81,8 +81,8 @@ export declare const PermissionsFileSchema: z.ZodObject<{
|
|
|
81
81
|
} | undefined;
|
|
82
82
|
}>, "many">;
|
|
83
83
|
}, "strip", z.ZodTypeAny, {
|
|
84
|
-
updatedAt: string;
|
|
85
84
|
version: 1;
|
|
85
|
+
updatedAt: string;
|
|
86
86
|
updatedBy: string;
|
|
87
87
|
pathPermissions: {
|
|
88
88
|
path: string & {
|
|
@@ -103,8 +103,8 @@ export declare const PermissionsFileSchema: z.ZodObject<{
|
|
|
103
103
|
}[];
|
|
104
104
|
contentVersion?: number | undefined;
|
|
105
105
|
}, {
|
|
106
|
-
updatedAt: string;
|
|
107
106
|
version: 1;
|
|
107
|
+
updatedAt: string;
|
|
108
108
|
updatedBy: string;
|
|
109
109
|
pathPermissions: {
|
|
110
110
|
path: string & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-workspace.d.ts","sourceRoot":"","sources":["../src/branch-workspace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAYrD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,YAAY;YAIlB,kBAAkB;
|
|
1
|
+
{"version":3,"file":"branch-workspace.d.ts","sourceRoot":"","sources":["../src/branch-workspace.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAI5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAYrD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,YAAY;YAIlB,kBAAkB;IAuE1B,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;CAkD7E;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,aAAa,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,YAAY,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgCzB"}
|
package/dist/branch-workspace.js
CHANGED
|
@@ -50,6 +50,7 @@ export class BranchWorkspaceManager {
|
|
|
50
50
|
defaultRemoteUrl: this.config.defaultRemoteUrl,
|
|
51
51
|
remoteUrl: options.remoteUrl,
|
|
52
52
|
remoteName: this.config.defaultRemoteName,
|
|
53
|
+
allowNetworkRemoteInProd: this.config.allowNetworkRemoteInProd,
|
|
53
54
|
branchType: 'content',
|
|
54
55
|
gitBotAuthorName: this.config.gitBotAuthorName,
|
|
55
56
|
gitBotAuthorEmail: this.config.gitBotAuthorEmail,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-workspace.js","sourceRoot":"","sources":["../src/branch-workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"branch-workspace.js","sourceRoot":"","sources":["../src/branch-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,GAAG,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAA;AAE5D,gEAAgE;AAChE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAA;AAa3D;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAGjC,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAMhC;QACC,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAC7D,mEAAmE;YACnE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAC/D,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAY,CAAA;gBAClB,OAAM;YACR,CAAC;YAED,0BAA0B;YAC1B,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC9B,wEAAwE;gBACxE,yEAAyE;gBACzE,0EAA0E;gBAC1E,uEAAuE;gBACvE,uEAAuE;gBACvE,IAAI,WAA8C,CAAA;gBAClD,IAAI,CAAC;oBACH,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,EAAE;wBAC/C,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC,CAAA;oBAEF,WAAW,GAAG,MAAM,uBAAuB,CACzC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAClD,CAAA;oBAED,4CAA4C;oBAC5C,MAAM,UAAU,CAAC,mBAAmB,CAAC;wBACnC,aAAa,EAAE,OAAO,CAAC,UAAU;wBACjC,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;wBAClC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;wBAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;wBACzC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB;wBAC9D,UAAU,EAAE,SAAS;wBACrB,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;wBAC9C,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;wBAChD,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE;qBAC1E,CAAC,CAAA;gBACJ,CAAC;wBAAS,CAAC;oBACT,uEAAuE;oBACvE,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAI,CAAC;4BACH,MAAM,WAAW,EAAE,CAAA;wBACrB,CAAC;wBAAC,OAAO,GAAY,EAAE,CAAC;4BACtB,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,uCAAuC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;wBAC1E,CAAC;oBACH,CAAC;oBACD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YAEJ,yBAAyB;YACzB,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;YAEvD,sCAAsC;YACtC,MAAM,WAAW,CAAA;QACnB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAA0B;QACjD,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAC5F,OAAO,CAAA;QACT,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,UAAU,EAAE,QAAQ,GACrB,GAAG,MAAM,gBAAgB,CAAC;YACzB,IAAI;YACJ,UAAU;YACV,gBAAgB;SACjB,CAAC,CAAA;QAEF,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC;YACzC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAChD,IAAI;YACJ,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAChC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrD,CAAC,CAAC,SAAS;SACd,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC5B,UAAU;YACV,UAAU,EAAE,QAAQ;YACpB,IAAI;YACJ,UAAU;YACV,SAAS;SACV,CAAC,CAAA;QAEF,iGAAiG;QACjG,MAAM,QAAQ,GAAG,4BAA4B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACnE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;YAC/B,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,WAAW;gBACX,MAAM;gBACN,SAAS;gBACT,UAAU;aACX;SACF,CAAC,CAAA;QAEF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU;YACV,QAAQ;SACT,CAAA;IACH,CAAC;CACF;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAO/C;IACC,iFAAiF;IACjF,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO,CAAC,UAAU;gBACxB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,EAAE;gBACV,SAAS,EAAE,mBAAmB;gBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;YACD,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,GAAG;SACd,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;QACvC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAA;IACF,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAC,kBAAkB,CAAC;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/cli/cli.d.ts
CHANGED
|
@@ -9,12 +9,32 @@
|
|
|
9
9
|
* and are dynamically imported to keep startup fast.
|
|
10
10
|
*/
|
|
11
11
|
import minimist from 'minimist';
|
|
12
|
+
import type { AuthProvider } from './init';
|
|
12
13
|
/** Parse raw CLI args into structured flags and positional command. Exported for testing. */
|
|
13
14
|
export declare function parseArgs(rawArgs: string[]): {
|
|
14
15
|
argv: minimist.ParsedArgs;
|
|
15
16
|
flags: Record<string, string | boolean>;
|
|
16
17
|
command: string | undefined;
|
|
17
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Validate the --auth flag value for `init`. Returns undefined when the flag
|
|
21
|
+
* was not provided (caller should fall through to interactive prompt / default).
|
|
22
|
+
* Throws when a value was provided but isn't a recognized auth provider.
|
|
23
|
+
* Exported for testing.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseAuthFlag(value: string | boolean | undefined): AuthProvider | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Validate/coerce the --dual-build flag value for `init`. Returns undefined
|
|
28
|
+
* when the flag was not provided (caller should fall through to init()'s own
|
|
29
|
+
* prompt-or-default logic). minimist leaves `dual-build` undeclared (see
|
|
30
|
+
* parseArgs above), so `--dual-build=true` / `--dual-build true` parse as the
|
|
31
|
+
* STRINGS "true"/"false" rather than real booleans — coerce those explicitly
|
|
32
|
+
* so they don't silently fall through to `undefined` (then `false` by
|
|
33
|
+
* default in non-interactive mode), the opposite of what the user asked.
|
|
34
|
+
* Throws when a value was provided but isn't a real boolean or "true"/"false".
|
|
35
|
+
* Exported for testing.
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseDualBuildFlag(value: unknown): boolean | undefined;
|
|
18
38
|
declare const SYNC_SUBCOMMANDS: readonly ["push", "pull", "both", "abort"];
|
|
19
39
|
type SyncSubcommand = (typeof SYNC_SUBCOMMANDS)[number];
|
|
20
40
|
/** Resolve sync subcommand from positional arg. Returns null if missing or invalid. Exported for testing. */
|
package/dist/cli/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAIH,OAAO,QAAQ,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAIH,OAAO,QAAQ,MAAM,UAAU,CAAA;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAG1C,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE;;;;EAyB1C;AAID;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAM3F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAMtE;AAED,QAAA,MAAM,gBAAgB,4CAA6C,CAAA;AACnE,KAAK,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAuBvD,6GAA6G;AAC7G,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,IAAI,CAGpF"}
|