@fluxfiles/node 0.1.13 → 0.1.14

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
@@ -99,6 +99,18 @@ interface BaseTokenOptions {
99
99
  /** Allow the paid Optimization module (POST /api/fm/optimize). Default **false** — opt-in.
100
100
  * Even when true, the optimize module must be installed + licensed on the server. */
101
101
  allowOptimize?: boolean;
102
+ /** Auto-optimize images on upload (recompress to WebP in the pipeline). Default false;
103
+ * only effective when the optimize module is installed + licensed on the server. */
104
+ autoOptimize?: boolean;
105
+ /** WebP quality for optimization, 40–95. `0`/omitted = inherit the server default (82). */
106
+ optimizeQuality?: number;
107
+ /** How an upload whose NAME collides with an existing different file is handled
108
+ * (content dedup is separate, by hash): `'rename'` keep both `<name>-1.<ext>`
109
+ * (default), `'overwrite'` replace in place, `'reject'` 409 for the host to prompt. */
110
+ uploadCollision?: 'rename' | 'overwrite' | 'reject';
111
+ /** Show dotfiles (.env, .gitignore, …) in listings + search. Default **false** —
112
+ * dotfiles are hidden, matching Finder / cPanel / Nextcloud. */
113
+ showHidden?: boolean;
102
114
  /** Allow downloading a multi-file/-folder selection as a zip (POST /api/fm/zip). Default true. */
103
115
  allowZip?: boolean;
104
116
  /** Allow extracting a zip in place (POST /api/fm/extract). Default true. */
package/dist/index.d.ts CHANGED
@@ -99,6 +99,18 @@ interface BaseTokenOptions {
99
99
  /** Allow the paid Optimization module (POST /api/fm/optimize). Default **false** — opt-in.
100
100
  * Even when true, the optimize module must be installed + licensed on the server. */
101
101
  allowOptimize?: boolean;
102
+ /** Auto-optimize images on upload (recompress to WebP in the pipeline). Default false;
103
+ * only effective when the optimize module is installed + licensed on the server. */
104
+ autoOptimize?: boolean;
105
+ /** WebP quality for optimization, 40–95. `0`/omitted = inherit the server default (82). */
106
+ optimizeQuality?: number;
107
+ /** How an upload whose NAME collides with an existing different file is handled
108
+ * (content dedup is separate, by hash): `'rename'` keep both `<name>-1.<ext>`
109
+ * (default), `'overwrite'` replace in place, `'reject'` 409 for the host to prompt. */
110
+ uploadCollision?: 'rename' | 'overwrite' | 'reject';
111
+ /** Show dotfiles (.env, .gitignore, …) in listings + search. Default **false** —
112
+ * dotfiles are hidden, matching Finder / cPanel / Nextcloud. */
113
+ showHidden?: boolean;
102
114
  /** Allow downloading a multi-file/-folder selection as a zip (POST /api/fm/zip). Default true. */
103
115
  allowZip?: boolean;
104
116
  /** Allow extracting a zip in place (POST /api/fm/extract). Default true. */
package/dist/index.js CHANGED
@@ -163,6 +163,12 @@ function applyTenantOverrides(payload, opts) {
163
163
  if (opts.allowChmod !== void 0) payload.allow_chmod = !!opts.allowChmod;
164
164
  if (opts.allowCodeEdit !== void 0) payload.allow_code_edit = !!opts.allowCodeEdit;
165
165
  if (opts.allowOptimize !== void 0) payload.allow_optimize = !!opts.allowOptimize;
166
+ if (opts.autoOptimize !== void 0) payload.auto_optimize = !!opts.autoOptimize;
167
+ if (opts.optimizeQuality && opts.optimizeQuality > 0) payload.optimize_quality = Math.trunc(opts.optimizeQuality);
168
+ if (opts.uploadCollision && ["rename", "overwrite", "reject"].includes(opts.uploadCollision)) {
169
+ payload.upload_collision = opts.uploadCollision;
170
+ }
171
+ if (opts.showHidden !== void 0) payload.show_hidden = !!opts.showHidden;
166
172
  if (opts.allowZip !== void 0) payload.allow_zip = !!opts.allowZip;
167
173
  if (opts.allowExtract !== void 0) payload.allow_extract = !!opts.allowExtract;
168
174
  if (opts.zipMaxMb && opts.zipMaxMb > 0) payload.zip_max_mb = Math.trunc(opts.zipMaxMb);
package/dist/index.mjs CHANGED
@@ -141,6 +141,12 @@ function applyTenantOverrides(payload, opts) {
141
141
  if (opts.allowChmod !== void 0) payload.allow_chmod = !!opts.allowChmod;
142
142
  if (opts.allowCodeEdit !== void 0) payload.allow_code_edit = !!opts.allowCodeEdit;
143
143
  if (opts.allowOptimize !== void 0) payload.allow_optimize = !!opts.allowOptimize;
144
+ if (opts.autoOptimize !== void 0) payload.auto_optimize = !!opts.autoOptimize;
145
+ if (opts.optimizeQuality && opts.optimizeQuality > 0) payload.optimize_quality = Math.trunc(opts.optimizeQuality);
146
+ if (opts.uploadCollision && ["rename", "overwrite", "reject"].includes(opts.uploadCollision)) {
147
+ payload.upload_collision = opts.uploadCollision;
148
+ }
149
+ if (opts.showHidden !== void 0) payload.show_hidden = !!opts.showHidden;
144
150
  if (opts.allowZip !== void 0) payload.allow_zip = !!opts.allowZip;
145
151
  if (opts.allowExtract !== void 0) payload.allow_extract = !!opts.allowExtract;
146
152
  if (opts.zipMaxMb && opts.zipMaxMb > 0) payload.zip_max_mb = Math.trunc(opts.zipMaxMb);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluxfiles/node",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
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
@@ -133,6 +133,12 @@ function applyTenantOverrides(payload: Record<string, unknown>, opts: BaseTokenO
133
133
  if (opts.allowChmod !== undefined) payload.allow_chmod = !!opts.allowChmod;
134
134
  if (opts.allowCodeEdit !== undefined) payload.allow_code_edit = !!opts.allowCodeEdit;
135
135
  if (opts.allowOptimize !== undefined) payload.allow_optimize = !!opts.allowOptimize;
136
+ if (opts.autoOptimize !== undefined) payload.auto_optimize = !!opts.autoOptimize;
137
+ if (opts.optimizeQuality && opts.optimizeQuality > 0) payload.optimize_quality = Math.trunc(opts.optimizeQuality);
138
+ if (opts.uploadCollision && ['rename', 'overwrite', 'reject'].includes(opts.uploadCollision)) {
139
+ payload.upload_collision = opts.uploadCollision;
140
+ }
141
+ if (opts.showHidden !== undefined) payload.show_hidden = !!opts.showHidden;
136
142
  if (opts.allowZip !== undefined) payload.allow_zip = !!opts.allowZip;
137
143
  if (opts.allowExtract !== undefined) payload.allow_extract = !!opts.allowExtract;
138
144
  if (opts.zipMaxMb && opts.zipMaxMb > 0) payload.zip_max_mb = Math.trunc(opts.zipMaxMb);
package/src/types.ts CHANGED
@@ -103,6 +103,18 @@ export interface BaseTokenOptions {
103
103
  /** Allow the paid Optimization module (POST /api/fm/optimize). Default **false** — opt-in.
104
104
  * Even when true, the optimize module must be installed + licensed on the server. */
105
105
  allowOptimize?: boolean;
106
+ /** Auto-optimize images on upload (recompress to WebP in the pipeline). Default false;
107
+ * only effective when the optimize module is installed + licensed on the server. */
108
+ autoOptimize?: boolean;
109
+ /** WebP quality for optimization, 40–95. `0`/omitted = inherit the server default (82). */
110
+ optimizeQuality?: number;
111
+ /** How an upload whose NAME collides with an existing different file is handled
112
+ * (content dedup is separate, by hash): `'rename'` keep both `<name>-1.<ext>`
113
+ * (default), `'overwrite'` replace in place, `'reject'` 409 for the host to prompt. */
114
+ uploadCollision?: 'rename' | 'overwrite' | 'reject';
115
+ /** Show dotfiles (.env, .gitignore, …) in listings + search. Default **false** —
116
+ * dotfiles are hidden, matching Finder / cPanel / Nextcloud. */
117
+ showHidden?: boolean;
106
118
  /** Allow downloading a multi-file/-folder selection as a zip (POST /api/fm/zip). Default true. */
107
119
  allowZip?: boolean;
108
120
  /** Allow extracting a zip in place (POST /api/fm/extract). Default true. */