@fluxfiles/node 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -82,11 +82,20 @@ interface BaseTokenOptions {
82
82
  webpMaxWidth?: number;
83
83
  /** Default WebP quality when a request omits it. `0`/omitted = inherit (80). */
84
84
  webpDefaultQuality?: number;
85
+ /** Responsive `srcset` width ladder (px); list() emits these as `img_srcset` on images.
86
+ * Snapped to 100px and clamped to webpMaxWidth on decode. Omit to inherit the default
87
+ * `[320, 640, 768, 1024, 1366, 1920]`. */
88
+ srcsetWidths?: number[];
89
+ /** Optional `sizes` attribute surfaced as `img_sizes` (omit to let the host supply its own). */
90
+ srcsetSizes?: string;
85
91
  /** May this token mint clean original download URLs? Default true. `false` = preview-only
86
92
  * (list withholds url/permanent_url/variants; GET presign is denied — only watermarked img_base). */
87
93
  allowDownload?: boolean;
88
94
  /** Allow chmod (POST /api/fm/chmod) on an SFTP disk. Default true; `false` = read-only permissions. */
89
95
  allowChmod?: boolean;
96
+ /** Allow editing a file's text content (GET/PUT /api/fm/content). Default **false** — editing
97
+ * config/executable files (wp-config.php, .env, nginx.conf, deploy.sh) is powerful, so it's opt-in. */
98
+ allowCodeEdit?: boolean;
90
99
  /** Enable on-the-fly watermark on `/api/fm/img` (source file is never modified). Default off. */
91
100
  watermarkEnabled?: boolean;
92
101
  /** Watermark kind: 'text' or 'logo' (a PNG path in storage). Default 'text'. */
package/dist/index.d.ts CHANGED
@@ -82,11 +82,20 @@ interface BaseTokenOptions {
82
82
  webpMaxWidth?: number;
83
83
  /** Default WebP quality when a request omits it. `0`/omitted = inherit (80). */
84
84
  webpDefaultQuality?: number;
85
+ /** Responsive `srcset` width ladder (px); list() emits these as `img_srcset` on images.
86
+ * Snapped to 100px and clamped to webpMaxWidth on decode. Omit to inherit the default
87
+ * `[320, 640, 768, 1024, 1366, 1920]`. */
88
+ srcsetWidths?: number[];
89
+ /** Optional `sizes` attribute surfaced as `img_sizes` (omit to let the host supply its own). */
90
+ srcsetSizes?: string;
85
91
  /** May this token mint clean original download URLs? Default true. `false` = preview-only
86
92
  * (list withholds url/permanent_url/variants; GET presign is denied — only watermarked img_base). */
87
93
  allowDownload?: boolean;
88
94
  /** Allow chmod (POST /api/fm/chmod) on an SFTP disk. Default true; `false` = read-only permissions. */
89
95
  allowChmod?: boolean;
96
+ /** Allow editing a file's text content (GET/PUT /api/fm/content). Default **false** — editing
97
+ * config/executable files (wp-config.php, .env, nginx.conf, deploy.sh) is powerful, so it's opt-in. */
98
+ allowCodeEdit?: boolean;
90
99
  /** Enable on-the-fly watermark on `/api/fm/img` (source file is never modified). Default off. */
91
100
  watermarkEnabled?: boolean;
92
101
  /** Watermark kind: 'text' or 'logo' (a PNG path in storage). Default 'text'. */
package/dist/index.js CHANGED
@@ -157,8 +157,11 @@ function applyTenantOverrides(payload, opts) {
157
157
  if (opts.webpEnabled !== void 0) payload.webp_enabled = !!opts.webpEnabled;
158
158
  if (opts.webpMaxWidth && opts.webpMaxWidth > 0) payload.webp_max_width = Math.trunc(opts.webpMaxWidth);
159
159
  if (opts.webpDefaultQuality && opts.webpDefaultQuality > 0) payload.webp_default_quality = Math.trunc(opts.webpDefaultQuality);
160
+ if (Array.isArray(opts.srcsetWidths)) payload.srcset_widths = opts.srcsetWidths.map((w) => Math.trunc(w));
161
+ if (opts.srcsetSizes) payload.srcset_sizes = String(opts.srcsetSizes);
160
162
  if (opts.allowDownload !== void 0) payload.allow_download = !!opts.allowDownload;
161
163
  if (opts.allowChmod !== void 0) payload.allow_chmod = !!opts.allowChmod;
164
+ if (opts.allowCodeEdit !== void 0) payload.allow_code_edit = !!opts.allowCodeEdit;
162
165
  if (opts.watermarkEnabled) {
163
166
  payload.watermark_enabled = true;
164
167
  if (opts.watermarkType) payload.watermark_type = opts.watermarkType;
package/dist/index.mjs CHANGED
@@ -135,8 +135,11 @@ function applyTenantOverrides(payload, opts) {
135
135
  if (opts.webpEnabled !== void 0) payload.webp_enabled = !!opts.webpEnabled;
136
136
  if (opts.webpMaxWidth && opts.webpMaxWidth > 0) payload.webp_max_width = Math.trunc(opts.webpMaxWidth);
137
137
  if (opts.webpDefaultQuality && opts.webpDefaultQuality > 0) payload.webp_default_quality = Math.trunc(opts.webpDefaultQuality);
138
+ if (Array.isArray(opts.srcsetWidths)) payload.srcset_widths = opts.srcsetWidths.map((w) => Math.trunc(w));
139
+ if (opts.srcsetSizes) payload.srcset_sizes = String(opts.srcsetSizes);
138
140
  if (opts.allowDownload !== void 0) payload.allow_download = !!opts.allowDownload;
139
141
  if (opts.allowChmod !== void 0) payload.allow_chmod = !!opts.allowChmod;
142
+ if (opts.allowCodeEdit !== void 0) payload.allow_code_edit = !!opts.allowCodeEdit;
140
143
  if (opts.watermarkEnabled) {
141
144
  payload.watermark_enabled = true;
142
145
  if (opts.watermarkType) payload.watermark_type = opts.watermarkType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluxfiles/node",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Server-side Node/TypeScript SDK for minting FluxFiles JWTs (plain + BYOB), byte-compatible with the PHP core",
5
5
  "license": "MIT",
6
6
  "sideEffects": false,
package/src/token.ts CHANGED
@@ -125,10 +125,13 @@ function applyTenantOverrides(payload: Record<string, unknown>, opts: BaseTokenO
125
125
  if (opts.webpEnabled !== undefined) payload.webp_enabled = !!opts.webpEnabled;
126
126
  if (opts.webpMaxWidth && opts.webpMaxWidth > 0) payload.webp_max_width = Math.trunc(opts.webpMaxWidth);
127
127
  if (opts.webpDefaultQuality && opts.webpDefaultQuality > 0) payload.webp_default_quality = Math.trunc(opts.webpDefaultQuality);
128
+ if (Array.isArray(opts.srcsetWidths)) payload.srcset_widths = opts.srcsetWidths.map((w) => Math.trunc(w));
129
+ if (opts.srcsetSizes) payload.srcset_sizes = String(opts.srcsetSizes);
128
130
 
129
131
  // Download gate + watermark.
130
132
  if (opts.allowDownload !== undefined) payload.allow_download = !!opts.allowDownload;
131
133
  if (opts.allowChmod !== undefined) payload.allow_chmod = !!opts.allowChmod;
134
+ if (opts.allowCodeEdit !== undefined) payload.allow_code_edit = !!opts.allowCodeEdit;
132
135
  if (opts.watermarkEnabled) {
133
136
  payload.watermark_enabled = true;
134
137
  if (opts.watermarkType) payload.watermark_type = opts.watermarkType;
package/src/types.ts CHANGED
@@ -86,11 +86,20 @@ export interface BaseTokenOptions {
86
86
  webpMaxWidth?: number;
87
87
  /** Default WebP quality when a request omits it. `0`/omitted = inherit (80). */
88
88
  webpDefaultQuality?: number;
89
+ /** Responsive `srcset` width ladder (px); list() emits these as `img_srcset` on images.
90
+ * Snapped to 100px and clamped to webpMaxWidth on decode. Omit to inherit the default
91
+ * `[320, 640, 768, 1024, 1366, 1920]`. */
92
+ srcsetWidths?: number[];
93
+ /** Optional `sizes` attribute surfaced as `img_sizes` (omit to let the host supply its own). */
94
+ srcsetSizes?: string;
89
95
  /** May this token mint clean original download URLs? Default true. `false` = preview-only
90
96
  * (list withholds url/permanent_url/variants; GET presign is denied — only watermarked img_base). */
91
97
  allowDownload?: boolean;
92
98
  /** Allow chmod (POST /api/fm/chmod) on an SFTP disk. Default true; `false` = read-only permissions. */
93
99
  allowChmod?: boolean;
100
+ /** Allow editing a file's text content (GET/PUT /api/fm/content). Default **false** — editing
101
+ * config/executable files (wp-config.php, .env, nginx.conf, deploy.sh) is powerful, so it's opt-in. */
102
+ allowCodeEdit?: boolean;
94
103
  /** Enable on-the-fly watermark on `/api/fm/img` (source file is never modified). Default off. */
95
104
  watermarkEnabled?: boolean;
96
105
  /** Watermark kind: 'text' or 'logo' (a PNG path in storage). Default 'text'. */