@servicelabsco/nestjs-utility-services 3.0.1 → 3.0.2

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 (37) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/README.md +6 -0
  3. package/dist/platformUtility/interfaces/html.pdf.upload.options.interface.d.ts +3 -0
  4. package/dist/platformUtility/interfaces/html.pdf.upload.options.interface.js +3 -0
  5. package/dist/platformUtility/interfaces/html.pdf.upload.options.interface.js.map +1 -0
  6. package/dist/platformUtility/interfaces/index.d.ts +1 -0
  7. package/dist/platformUtility/interfaces/index.js +1 -0
  8. package/dist/platformUtility/interfaces/index.js.map +1 -1
  9. package/dist/platformUtility/services/pdf.service.d.ts +4 -3
  10. package/dist/platformUtility/services/pdf.service.js +10 -7
  11. package/dist/platformUtility/services/pdf.service.js.map +1 -1
  12. package/dist/system/es6.classes.d.ts +3 -2
  13. package/dist/system/es6.classes.js +2 -0
  14. package/dist/system/es6.classes.js.map +1 -1
  15. package/dist/system/libraries/business.rule.query.evaluator.d.ts +0 -1
  16. package/dist/system/libraries/business.rule.query.evaluator.js +4 -31
  17. package/dist/system/libraries/business.rule.query.evaluator.js.map +1 -1
  18. package/dist/system/libraries/code.evaluator.d.ts +0 -1
  19. package/dist/system/libraries/code.evaluator.js +4 -40
  20. package/dist/system/libraries/code.evaluator.js.map +1 -1
  21. package/dist/system/libraries/execute.code.fix.d.ts +0 -1
  22. package/dist/system/libraries/execute.code.fix.js +7 -38
  23. package/dist/system/libraries/execute.code.fix.js.map +1 -1
  24. package/dist/system/libraries/index.d.ts +1 -0
  25. package/dist/system/libraries/index.js +1 -0
  26. package/dist/system/libraries/index.js.map +1 -1
  27. package/dist/system/libraries/process.script.execution.d.ts +0 -1
  28. package/dist/system/libraries/process.script.execution.js +4 -40
  29. package/dist/system/libraries/process.script.execution.js.map +1 -1
  30. package/dist/system/libraries/sandboxed.script.executor.d.ts +5 -1
  31. package/dist/system/libraries/sandboxed.script.executor.js +45 -3
  32. package/dist/system/libraries/sandboxed.script.executor.js.map +1 -1
  33. package/dist/system/libraries/script.fn.helpers.d.ts +36 -0
  34. package/dist/system/libraries/script.fn.helpers.js +78 -0
  35. package/dist/system/libraries/script.fn.helpers.js.map +1 -0
  36. package/docs/upgrade-3.0-backward-compatibility.md +223 -0
  37. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -6,7 +6,9 @@ This is a **major** release. `2.0.15` was published from the `production` branch
6
6
  accumulated breaking changes that were sitting under an already-consumed patch version. Everything
7
7
  below lands at once.
8
8
 
9
- Read the **Action required** section before upgrading.
9
+ Read the **Action required** section before upgrading. For a breaker-by-breaker migration
10
+ runbook (env escape hatches, SSRF, scripts, sessions, migrations), see
11
+ **[docs/upgrade-3.0-backward-compatibility.md](docs/upgrade-3.0-backward-compatibility.md)**.
10
12
 
11
13
  ### Action required
12
14
 
@@ -65,8 +67,12 @@ exist. The barrels come from the out-of-repo `slnu` step, not `nest build`; run
65
67
  redirect hops. **Calls to internal hosts now fail** unless you pass `allowInternal: true` on the
66
68
  request options or source config. `getRawResponse` still never throws — a blocked URL returns
67
69
  `{ success: false }`.
68
- - `PdfService.uploadHtml` / `getHtmlUrl` return a **time-limited presigned URL** against a private
69
- object, not a permanent public one. Anything persisting that URL as a durable link will see it expire.
70
+ - `PdfService.uploadHtml` / `getHtmlUrl` default to **`public-read`** and a permanent object URL
71
+ (pre-3.0 behaviour). Pass `{ private: true }` for a private object + time-limited presigned URL
72
+ (`pdf.html.signed.url.ttl.seconds`). Object names remain high-entropy either way.
73
+ - Stored scripts may use legacy `fn.getService` / `fn.getEntity` / `fn.getJob` (and business-rule
74
+ `getServiceInstance` / `getEntityInstance`) again — they return **remote handles**, not host
75
+ objects. `fn.call*` / `fn.dispatchJob` remain available.
70
76
  - `ProcessSesMail` now **rejects** when SES fails. It previously resolved with the `Error` object,
71
77
  producing a mail log indistinguishable from a successful send. This aligns `ses` with the `smtp`
72
78
  and `sesRaw` gateways, which already rejected.
package/README.md CHANGED
@@ -33,6 +33,12 @@ Consuming apps must wire early SDK init plus `SentryReportingModule`. See
33
33
  **[docs/sentry-reporting.md](docs/sentry-reporting.md)** for the full integration
34
34
  checklist (`instrument.ts`, `AppModule`, env vars, workers).
35
35
 
36
+ ### Upgrading to 3.x
37
+
38
+ **[docs/upgrade-3.0-backward-compatibility.md](docs/upgrade-3.0-backward-compatibility.md)** —
39
+ breaker-by-breaker migration guide (internal auth, SSRF, PDF URLs, scripts, access checks,
40
+ sessions, SES, migrations) and which escape hatches exist.
41
+
36
42
  ## Installation
37
43
 
38
44
  ```bash
@@ -0,0 +1,3 @@
1
+ export interface HtmlPdfUploadOptionsInterface {
2
+ private?: boolean;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=html.pdf.upload.options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.pdf.upload.options.interface.js","sourceRoot":"","sources":["../../../src/platformUtility/interfaces/html.pdf.upload.options.interface.ts"],"names":[],"mappings":""}
@@ -11,4 +11,5 @@ export * from './html.pdf.convert.success.interface';
11
11
  export * from './html.pdf.margin.interface';
12
12
  export * from './html.pdf.options.interface';
13
13
  export * from './html.pdf.paper.format.interface';
14
+ export * from './html.pdf.upload.options.interface';
14
15
  export * from './split.pdf.page.interface';
@@ -27,5 +27,6 @@ __exportStar(require("./html.pdf.convert.success.interface"), exports);
27
27
  __exportStar(require("./html.pdf.margin.interface"), exports);
28
28
  __exportStar(require("./html.pdf.options.interface"), exports);
29
29
  __exportStar(require("./html.pdf.paper.format.interface"), exports);
30
+ __exportStar(require("./html.pdf.upload.options.interface"), exports);
30
31
  __exportStar(require("./split.pdf.page.interface"), exports);
31
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platformUtility/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wEAAsD;AAAA,0EAAwD;AAAA,qEAAmD;AAAA,0EAAwD;AAAA,yEAAuD;AAAA,mEAAiD;AAAA,mEAAiD;AAAA,uEAAqD;AAAA,sEAAoD;AAAA,uEAAqD;AAAA,8DAA4C;AAAA,+DAA6C;AAAA,oEAAkD;AAAA,6DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platformUtility/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wEAAsD;AAAA,0EAAwD;AAAA,qEAAmD;AAAA,0EAAwD;AAAA,yEAAuD;AAAA,mEAAiD;AAAA,mEAAiD;AAAA,uEAAqD;AAAA,sEAAoD;AAAA,uEAAqD;AAAA,8DAA4C;AAAA,+DAA6C;AAAA,oEAAkD;AAAA,sEAAoD;AAAA,6DAA0C"}
@@ -5,6 +5,7 @@ import { PropertyService } from '../../system/services/property.service';
5
5
  import { HtmlPdfConvertRequestInterface } from '../interfaces/html.pdf.convert.request.interface';
6
6
  import { HtmlPdfConvertSuccessInterface } from '../interfaces/html.pdf.convert.success.interface';
7
7
  import { HtmlPdfOptionsInterface } from '../interfaces/html.pdf.options.interface';
8
+ import { HtmlPdfUploadOptionsInterface } from '../interfaces/html.pdf.upload.options.interface';
8
9
  import { RemoteRequestService } from './remote.request.service';
9
10
  import { SqlService } from './sql.service';
10
11
  export declare class PdfService extends CommonService {
@@ -17,11 +18,11 @@ export declare class PdfService extends CommonService {
17
18
  private token;
18
19
  private apiUrl;
19
20
  constructor(propertyService: PropertyService, uploadService: UploadService, remoteRequestService: RemoteRequestService, sqlService: SqlService, storageService: StorageService);
20
- getUrl(template: string, data: any, path: string): Promise<string>;
21
- getHtmlUrl(template: string, data: any, path: string): Promise<string>;
21
+ getUrl(template: string, data: any, path: string, uploadOptions?: HtmlPdfUploadOptionsInterface): Promise<string>;
22
+ getHtmlUrl(template: string, data: any, path: string, uploadOptions?: HtmlPdfUploadOptionsInterface): Promise<string>;
22
23
  getPdfFromHtmlUrl(url: string, pdfOptions?: HtmlPdfOptionsInterface): Promise<string>;
23
24
  convert(request: HtmlPdfConvertRequestInterface): Promise<HtmlPdfConvertSuccessInterface>;
24
- uploadHtml(html: string, path: string, filename?: string): Promise<string>;
25
+ uploadHtml(html: string, path: string, filename?: string, uploadOptions?: HtmlPdfUploadOptionsInterface): Promise<string>;
25
26
  private buildObjectName;
26
27
  private getSignedUrlTtl;
27
28
  private resolveSourceUrl;
@@ -33,15 +33,15 @@ let PdfService = class PdfService extends common_service_1.CommonService {
33
33
  this.storageService = storageService;
34
34
  this.publicExposed = true;
35
35
  }
36
- async getUrl(template, data, path) {
37
- const htmlUrl = await this.getHtmlUrl(template, data, path);
36
+ async getUrl(template, data, path, uploadOptions) {
37
+ const htmlUrl = await this.getHtmlUrl(template, data, path, uploadOptions);
38
38
  return this.getPdfFromHtmlUrl(htmlUrl);
39
39
  }
40
- async getHtmlUrl(template, data, path) {
40
+ async getHtmlUrl(template, data, path, uploadOptions) {
41
41
  const scriptBody = await this.loadTemplateScript(template);
42
42
  const compiledData = platform_utility_1.PlatformUtility.compileHandlebar(scriptBody, data);
43
43
  const filename = this.buildObjectName(template);
44
- return this.uploadHtml(compiledData, path, filename);
44
+ return this.uploadHtml(compiledData, path, filename, uploadOptions);
45
45
  }
46
46
  async getPdfFromHtmlUrl(url, pdfOptions) {
47
47
  const result = await this.convert({ html_url: url, pdf_options: pdfOptions });
@@ -82,19 +82,22 @@ let PdfService = class PdfService extends common_service_1.CommonService {
82
82
  throw error;
83
83
  }
84
84
  }
85
- async uploadHtml(html, path, filename) {
85
+ async uploadHtml(html, path, filename, uploadOptions) {
86
86
  const bucket = await this.propertyService.get('aws.config.bucket');
87
87
  if (!bucket)
88
88
  throw new operation_exception_1.OperationException('aws.config.bucket not set');
89
89
  const name = filename ?? this.buildObjectName('document');
90
90
  const urlKey = `${path.replace(/\/$/, '')}/${name}`;
91
- await this.uploadService.uploadFile({
91
+ const isPrivate = uploadOptions?.private === true;
92
+ const url = await this.uploadService.uploadFile({
92
93
  Bucket: bucket,
93
94
  Key: urlKey,
94
95
  Body: html,
95
96
  ContentType: 'text/html',
96
- ACL: 'private',
97
+ ACL: isPrivate ? 'private' : 'public-read',
97
98
  });
99
+ if (!isPrivate)
100
+ return url;
98
101
  return this.storageService.getSignedDownloadUrl({ bucket, key: urlKey }, await this.getSignedUrlTtl());
99
102
  }
100
103
  buildObjectName(prefix) {
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../../src/platformUtility/services/pdf.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../../src/platformUtility/services/pdf.service.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,7 @@ import { ProcessMenuCreation } from './libraries/process.menu.creation';
139
139
  import { ProcessScriptExecution } from './libraries/process.script.execution';
140
140
  import { ReportBatchPaginator } from './libraries/report.batch.paginator';
141
141
  import { SandboxedScriptExecutor } from './libraries/sandboxed.script.executor';
142
+ import { ScriptFnHelpers } from './libraries/script.fn.helpers';
142
143
  import { SecurityRuleEvaluator } from './libraries/security.rule.evaluator';
143
144
  import { SyncDynamoTables } from './libraries/sync.dynamo.tables';
144
145
  import { MenuListModifier } from './modifiers/menu.list.modifier';
@@ -191,8 +192,8 @@ declare const es6Classes: {
191
192
  entities: (typeof LookupTypeEntity | typeof UserGroupRoleEntity | typeof UserGroupEntity | typeof UserGroupMemberEntity | typeof BusinessRuleRoleEntity | typeof BusinessRuleEntity | typeof ColumnDefinitionEntity | typeof ColumnEntity | typeof ModelEntity | typeof FormPreferenceEntity | typeof ModelColumnEntity | typeof RelationshipEntity | typeof ModelRelationshipEntity | typeof ModelRoleEntity | typeof FormColumnEntity | typeof SystemScriptEntity | typeof UiActionPermissionEntity | typeof UiActionEntity | typeof UiActionRoleEntity | typeof PrimaryAxisEntity | typeof ChartEntity | typeof ClientEntity | typeof ClientCredentialEntity | typeof CredentialIpEntity | typeof ClientScriptEntity | typeof CodeFixScriptEntity | typeof CodeFixLogEntity | typeof DocumentEntity | typeof CommentEntity | typeof DataLogEntity | typeof DynamoTableEntity | typeof EventDetailEntity | typeof EventQueueEntity | typeof MailLogEntity | typeof MailEventEntity | typeof MailRecipientEntity | typeof MailValidationEntity | typeof MaterialViewEntity | typeof MenuRoleEntity | typeof MenuEntity | typeof ModuleEntity | typeof ModuleMenuEntity | typeof PageDefinitionEntity | typeof ParentMenuEntity | typeof MobileValidationEntity | typeof OpenPropertyEntity | typeof RecurringQueryEntity | typeof ReportFilterEntity | typeof ReportEntity | typeof ReportRelationshipEntity | typeof ReportRoleEntity | typeof ReportColumnEntity | typeof ReportSheetEntity | typeof ScheduledEventEntity | typeof SecurityRuleEntity | typeof ServiceEntity | typeof SmsTemplateEntity | typeof SmsMessageEntity | typeof UserGroupPermissionEntity | typeof UserPreferenceEntity | typeof WhatsappTemplateEntity)[];
192
193
  interfaces: any[];
193
194
  jobs: (typeof ExecuteCodeFixJob | typeof SetScheduledEventJob | typeof ModelScannerJob | typeof ReportColumnSyncJob | typeof SyncAllCodeJob | typeof ClientCredentialJob | typeof ClientJob | typeof CodeFixLogJob | typeof SetCodefixScriptEventJob | typeof CodeFixScriptJob | typeof ColumnMapperJob | typeof CommentJob | typeof CredentialIpJob | typeof DataLogJob | typeof DocumentJob | typeof ExecutableScriptJob | typeof ExecuteMaterialViewJob | typeof ExecuteRecurringQueryJob | typeof MailEventJob | typeof MailRecipientJob | typeof MailValidationJob | typeof RefreshMaterialViewJob | typeof MaterialViewJob | typeof MobileValidationJob | typeof OrphanSweeperJob | typeof RefreshPropertyCacheJob | typeof PropertyJob | typeof SetRecurringQueryEventJob | typeof RecurringQueryJob | typeof RelationshipMapperJob | typeof ReportSheetJob | typeof ScheduledEventJob | typeof SetEventQueueJob | typeof SmsMessageJob | typeof SqsPollingJob | typeof UserGroupMemberJob | typeof UserGroupPermissionJob | typeof UserGroupRoleJob)[];
194
- libraries: (typeof FileTypeDetector | typeof CommonStorageService | typeof SandboxedScriptExecutor | typeof ExecuteCodeFix | typeof ModelSync | typeof SecurityRuleEvaluator | typeof ColumnManager | typeof BusinessRuleFilterValidator | typeof BusinessRuleQueryEvaluator | typeof ProcessMenuCreation | typeof MaterialViewFreshness | typeof CodeEvaluator | typeof CryptReEncryptProcessor | typeof GetReportQuery | typeof ReportBatchPaginator | typeof GenerateDownloadableReportFile | typeof ProcessScriptExecution | typeof SyncDynamoTables)[];
195
+ libraries: (typeof FileTypeDetector | typeof CommonStorageService | typeof SandboxedScriptExecutor | typeof SecurityRuleEvaluator | typeof ColumnManager | typeof ScriptFnHelpers | typeof ExecuteCodeFix | typeof ModelSync | typeof BusinessRuleFilterValidator | typeof BusinessRuleQueryEvaluator | typeof ProcessMenuCreation | typeof MaterialViewFreshness | typeof CodeEvaluator | typeof CryptReEncryptProcessor | typeof GetReportQuery | typeof ReportBatchPaginator | typeof GenerateDownloadableReportFile | typeof ProcessScriptExecution | typeof SyncDynamoTables)[];
195
196
  modifiers: (typeof MenuListModifier | typeof ModuleListModifier)[];
196
- services: (typeof PropertyService | typeof AwsS3Service | typeof CloudflareR2Service | typeof StorageService | typeof UploadService | typeof ScheduledEventService | typeof SecurityRuleService | typeof UiActionService | typeof ModelService | typeof BaseService | typeof EventDetailService | typeof ClientScriptService | typeof PreferenceService | typeof BusinessRuleService | typeof ListService | typeof FormService | typeof MenuService | typeof UserPreferenceService | typeof ReportService | typeof ClientCredentialService | typeof EventQueueService | typeof ColumnService | typeof DocumentService | typeof CommentService | typeof Es6JobsService | typeof ExecutableScriptService | typeof InternalServerConnectService | typeof MailValidationService | typeof MobileValidationService)[];
197
+ services: (typeof PropertyService | typeof AwsS3Service | typeof CloudflareR2Service | typeof StorageService | typeof UploadService | typeof SecurityRuleService | typeof UiActionService | typeof ModelService | typeof BaseService | typeof ScheduledEventService | typeof EventDetailService | typeof ClientScriptService | typeof PreferenceService | typeof BusinessRuleService | typeof ListService | typeof FormService | typeof MenuService | typeof UserPreferenceService | typeof ReportService | typeof ClientCredentialService | typeof EventQueueService | typeof ColumnService | typeof DocumentService | typeof CommentService | typeof Es6JobsService | typeof ExecutableScriptService | typeof InternalServerConnectService | typeof MailValidationService | typeof MobileValidationService)[];
197
198
  };
198
199
  export default es6Classes;
@@ -170,6 +170,7 @@ const process_menu_creation_1 = require("./libraries/process.menu.creation");
170
170
  const process_script_execution_1 = require("./libraries/process.script.execution");
171
171
  const report_batch_paginator_1 = require("./libraries/report.batch.paginator");
172
172
  const sandboxed_script_executor_1 = require("./libraries/sandboxed.script.executor");
173
+ const script_fn_helpers_1 = require("./libraries/script.fn.helpers");
173
174
  const security_rule_evaluator_1 = require("./libraries/security.rule.evaluator");
174
175
  const sync_dynamo_tables_1 = require("./libraries/sync.dynamo.tables");
175
176
  const menu_list_modifier_1 = require("./modifiers/menu.list.modifier");
@@ -382,6 +383,7 @@ const es6Classes = {
382
383
  process_script_execution_1.ProcessScriptExecution,
383
384
  report_batch_paginator_1.ReportBatchPaginator,
384
385
  sandboxed_script_executor_1.SandboxedScriptExecutor,
386
+ script_fn_helpers_1.ScriptFnHelpers,
385
387
  security_rule_evaluator_1.SecurityRuleEvaluator,
386
388
  sync_dynamo_tables_1.SyncDynamoTables,
387
389
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"es6.classes.js","sourceRoot":"","sources":["../../src/system/es6.classes.ts"],"names":[],"mappings":";;AAAA,qEAAiE;AACjE,yEAAoE;AACpE,qEAAgE;AAChE,mEAA+D;AAC/D,mEAA+D;AAC/D,mEAA+D;AAC/D,mEAA+D;AAC/D,+EAA2E;AAC3E,uEAAmE;AACnE,uEAAmE;AACnE,yFAAoF;AACpF,4DAAuD;AACvD,oEAA8D;AAC9D,wEAAmE;AACnE,8FAAwF;AACxF,wEAAmE;AACnE,oFAA6E;AAC7E,0FAAmF;AACnF,0EAAqE;AACrE,sFAAgF;AAChF,4EAAsE;AACtE,4EAAuE;AACvE,8FAAwF;AACxF,wFAAkF;AAClF,4DAAuD;AACvD,sEAAgE;AAChE,sEAAgE;AAChE,8EAAuE;AACvE,gFAA0E;AAC1E,wFAAkF;AAClF,oEAA+D;AAC/D,sFAAgF;AAChF,gGAAyF;AACzF,wEAAmE;AACnE,8EAAwE;AACxE,kGAA2F;AAC3F,kEAA6D;AAC7D,0FAAoF;AACpF,oFAA8E;AAC9E,kEAA4D;AAC5D,wEAAkE;AAClE,0FAAoF;AACpF,kFAA4E;AAC5E,oFAA8E;AAC9E,kFAA4E;AAC5E,sFAAgF;AAChF,0EAAqE;AACrE,0EAAqE;AACrE,oFAA8E;AAC9E,0DAAsD;AACtD,kFAA6E;AAC7E,4DAAwD;AACxD,0EAAqE;AACrE,wEAAkE;AAClE,8EAAwE;AACxE,kFAA6E;AAC7E,4DAAwD;AACxD,8DAA0D;AAC1D,0EAAqE;AACrE,gEAA2D;AAC3D,gEAA4D;AAC5D,wEAAmE;AACnE,4EAAuE;AACvE,wEAAmE;AACnE,sEAAiE;AACjE,kFAA6E;AAC7E,sEAAiE;AACjE,wDAAoD;AACpD,8EAAyE;AACzE,8EAAyE;AACzE,sEAAiE;AACjE,wEAAmE;AACnE,oEAA+D;AAC/D,gEAA2D;AAC3D,4EAAuE;AACvE,8EAAyE;AACzE,0EAAqE;AACrE,wDAAoD;AACpD,kEAA6D;AAC7D,kFAA6E;AAC7E,wEAAmE;AACnE,0DAAsD;AACtD,oFAA+E;AAC/E,oEAA+D;AAC/D,4DAAwD;AACxD,sEAAiE;AACjE,0EAAqE;AACrE,8EAAyE;AACzE,sEAAiE;AACjE,wEAAmE;AACnE,gEAA4D;AAC5D,8EAAyE;AACzE,wEAAoE;AACpE,0EAAqE;AACrE,4DAAwD;AACxD,0EAAqE;AACrE,wEAAmE;AACnE,sFAAiF;AACjF,sEAAiE;AACjE,wEAAmE;AACnE,8EAAyE;AACzE,4EAAuE;AACvE,0EAAqE;AACrE,8DAA0D;AAC1D,sEAAiE;AACjE,wEAAmE;AACnE,0EAAqE;AACrE,kEAA6D;AAC7D,wFAAkF;AAClF,4EAAsE;AACtE,oEAA+D;AAC/D,kFAA4E;AAC5E,0FAAoF;AACpF,8EAAwE;AACxE,8EAAyE;AACzE,kFAA6E;AAC7E,wEAAmE;AACnE,kDAA8C;AAC9C,8DAAwD;AACxD,oEAA8D;AAC9D,gEAA2D;AAC3D,oDAAgD;AAChD,gEAA2D;AAC3D,sDAAiD;AACjD,sDAAkD;AAClD,wEAAmE;AACnE,sEAAgE;AAChE,gFAA0E;AAC1E,oFAA8E;AAC9E,0DAAqD;AACrD,kEAA6D;AAC7D,oEAA+D;AAC/D,gEAA2D;AAC3D,wEAAmE;AACnE,gEAA2D;AAC3D,kEAA6D;AAC7D,sDAAkD;AAClD,oEAA+D;AAC/D,gFAA0E;AAC1E,kFAA4E;AAC5E,4EAAuE;AACvE,0EAAoE;AACpE,8DAAyD;AACzD,oEAA+D;AAC/D,sFAA+E;AAC/E,oEAA8D;AAC9D,wFAAiF;AACjF,4EAAsE;AACtE,4DAAuD;AACvD,4DAAuD;AACvD,gEAA0D;AAC1D,wEAAkE;AAClE,gFAA0E;AAC1E,oEAA8D;AAC9D,+FAAyF;AACzF,6FAAuF;AACvF,+DAA2D;AAC3D,+DAA2D;AAC3D,+EAA0E;AAC1E,uFAAiF;AACjF,mEAA8D;AAC9D,uEAAkE;AAClE,qGAA+F;AAC/F,mEAA8D;AAC9D,iFAA4E;AAC5E,uDAAmD;AACnD,6EAAwE;AACxE,mFAA8E;AAC9E,+EAA0E;AAC1E,qFAAgF;AAChF,iFAA4E;AAC5E,uEAAkE;AAClE,uEAAkE;AAClE,2EAAsE;AACtE,8DAAyD;AACzD,0DAAsD;AACtD,4EAAuE;AACvE,oFAA+E;AAC/E,4EAAuE;AACvE,4EAAuE;AACvE,8DAA0D;AAC1D,gEAA4D;AAC5D,kEAA8D;AAC9D,kEAA6D;AAC7D,0EAAqE;AACrE,wEAAmE;AACnE,oFAA+E;AAC/E,0DAAsD;AACtD,gGAA0F;AAC1F,0DAAsD;AACtD,gFAA2E;AAC3E,0DAAsD;AACtD,oFAA+E;AAC/E,4DAAwD;AACxD,sEAAkE;AAClE,kEAA8D;AAC9D,8DAA0D;AAC1D,gFAA2E;AAC3E,4EAAuE;AACvE,gEAA4D;AAC5D,oEAA+D;AAC/D,8DAA0D;AAC1D,gFAA2E;AAE3E,MAAM,UAAU,GAAG;IACf,SAAS,EAAE,CAAC,oCAAgB,EAAE,uCAAiB,EAAE,mCAAe,CAAC;IACjE,WAAW,EAAE;QACT,gCAAc;QACd,gCAAc;QACd,gCAAc;QACd,gCAAc;QACd,4CAAoB;QACpB,oCAAgB;QAChB,oCAAgB;QAChB,qDAAwB;KAC3B;IACD,IAAI,EAAE;QACF,+BAAa;QACb,sCAAgB;QAChB,2CAAmB;QACnB,gEAA6B;QAC7B,2CAAmB;QACnB,qDAAuB;QACvB,2DAA0B;QAC1B,6CAAoB;QACpB,wDAAyB;QACzB,8CAAoB;QACpB,+CAAqB;QACrB,gEAA6B;QAC7B,0DAA0B;QAC1B,+BAAa;QACb,wCAAiB;QACjB,wCAAiB;QACjB,+CAAoB;QACpB,kDAAsB;QACtB,0DAA0B;QAC1B,uCAAiB;QACjB,wDAAyB;QACzB,iEAA6B;QAC7B,2CAAmB;QACnB,gDAAqB;QACrB,mEAA8B;QAC9B,qCAAgB;QAChB,4DAA2B;QAC3B,sDAAwB;QACxB,oCAAe;QACf,0CAAkB;QAClB,4DAA2B;QAC3B,oDAAuB;QACvB,sDAAwB;QACxB,oDAAuB;QACvB,wDAAyB;QACzB,6CAAoB;KACvB;IACD,QAAQ,EAAE;QACN,yCAAkB;QAClB,kDAAsB;QACtB,0BAAW;QACX,iDAAsB;QACtB,4BAAY;QACZ,yCAAkB;QAClB,sCAAgB;QAChB,4CAAmB;QACnB,iDAAsB;QACtB,4BAAY;QACZ,8BAAa;QACb,yCAAkB;QAClB,+BAAa;QACb,gCAAc;QACd,uCAAiB;QACjB,2CAAmB;QACnB,uCAAiB;QACjB,qCAAgB;QAChB,iDAAsB;QACtB,qCAAgB;QAChB,wBAAU;QACV,6CAAoB;QACpB,6CAAoB;QACpB,qCAAgB;QAChB,uCAAiB;QACjB,mCAAe;QACf,+BAAa;QACb,2CAAmB;QACnB,6CAAoB;QACpB,yCAAkB;QAClB,wBAAU;QACV,iCAAc;QACd,iDAAsB;QACtB,uCAAiB;QACjB,0BAAW;QACX,mDAAuB;QACvB,mCAAe;QACf,4BAAY;QACZ,qCAAgB;QAChB,yCAAkB;QAClB,6CAAoB;QACpB,qCAAgB;QAChB,uCAAiB;QACjB,gCAAc;QACd,6CAAoB;QACpB,wCAAkB;QAClB,yCAAkB;QAClB,4BAAY;QACZ,yCAAkB;QAClB,uCAAiB;QACjB,qDAAwB;QACxB,qCAAgB;QAChB,uCAAiB;QACjB,6CAAoB;QACpB,2CAAmB;QACnB,yCAAkB;QAClB,8BAAa;QACb,qCAAgB;QAChB,uCAAiB;QACjB,yCAAkB;QAClB,iCAAc;QACd,sDAAwB;QACxB,0CAAkB;QAClB,mCAAe;QACf,gDAAqB;QACrB,wDAAyB;QACzB,4CAAmB;QACnB,6CAAoB;QACpB,iDAAsB;KACzB;IACD,UAAU,EAAE,EAAE;IACd,IAAI,EAAE;QACF,2CAAmB;QACnB,sBAAS;QACT,gCAAa;QACb,sCAAgB;QAChB,mCAAe;QACf,wBAAU;QACV,mCAAe;QACf,yBAAU;QACV,0BAAW;QACX,2CAAmB;QACnB,wCAAiB;QACjB,kDAAsB;QACtB,sDAAwB;QACxB,6BAAY;QACZ,qCAAgB;QAChB,uCAAiB;QACjB,mCAAe;QACf,2CAAmB;QACnB,mCAAe;QACf,qCAAgB;QAChB,0BAAW;QACX,uCAAiB;QACjB,kDAAsB;QACtB,oDAAuB;QACvB,+CAAqB;QACrB,4CAAmB;QACnB,iCAAc;QACd,uCAAiB;QACjB,uDAAwB;QACxB,sCAAgB;QAChB,yDAAyB;QACzB,8CAAoB;QACpB,+BAAa;QACb,+BAAa;QACb,kCAAc;QACd,0CAAkB;QAClB,kDAAsB;QACtB,sCAAgB;KACnB;IACD,SAAS,EAAE;QACP,4DAA2B;QAC3B,0DAA0B;QAC1B,8BAAa;QACb,8BAAa;QACb,6CAAoB;QACpB,oDAAuB;QACvB,iCAAc;QACd,qCAAgB;QAChB,kEAA8B;QAC9B,iCAAc;QACd,+CAAqB;QACrB,sBAAS;QACT,2CAAmB;QACnB,iDAAsB;QACtB,6CAAoB;QACpB,mDAAuB;QACvB,+CAAqB;QACrB,qCAAgB;KACnB;IACD,SAAS,EAAE,CAAC,qCAAgB,EAAE,yCAAkB,CAAC;IACjD,QAAQ,EAAE;QACN,6BAAY;QACZ,0BAAW;QACX,2CAAmB;QACnB,mDAAuB;QACvB,2CAAmB;QACnB,2CAAmB;QACnB,8BAAa;QACb,gCAAc;QACd,kCAAe;QACf,iCAAc;QACd,yCAAkB;QAClB,uCAAiB;QACjB,mDAAuB;QACvB,0BAAW;QACX,8DAA4B;QAC5B,0BAAW;QACX,+CAAqB;QACrB,0BAAW;QACX,mDAAuB;QACvB,4BAAY;QACZ,sCAAiB;QACjB,kCAAe;QACf,8BAAa;QACb,+CAAqB;QACrB,2CAAmB;QACnB,gCAAc;QACd,mCAAe;QACf,8BAAa;QACb,+CAAqB;KACxB;CACJ,CAAC;AAEF,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"es6.classes.js","sourceRoot":"","sources":["../../src/system/es6.classes.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,5 @@ export declare class BusinessRuleQueryEvaluator {
7
7
  constructor(rule: BusinessRuleEntity, commonService: BaseService);
8
8
  process(): Promise<string>;
9
9
  private evaluate;
10
- private buildHelpers;
11
10
  private getScript;
12
11
  }
@@ -35,10 +35,10 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.BusinessRuleQueryEvaluator = void 0;
37
37
  const Sentry = __importStar(require("@sentry/node"));
38
- const operation_exception_1 = require("../../common/exceptions/operation.exception");
39
38
  const auth_1 = require("../../common/libraries/auth");
40
39
  const system_script_entity_1 = require("../entities/system.script.entity");
41
40
  const sandboxed_script_executor_1 = require("./sandboxed.script.executor");
41
+ const script_fn_helpers_1 = require("./script.fn.helpers");
42
42
  class BusinessRuleQueryEvaluator {
43
43
  constructor(rule, commonService) {
44
44
  this.rule = rule;
@@ -58,9 +58,9 @@ class BusinessRuleQueryEvaluator {
58
58
  user: auth_1.Auth.user(),
59
59
  query: null,
60
60
  },
61
- bridge: {
62
- fn: this.buildHelpers(),
63
- },
61
+ bridge: (registry) => ({
62
+ fn: script_fn_helpers_1.ScriptFnHelpers.buildBusinessRuleFns(this.executor, registry, this.commonService),
63
+ }),
64
64
  });
65
65
  if (!result.ok) {
66
66
  Sentry.captureException(new Error(result.error), {
@@ -71,33 +71,6 @@ class BusinessRuleQueryEvaluator {
71
71
  }
72
72
  return result.context.query;
73
73
  }
74
- buildHelpers() {
75
- return {
76
- hasService: async (identifier) => !!(await this.commonService.getServiceInstance(identifier)),
77
- hasEntity: async (identifier) => !!(await this.commonService.getEntityInstance(identifier)),
78
- callService: async (identifier, method, ...args) => {
79
- const service = await this.commonService.getServiceInstance(identifier);
80
- if (!service)
81
- throw new operation_exception_1.OperationException(`unknown service "${identifier}"`);
82
- return this.executor.invokeMethod(service, method, args);
83
- },
84
- callEntity: async (identifier, method, ...args) => {
85
- const entity = await this.commonService.getEntityInstance(identifier);
86
- if (!entity)
87
- throw new operation_exception_1.OperationException(`unknown entity "${identifier}"`);
88
- return this.executor.invokeMethod(entity, method, args);
89
- },
90
- getServiceInstance: () => {
91
- throw new operation_exception_1.OperationException('fn.getServiceInstance was removed for sandbox safety — use fn.callService(identifier, method, ...args)');
92
- },
93
- getEntityInstance: () => {
94
- throw new operation_exception_1.OperationException('fn.getEntityInstance was removed for sandbox safety — use fn.callEntity(identifier, method, ...args)');
95
- },
96
- checkOrSetRecord: () => {
97
- throw new operation_exception_1.OperationException('fn.checkOrSetRecord is not callable from a business rule script');
98
- },
99
- };
100
- }
101
74
  async getScript(id) {
102
75
  if (!id)
103
76
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"business.rule.query.evaluator.js","sourceRoot":"","sources":["../../../src/system/libraries/business.rule.query.evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"business.rule.query.evaluator.js","sourceRoot":"","sources":["../../../src/system/libraries/business.rule.query.evaluator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuC;AACvC,sDAAmD;AACnD,2EAAsE;AAGtE,2EAAsE;AACtE,2DAAsD;AAQtD,MAAa,0BAA0B;IAQnC,YACqB,IAAwB,EACxB,aAA0B;QAD1B,SAAI,GAAJ,IAAI,CAAoB;QACxB,kBAAa,GAAb,aAAa,CAAa;QAT9B,aAAQ,GAAG,IAAI,mDAAuB,EAAE,CAAC;IAUvD,CAAC;IAMJ,KAAK,CAAC,OAAO;QACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAQO,KAAK,CAAC,QAAQ,CAAC,MAAc;QAUjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,MAAM,MAAM,EAAE;YAC3E,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE;gBACL,IAAI,EAAE,WAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,EAAE,IAAI;aACd;YACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACnB,EAAE,EAAE,mCAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC;aACxF,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAGb,MAAM,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC7C,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE,OAAO,EAAE,4BAA4B,EAAE;aAClD,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAQ,MAAM,CAAC,OAAe,CAAC,KAAK,CAAC;IACzC,CAAC;IAQO,KAAK,CAAC,SAAS,CAAC,EAAU;QAC9B,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,MAAM,MAAM,GAAG,MAAM,yCAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,OAAO,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;CACJ;AAhFD,gEAgFC"}
@@ -4,5 +4,4 @@ export declare class CodeEvaluator {
4
4
  data?: any;
5
5
  fn?: any;
6
6
  }): Promise<void>;
7
- private buildHelpers;
8
7
  }
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CodeEvaluator = void 0;
4
- const operation_exception_1 = require("../../common/exceptions/operation.exception");
5
- const platform_utility_1 = require("../../common/libraries/platform.utility");
6
4
  const sandboxed_script_executor_1 = require("./sandboxed.script.executor");
5
+ const script_fn_helpers_1 = require("./script.fn.helpers");
7
6
  class CodeEvaluator {
8
7
  constructor() {
9
8
  this.executor = new sandboxed_script_executor_1.SandboxedScriptExecutor();
@@ -12,10 +11,10 @@ class CodeEvaluator {
12
11
  const result = await this.executor.executeAsync(`(async () => {${script}})()`, {
13
12
  timeoutMs: 5_000,
14
13
  context: { data: context?.data },
15
- bridge: {
14
+ bridge: (registry) => ({
16
15
  ctx: context?.fn ?? {},
17
- fn: this.buildHelpers(),
18
- },
16
+ fn: script_fn_helpers_1.ScriptFnHelpers.buildPlatformFns(this.executor, registry),
17
+ }),
19
18
  });
20
19
  if (!result.ok) {
21
20
  global.console.error(`CodeEvaluator: script execution failed: ${result.error}`);
@@ -23,41 +22,6 @@ class CodeEvaluator {
23
22
  }
24
23
  this.executor.writeBack(context?.data, result.context.data);
25
24
  }
26
- buildHelpers() {
27
- return {
28
- hasEntity: (sourceType) => !!platform_utility_1.PlatformUtility.getEntity(sourceType),
29
- hasService: (hash) => !!platform_utility_1.PlatformUtility.getService(hash),
30
- hasJob: (hash) => !!platform_utility_1.PlatformUtility.getJob(hash),
31
- callEntity: (sourceType, method, ...args) => {
32
- const entity = platform_utility_1.PlatformUtility.getEntity(sourceType);
33
- if (!entity)
34
- throw new operation_exception_1.OperationException(`unknown entity "${sourceType}"`);
35
- return this.executor.invokeMethod(entity, method, args);
36
- },
37
- callService: (hash, method, ...args) => {
38
- const service = platform_utility_1.PlatformUtility.getService(hash);
39
- if (!service)
40
- throw new operation_exception_1.OperationException(`unknown service "${hash}"`);
41
- return this.executor.invokeMethod(service, method, args);
42
- },
43
- dispatchJob: async (sourceType, data, delay = 0) => {
44
- const job = platform_utility_1.PlatformUtility.getJob(sourceType);
45
- if (!job)
46
- return;
47
- const dispatched = await job.dispatch(data, { delay });
48
- return dispatched?.id ?? null;
49
- },
50
- getEntity: () => {
51
- throw new operation_exception_1.OperationException('fn.getEntity was removed for sandbox safety — use fn.callEntity(sourceType, method, ...args)');
52
- },
53
- getService: () => {
54
- throw new operation_exception_1.OperationException('fn.getService was removed for sandbox safety — use fn.callService(hash, method, ...args)');
55
- },
56
- getJob: () => {
57
- throw new operation_exception_1.OperationException('fn.getJob was removed for sandbox safety — use fn.hasJob(hash) / fn.dispatchJob(hash, data, delay)');
58
- },
59
- };
60
- }
61
25
  }
62
26
  exports.CodeEvaluator = CodeEvaluator;
63
27
  //# sourceMappingURL=code.evaluator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code.evaluator.js","sourceRoot":"","sources":["../../../src/system/libraries/code.evaluator.ts"],"names":[],"mappings":";;;AAAA,qFAAiF;AACjF,8EAA0E;AAC1E,2EAAsE;AA4BtE,MAAa,aAAa;IAA1B;QACqB,aAAQ,GAAG,IAAI,mDAAuB,EAAE,CAAC;IA0E9D,CAAC;IAlEG,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAiC;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,MAAM,MAAM,EAAE;YAC3E,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;YAChC,MAAM,EAAE;gBACJ,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE;gBACtB,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE;aAC1B;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAChF,OAAO;QACX,CAAC;QAID,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAG,MAAM,CAAC,OAAe,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAUO,YAAY;QAChB,OAAO;YACH,SAAS,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAe,CAAC,SAAS,CAAC,UAAU,CAAC;YAC1E,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YAChE,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAC,kCAAe,CAAC,MAAM,CAAC,IAAI,CAAC;YACxD,UAAU,EAAE,CAAC,UAAkB,EAAE,MAAc,EAAE,GAAG,IAAW,EAAE,EAAE;gBAC/D,MAAM,MAAM,GAAG,kCAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,wCAAkB,CAAC,mBAAmB,UAAU,GAAG,CAAC,CAAC;gBAE5E,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;YACD,WAAW,EAAE,CAAC,IAAY,EAAE,MAAc,EAAE,GAAG,IAAW,EAAE,EAAE;gBAC1D,MAAM,OAAO,GAAG,kCAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,wCAAkB,CAAC,oBAAoB,IAAI,GAAG,CAAC,CAAC;gBAExE,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;YACD,WAAW,EAAE,KAAK,EAAE,UAAkB,EAAE,IAAS,EAAE,QAAgB,CAAC,EAAE,EAAE;gBACpE,MAAM,GAAG,GAAG,kCAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG;oBAAE,OAAO;gBAIjB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEvD,OAAO,UAAU,EAAE,EAAE,IAAI,IAAI,CAAC;YAClC,CAAC;YACD,SAAS,EAAE,GAAG,EAAE;gBACZ,MAAM,IAAI,wCAAkB,CAAC,8FAA8F,CAAC,CAAC;YACjI,CAAC;YACD,UAAU,EAAE,GAAG,EAAE;gBACb,MAAM,IAAI,wCAAkB,CAAC,0FAA0F,CAAC,CAAC;YAC7H,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACT,MAAM,IAAI,wCAAkB,CAAC,oGAAoG,CAAC,CAAC;YACvI,CAAC;SACJ,CAAC;IACN,CAAC;CACJ;AA3ED,sCA2EC"}
1
+ {"version":3,"file":"code.evaluator.js","sourceRoot":"","sources":["../../../src/system/libraries/code.evaluator.ts"],"names":[],"mappings":";;;AAEA,2EAAsE;AACtE,2DAAsD;AAmBtD,MAAa,aAAa;IAA1B;QACqB,aAAQ,GAAG,IAAI,mDAAuB,EAAE,CAAC;IAyB9D,CAAC;IAjBG,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAiC;QAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,MAAM,MAAM,EAAE;YAC3E,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;YAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACnB,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE;gBACtB,EAAE,EAAE,mCAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAChE,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAChF,OAAO;QACX,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAG,MAAM,CAAC,OAAe,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;CACJ;AA1BD,sCA0BC"}
@@ -6,7 +6,6 @@ export declare class ExecuteCodeFix {
6
6
  constructor(sqlService: SqlService);
7
7
  process(identifier: string, context: any): Promise<any>;
8
8
  private execute;
9
- private buildHelpers;
10
9
  private init;
11
10
  private close;
12
11
  }
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExecuteCodeFix = void 0;
4
- const operation_exception_1 = require("../../common/exceptions/operation.exception");
5
- const platform_utility_1 = require("../../common/libraries/platform.utility");
6
4
  const code_fix_log_entity_1 = require("../entities/code.fix.log.entity");
7
5
  const code_fix_script_entity_1 = require("../entities/code.fix.script.entity");
8
6
  const sandboxed_script_executor_1 = require("./sandboxed.script.executor");
7
+ const script_fn_helpers_1 = require("./script.fn.helpers");
9
8
  class ExecuteCodeFix {
10
9
  constructor(sqlService) {
11
10
  this.sqlService = sqlService;
@@ -25,9 +24,12 @@ class ExecuteCodeFix {
25
24
  data: context?.data,
26
25
  logContext: {},
27
26
  },
28
- bridge: {
29
- fn: this.buildHelpers(),
30
- },
27
+ bridge: (registry) => ({
28
+ fn: {
29
+ ...script_fn_helpers_1.ScriptFnHelpers.buildPlatformFns(this.executor, registry),
30
+ callSql: (method, ...args) => this.executor.invokeMethod(this.sqlService, method, args),
31
+ },
32
+ }),
31
33
  });
32
34
  if (!result.ok) {
33
35
  global.console.error(`ExecuteCodeFix: script execution failed: ${result.error}`);
@@ -38,39 +40,6 @@ class ExecuteCodeFix {
38
40
  const logContext = result.context?.logContext ?? {};
39
41
  return this.close(logContext);
40
42
  }
41
- buildHelpers() {
42
- return {
43
- hasEntity: (sourceType) => !!platform_utility_1.PlatformUtility.getEntity(sourceType),
44
- hasService: (hash) => !!platform_utility_1.PlatformUtility.getService(hash),
45
- hasJob: (hash) => !!platform_utility_1.PlatformUtility.getJob(hash),
46
- callEntity: (sourceType, method, ...args) => {
47
- const entity = platform_utility_1.PlatformUtility.getEntity(sourceType);
48
- if (!entity)
49
- throw new operation_exception_1.OperationException(`unknown entity "${sourceType}"`);
50
- return this.executor.invokeMethod(entity, method, args);
51
- },
52
- callService: (hash, method, ...args) => {
53
- const service = platform_utility_1.PlatformUtility.getService(hash);
54
- if (!service)
55
- throw new operation_exception_1.OperationException(`unknown service "${hash}"`);
56
- return this.executor.invokeMethod(service, method, args);
57
- },
58
- callSql: (method, ...args) => this.executor.invokeMethod(this.sqlService, method, args),
59
- dispatchJob: async (sourceType, data, delay = 0) => {
60
- const job = platform_utility_1.PlatformUtility.getJob(sourceType);
61
- if (!job)
62
- return null;
63
- const dispatched = await job.dispatch(data, { delay });
64
- return dispatched?.id ?? null;
65
- },
66
- getEntity: () => {
67
- throw new operation_exception_1.OperationException('fn.getEntity was removed for sandbox safety — use fn.callEntity(sourceType, method, ...args)');
68
- },
69
- getService: () => {
70
- throw new operation_exception_1.OperationException('fn.getService was removed for sandbox safety — use fn.callService(hash, method, ...args)');
71
- },
72
- };
73
- }
74
43
  async init(script, data) {
75
44
  const log = code_fix_log_entity_1.CodeFixLogEntity.create({ script_id: script.id, data });
76
45
  log.start_time = new Date();
@@ -1 +1 @@
1
- {"version":3,"file":"execute.code.fix.js","sourceRoot":"","sources":["../../../src/system/libraries/execute.code.fix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.code.fix.js","sourceRoot":"","sources":["../../../src/system/libraries/execute.code.fix.ts"],"names":[],"mappings":";;;AACA,yEAAmE;AACnE,+EAAyE;AACzE,2EAAsE;AACtE,2DAAsD;AAgBtD,MAAa,cAAc;IAUvB,YAA+B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QANpC,aAAQ,GAAG,IAAI,mDAAuB,EAAE,CAAC;IAMF,CAAC;IAQzD,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAY;QAC1C,MAAM,MAAM,GAAG,MAAM,4CAAmB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnG,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IASO,KAAK,CAAC,OAAO,CAAC,MAA2B,EAAE,OAAY;QAO3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,MAAM,CAAC,MAAM,CAAC,MAAM,MAAM,EAAE;YACzF,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE;gBACL,IAAI,EAAE,OAAO,EAAE,IAAI;gBACnB,UAAU,EAAE,EAAE;aACjB;YACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACnB,EAAE,EAAE;oBACA,GAAG,mCAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBAC5D,OAAO,EAAE,CAAC,MAAc,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC;iBACzG;aACJ,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,4CAA4C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAIpB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAG,MAAM,CAAC,OAAe,EAAE,IAAI,CAAC,CAAC;QAEtE,MAAM,UAAU,GAAK,MAAM,CAAC,OAAe,EAAE,UAAwC,IAAI,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IASO,KAAK,CAAC,IAAI,CAAC,MAA2B,EAAE,IAAS;QACrD,MAAM,GAAG,GAAG,sCAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,GAAG,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAQO,KAAK,CAAC,KAAK,CAAC,OAAkC;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;CACJ;AAjGD,wCAiGC"}
@@ -14,5 +14,6 @@ export * from './process.menu.creation';
14
14
  export * from './process.script.execution';
15
15
  export * from './report.batch.paginator';
16
16
  export * from './sandboxed.script.executor';
17
+ export * from './script.fn.helpers';
17
18
  export * from './security.rule.evaluator';
18
19
  export * from './sync.dynamo.tables';
@@ -30,6 +30,7 @@ __exportStar(require("./process.menu.creation"), exports);
30
30
  __exportStar(require("./process.script.execution"), exports);
31
31
  __exportStar(require("./report.batch.paginator"), exports);
32
32
  __exportStar(require("./sandboxed.script.executor"), exports);
33
+ __exportStar(require("./script.fn.helpers"), exports);
33
34
  __exportStar(require("./security.rule.evaluator"), exports);
34
35
  __exportStar(require("./sync.dynamo.tables"), exports);
35
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/libraries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD;AAAA,kEAAgD;AAAA,mDAAiC;AAAA,mDAAiC;AAAA,2DAAyC;AAAA,+DAA6C;AAAA,qDAAmC;AAAA,uDAAqC;AAAA,sEAAoD;AAAA,qDAAmC;AAAA,4DAA0C;AAAA,+CAA6B;AAAA,0DAAwC;AAAA,6DAA2C;AAAA,2DAAyC;AAAA,8DAA4C;AAAA,4DAA0C;AAAA,uDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/system/libraries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD;AAAA,kEAAgD;AAAA,mDAAiC;AAAA,mDAAiC;AAAA,2DAAyC;AAAA,+DAA6C;AAAA,qDAAmC;AAAA,uDAAqC;AAAA,sEAAoD;AAAA,qDAAmC;AAAA,4DAA0C;AAAA,+CAA6B;AAAA,0DAAwC;AAAA,6DAA2C;AAAA,2DAAyC;AAAA,8DAA4C;AAAA,sDAAoC;AAAA,4DAA0C;AAAA,uDAAoC"}
@@ -2,5 +2,4 @@ export declare class ProcessScriptExecution {
2
2
  private readonly executor;
3
3
  process(script: string, context: any): Promise<unknown>;
4
4
  private execute;
5
- private buildHelpers;
6
5
  }
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProcessScriptExecution = void 0;
4
- const operation_exception_1 = require("../../common/exceptions/operation.exception");
5
- const platform_utility_1 = require("../../common/libraries/platform.utility");
6
4
  const sandboxed_script_executor_1 = require("./sandboxed.script.executor");
5
+ const script_fn_helpers_1 = require("./script.fn.helpers");
7
6
  class ProcessScriptExecution {
8
7
  constructor() {
9
8
  this.executor = new sandboxed_script_executor_1.SandboxedScriptExecutor();
@@ -15,10 +14,10 @@ class ProcessScriptExecution {
15
14
  const result = await this.executor.executeAsync(`(async () => {${script}})()`, {
16
15
  timeoutMs: 5_000,
17
16
  context: { data: context?.data },
18
- bridge: {
17
+ bridge: (registry) => ({
19
18
  ctxFn: context?.fn ?? {},
20
- fn: this.buildHelpers(),
21
- },
19
+ fn: script_fn_helpers_1.ScriptFnHelpers.buildPlatformFns(this.executor, registry),
20
+ }),
22
21
  });
23
22
  if (!result.ok) {
24
23
  global.console.error(`ProcessScriptExecution: script execution failed: ${result.error}`);
@@ -27,41 +26,6 @@ class ProcessScriptExecution {
27
26
  this.executor.writeBack(context?.data, result.context.data);
28
27
  return result.value;
29
28
  }
30
- buildHelpers() {
31
- return {
32
- hasEntity: (sourceType) => !!platform_utility_1.PlatformUtility.getEntity(sourceType),
33
- hasService: (hash) => !!platform_utility_1.PlatformUtility.getService(hash),
34
- hasJob: (hash) => !!platform_utility_1.PlatformUtility.getJob(hash),
35
- callEntity: (sourceType, method, ...args) => {
36
- const entity = platform_utility_1.PlatformUtility.getEntity(sourceType);
37
- if (!entity)
38
- throw new operation_exception_1.OperationException(`unknown entity "${sourceType}"`);
39
- return this.executor.invokeMethod(entity, method, args);
40
- },
41
- callService: (hash, method, ...args) => {
42
- const service = platform_utility_1.PlatformUtility.getService(hash);
43
- if (!service)
44
- throw new operation_exception_1.OperationException(`unknown service "${hash}"`);
45
- return this.executor.invokeMethod(service, method, args);
46
- },
47
- dispatchJob: async (sourceType, data, delay = 0) => {
48
- const job = platform_utility_1.PlatformUtility.getJob(sourceType);
49
- if (!job)
50
- return;
51
- const dispatched = await job.dispatch(data, { delay });
52
- return dispatched?.id ?? null;
53
- },
54
- getEntity: () => {
55
- throw new operation_exception_1.OperationException('fn.getEntity was removed for sandbox safety — use fn.callEntity(sourceType, method, ...args)');
56
- },
57
- getService: () => {
58
- throw new operation_exception_1.OperationException('fn.getService was removed for sandbox safety — use fn.callService(hash, method, ...args)');
59
- },
60
- getJob: () => {
61
- throw new operation_exception_1.OperationException('fn.getJob was removed for sandbox safety — use fn.hasJob(hash) / fn.dispatchJob(hash, data, delay)');
62
- },
63
- };
64
- }
65
29
  }
66
30
  exports.ProcessScriptExecution = ProcessScriptExecution;
67
31
  //# sourceMappingURL=process.script.execution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.script.execution.js","sourceRoot":"","sources":["../../../src/system/libraries/process.script.execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.script.execution.js","sourceRoot":"","sources":["../../../src/system/libraries/process.script.execution.ts"],"names":[],"mappings":";;;AACA,2EAAsE;AACtE,2DAAsD;AAWtD,MAAa,sBAAsB;IAAnC;QACqB,aAAQ,GAAG,IAAI,mDAAuB,EAAE,CAAC;IAsC9D,CAAC;IA9BG,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAY;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IASO,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,OAAY;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,iBAAiB,MAAM,MAAM,EAAE;YAC3E,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;YAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACnB,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE;gBACxB,EAAE,EAAE,mCAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAChE,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,oDAAoD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACzF,OAAO;QACX,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAG,MAAM,CAAC,OAAe,CAAC,IAAI,CAAC,CAAC;QAErE,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;CACJ;AAvCD,wDAuCC"}
@@ -1,7 +1,7 @@
1
1
  export interface SandboxOptionsInterface {
2
2
  timeoutMs?: number;
3
3
  context?: Record<string, unknown>;
4
- bridge?: Record<string, unknown>;
4
+ bridge?: Record<string, unknown> | ((registry: Map<string, (...args: any[]) => any>) => Record<string, unknown>);
5
5
  }
6
6
  export interface SandboxResultInterface<T = unknown> {
7
7
  ok: boolean;
@@ -17,6 +17,10 @@ export declare class SandboxedScriptExecutor {
17
17
  execute(script: string, options?: SandboxOptionsInterface): SandboxResultInterface;
18
18
  executeAsync(script: string, options?: SandboxOptionsInterface): Promise<SandboxResultInterface>;
19
19
  invokeMethod(target: any, method: string, args?: any[]): any;
20
+ buildRemoteHandle(registry: Map<string, (...args: any[]) => any>, pathPrefix: string, target: any): Record<string, {
21
+ __fn__: string;
22
+ }>;
23
+ listCallableMethods(target: any): string[];
20
24
  writeBack(target: any, source: any): void;
21
25
  private rejectHostCallables;
22
26
  private findHostCallable;
@@ -21,6 +21,23 @@ const SANDBOX_BOOTSTRAP = `
21
21
  return JSON.parse(json);
22
22
  }
23
23
 
24
+ function materialize(node) {
25
+ if (node === null || typeof node !== 'object') return node;
26
+
27
+ if (Array.isArray(node)) {
28
+ var list = [];
29
+ for (var m = 0; m < node.length; m++) list.push(materialize(node[m]));
30
+ return list;
31
+ }
32
+
33
+ var keys = Object.keys(node);
34
+ if (keys.length === 1 && keys[0] === '__fn__' && typeof node.__fn__ === 'string') return wrap(node.__fn__);
35
+
36
+ var built = {};
37
+ for (var n = 0; n < keys.length; n++) built[keys[n]] = materialize(node[keys[n]]);
38
+ return built;
39
+ }
40
+
24
41
  function wrap(id) {
25
42
  return function () {
26
43
  var payload;
@@ -42,7 +59,7 @@ const SANDBOX_BOOTSTRAP = `
42
59
  out.then(
43
60
  function (value) {
44
61
  try {
45
- resolve(decode(value));
62
+ resolve(materialize(decode(value)));
46
63
  } catch (err) {
47
64
  reject(new Error(reason(err)));
48
65
  }
@@ -54,7 +71,7 @@ const SANDBOX_BOOTSTRAP = `
54
71
  });
55
72
  }
56
73
 
57
- return decode(out);
74
+ return materialize(decode(out));
58
75
  };
59
76
  }
60
77
 
@@ -182,6 +199,30 @@ class SandboxedScriptExecutor {
182
199
  throw new operation_exception_1.OperationException(`sandbox bridge: "${method}" is not callable from a script`);
183
200
  return member.apply(target, Array.isArray(args) ? args : []);
184
201
  }
202
+ buildRemoteHandle(registry, pathPrefix, target) {
203
+ const out = {};
204
+ for (const method of this.listCallableMethods(target)) {
205
+ const id = `${pathPrefix}.${method}`;
206
+ registry.set(id, (...args) => this.invokeMethod(target, method, args));
207
+ out[method] = { __fn__: id };
208
+ }
209
+ return out;
210
+ }
211
+ listCallableMethods(target) {
212
+ const methods = new Set();
213
+ const builtins = [Object.prototype, Function.prototype, Array.prototype];
214
+ let node = target;
215
+ while (node && !builtins.includes(node)) {
216
+ for (const key of Object.getOwnPropertyNames(node)) {
217
+ if (key.startsWith('_') || SandboxedScriptExecutor.DENIED_MEMBERS.includes(key))
218
+ continue;
219
+ if (typeof node[key] === 'function')
220
+ methods.add(key);
221
+ }
222
+ node = Object.getPrototypeOf(node);
223
+ }
224
+ return [...methods];
225
+ }
185
226
  writeBack(target, source) {
186
227
  if (!target || typeof target !== 'object')
187
228
  return;
@@ -252,7 +293,8 @@ class SandboxedScriptExecutor {
252
293
  const timeoutMs = options.timeoutMs ?? 1000;
253
294
  const snapshot = this.plainContext(options);
254
295
  const registry = new Map();
255
- const bridge = options.bridge ?? {};
296
+ const bridgeSource = options.bridge ?? {};
297
+ const bridge = typeof bridgeSource === 'function' ? bridgeSource(registry) : bridgeSource;
256
298
  const transfer = JSON.stringify(snapshot);
257
299
  const shape = JSON.stringify(this.describeBridge(bridge, registry, 'b', 0, new WeakSet()) ?? {});
258
300
  const sandbox = {
@@ -1 +1 @@
1
- {"version":3,"file":"sandboxed.script.executor.js","sourceRoot":"","sources":["../../../src/system/libraries/sandboxed.script.executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandboxed.script.executor.js","sourceRoot":"","sources":["../../../src/system/libraries/sandboxed.script.executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { BaseService } from '../services/base.service';
2
+ import { SandboxedScriptExecutor } from './sandboxed.script.executor';
3
+ type BridgeRegistry = Map<string, (...args: any[]) => any>;
4
+ export declare class ScriptFnHelpers {
5
+ static buildPlatformFns(executor: SandboxedScriptExecutor, registry: BridgeRegistry, pathPrefix?: string): {
6
+ hasEntity: (sourceType: string) => boolean;
7
+ hasService: (hash: string) => boolean;
8
+ hasJob: (hash: string) => boolean;
9
+ callEntity: (sourceType: string, method: string, ...args: any[]) => any;
10
+ callService: (hash: string, method: string, ...args: any[]) => any;
11
+ dispatchJob: (sourceType: string, data: any, delay?: number) => Promise<any>;
12
+ getEntity: (sourceType: string) => Record<string, {
13
+ __fn__: string;
14
+ }>;
15
+ getService: (hash: string) => Record<string, {
16
+ __fn__: string;
17
+ }>;
18
+ getJob: (hash: string) => Record<string, {
19
+ __fn__: string;
20
+ }>;
21
+ };
22
+ static buildBusinessRuleFns(executor: SandboxedScriptExecutor, registry: BridgeRegistry, commonService: BaseService, pathPrefix?: string): {
23
+ hasService: (identifier: string) => Promise<boolean>;
24
+ hasEntity: (identifier: string) => Promise<boolean>;
25
+ callService: (identifier: string, method: string, ...args: any[]) => Promise<any>;
26
+ callEntity: (identifier: string, method: string, ...args: any[]) => Promise<any>;
27
+ getServiceInstance: (identifier: string) => Promise<Record<string, {
28
+ __fn__: string;
29
+ }>>;
30
+ getEntityInstance: (identifier: string) => Promise<Record<string, {
31
+ __fn__: string;
32
+ }>>;
33
+ checkOrSetRecord: () => never;
34
+ };
35
+ }
36
+ export {};
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScriptFnHelpers = void 0;
4
+ const operation_exception_1 = require("../../common/exceptions/operation.exception");
5
+ const platform_utility_1 = require("../../common/libraries/platform.utility");
6
+ class ScriptFnHelpers {
7
+ static buildPlatformFns(executor, registry, pathPrefix = 'b.fn') {
8
+ const remote = (label, target, name) => {
9
+ if (!target)
10
+ throw new operation_exception_1.OperationException(`unknown ${name}`);
11
+ return executor.buildRemoteHandle(registry, `${pathPrefix}.${label}`, target);
12
+ };
13
+ return {
14
+ hasEntity: (sourceType) => !!platform_utility_1.PlatformUtility.getEntity(sourceType),
15
+ hasService: (hash) => !!platform_utility_1.PlatformUtility.getService(hash),
16
+ hasJob: (hash) => !!platform_utility_1.PlatformUtility.getJob(hash),
17
+ callEntity: (sourceType, method, ...args) => {
18
+ const entity = platform_utility_1.PlatformUtility.getEntity(sourceType);
19
+ if (!entity)
20
+ throw new operation_exception_1.OperationException(`unknown entity "${sourceType}"`);
21
+ return executor.invokeMethod(entity, method, args);
22
+ },
23
+ callService: (hash, method, ...args) => {
24
+ const service = platform_utility_1.PlatformUtility.getService(hash);
25
+ if (!service)
26
+ throw new operation_exception_1.OperationException(`unknown service "${hash}"`);
27
+ return executor.invokeMethod(service, method, args);
28
+ },
29
+ dispatchJob: async (sourceType, data, delay = 0) => {
30
+ const job = platform_utility_1.PlatformUtility.getJob(sourceType);
31
+ if (!job)
32
+ return null;
33
+ const dispatched = await job.dispatch(data, { delay });
34
+ return dispatched?.id ?? null;
35
+ },
36
+ getEntity: (sourceType) => remote(`entity.${sourceType}`, platform_utility_1.PlatformUtility.getEntity(sourceType), `entity "${sourceType}"`),
37
+ getService: (hash) => remote(`service.${hash}`, platform_utility_1.PlatformUtility.getService(hash), `service "${hash}"`),
38
+ getJob: (hash) => remote(`job.${hash}`, platform_utility_1.PlatformUtility.getJob(hash), `job "${hash}"`),
39
+ };
40
+ }
41
+ static buildBusinessRuleFns(executor, registry, commonService, pathPrefix = 'b.fn') {
42
+ const resolveService = async (identifier) => {
43
+ const service = await commonService.getServiceInstance(identifier);
44
+ if (!service)
45
+ throw new operation_exception_1.OperationException(`unknown service "${identifier}"`);
46
+ return executor.buildRemoteHandle(registry, `${pathPrefix}.service.${identifier}`, service);
47
+ };
48
+ const resolveEntity = async (identifier) => {
49
+ const entity = await commonService.getEntityInstance(identifier);
50
+ if (!entity)
51
+ throw new operation_exception_1.OperationException(`unknown entity "${identifier}"`);
52
+ return executor.buildRemoteHandle(registry, `${pathPrefix}.entity.${identifier}`, entity);
53
+ };
54
+ return {
55
+ hasService: async (identifier) => !!(await commonService.getServiceInstance(identifier)),
56
+ hasEntity: async (identifier) => !!(await commonService.getEntityInstance(identifier)),
57
+ callService: async (identifier, method, ...args) => {
58
+ const service = await commonService.getServiceInstance(identifier);
59
+ if (!service)
60
+ throw new operation_exception_1.OperationException(`unknown service "${identifier}"`);
61
+ return executor.invokeMethod(service, method, args);
62
+ },
63
+ callEntity: async (identifier, method, ...args) => {
64
+ const entity = await commonService.getEntityInstance(identifier);
65
+ if (!entity)
66
+ throw new operation_exception_1.OperationException(`unknown entity "${identifier}"`);
67
+ return executor.invokeMethod(entity, method, args);
68
+ },
69
+ getServiceInstance: (identifier) => resolveService(identifier),
70
+ getEntityInstance: (identifier) => resolveEntity(identifier),
71
+ checkOrSetRecord: () => {
72
+ throw new operation_exception_1.OperationException('fn.checkOrSetRecord is not callable from a business rule script');
73
+ },
74
+ };
75
+ }
76
+ }
77
+ exports.ScriptFnHelpers = ScriptFnHelpers;
78
+ //# sourceMappingURL=script.fn.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.fn.helpers.js","sourceRoot":"","sources":["../../../src/system/libraries/script.fn.helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,223 @@
1
+ # Upgrading to 3.x — backward compatibility and migration
2
+
3
+ `@servicelabsco/nestjs-utility-services` **3.0.0** is a security and correctness major. Most
4
+ breaks are **intentional and not reversible via a global flag**. This guide maps each area that
5
+ typically breaks consuming Finnoto apps, what changed, how to migrate, and where a **temporary**
6
+ escape hatch exists.
7
+
8
+ Read this **before** bumping the package version or running pending migrations.
9
+
10
+ ---
11
+
12
+ ## Quick pre-flight checklist
13
+
14
+ | Step | Action |
15
+ | --- | --- |
16
+ | Runtime | Move API and workers to **Node 24** (`engines: ^24.11.0`). |
17
+ | Internal calls | Set `INTERNAL_SERVER_KEY` in env (see below). |
18
+ | DB | Archive `sys_event_logs` / `sys_system_logs` if needed; schedule jsonb + refresh-token migrations. |
19
+ | Integrations | Audit webhooks, email-template fetch hosts, PDF HTML URL storage, stored scripts. |
20
+ | Auth | Expect stricter role checks and live session revocation after re-login. |
21
+ | Mail | SES failures now fail jobs — monitor mail logs after deploy. |
22
+
23
+ ---
24
+
25
+ ## Breaker reference
26
+
27
+ ### 1. `INTERNAL_SERVER_KEY` required
28
+
29
+ | | |
30
+ | --- | --- |
31
+ | **Why it hits us** | `InternalMiddleware` guards `internal/*`. The DB property `internal.server.key` is **ignored** unless you opt in. Missing env → internal service-to-service calls fail. |
32
+ | **What changed** | Secret resolution: `INTERNAL_SERVER_KEY` env first; DB fallback only when `INTERNAL_SERVER_KEY_ALLOW_DB_FALLBACK=true`. Without either, `internal/*` returns an error. |
33
+ | **Migrate (preferred)** | Set `INTERNAL_SERVER_KEY` in the API (and any caller) secret store. Rotate off the admin-editable DB row. |
34
+ | **Temporary compat** | `INTERNAL_SERVER_KEY_ALLOW_DB_FALLBACK=true` restores legacy DB lookup. **Remove once env is set** — the DB row is mutable from the admin API. |
35
+
36
+ ```bash
37
+ # Production (preferred)
38
+ INTERNAL_SERVER_KEY=<long-random-secret>
39
+
40
+ # Transitional only
41
+ INTERNAL_SERVER_KEY_ALLOW_DB_FALLBACK=true
42
+ ```
43
+
44
+ **Files:** `src/auth/middlewares/internal.middleware.ts`, `src/app.module.ts` (`internal/*` routes).
45
+
46
+ ---
47
+
48
+ ### 2. SSRF guard on `RemoteRequestService`
49
+
50
+ | | |
51
+ | --- | --- |
52
+ | **Why it hits us** | Slack, Zoho, Amazon, FCM, webhooks, and email-template HTTP fetch go through `RemoteRequestService`. Public HTTPS still works. **Loopback, RFC1918, link-local, and cloud metadata IPs are blocked** unless explicitly allowed. |
53
+ | **What changed** | `assertSafeRequestUrl` on initial URL and redirect hops. `sendThroughAxios` throws `OperationException`. **`getRawResponse` never throws** — blocked URL → `{ success: false, data: { error: … } }` (easy to miss in logs). |
54
+ | **Silent failure paths** | Callers using `getRawResponse` without checking `success`. Watch **`email.template.host.server`** (and similar sys properties) and tenant webhooks aimed at private IPs. MCP loopback uses `fetch`, not this service. |
55
+ | **Migrate** | Point integrations at public URLs, **or** pass `allowInternal: true` on that specific request (options or `RemoteRequestConfigDto`). |
56
+ | **Temporary compat** | **No global disable.** Per-request `allowInternal: true` only — deliberate opt-in per integration. |
57
+
58
+ ```typescript
59
+ // Example: intentional call to an internal webhook on a private host
60
+ await remoteRequestService.getRawResponse(
61
+ { method: 'POST', url: 'http://10.0.0.5/hook', data: payload, allowInternal: true },
62
+ sourceConfig,
63
+ );
64
+
65
+ // Always check getRawResponse results
66
+ const res = await remoteRequestService.getRawResponse(options, source);
67
+ if (!res?.success) {
68
+ // was silently ignored before when URL was blocked
69
+ }
70
+ ```
71
+
72
+ **Files:** `src/platformUtility/services/remote.request.service.ts`, `src/platformUtility/dtos/remote.request.config.dto.ts`.
73
+
74
+ ---
75
+
76
+ ### 3. PDF HTML URLs (public by default, optional private)
77
+
78
+ | | |
79
+ | --- | --- |
80
+ | **Why it hits us** | If you opted into `{ private: true }` on `PdfService.getHtmlUrl` / `uploadHtml`, the object is **`ACL: private`** and the returned URL is a **presigned GET** that expires after TTL. Anything storing that URL as durable state breaks after TTL. |
81
+ | **What changed (3.0.0)** | 3.0.0 briefly defaulted to private + presigned. **Current default restores legacy behaviour:** `public-read` ACL and a **permanent** object URL (same as pre-3.0 slabs). High-entropy object names remain (U-S6). |
82
+ | **Migrate** | No change needed for typical callers — default matches old slabs. For sensitive documents, pass `{ private: true }` and store bucket + key, re-sign at read time. |
83
+ | **Temporary compat** | Default is already public. Private mode: `{ private: true }` on `uploadHtml` / `getHtmlUrl` / `getUrl`. TTL when private: sys property `pdf.html.signed.url.ttl.seconds` (**900s** default). |
84
+ | **Constructor** | Manual `new PdfService(...)` requires a 5th arg: `StorageService`. DI-wired apps are unaffected. |
85
+
86
+ ```typescript
87
+ // Default — permanent public URL (legacy)
88
+ await pdfService.getHtmlUrl('invoice', data, 'tmp/invoices');
89
+
90
+ // Sensitive — private object + presigned URL for the Lambda
91
+ await pdfService.getHtmlUrl('invoice', data, 'tmp/invoices', { private: true });
92
+ ```
93
+
94
+ **Files:** `src/platformUtility/services/pdf.service.ts`, `src/platformUtility/interfaces/html.pdf.upload.options.interface.ts`.
95
+
96
+ ---
97
+
98
+ ### 4. Stored scripts — `fn.getService` / `fn.getEntity` / `fn.getJob`
99
+
100
+ | | |
101
+ | --- | --- |
102
+ | **Why it hits us** | Code-fix scripts, report scripts, and business-rule eval sites that still call the old helpers **throw at runtime** (not at compile time). |
103
+ | **What changed** | Removed from sandbox: `fn.getEntity`, `fn.getService`, `fn.getJob`, `fn.getServiceInstance`, `fn.getEntityInstance`. Replacement API returns plain data only (no host object escape). |
104
+ | **Migrate** | |
105
+
106
+ | Old | New |
107
+ | --- | --- |
108
+ | `fn.getService('hash').method()` | `fn.callService('hash', 'method', ...args)` |
109
+ | `fn.getEntity('type').method()` | `fn.callEntity('type', 'method', ...args)` |
110
+ | `fn.getJob('hash').dispatch(data)` | `fn.dispatchJob('hash', data, delay?)` → returns job id |
111
+ | `fn.getServiceInstance(...)` | `fn.callService(...)` (business rules) |
112
+
113
+ | **Temporary compat** | Legacy `fn.getEntity` / `fn.getService` / `fn.getJob` (and business-rule `getServiceInstance` / `getEntityInstance`) are restored via **remote handles** — method calls work as before; host objects stay on the host. Prefer `fn.call*` for new scripts. |
114
+
115
+ **Files:** `src/system/libraries/code.evaluator.ts`, `process.script.execution.ts`, `business.rule.query.evaluator.ts`.
116
+
117
+ ---
118
+
119
+ ### 5. Auth fail-closed (`hasRoleIdentifier` and related)
120
+
121
+ | | |
122
+ | --- | --- |
123
+ | **Why it hits us** | Listing overrides, data access, approval delegation, and similar paths using `AccessService.hasRoleIdentifier` (and related helpers) **deny when role/permission arrays are missing**. Previously `undefined !== -1` accidentally **granted** access. |
124
+ | **What changed** | `has()` requires a real array containing the identifier. Non-admin `getUserObject()` omits role arrays — checks now correctly deny. `public` means **authenticated**, not anonymous. |
125
+ | **Migrate** | Assign explicit roles/permissions on users. Use `public` only where any logged-in user should pass. Audit custom controllers that assumed “no roles = allow”. |
126
+ | **Temporary compat** | **None** — privilege-escalation fix (FIN-246). |
127
+
128
+ **Files:** `src/auth/services/access.service.ts`.
129
+
130
+ ---
131
+
132
+ ### 6. Revoked sessions reject (logout works)
133
+
134
+ | | |
135
+ | --- | --- |
136
+ | **Why it hits us** | After logout or admin revoke, the access token now yields **`AccessException('This session has been revoked…')`** instead of continuing anonymously. |
137
+ | **What changed** | Login mints `session_identifier` in JWT + DB row. `JwtMiddleware` validates via `AuthService.validateSession()`. Refresh reuse/revoke → `AccessException`. |
138
+ | **Migrate** | Clients must treat 401/403 on revoked tokens as “force re-login”. No server-side toggle. |
139
+ | **Legacy tokens** | JWTs issued **before** upgrade without `session_identifier` cannot be revoked until the user re-logins. |
140
+ | **Temporary compat** | **None** — previous anonymous fall-through was the bug (FIN-245). |
141
+
142
+ **Files:** `src/auth/middlewares/jwt.middleware.ts`, `src/auth/services/auth.service.ts`.
143
+
144
+ ---
145
+
146
+ ### 7. SES send now rejects
147
+
148
+ | | |
149
+ | --- | --- |
150
+ | **Why it hits us** | Email jobs that depended on SES “succeeding” even when AWS rejected the send will **start failing for real**. Mail logs no longer get a fake success identifier. |
151
+ | **What changed** | `ProcessSesMail` propagates SDK errors (aligned with SMTP and SES Raw). Previously: `console.log(err); return err` — looked like success. |
152
+ | **Migrate** | Fix SES config (identity, sandbox, quotas). Handle rejection in job retry/alerts. |
153
+ | **Temporary compat** | **None** — correctness fix. |
154
+
155
+ **Files:** `src/platformUtility/libraries/process.ses.mail.ts`.
156
+
157
+ ---
158
+
159
+ ### 8. Database migrations
160
+
161
+ | | |
162
+ | --- | --- |
163
+ | **Why it hits us** | Pending NU migrations on deploy can drop data, lock hot tables, or fail on restricted Postgres roles. |
164
+ | **What changed** | |
165
+
166
+ | Migration | Effect |
167
+ | --- | --- |
168
+ | `1779685411636` / `1779685411637` | **Drop** `sys_event_logs`, `sys_system_logs` — data gone; `down()` recreates empty shells only. |
169
+ | `1780002352495` | **json → jsonb** on ~103 columns; `ACCESS EXCLUSIVE` locks; skips already-jsonb (re-runnable). |
170
+ | `1779807657061` | Refresh tokens: plaintext → hash; needs **`pgcrypto`** (or PG11+ `sha256()`). |
171
+
172
+ | **Migrate** | Archive log tables before migrate. Run jsonb in a **maintenance window**. Pre-create `CREATE EXTENSION IF NOT EXISTS pgcrypto` on locked-down DBs. |
173
+ | **Temporary compat** | `MIGRATION_LOCK_TIMEOUT` (default `5s`) — increase e.g. `30s` for lock acquisition only. **No skip flags** for drops or pgcrypto. |
174
+
175
+ ```bash
176
+ # Optional: jsonb migration lock wait
177
+ MIGRATION_LOCK_TIMEOUT=30s
178
+ ```
179
+
180
+ **Scripts:** `scripts/verify-jsonb-migration.ts`, `docs/migrations.md`.
181
+
182
+ ---
183
+
184
+ ## Escape hatches summary
185
+
186
+ | Area | Temporary escape | Remove when |
187
+ | --- | --- | --- |
188
+ | Internal auth | `INTERNAL_SERVER_KEY_ALLOW_DB_FALLBACK=true` | `INTERNAL_SERVER_KEY` set in env |
189
+ | SSRF | Per-request `allowInternal: true` | Integration uses public URL or approved internal route |
190
+ | PDF URLs | Default public-read; `{ private: true }` for presigned | Sensitive docs use private mode |
191
+ | Scripts | Legacy `fn.get*` restored via remote handles | New scripts can still use `fn.call*` |
192
+ | Access checks | — | Roles assigned explicitly |
193
+ | Sessions | — | Clients handle revoke as re-login |
194
+ | SES | — | SES config fixed |
195
+ | Migrations | `MIGRATION_LOCK_TIMEOUT` | Maintenance window complete |
196
+
197
+ ---
198
+
199
+ ## Other 3.0 breaks (see CHANGELOG)
200
+
201
+ - **Node 24** required.
202
+ - **`MAIL_ATTACHMENT_LOCAL_ROOT`** — local attachment reads restricted to this directory (default `os.tmpdir()`).
203
+ - **CORS** — boot requires `CORS_ORIGINS` or `CORS_ALLOW_ANY_ORIGIN=true` (`src/config/cors.config.ts`).
204
+ - **Sentry** — see [sentry-reporting.md](./sentry-reporting.md) for consumer wiring.
205
+ - **Removed types/services** — `LoggerService`, `EventLogEntity`, `CommonJob` logging helpers, etc. (full list in `CHANGELOG.md`).
206
+
207
+ ---
208
+
209
+ ## Suggested upgrade order
210
+
211
+ 1. Deploy **env** changes (`INTERNAL_SERVER_KEY`, CORS, Node 24) without code bump — validate internal routes.
212
+ 2. Run **DB archive + migrations** in maintenance window.
213
+ 3. Bump **package** to 3.x; deploy API then workers.
214
+ 4. Smoke-test: internal token, one webhook, one PDF flow, one script, logout, one SES send.
215
+ 5. Remove transitional flags (`INTERNAL_SERVER_KEY_ALLOW_DB_FALLBACK`, per-call `allowInternal` where no longer needed).
216
+
217
+ ---
218
+
219
+ ## Related docs
220
+
221
+ - [CHANGELOG.md](../CHANGELOG.md) — full breaking change list
222
+ - [sentry-reporting.md](./sentry-reporting.md) — Sentry integration for consuming apps
223
+ - [migrations.md](./migrations.md) — TypeORM migration workflow
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicelabsco/nestjs-utility-services",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "NestJS generic packages to support development",
5
5
  "author": "Hemant Kumar Sah <hemantanshu@gmail.com>",
6
6
  "license": "MIT",
@@ -11,7 +11,8 @@
11
11
  "README.md",
12
12
  "CHANGELOG.md",
13
13
  "LICENSE",
14
- "docs/sentry-reporting.md"
14
+ "docs/sentry-reporting.md",
15
+ "docs/upgrade-3.0-backward-compatibility.md"
15
16
  ],
16
17
  "types": "dist/index.d.ts",
17
18
  "scripts": {