@fluxfiles/node 0.1.12 → 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
@@ -96,6 +96,21 @@ interface BaseTokenOptions {
96
96
  /** Allow editing a file's text content (GET/PUT /api/fm/content). Default **false** — editing
97
97
  * config/executable files (wp-config.php, .env, nginx.conf, deploy.sh) is powerful, so it's opt-in. */
98
98
  allowCodeEdit?: boolean;
99
+ /** Allow the paid Optimization module (POST /api/fm/optimize). Default **false** — opt-in.
100
+ * Even when true, the optimize module must be installed + licensed on the server. */
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;
99
114
  /** Allow downloading a multi-file/-folder selection as a zip (POST /api/fm/zip). Default true. */
100
115
  allowZip?: boolean;
101
116
  /** Allow extracting a zip in place (POST /api/fm/extract). Default true. */
package/dist/index.d.ts CHANGED
@@ -96,6 +96,21 @@ interface BaseTokenOptions {
96
96
  /** Allow editing a file's text content (GET/PUT /api/fm/content). Default **false** — editing
97
97
  * config/executable files (wp-config.php, .env, nginx.conf, deploy.sh) is powerful, so it's opt-in. */
98
98
  allowCodeEdit?: boolean;
99
+ /** Allow the paid Optimization module (POST /api/fm/optimize). Default **false** — opt-in.
100
+ * Even when true, the optimize module must be installed + licensed on the server. */
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;
99
114
  /** Allow downloading a multi-file/-folder selection as a zip (POST /api/fm/zip). Default true. */
100
115
  allowZip?: boolean;
101
116
  /** Allow extracting a zip in place (POST /api/fm/extract). Default true. */
package/dist/index.js CHANGED
@@ -162,6 +162,13 @@ function applyTenantOverrides(payload, opts) {
162
162
  if (opts.allowDownload !== void 0) payload.allow_download = !!opts.allowDownload;
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
+ 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;
165
172
  if (opts.allowZip !== void 0) payload.allow_zip = !!opts.allowZip;
166
173
  if (opts.allowExtract !== void 0) payload.allow_extract = !!opts.allowExtract;
167
174
  if (opts.zipMaxMb && opts.zipMaxMb > 0) payload.zip_max_mb = Math.trunc(opts.zipMaxMb);
package/dist/index.mjs CHANGED
@@ -140,6 +140,13 @@ function applyTenantOverrides(payload, opts) {
140
140
  if (opts.allowDownload !== void 0) payload.allow_download = !!opts.allowDownload;
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
+ 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;
143
150
  if (opts.allowZip !== void 0) payload.allow_zip = !!opts.allowZip;
144
151
  if (opts.allowExtract !== void 0) payload.allow_extract = !!opts.allowExtract;
145
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.12",
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
@@ -132,6 +132,13 @@ function applyTenantOverrides(payload: Record<string, unknown>, opts: BaseTokenO
132
132
  if (opts.allowDownload !== undefined) payload.allow_download = !!opts.allowDownload;
133
133
  if (opts.allowChmod !== undefined) payload.allow_chmod = !!opts.allowChmod;
134
134
  if (opts.allowCodeEdit !== undefined) payload.allow_code_edit = !!opts.allowCodeEdit;
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;
135
142
  if (opts.allowZip !== undefined) payload.allow_zip = !!opts.allowZip;
136
143
  if (opts.allowExtract !== undefined) payload.allow_extract = !!opts.allowExtract;
137
144
  if (opts.zipMaxMb && opts.zipMaxMb > 0) payload.zip_max_mb = Math.trunc(opts.zipMaxMb);
package/src/types.ts CHANGED
@@ -100,6 +100,21 @@ export interface BaseTokenOptions {
100
100
  /** Allow editing a file's text content (GET/PUT /api/fm/content). Default **false** — editing
101
101
  * config/executable files (wp-config.php, .env, nginx.conf, deploy.sh) is powerful, so it's opt-in. */
102
102
  allowCodeEdit?: boolean;
103
+ /** Allow the paid Optimization module (POST /api/fm/optimize). Default **false** — opt-in.
104
+ * Even when true, the optimize module must be installed + licensed on the server. */
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;
103
118
  /** Allow downloading a multi-file/-folder selection as a zip (POST /api/fm/zip). Default true. */
104
119
  allowZip?: boolean;
105
120
  /** Allow extracting a zip in place (POST /api/fm/extract). Default true. */