@memberjunction/core-actions 2.103.0 → 2.104.0

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.
Files changed (77) hide show
  1. package/dist/config.d.ts +82 -0
  2. package/dist/config.d.ts.map +1 -0
  3. package/dist/config.js +83 -0
  4. package/dist/config.js.map +1 -0
  5. package/dist/custom/files/base-file-storage.action.d.ts +70 -0
  6. package/dist/custom/files/base-file-storage.action.d.ts.map +1 -0
  7. package/dist/custom/files/base-file-storage.action.js +140 -0
  8. package/dist/custom/files/base-file-storage.action.js.map +1 -0
  9. package/dist/custom/files/copy-object.action.d.ts +38 -0
  10. package/dist/custom/files/copy-object.action.d.ts.map +1 -0
  11. package/dist/custom/files/copy-object.action.js +84 -0
  12. package/dist/custom/files/copy-object.action.js.map +1 -0
  13. package/dist/custom/files/create-directory.action.d.ts +34 -0
  14. package/dist/custom/files/create-directory.action.d.ts.map +1 -0
  15. package/dist/custom/files/create-directory.action.js +75 -0
  16. package/dist/custom/files/create-directory.action.js.map +1 -0
  17. package/dist/custom/files/delete-directory.action.d.ts +38 -0
  18. package/dist/custom/files/delete-directory.action.d.ts.map +1 -0
  19. package/dist/custom/files/delete-directory.action.js +82 -0
  20. package/dist/custom/files/delete-directory.action.js.map +1 -0
  21. package/dist/custom/files/delete-object.action.d.ts +34 -0
  22. package/dist/custom/files/delete-object.action.d.ts.map +1 -0
  23. package/dist/custom/files/delete-object.action.js +75 -0
  24. package/dist/custom/files/delete-object.action.js.map +1 -0
  25. package/dist/custom/files/directory-exists.action.d.ts +34 -0
  26. package/dist/custom/files/directory-exists.action.d.ts.map +1 -0
  27. package/dist/custom/files/directory-exists.action.js +75 -0
  28. package/dist/custom/files/directory-exists.action.js.map +1 -0
  29. package/dist/custom/files/get-download-url.action.d.ts +34 -0
  30. package/dist/custom/files/get-download-url.action.d.ts.map +1 -0
  31. package/dist/custom/files/get-download-url.action.js +75 -0
  32. package/dist/custom/files/get-download-url.action.js.map +1 -0
  33. package/dist/custom/files/get-metadata.action.d.ts +42 -0
  34. package/dist/custom/files/get-metadata.action.d.ts.map +1 -0
  35. package/dist/custom/files/get-metadata.action.js +95 -0
  36. package/dist/custom/files/get-metadata.action.js.map +1 -0
  37. package/dist/custom/files/get-object.action.d.ts +35 -0
  38. package/dist/custom/files/get-object.action.d.ts.map +1 -0
  39. package/dist/custom/files/get-object.action.js +80 -0
  40. package/dist/custom/files/get-object.action.js.map +1 -0
  41. package/dist/custom/files/get-upload-url.action.d.ts +35 -0
  42. package/dist/custom/files/get-upload-url.action.d.ts.map +1 -0
  43. package/dist/custom/files/get-upload-url.action.js +80 -0
  44. package/dist/custom/files/get-upload-url.action.js.map +1 -0
  45. package/dist/custom/files/index.d.ts +23 -0
  46. package/dist/custom/files/index.d.ts.map +1 -0
  47. package/dist/custom/files/index.js +39 -0
  48. package/dist/custom/files/index.js.map +1 -0
  49. package/dist/custom/files/list-objects.action.d.ts +50 -0
  50. package/dist/custom/files/list-objects.action.d.ts.map +1 -0
  51. package/dist/custom/files/list-objects.action.js +95 -0
  52. package/dist/custom/files/list-objects.action.js.map +1 -0
  53. package/dist/custom/files/move-object.action.d.ts +38 -0
  54. package/dist/custom/files/move-object.action.d.ts.map +1 -0
  55. package/dist/custom/files/move-object.action.js +84 -0
  56. package/dist/custom/files/move-object.action.js.map +1 -0
  57. package/dist/custom/files/object-exists.action.d.ts +34 -0
  58. package/dist/custom/files/object-exists.action.d.ts.map +1 -0
  59. package/dist/custom/files/object-exists.action.js +75 -0
  60. package/dist/custom/files/object-exists.action.js.map +1 -0
  61. package/dist/custom/integration/gamma-generate-presentation.action.d.ts +108 -0
  62. package/dist/custom/integration/gamma-generate-presentation.action.d.ts.map +1 -0
  63. package/dist/custom/integration/gamma-generate-presentation.action.js +315 -0
  64. package/dist/custom/integration/gamma-generate-presentation.action.js.map +1 -0
  65. package/dist/custom/web/perplexity-search.action.d.ts +98 -0
  66. package/dist/custom/web/perplexity-search.action.d.ts.map +1 -0
  67. package/dist/custom/web/perplexity-search.action.js +269 -0
  68. package/dist/custom/web/perplexity-search.action.js.map +1 -0
  69. package/dist/custom/web/web-page-content.action.d.ts +74 -27
  70. package/dist/custom/web/web-page-content.action.d.ts.map +1 -1
  71. package/dist/custom/web/web-page-content.action.js +458 -226
  72. package/dist/custom/web/web-page-content.action.js.map +1 -1
  73. package/dist/index.d.ts +3 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +32 -0
  76. package/dist/index.js.map +1 -1
  77. package/package.json +16 -10
@@ -0,0 +1,38 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileStorageAction } from "./base-file-storage.action";
3
+ /**
4
+ * Action for deleting a directory from a storage provider.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * await runAction({
9
+ * ActionName: 'Delete Storage Directory',
10
+ * Params: [{
11
+ * Name: 'StorageProvider',
12
+ * Value: 'Dropbox'
13
+ * }, {
14
+ * Name: 'DirectoryPath',
15
+ * Value: 'old-projects/'
16
+ * }, {
17
+ * Name: 'Recursive',
18
+ * Value: 'true'
19
+ * }]
20
+ * });
21
+ * ```
22
+ */
23
+ export declare class DeleteDirectoryAction extends BaseFileStorageAction {
24
+ /**
25
+ * Delete a directory
26
+ *
27
+ * @param params - The action parameters:
28
+ * - StorageProvider: Required - Name of the storage provider
29
+ * - DirectoryPath: Required - Path to the directory to delete
30
+ * - Recursive: Optional - Delete recursively (default: false)
31
+ *
32
+ * @returns Operation result with:
33
+ * - Success: Boolean indicating if the directory was deleted
34
+ */
35
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
36
+ }
37
+ export declare function LoadDeleteDirectoryAction(): void;
38
+ //# sourceMappingURL=delete-directory.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-directory.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/delete-directory.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,qBAAsB,SAAQ,qBAAqB;IAE5D;;;;;;;;;;OAUG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAsC1F;AACD,wBAAgB,yBAAyB,SAExC"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadDeleteDirectoryAction = exports.DeleteDirectoryAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const base_file_storage_action_1 = require("./base-file-storage.action");
13
+ /**
14
+ * Action for deleting a directory from a storage provider.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * await runAction({
19
+ * ActionName: 'Delete Storage Directory',
20
+ * Params: [{
21
+ * Name: 'StorageProvider',
22
+ * Value: 'Dropbox'
23
+ * }, {
24
+ * Name: 'DirectoryPath',
25
+ * Value: 'old-projects/'
26
+ * }, {
27
+ * Name: 'Recursive',
28
+ * Value: 'true'
29
+ * }]
30
+ * });
31
+ * ```
32
+ */
33
+ let DeleteDirectoryAction = class DeleteDirectoryAction extends base_file_storage_action_1.BaseFileStorageAction {
34
+ /**
35
+ * Delete a directory
36
+ *
37
+ * @param params - The action parameters:
38
+ * - StorageProvider: Required - Name of the storage provider
39
+ * - DirectoryPath: Required - Path to the directory to delete
40
+ * - Recursive: Optional - Delete recursively (default: false)
41
+ *
42
+ * @returns Operation result with:
43
+ * - Success: Boolean indicating if the directory was deleted
44
+ */
45
+ async InternalRunAction(params) {
46
+ try {
47
+ // Get and initialize storage driver
48
+ const { driver, error } = await this.getDriverFromParams(params);
49
+ if (error)
50
+ return error;
51
+ // Get required parameter
52
+ const directoryPath = this.getStringParam(params, 'directorypath');
53
+ if (!directoryPath) {
54
+ return this.createErrorResult("DirectoryPath parameter is required", "MISSING_DIRECTORYPATH");
55
+ }
56
+ // Get optional recursive parameter
57
+ const recursive = this.getBooleanParam(params, 'recursive', false);
58
+ // Execute the delete directory operation
59
+ const success = await driver.DeleteDirectory(directoryPath, recursive);
60
+ // Add output parameter
61
+ this.addOutputParam(params, 'Success', success);
62
+ return this.createSuccessResult({
63
+ operation: 'DeleteDirectory',
64
+ directoryPath,
65
+ recursive,
66
+ success
67
+ });
68
+ }
69
+ catch (error) {
70
+ return this.createErrorResult(`Delete directory operation failed: ${error instanceof Error ? error.message : String(error)}`, "OPERATION_FAILED");
71
+ }
72
+ }
73
+ };
74
+ exports.DeleteDirectoryAction = DeleteDirectoryAction;
75
+ exports.DeleteDirectoryAction = DeleteDirectoryAction = __decorate([
76
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "File Storage: Delete Directory")
77
+ ], DeleteDirectoryAction);
78
+ function LoadDeleteDirectoryAction() {
79
+ // Stub function to prevent tree shaking
80
+ }
81
+ exports.LoadDeleteDirectoryAction = LoadDeleteDirectoryAction;
82
+ //# sourceMappingURL=delete-directory.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-directory.action.js","sourceRoot":"","sources":["../../../src/custom/files/delete-directory.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,qDAAqD;AACrD,yEAAmE;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,gDAAqB;IAE5D;;;;;;;;;;OAUG;IACO,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,IAAI,CAAC;YACD,oCAAoC;YACpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAExB,yBAAyB;YACzB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,iBAAiB,CACzB,qCAAqC,EACrC,uBAAuB,CAC1B,CAAC;YACN,CAAC;YAED,mCAAmC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAEnE,yCAAyC;YACzC,MAAM,OAAO,GAAY,MAAM,MAAO,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAEjF,uBAAuB;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAEhD,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC5B,SAAS,EAAE,iBAAiB;gBAC5B,aAAa;gBACb,SAAS;gBACT,OAAO;aACV,CAAC,CAAC;QAEP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,iBAAiB,CACzB,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC9F,kBAAkB,CACrB,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AAnDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,sBAAa,EAAC,oBAAU,EAAE,gCAAgC,CAAC;GAC/C,qBAAqB,CAmDjC;AACD,SAAgB,yBAAyB;IACrC,wCAAwC;AAC5C,CAAC;AAFD,8DAEC"}
@@ -0,0 +1,34 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileStorageAction } from "./base-file-storage.action";
3
+ /**
4
+ * Action for deleting a file object from a storage provider.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * await runAction({
9
+ * ActionName: 'Delete Storage Object',
10
+ * Params: [{
11
+ * Name: 'StorageProvider',
12
+ * Value: 'SharePoint Storage'
13
+ * }, {
14
+ * Name: 'ObjectName',
15
+ * Value: 'old-files/deprecated.doc'
16
+ * }]
17
+ * });
18
+ * ```
19
+ */
20
+ export declare class DeleteObjectAction extends BaseFileStorageAction {
21
+ /**
22
+ * Delete a file object
23
+ *
24
+ * @param params - The action parameters:
25
+ * - StorageProvider: Required - Name of the storage provider
26
+ * - ObjectName: Required - Name/path of the object to delete
27
+ *
28
+ * @returns Operation result with:
29
+ * - Success: Boolean indicating if the delete succeeded
30
+ */
31
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
32
+ }
33
+ export declare function LoadDeleteObjectAction(): void;
34
+ //# sourceMappingURL=delete-object.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-object.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/delete-object.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,kBAAmB,SAAQ,qBAAqB;IAEzD;;;;;;;;;OASG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkC1F;AACD,wBAAgB,sBAAsB,SAErC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadDeleteObjectAction = exports.DeleteObjectAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const base_file_storage_action_1 = require("./base-file-storage.action");
13
+ /**
14
+ * Action for deleting a file object from a storage provider.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * await runAction({
19
+ * ActionName: 'Delete Storage Object',
20
+ * Params: [{
21
+ * Name: 'StorageProvider',
22
+ * Value: 'SharePoint Storage'
23
+ * }, {
24
+ * Name: 'ObjectName',
25
+ * Value: 'old-files/deprecated.doc'
26
+ * }]
27
+ * });
28
+ * ```
29
+ */
30
+ let DeleteObjectAction = class DeleteObjectAction extends base_file_storage_action_1.BaseFileStorageAction {
31
+ /**
32
+ * Delete a file object
33
+ *
34
+ * @param params - The action parameters:
35
+ * - StorageProvider: Required - Name of the storage provider
36
+ * - ObjectName: Required - Name/path of the object to delete
37
+ *
38
+ * @returns Operation result with:
39
+ * - Success: Boolean indicating if the delete succeeded
40
+ */
41
+ async InternalRunAction(params) {
42
+ try {
43
+ // Get and initialize storage driver
44
+ const { driver, error } = await this.getDriverFromParams(params);
45
+ if (error)
46
+ return error;
47
+ // Get required parameter
48
+ const objectName = this.getStringParam(params, 'objectname');
49
+ if (!objectName) {
50
+ return this.createErrorResult("ObjectName parameter is required", "MISSING_OBJECTNAME");
51
+ }
52
+ // Execute the delete operation
53
+ const success = await driver.DeleteObject(objectName);
54
+ // Add output parameter
55
+ this.addOutputParam(params, 'Success', success);
56
+ return this.createSuccessResult({
57
+ operation: 'DeleteObject',
58
+ objectName,
59
+ success
60
+ });
61
+ }
62
+ catch (error) {
63
+ return this.createErrorResult(`Delete object operation failed: ${error instanceof Error ? error.message : String(error)}`, "OPERATION_FAILED");
64
+ }
65
+ }
66
+ };
67
+ exports.DeleteObjectAction = DeleteObjectAction;
68
+ exports.DeleteObjectAction = DeleteObjectAction = __decorate([
69
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "File Storage: Delete Object")
70
+ ], DeleteObjectAction);
71
+ function LoadDeleteObjectAction() {
72
+ // Stub function to prevent tree shaking
73
+ }
74
+ exports.LoadDeleteObjectAction = LoadDeleteObjectAction;
75
+ //# sourceMappingURL=delete-object.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-object.action.js","sourceRoot":"","sources":["../../../src/custom/files/delete-object.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,qDAAqD;AACrD,yEAAmE;AAEnE;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,gDAAqB;IAEzD;;;;;;;;;OASG;IACO,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,IAAI,CAAC;YACD,oCAAoC;YACpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAExB,yBAAyB;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,iBAAiB,CACzB,kCAAkC,EAClC,oBAAoB,CACvB,CAAC;YACN,CAAC;YAED,+BAA+B;YAC/B,MAAM,OAAO,GAAY,MAAM,MAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAEhE,uBAAuB;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAEhD,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC5B,SAAS,EAAE,cAAc;gBACzB,UAAU;gBACV,OAAO;aACV,CAAC,CAAC;QAEP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,iBAAiB,CACzB,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC3F,kBAAkB,CACrB,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AA9CY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,sBAAa,EAAC,oBAAU,EAAE,6BAA6B,CAAC;GAC5C,kBAAkB,CA8C9B;AACD,SAAgB,sBAAsB;IAClC,wCAAwC;AAC5C,CAAC;AAFD,wDAEC"}
@@ -0,0 +1,34 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileStorageAction } from "./base-file-storage.action";
3
+ /**
4
+ * Action for checking if a directory exists in a storage provider.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * await runAction({
9
+ * ActionName: 'Check Storage Directory Exists',
10
+ * Params: [{
11
+ * Name: 'StorageProvider',
12
+ * Value: 'Dropbox'
13
+ * }, {
14
+ * Name: 'DirectoryPath',
15
+ * Value: 'projects/2025/'
16
+ * }]
17
+ * });
18
+ * ```
19
+ */
20
+ export declare class DirectoryExistsAction extends BaseFileStorageAction {
21
+ /**
22
+ * Check if a directory exists
23
+ *
24
+ * @param params - The action parameters:
25
+ * - StorageProvider: Required - Name of the storage provider
26
+ * - DirectoryPath: Required - Path to the directory
27
+ *
28
+ * @returns Operation result with:
29
+ * - Exists: Boolean indicating if the directory exists
30
+ */
31
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
32
+ }
33
+ export declare function LoadDirectoryExistsAction(): void;
34
+ //# sourceMappingURL=directory-exists.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-exists.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/directory-exists.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,qBAAsB,SAAQ,qBAAqB;IAE5D;;;;;;;;;OASG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkC1F;AACD,wBAAgB,yBAAyB,SAExC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadDirectoryExistsAction = exports.DirectoryExistsAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const base_file_storage_action_1 = require("./base-file-storage.action");
13
+ /**
14
+ * Action for checking if a directory exists in a storage provider.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * await runAction({
19
+ * ActionName: 'Check Storage Directory Exists',
20
+ * Params: [{
21
+ * Name: 'StorageProvider',
22
+ * Value: 'Dropbox'
23
+ * }, {
24
+ * Name: 'DirectoryPath',
25
+ * Value: 'projects/2025/'
26
+ * }]
27
+ * });
28
+ * ```
29
+ */
30
+ let DirectoryExistsAction = class DirectoryExistsAction extends base_file_storage_action_1.BaseFileStorageAction {
31
+ /**
32
+ * Check if a directory exists
33
+ *
34
+ * @param params - The action parameters:
35
+ * - StorageProvider: Required - Name of the storage provider
36
+ * - DirectoryPath: Required - Path to the directory
37
+ *
38
+ * @returns Operation result with:
39
+ * - Exists: Boolean indicating if the directory exists
40
+ */
41
+ async InternalRunAction(params) {
42
+ try {
43
+ // Get and initialize storage driver
44
+ const { driver, error } = await this.getDriverFromParams(params);
45
+ if (error)
46
+ return error;
47
+ // Get required parameter
48
+ const directoryPath = this.getStringParam(params, 'directorypath');
49
+ if (!directoryPath) {
50
+ return this.createErrorResult("DirectoryPath parameter is required", "MISSING_DIRECTORYPATH");
51
+ }
52
+ // Execute the directory exists operation
53
+ const exists = await driver.DirectoryExists(directoryPath);
54
+ // Add output parameter
55
+ this.addOutputParam(params, 'Exists', exists);
56
+ return this.createSuccessResult({
57
+ operation: 'DirectoryExists',
58
+ directoryPath,
59
+ exists
60
+ });
61
+ }
62
+ catch (error) {
63
+ return this.createErrorResult(`Directory exists check failed: ${error instanceof Error ? error.message : String(error)}`, "OPERATION_FAILED");
64
+ }
65
+ }
66
+ };
67
+ exports.DirectoryExistsAction = DirectoryExistsAction;
68
+ exports.DirectoryExistsAction = DirectoryExistsAction = __decorate([
69
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "File Storage: Check Directory Exists")
70
+ ], DirectoryExistsAction);
71
+ function LoadDirectoryExistsAction() {
72
+ // Stub function to prevent tree shaking
73
+ }
74
+ exports.LoadDirectoryExistsAction = LoadDirectoryExistsAction;
75
+ //# sourceMappingURL=directory-exists.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-exists.action.js","sourceRoot":"","sources":["../../../src/custom/files/directory-exists.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,qDAAqD;AACrD,yEAAmE;AAEnE;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,gDAAqB;IAE5D;;;;;;;;;OASG;IACO,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,IAAI,CAAC;YACD,oCAAoC;YACpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAExB,yBAAyB;YACzB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,iBAAiB,CACzB,qCAAqC,EACrC,uBAAuB,CAC1B,CAAC;YACN,CAAC;YAED,yCAAyC;YACzC,MAAM,MAAM,GAAY,MAAM,MAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAErE,uBAAuB;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE9C,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC5B,SAAS,EAAE,iBAAiB;gBAC5B,aAAa;gBACb,MAAM;aACT,CAAC,CAAC;QAEP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,iBAAiB,CACzB,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC1F,kBAAkB,CACrB,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AA9CY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,sBAAa,EAAC,oBAAU,EAAE,sCAAsC,CAAC;GACrD,qBAAqB,CA8CjC;AACD,SAAgB,yBAAyB;IACrC,wCAAwC;AAC5C,CAAC;AAFD,8DAEC"}
@@ -0,0 +1,34 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileStorageAction } from "./base-file-storage.action";
3
+ /**
4
+ * Action for generating a pre-authenticated download URL for a file.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * await runAction({
9
+ * ActionName: 'Get Storage Download URL',
10
+ * Params: [{
11
+ * Name: 'StorageProvider',
12
+ * Value: 'Azure Blob Storage'
13
+ * }, {
14
+ * Name: 'ObjectName',
15
+ * Value: 'documents/contract.pdf'
16
+ * }]
17
+ * });
18
+ * ```
19
+ */
20
+ export declare class GetDownloadUrlAction extends BaseFileStorageAction {
21
+ /**
22
+ * Generate a pre-authenticated download URL
23
+ *
24
+ * @param params - The action parameters:
25
+ * - StorageProvider: Required - Name of the storage provider
26
+ * - ObjectName: Required - Name/path of the object
27
+ *
28
+ * @returns Operation result with:
29
+ * - DownloadUrl: Pre-authenticated URL for downloading the file
30
+ */
31
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
32
+ }
33
+ export declare function LoadGetDownloadUrlAction(): void;
34
+ //# sourceMappingURL=get-download-url.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-download-url.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/get-download-url.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,oBAAqB,SAAQ,qBAAqB;IAE3D;;;;;;;;;OASG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkC1F;AACD,wBAAgB,wBAAwB,SAEvC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadGetDownloadUrlAction = exports.GetDownloadUrlAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const base_file_storage_action_1 = require("./base-file-storage.action");
13
+ /**
14
+ * Action for generating a pre-authenticated download URL for a file.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * await runAction({
19
+ * ActionName: 'Get Storage Download URL',
20
+ * Params: [{
21
+ * Name: 'StorageProvider',
22
+ * Value: 'Azure Blob Storage'
23
+ * }, {
24
+ * Name: 'ObjectName',
25
+ * Value: 'documents/contract.pdf'
26
+ * }]
27
+ * });
28
+ * ```
29
+ */
30
+ let GetDownloadUrlAction = class GetDownloadUrlAction extends base_file_storage_action_1.BaseFileStorageAction {
31
+ /**
32
+ * Generate a pre-authenticated download URL
33
+ *
34
+ * @param params - The action parameters:
35
+ * - StorageProvider: Required - Name of the storage provider
36
+ * - ObjectName: Required - Name/path of the object
37
+ *
38
+ * @returns Operation result with:
39
+ * - DownloadUrl: Pre-authenticated URL for downloading the file
40
+ */
41
+ async InternalRunAction(params) {
42
+ try {
43
+ // Get and initialize storage driver
44
+ const { driver, error } = await this.getDriverFromParams(params);
45
+ if (error)
46
+ return error;
47
+ // Get required parameter
48
+ const objectName = this.getStringParam(params, 'objectname');
49
+ if (!objectName) {
50
+ return this.createErrorResult("ObjectName parameter is required", "MISSING_OBJECTNAME");
51
+ }
52
+ // Execute the create download URL operation
53
+ const url = await driver.CreatePreAuthDownloadUrl(objectName);
54
+ // Add output parameter
55
+ this.addOutputParam(params, 'DownloadUrl', url);
56
+ return this.createSuccessResult({
57
+ operation: 'GetDownloadUrl',
58
+ objectName,
59
+ downloadUrl: url
60
+ });
61
+ }
62
+ catch (error) {
63
+ return this.createErrorResult(`Get download URL operation failed: ${error instanceof Error ? error.message : String(error)}`, "OPERATION_FAILED");
64
+ }
65
+ }
66
+ };
67
+ exports.GetDownloadUrlAction = GetDownloadUrlAction;
68
+ exports.GetDownloadUrlAction = GetDownloadUrlAction = __decorate([
69
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "File Storage: Get Download URL")
70
+ ], GetDownloadUrlAction);
71
+ function LoadGetDownloadUrlAction() {
72
+ // Stub function to prevent tree shaking
73
+ }
74
+ exports.LoadGetDownloadUrlAction = LoadGetDownloadUrlAction;
75
+ //# sourceMappingURL=get-download-url.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-download-url.action.js","sourceRoot":"","sources":["../../../src/custom/files/get-download-url.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,qDAAqD;AACrD,yEAAmE;AAEnE;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,gDAAqB;IAE3D;;;;;;;;;OASG;IACO,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,IAAI,CAAC;YACD,oCAAoC;YACpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAExB,yBAAyB;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,iBAAiB,CACzB,kCAAkC,EAClC,oBAAoB,CACvB,CAAC;YACN,CAAC;YAED,4CAA4C;YAC5C,MAAM,GAAG,GAAW,MAAM,MAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;YAEvE,uBAAuB;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YAEhD,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC5B,SAAS,EAAE,gBAAgB;gBAC3B,UAAU;gBACV,WAAW,EAAE,GAAG;aACnB,CAAC,CAAC;QAEP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,iBAAiB,CACzB,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC9F,kBAAkB,CACrB,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AA9CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAa,EAAC,oBAAU,EAAE,gCAAgC,CAAC;GAC/C,oBAAoB,CA8ChC;AACD,SAAgB,wBAAwB;IACpC,wCAAwC;AAC5C,CAAC;AAFD,4DAEC"}
@@ -0,0 +1,42 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseFileStorageAction } from "./base-file-storage.action";
3
+ /**
4
+ * Action for retrieving metadata about a file object in a storage provider.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * await runAction({
9
+ * ActionName: 'Get Storage Object Metadata',
10
+ * Params: [{
11
+ * Name: 'StorageProvider',
12
+ * Value: 'AWS S3 Storage'
13
+ * }, {
14
+ * Name: 'ObjectName',
15
+ * Value: 'reports/annual-report.pdf'
16
+ * }]
17
+ * });
18
+ * ```
19
+ */
20
+ export declare class GetMetadataAction extends BaseFileStorageAction {
21
+ /**
22
+ * Get metadata for a storage object
23
+ *
24
+ * @param params - The action parameters:
25
+ * - StorageProvider: Required - Name of the storage provider
26
+ * - ObjectName: Required - Name/path of the object
27
+ *
28
+ * @returns Operation result with metadata fields:
29
+ * - Name: File name
30
+ * - Path: Directory path
31
+ * - FullPath: Complete path
32
+ * - Size: File size in bytes
33
+ * - ContentType: MIME type
34
+ * - LastModified: Last modified timestamp
35
+ * - IsDirectory: Whether object is a directory
36
+ * - ETag: Entity tag (if available)
37
+ * - CustomMetadata: Custom metadata key-value pairs (if available)
38
+ */
39
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
40
+ }
41
+ export declare function LoadGetMetadataAction(): void;
42
+ //# sourceMappingURL=get-metadata.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-metadata.action.d.ts","sourceRoot":"","sources":["../../../src/custom/files/get-metadata.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAInF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,iBAAkB,SAAQ,qBAAqB;IAExD;;;;;;;;;;;;;;;;;OAiBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAgD1F;AAED,wBAAgB,qBAAqB,SAEpC"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadGetMetadataAction = exports.GetMetadataAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const base_file_storage_action_1 = require("./base-file-storage.action");
13
+ /**
14
+ * Action for retrieving metadata about a file object in a storage provider.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * await runAction({
19
+ * ActionName: 'Get Storage Object Metadata',
20
+ * Params: [{
21
+ * Name: 'StorageProvider',
22
+ * Value: 'AWS S3 Storage'
23
+ * }, {
24
+ * Name: 'ObjectName',
25
+ * Value: 'reports/annual-report.pdf'
26
+ * }]
27
+ * });
28
+ * ```
29
+ */
30
+ let GetMetadataAction = class GetMetadataAction extends base_file_storage_action_1.BaseFileStorageAction {
31
+ /**
32
+ * Get metadata for a storage object
33
+ *
34
+ * @param params - The action parameters:
35
+ * - StorageProvider: Required - Name of the storage provider
36
+ * - ObjectName: Required - Name/path of the object
37
+ *
38
+ * @returns Operation result with metadata fields:
39
+ * - Name: File name
40
+ * - Path: Directory path
41
+ * - FullPath: Complete path
42
+ * - Size: File size in bytes
43
+ * - ContentType: MIME type
44
+ * - LastModified: Last modified timestamp
45
+ * - IsDirectory: Whether object is a directory
46
+ * - ETag: Entity tag (if available)
47
+ * - CustomMetadata: Custom metadata key-value pairs (if available)
48
+ */
49
+ async InternalRunAction(params) {
50
+ try {
51
+ // Get and initialize storage driver
52
+ const { driver, error } = await this.getDriverFromParams(params);
53
+ if (error)
54
+ return error;
55
+ // Get required parameter
56
+ const objectName = this.getStringParam(params, 'objectname');
57
+ if (!objectName) {
58
+ return this.createErrorResult("ObjectName parameter is required", "MISSING_OBJECTNAME");
59
+ }
60
+ // Execute the get metadata operation
61
+ const metadata = await driver.GetObjectMetadata(objectName);
62
+ // Add output parameters
63
+ this.addOutputParam(params, 'Name', metadata.name);
64
+ this.addOutputParam(params, 'Path', metadata.path);
65
+ this.addOutputParam(params, 'FullPath', metadata.fullPath);
66
+ this.addOutputParam(params, 'Size', metadata.size);
67
+ this.addOutputParam(params, 'ContentType', metadata.contentType);
68
+ this.addOutputParam(params, 'LastModified', metadata.lastModified.toISOString());
69
+ this.addOutputParam(params, 'IsDirectory', metadata.isDirectory);
70
+ if (metadata.etag) {
71
+ this.addOutputParam(params, 'ETag', metadata.etag);
72
+ }
73
+ if (metadata.customMetadata) {
74
+ this.addOutputParam(params, 'CustomMetadata', metadata.customMetadata);
75
+ }
76
+ return this.createSuccessResult({
77
+ operation: 'GetMetadata',
78
+ objectName,
79
+ metadata
80
+ });
81
+ }
82
+ catch (error) {
83
+ return this.createErrorResult(`Get metadata operation failed: ${error instanceof Error ? error.message : String(error)}`, "OPERATION_FAILED");
84
+ }
85
+ }
86
+ };
87
+ exports.GetMetadataAction = GetMetadataAction;
88
+ exports.GetMetadataAction = GetMetadataAction = __decorate([
89
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "File Storage: Get Object Metadata")
90
+ ], GetMetadataAction);
91
+ function LoadGetMetadataAction() {
92
+ // Stub function to prevent tree shaking
93
+ }
94
+ exports.LoadGetMetadataAction = LoadGetMetadataAction;
95
+ //# sourceMappingURL=get-metadata.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-metadata.action.js","sourceRoot":"","sources":["../../../src/custom/files/get-metadata.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AAEvD,qDAAqD;AACrD,yEAAmE;AAEnE;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,gDAAqB;IAExD;;;;;;;;;;;;;;;;;OAiBG;IACO,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,IAAI,CAAC;YACD,oCAAoC;YACpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACjE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YAExB,yBAAyB;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,iBAAiB,CACzB,kCAAkC,EAClC,oBAAoB,CACvB,CAAC;YACN,CAAC;YAED,qCAAqC;YACrC,MAAM,QAAQ,GAA0B,MAAM,MAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAEpF,wBAAwB;YACxB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YAEjE,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC3E,CAAC;YAED,OAAO,IAAI,CAAC,mBAAmB,CAAC;gBAC5B,SAAS,EAAE,aAAa;gBACxB,UAAU;gBACV,QAAQ;aACX,CAAC,CAAC;QAEP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,iBAAiB,CACzB,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC1F,kBAAkB,CACrB,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AApEY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,sBAAa,EAAC,oBAAU,EAAE,mCAAmC,CAAC;GAClD,iBAAiB,CAoE7B;AAED,SAAgB,qBAAqB;IACjC,wCAAwC;AAC5C,CAAC;AAFD,sDAEC"}