@iebh/tera-fy 2.2.0 → 2.2.3

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.
@@ -1,3 +1,4 @@
1
+ import ProjectFile from './projectFile.js';
1
2
  /**
2
3
  * Main Tera-Fy Client (class singleton) to be used in a frontend browser
3
4
  *
@@ -65,7 +66,7 @@ export default class TeraFy {
65
66
  *
66
67
  * @type {Array<String>}
67
68
  */
68
- methods: readonly ["handshake", "setServerVerbosity", "getUser", "requireUser", "getCredentials", "bindProject", "getProject", "getProjects", "setActiveProject", "requireProject", "selectProject", "getNamespace", "setNamespace", "listNamespaces", "getProjectState", "setProjectState", "setProjectStateDefaults", "setProjectStateRefresh", "getProjectFileContents", "deleteProjectFile", "setProjectFileContents", "selectProjectLibrary", "getProjectLibrary", "setProjectLibrary", "projectLog", "setPage", "uiAlert", "uiConfirm", "uiPanic", "uiProgress", "uiPrompt", "uiThrow", "uiSplat", "uiWindow"];
69
+ methods: readonly ["handshake", "setServerVerbosity", "getUser", "requireUser", "getCredentials", "bindProject", "getProject", "getProjects", "setActiveProject", "requireProject", "selectProject", "getNamespace", "setNamespace", "listNamespaces", "getProjectState", "setProjectState", "setProjectStateDefaults", "setProjectStateRefresh", "getProjectFileContents", "deleteProjectFile", "setProjectFileContents", "createProjectFolder", "deleteProjectFolder", "selectProjectLibrary", "getProjectLibrary", "setProjectLibrary", "projectLog", "setPage", "uiAlert", "uiConfirm", "uiPanic", "uiProgress", "uiPrompt", "uiThrow", "uiSplat", "uiWindow"];
69
70
  /**
70
71
  * Loaded plugins via Use()
71
72
  * @type {Array<TeraFyPlugin>}
@@ -529,4 +530,23 @@ export default class TeraFy {
529
530
  * @returns {Promise<ProjectFile>} The eventual ProjectFile created
530
531
  */
531
532
  createProjectFile(name: any): any;
533
+ /**
534
+ * Moves a project file to a new name/path.
535
+ * The file's unique ID (UUID) remains the same, but its 'name' (relative path) and associated properties will be updated.
536
+ *
537
+ * @function moveProjectFile
538
+ * @param {String} sourceId The unique ID (UUID) of the file to move.
539
+ * @param {String} newName The new relative name for the file (e.g., "documents/report-final.pdf" or "image.png").
540
+ * This path is relative to the project's root file directory.
541
+ *
542
+ * @param {Object} [options] Additional options to mutate behaviour.
543
+ * @param {Boolean} [options.autoRequire=true] Run `requireProject()` automatically before continuing.
544
+ * @param {Boolean} [options.overwrite=true] If true (default), moving a file to a `newName` that already exists will overwrite the existing file.
545
+ * This aligns with the default behavior of the underlying Supabase storage `move` operation.
546
+ * If set to false, the function would ideally check and prevent overwrite, but current implementation relies on underlying storage behavior.
547
+ *
548
+ * @returns {Promise<ProjectFile | null>} A promise which resolves to the updated ProjectFile object for the moved file if found after the operation,
549
+ * or null if the file could not be located post-move (e.g., if its ID changed unexpectedly or it was deleted).
550
+ */
551
+ moveProjectFile(sourceId: string, newName: string, options?: any): Promise<ProjectFile | null>;
532
552
  }
@@ -316,8 +316,12 @@ export default class TeraFy {
316
316
  // 'getProjectFile', - Handled below (requires return mapped to ProjectFile)
317
317
  'getProjectFileContents',
318
318
  // 'createProjectFile', - Handled below (requires return mapped to ProjectFile)
319
+ // 'moveProjectFile', - Handled below (requires return mapped to ProjectFile)
319
320
  'deleteProjectFile',
320
321
  'setProjectFileContents',
322
+ // Project folders
323
+ 'createProjectFolder',
324
+ 'deleteProjectFolder',
321
325
  // Project Libraries
322
326
  'selectProjectLibrary',
323
327
  'getProjectLibrary',
@@ -1106,5 +1110,35 @@ export default class TeraFy {
1106
1110
  })
1107
1111
  : file);
1108
1112
  }
1113
+ /**
1114
+ * Moves a project file to a new name/path.
1115
+ * The file's unique ID (UUID) remains the same, but its 'name' (relative path) and associated properties will be updated.
1116
+ *
1117
+ * @function moveProjectFile
1118
+ * @param {String} sourceId The unique ID (UUID) of the file to move.
1119
+ * @param {String} newName The new relative name for the file (e.g., "documents/report-final.pdf" or "image.png").
1120
+ * This path is relative to the project's root file directory.
1121
+ *
1122
+ * @param {Object} [options] Additional options to mutate behaviour.
1123
+ * @param {Boolean} [options.autoRequire=true] Run `requireProject()` automatically before continuing.
1124
+ * @param {Boolean} [options.overwrite=true] If true (default), moving a file to a `newName` that already exists will overwrite the existing file.
1125
+ * This aligns with the default behavior of the underlying Supabase storage `move` operation.
1126
+ * If set to false, the function would ideally check and prevent overwrite, but current implementation relies on underlying storage behavior.
1127
+ *
1128
+ * @returns {Promise<ProjectFile | null>} A promise which resolves to the updated ProjectFile object for the moved file if found after the operation,
1129
+ * or null if the file could not be located post-move (e.g., if its ID changed unexpectedly or it was deleted).
1130
+ */
1131
+ moveProjectFile(sourceId, newName, options) {
1132
+ return this.rpc('moveProjectFile', sourceId, newName, options)
1133
+ .then((fileData) => {
1134
+ if (fileData) {
1135
+ return new ProjectFile({
1136
+ tera: this, // Pass the TeraFy client instance
1137
+ ...fileData,
1138
+ });
1139
+ }
1140
+ return null;
1141
+ });
1142
+ }
1109
1143
  }
1110
1144
  //# sourceMappingURL=terafy.client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terafy.client.js","sourceRoot":"","sources":["../../lib/terafy.client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terafy.client.js","sourceRoot":"","sources":["../../lib/terafy.client.ts"],"names":[],"mappings":"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"}
@@ -393,6 +393,24 @@ export default class TeraFyServer {
393
393
  */
394
394
  createProjectFile(name: string): Promise<any>;
395
395
  /**
396
+ * Moves a project file to a new name/path.
397
+ * The file's unique ID (UUID) remains the same, but its 'name' (relative path) and associated properties will be updated.
398
+ *
399
+ * @param {String} sourceId The unique ID (UUID) of the file to move.
400
+ * @param {String} newName The new relative name for the file (e.g., "documents/report-final.pdf" or "image.png").
401
+ * This path is relative to the project's root file directory.
402
+ *
403
+ * @param {Object} [options] Additional options to mutate behaviour.
404
+ * @param {Boolean} [options.autoRequire=true] Run `requireProject()` automatically before continuing.
405
+ * @param {Boolean} [options.overwrite=true] If true (default), moving a file to a `newName` that already exists will overwrite the existing file.
406
+ * This aligns with the default behavior of the underlying Supabase storage `move` operation.
407
+ * If set to false, the function would ideally check and prevent overwrite, but current implementation relies on underlying storage behavior.
408
+ *
409
+ * @returns {Promise<ProjectFile | null>} A promise which resolves to the updated ProjectFile object for the moved file if found after the operation,
410
+ * or null if the file could not be located post-move (e.g., if its ID changed unexpectedly or it was deleted).
411
+ */
412
+ moveProjectFile(sourceId: string, newName: string, options?: any): Promise<any | null>;
413
+ /**
396
414
  * Remove a project file by its ID
397
415
  *
398
416
  * @param {String} id The File ID to remove
@@ -417,6 +435,33 @@ export default class TeraFyServer {
417
435
  */
418
436
  setProjectFileContents(id: string | any | null, contents: any, options?: any): Promise<null>;
419
437
  /**
438
+ * Creates a new "folder" within the project's file storage.
439
+ * Folders in Supabase storage are typically represented by creating a placeholder file (e.g., .emptyFolderPlaceholder) within the desired path.
440
+ * This operation is idempotent: if the folder (via its placeholder) already exists, it will not error.
441
+ *
442
+ * @param {String} folderPath The relative path of the folder to create (e.g., "myDocuments/reports").
443
+ * @param {Object} [options] Additional options.
444
+ * @param {Boolean} [options.autoRequire=true] Automatically run `requireProject()` to ensure an active project context.
445
+ * @returns {Promise<void>} A promise that resolves when the folder is created or ensured.
446
+ * @throws {Error} If no project is active (and autoRequire is false), or if folderPath is invalid, or if the creation fails.
447
+ */
448
+ createProjectFolder(folderPath: string, options?: {
449
+ autoRequire?: boolean;
450
+ }): Promise<void>;
451
+ /**
452
+ * Deletes a "folder" and all its contents from the project's file storage.
453
+ * This involves listing all files under the given folder path (prefix) and removing them.
454
+ *
455
+ * @param {String} folderPath The relative path of the folder to delete (e.g., "myDocuments/reports").
456
+ * @param {Object} [options] Additional options.
457
+ * @param {Boolean} [options.autoRequire=true] Automatically run `requireProject()` to ensure an active project context.
458
+ * @returns {Promise<null>} A promise that resolves with null when the folder and its contents are deleted.
459
+ * @throws {Error} If no project is active (and autoRequire is false), or if folderPath is invalid, or if deletion fails.
460
+ */
461
+ deleteProjectFolder(folderPath: string, options?: {
462
+ autoRequire?: boolean;
463
+ }): Promise<null>;
464
+ /**
420
465
  * Prompt the user to select a library to operate on and return a array of references in a given format
421
466
  *
422
467
  * @param {Object} [options] Additional options to mutate behaviour - see `getProjectLibrary()` for parent list of options
@@ -1017,6 +1017,98 @@ class TeraFyServer {
1017
1017
  .then((file) => file || Promise.reject(`Could not create new file "${name}"`));
1018
1018
  }
1019
1019
  /**
1020
+ * Moves a project file to a new name/path.
1021
+ * The file's unique ID (UUID) remains the same, but its 'name' (relative path) and associated properties will be updated.
1022
+ *
1023
+ * @param {String} sourceId The unique ID (UUID) of the file to move.
1024
+ * @param {String} newName The new relative name for the file (e.g., "documents/report-final.pdf" or "image.png").
1025
+ * This path is relative to the project's root file directory.
1026
+ *
1027
+ * @param {Object} [options] Additional options to mutate behaviour.
1028
+ * @param {Boolean} [options.autoRequire=true] Run `requireProject()` automatically before continuing.
1029
+ * @param {Boolean} [options.overwrite=true] If true (default), moving a file to a `newName` that already exists will overwrite the existing file.
1030
+ * This aligns with the default behavior of the underlying Supabase storage `move` operation.
1031
+ * If set to false, the function would ideally check and prevent overwrite, but current implementation relies on underlying storage behavior.
1032
+ *
1033
+ * @returns {Promise<ProjectFile | null>} A promise which resolves to the updated ProjectFile object for the moved file if found after the operation,
1034
+ * or null if the file could not be located post-move (e.g., if its ID changed unexpectedly or it was deleted).
1035
+ */
1036
+ async moveProjectFile(sourceId, newName, options) {
1037
+ const settings = {
1038
+ autoRequire: true,
1039
+ overwrite: true, // Matches Supabase client's default behavior for move.
1040
+ ...options,
1041
+ };
1042
+ if (settings.autoRequire) {
1043
+ await this.requireProject(); // Ensures an active project context.
1044
+ }
1045
+ const projectService = app.service('$projects');
1046
+ const supabaseService = app.service('$supabase');
1047
+ if (!projectService.active) {
1048
+ throw new Error('moveProjectFile: No active project. Cannot move file.');
1049
+ }
1050
+ if (!sourceId || typeof sourceId !== 'string') {
1051
+ throw new Error('moveProjectFile: sourceId (string) is required.');
1052
+ }
1053
+ if (!newName || typeof newName !== 'string') {
1054
+ throw new Error('moveProjectFile: newName (string) is required.');
1055
+ }
1056
+ if (newName.includes('..') || newName.startsWith('/') || newName.endsWith('/')) {
1057
+ throw new Error('moveProjectFile: newName must be a valid relative file path, cannot contain ".." segments, start with "/", or end with "/".');
1058
+ }
1059
+ // Get the full Supabase storage path for the source file using its unique ID.
1060
+ // e.g., "project_id_123/path/to/original_file.txt"
1061
+ const sourceStoragePath = projectService.decodeFilePath(sourceId);
1062
+ if (!sourceStoragePath) {
1063
+ // This could happen if the sourceId is invalid or decodeFilePath fails.
1064
+ throw new Error(`moveProjectFile: Could not determine storage path for sourceId "${sourceId}". File may not exist or ID is incorrect.`);
1065
+ }
1066
+ // Construct the full Supabase storage path for the target (new name).
1067
+ // e.g., "project_id_123/new_path/to/new_file.txt"
1068
+ const targetStoragePath = projectService.convertRelativePath(newName);
1069
+ if (sourceStoragePath === targetStoragePath) {
1070
+ this.debug('INFO', 2, `moveProjectFile: Source path "${sourceStoragePath}" and target path "${targetStoragePath}" are identical. No move operation needed.`);
1071
+ // Attempt to find the file by ID, as its name should match newName if paths are identical.
1072
+ const currentFile = projectService.activeFiles?.find((f) => f.id === sourceId);
1073
+ return currentFile || null;
1074
+ }
1075
+ this.debug('INFO', 2, `Attempting to move project file from "${sourceStoragePath}" to "${targetStoragePath}". Overwrite: ${settings.overwrite}`);
1076
+ try {
1077
+ // Perform the move operation via the Supabase service.
1078
+ // Assumes $supabase.fileMove handles the underlying Supabase client `storage.from(bucket).move(from, to)`.
1079
+ // The standard Supabase `move` overwrites by default. If settings.overwrite is false,
1080
+ // a more complex $supabase.fileMove or a pre-check here would be needed.
1081
+ // For now, we pass the conceptual overwrite intent, but actual behavior depends on $supabase.fileMove.
1082
+ await supabaseService.fileMove(sourceStoragePath, targetStoragePath, { overwrite: settings.overwrite });
1083
+ this.debug('INFO', 2, `Project file successfully moved from "${sourceStoragePath}" to "${targetStoragePath}".`);
1084
+ // After a successful move, refresh the local cache of project files.
1085
+ await projectService.refreshFiles({ lazy: false });
1086
+ this.debug('INFO', 3, 'Project files list refreshed after move operation.');
1087
+ // The file's unique ID (UUID) should remain the same.
1088
+ // Find the updated ProjectFile entry in the refreshed cache using the original sourceId.
1089
+ const refreshedFiles = projectService.activeFiles; // Assuming activeFiles is Array<ProjectFile>
1090
+ const movedFileEntry = refreshedFiles?.find((file) => file.id === sourceId);
1091
+ if (movedFileEntry) {
1092
+ if (movedFileEntry.name !== newName) {
1093
+ this.debug('WARN', 1, `moveProjectFile: File (ID: ${sourceId}) found after move, but its name property is "${movedFileEntry.name}", which differs from the requested newName "${newName}". This might be due to server-side name sanitization or an unexpected outcome.`);
1094
+ }
1095
+ else {
1096
+ this.debug('INFO', 3, `Successfully located updated ProjectFile (ID: ${sourceId}) with new name "${newName}".`);
1097
+ }
1098
+ return movedFileEntry; // Return the updated ProjectFile object.
1099
+ }
1100
+ else {
1101
+ this.debug('ERROR', 1, `moveProjectFile: Failed to find file with original ID "${sourceId}" in the refreshed list after the move. The file might have been deleted or its ID changed unexpectedly.`);
1102
+ return null;
1103
+ }
1104
+ }
1105
+ catch (error) {
1106
+ this.debug('ERROR', 1, `Error during project file move from "${sourceStoragePath}" to "${targetStoragePath}":`, error);
1107
+ // Re-throw a more specific error or the original error for the caller to handle.
1108
+ throw new Error(`Failed to move project file "${sourceId}" to "${newName}": ${error.message || String(error)}`);
1109
+ }
1110
+ }
1111
+ /**
1020
1112
  * Remove a project file by its ID
1021
1113
  *
1022
1114
  * @param {String} id The File ID to remove
@@ -1115,6 +1207,128 @@ class TeraFyServer {
1115
1207
  .then(() => null);
1116
1208
  }
1117
1209
  // }}}
1210
+ // Project Folders - createProjectFolder(), deleteProjectFolder() {{{
1211
+ /**
1212
+ * Creates a new "folder" within the project's file storage.
1213
+ * Folders in Supabase storage are typically represented by creating a placeholder file (e.g., .emptyFolderPlaceholder) within the desired path.
1214
+ * This operation is idempotent: if the folder (via its placeholder) already exists, it will not error.
1215
+ *
1216
+ * @param {String} folderPath The relative path of the folder to create (e.g., "myDocuments/reports").
1217
+ * @param {Object} [options] Additional options.
1218
+ * @param {Boolean} [options.autoRequire=true] Automatically run `requireProject()` to ensure an active project context.
1219
+ * @returns {Promise<void>} A promise that resolves when the folder is created or ensured.
1220
+ * @throws {Error} If no project is active (and autoRequire is false), or if folderPath is invalid, or if the creation fails.
1221
+ */
1222
+ async createProjectFolder(folderPath, options) {
1223
+ const settings = {
1224
+ autoRequire: true,
1225
+ ...options,
1226
+ };
1227
+ if (settings.autoRequire) {
1228
+ await this.requireProject(); // Ensures user and project context are established
1229
+ }
1230
+ else if (!app.service('$projects').active) {
1231
+ throw new Error('No active project. Please select or require a project first.');
1232
+ }
1233
+ if (!folderPath || typeof folderPath !== 'string' || folderPath.trim() === '' || folderPath.includes('..')) {
1234
+ throw new Error('Invalid folderPath provided. Path cannot be empty, contain ".." or be invalid.');
1235
+ }
1236
+ let cleanFolderPath = folderPath.trim();
1237
+ if (cleanFolderPath.startsWith('/')) {
1238
+ cleanFolderPath = cleanFolderPath.substring(1);
1239
+ }
1240
+ if (cleanFolderPath.endsWith('/')) {
1241
+ cleanFolderPath = cleanFolderPath.slice(0, -1);
1242
+ }
1243
+ if (cleanFolderPath === '') {
1244
+ throw new Error('Folder path cannot resolve to project root or be an empty string after normalization.');
1245
+ }
1246
+ const placeholderFileName = '.emptyFolderPlaceholder'; // Common convention for representing an empty folder
1247
+ const relativePlaceholderPath = cleanFolderPath + '/' + placeholderFileName;
1248
+ // `convertRelativePath` typically creates the full path including project ID, etc.
1249
+ const supabasePath = app.service('$projects').convertRelativePath(relativePlaceholderPath);
1250
+ try {
1251
+ await app.service('$supabase').fileUpload(supabasePath, {
1252
+ file: new Blob([''], { type: 'text/plain' }), // Consistent with createProjectFile
1253
+ mode: 'encoded',
1254
+ overwrite: true, // Makes the operation idempotent
1255
+ toast: false,
1256
+ transcoders: false,
1257
+ });
1258
+ // Refresh the local file list cache to include the new placeholder/folder
1259
+ await app.service('$projects').refreshFiles({ lazy: false });
1260
+ this.debug('INFO', 2, `Project folder "${cleanFolderPath}" ensured/created via placeholder at "${relativePlaceholderPath}".`);
1261
+ }
1262
+ catch (error) {
1263
+ this.debug('ERROR', 1, `Failed to create/ensure project folder "${cleanFolderPath}" via placeholder "${relativePlaceholderPath}"`, error);
1264
+ throw new Error(`Failed to create project folder "${cleanFolderPath}": ${error.message || String(error)}`);
1265
+ }
1266
+ }
1267
+ /**
1268
+ * Deletes a "folder" and all its contents from the project's file storage.
1269
+ * This involves listing all files under the given folder path (prefix) and removing them.
1270
+ *
1271
+ * @param {String} folderPath The relative path of the folder to delete (e.g., "myDocuments/reports").
1272
+ * @param {Object} [options] Additional options.
1273
+ * @param {Boolean} [options.autoRequire=true] Automatically run `requireProject()` to ensure an active project context.
1274
+ * @returns {Promise<null>} A promise that resolves with null when the folder and its contents are deleted.
1275
+ * @throws {Error} If no project is active (and autoRequire is false), or if folderPath is invalid, or if deletion fails.
1276
+ */
1277
+ async deleteProjectFolder(folderPath, options) {
1278
+ const settings = {
1279
+ autoRequire: true,
1280
+ ...options,
1281
+ };
1282
+ if (settings.autoRequire) {
1283
+ await this.requireProject(); // Ensures user and project context
1284
+ }
1285
+ else if (!app.service('$projects').active) {
1286
+ throw new Error('No active project. Please select or require a project first.');
1287
+ }
1288
+ if (!folderPath || typeof folderPath !== 'string' || folderPath.trim() === '' || folderPath.includes('..')) {
1289
+ throw new Error('Invalid folderPath provided. Path cannot be empty, contain ".." or be invalid.');
1290
+ }
1291
+ let cleanFolderPath = folderPath.trim();
1292
+ if (cleanFolderPath.startsWith('/')) {
1293
+ cleanFolderPath = cleanFolderPath.substring(1);
1294
+ }
1295
+ if (cleanFolderPath.endsWith('/')) {
1296
+ cleanFolderPath = cleanFolderPath.slice(0, -1);
1297
+ }
1298
+ if (cleanFolderPath === '') {
1299
+ throw new Error('Folder path cannot resolve to project root or be an empty string after normalization; deleting root is not allowed via this function.');
1300
+ }
1301
+ const pathPrefix = cleanFolderPath + '/'; // Files inside the folder will start with this prefix
1302
+ // Fetch all files, ensuring the list is up-to-date
1303
+ const allFiles = await this.getProjectFiles({ autoRequire: false, lazy: false, meta: true });
1304
+ const filesToDelete = allFiles.filter(file => {
1305
+ // file.name is the relative path like "documents/report.pdf" or "documents/archive/old.zip"
1306
+ // This will also include any placeholder file like "myFolder/.emptyFolderPlaceholder" if pathPrefix is "myFolder/"
1307
+ return file.name.startsWith(pathPrefix);
1308
+ });
1309
+ if (filesToDelete.length === 0) {
1310
+ this.debug('INFO', 2, `No files found under project folder prefix "${pathPrefix}". The folder might be empty or not exist.`);
1311
+ // It's possible the folder was already empty or never existed.
1312
+ // Refresh files just in case, though `getProjectFiles` with `lazy: false` should be current.
1313
+ await app.service('$projects').refreshFiles({ lazy: false });
1314
+ return null;
1315
+ }
1316
+ // `decodeFilePath` converts the ProjectFile's ID to the actual Supabase storage path.
1317
+ const supabasePathsToDelete = filesToDelete.map(file => app.service('$projects').decodeFilePath(file.id));
1318
+ try {
1319
+ // Assuming `fileRemove` can take an array of paths, common for Supabase client.
1320
+ await app.service('$supabase').fileRemove(supabasePathsToDelete);
1321
+ // Refresh the local file list cache
1322
+ await app.service('$projects').refreshFiles({ lazy: false });
1323
+ this.debug('INFO', 2, `Project folder "${cleanFolderPath}" (prefix "${pathPrefix}") and its ${filesToDelete.length} contents deleted.`);
1324
+ }
1325
+ catch (error) {
1326
+ this.debug('ERROR', 1, `Failed to delete contents of project folder "${cleanFolderPath}" (prefix "${pathPrefix}")`, error);
1327
+ throw new Error(`Failed to delete project folder "${cleanFolderPath}": ${error.message || String(error)}`);
1328
+ }
1329
+ return null;
1330
+ }
1331
+ // }}}
1118
1332
  // Project Libraries - selectProjectLibrary(), getProjectLibrary(), setProjectLibrary() {{{
1119
1333
  /**
1120
1334
  * Prompt the user to select a library to operate on and return a array of references in a given format