@quadnix/octo 0.0.24 → 0.0.26

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 (61) hide show
  1. package/dist/app.type.d.ts +1 -0
  2. package/dist/decorators/anchor.decorator.d.ts +1 -1
  3. package/dist/decorators/anchor.decorator.js +1 -1
  4. package/dist/errors/transaction.error.js +2 -3
  5. package/dist/errors/transaction.error.js.map +1 -1
  6. package/dist/events/transaction.event.d.ts +19 -0
  7. package/dist/events/transaction.event.js +10 -0
  8. package/dist/events/transaction.event.js.map +1 -1
  9. package/dist/functions/diff/diff.d.ts +2 -1
  10. package/dist/functions/diff/diff.js +1 -0
  11. package/dist/functions/diff/diff.js.map +1 -1
  12. package/dist/functions/hook/resource-action.hook.d.ts +2 -2
  13. package/dist/functions/hook/resource-action.hook.js +2 -1
  14. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  15. package/dist/functions/node/node.abstract.d.ts +1 -1
  16. package/dist/functions/node/node.abstract.js +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/main.d.ts +3 -1
  21. package/dist/main.js +11 -1
  22. package/dist/main.js.map +1 -1
  23. package/dist/modules/module.container.js +5 -0
  24. package/dist/modules/module.container.js.map +1 -1
  25. package/dist/modules/test-module.container.d.ts +2 -0
  26. package/dist/modules/test-module.container.js +12 -5
  27. package/dist/modules/test-module.container.js.map +1 -1
  28. package/dist/resources/resource-action.interface.d.ts +2 -2
  29. package/dist/resources/resource-data.repository.d.ts +1 -0
  30. package/dist/resources/resource-data.repository.js +7 -0
  31. package/dist/resources/resource-data.repository.js.map +1 -1
  32. package/dist/resources/resource.abstract.d.ts +1 -0
  33. package/dist/resources/resource.abstract.js +8 -0
  34. package/dist/resources/resource.abstract.js.map +1 -1
  35. package/dist/services/capture/capture.service.d.ts +1 -0
  36. package/dist/services/capture/capture.service.js +3 -0
  37. package/dist/services/capture/capture.service.js.map +1 -1
  38. package/dist/services/event/event.service.js +1 -0
  39. package/dist/services/event/event.service.js.map +1 -1
  40. package/dist/services/input/input.service.js +1 -1
  41. package/dist/services/input/input.service.js.map +1 -1
  42. package/dist/services/state-management/local-encryption.state-provider.d.ts +20 -0
  43. package/dist/services/state-management/local-encryption.state-provider.js +88 -0
  44. package/dist/services/state-management/local-encryption.state-provider.js.map +1 -0
  45. package/dist/services/state-management/local.state-provider.d.ts +9 -0
  46. package/dist/services/state-management/local.state-provider.js +59 -0
  47. package/dist/services/state-management/local.state-provider.js.map +1 -1
  48. package/dist/services/state-management/state-management.service.d.ts +7 -0
  49. package/dist/services/state-management/state-management.service.js +15 -0
  50. package/dist/services/state-management/state-management.service.js.map +1 -1
  51. package/dist/services/state-management/state-provider.interface.d.ts +7 -0
  52. package/dist/services/state-management/test.state-provider.d.ts +8 -0
  53. package/dist/services/state-management/test.state-provider.js +41 -0
  54. package/dist/services/state-management/test.state-provider.js.map +1 -1
  55. package/dist/services/transaction/transaction.service.d.ts +2 -1
  56. package/dist/services/transaction/transaction.service.js +68 -11
  57. package/dist/services/transaction/transaction.service.js.map +1 -1
  58. package/dist/utilities/file/file.utility.d.ts +4 -0
  59. package/dist/utilities/file/file.utility.js +63 -0
  60. package/dist/utilities/file/file.utility.js.map +1 -0
  61. package/package.json +1 -1
@@ -7,11 +7,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { NodeType, } from '../../app.type.js';
10
+ import { NodeType, ValidationType, } from '../../app.type.js';
11
11
  import { EventSource } from '../../decorators/event-source.decorator.js';
12
12
  import { Factory } from '../../decorators/factory.decorator.js';
13
- import { InputNotFoundTransactionError, InputRegistrationError, ResourceActionExceptionTransactionError, ResourceActionTimeoutTransactionError, TransactionError, } from '../../errors/index.js';
14
- import { ModelActionRegistrationEvent, ModelActionTransactionEvent, ModelDiffsTransactionEvent, ModelTransactionTransactionEvent, ResourceActionCompletedTransactionEvent, ResourceActionInitiatedTransactionEvent, ResourceActionRegistrationEvent, ResourceActionSummaryTransactionEvent, ResourceDiffsTransactionEvent, ResourceTransactionTransactionEvent, } from '../../events/index.js';
13
+ import { InputNotFoundTransactionError, InputRegistrationError, ResourceActionExceptionTransactionError, ResourceActionTimeoutTransactionError, TransactionError, ValidationTransactionError, } from '../../errors/index.js';
14
+ import { ModelActionRegistrationEvent, ModelActionTransactionEvent, ModelDiffsTransactionEvent, ModelTransactionTransactionEvent, ResourceActionCompletedTransactionEvent, ResourceActionInformationTransactionEvent, ResourceActionInitiatedTransactionEvent, ResourceActionRegistrationEvent, ResourceActionSummaryTransactionEvent, ResourceDiffsTransactionEvent, ResourceTransactionTransactionEvent, } from '../../events/index.js';
15
15
  import { Container } from '../../functions/container/container.js';
16
16
  import { DiffMetadata } from '../../functions/diff/diff-metadata.js';
17
17
  import { DiffAction } from '../../functions/diff/diff.js';
@@ -142,8 +142,36 @@ export class TransactionService {
142
142
  }
143
143
  return transaction;
144
144
  }
145
+ applyResourcesDryRun(diffs, { enableResourceCapture = false } = {}) {
146
+ const captures = this.captureService.getAllCaptures();
147
+ const captureContexts = Object.keys(captures);
148
+ const missingCaptureContexts = [];
149
+ if (enableResourceCapture) {
150
+ for (const capturedContext of captureContexts) {
151
+ if (!diffs.some((d) => d.node.getContext() === capturedContext)) {
152
+ missingCaptureContexts.push(capturedContext);
153
+ }
154
+ }
155
+ }
156
+ if (missingCaptureContexts.length > 0) {
157
+ throw new TransactionError(`Provided capture contexts do not match any resource diffs! ${missingCaptureContexts.join(', ')}`);
158
+ }
159
+ for (const diff of diffs) {
160
+ const capture = enableResourceCapture && captureContexts.includes(diff.node.getContext())
161
+ ? this.captureService.getCapture(diff.node.getContext())
162
+ : undefined;
163
+ for (const a of diff.actions) {
164
+ this.eventService.emit(new ResourceActionInformationTransactionEvent(a.constructor.name, {
165
+ action: { name: a.constructor.name },
166
+ capture: a.mock ? capture : undefined,
167
+ diff,
168
+ }));
169
+ }
170
+ }
171
+ }
145
172
  async applyResources(diffs, { enableResourceCapture = false } = {}) {
146
173
  const transaction = [];
174
+ const validationErrors = [];
147
175
  let currentApplyOrder = 0;
148
176
  let processed = 0;
149
177
  while (processed < diffs.length) {
@@ -159,10 +187,10 @@ export class TransactionService {
159
187
  const diffToProcess = duplicateDiffs[0].diff;
160
188
  for (const a of diff.actions) {
161
189
  this.eventService.emit(new ResourceActionInitiatedTransactionEvent(a.constructor.name, diff));
162
- if (enableResourceCapture) {
163
- const capture = this.captureService.getCapture(diff.node.getContext());
164
- await a.mock(diff, capture?.response || {});
165
- await a.handle(diffToProcess);
190
+ const capture = this.captureService.getCapture(diff.node.getContext());
191
+ if (enableResourceCapture && capture?.response && a.mock) {
192
+ const response = await a.mock(diff, capture.response);
193
+ this.resourceDataRepository.getNewResourceByContext(diffToProcess.node.getContext())?.setResponse(response);
166
194
  }
167
195
  else {
168
196
  let actionTimeoutId;
@@ -170,11 +198,20 @@ export class TransactionService {
170
198
  await Promise.race([
171
199
  new Promise(async (resolve, reject) => {
172
200
  try {
173
- await a.handle(diffToProcess);
201
+ const response = await a.handle(diffToProcess);
202
+ this.resourceDataRepository
203
+ .getNewResourceByContext(diffToProcess.node.getContext())
204
+ ?.setResponse(response);
174
205
  resolve();
175
206
  }
176
207
  catch (error) {
177
- reject(new ResourceActionExceptionTransactionError(error.message, error, diffToProcess, a.constructor.name));
208
+ if (diffToProcess.action === DiffAction.VALIDATE) {
209
+ validationErrors.push(error);
210
+ resolve();
211
+ }
212
+ else {
213
+ reject(new ResourceActionExceptionTransactionError(error.message, error, diffToProcess, a.constructor.name));
214
+ }
178
215
  }
179
216
  }),
180
217
  new Promise((_resolve, reject) => (actionTimeoutId = setTimeout(() => {
@@ -225,6 +262,16 @@ export class TransactionService {
225
262
  processed += diffsInSameLevel.length;
226
263
  currentApplyOrder += 1;
227
264
  }
265
+ if (validationErrors.length > 0) {
266
+ throw new ValidationTransactionError('Validation failed on resources!', {
267
+ errors: validationErrors.map((error) => ({
268
+ constraint: 'Resource Validation',
269
+ type: ValidationType.CUSTOM,
270
+ value: error.message,
271
+ })),
272
+ pass: false,
273
+ });
274
+ }
228
275
  return transaction;
229
276
  }
230
277
  getDiffsOfSameNode(diff, diffs, diffAction) {
@@ -294,9 +341,10 @@ export class TransactionService {
294
341
  }
295
342
  diff.applyOrder = Math.max(...dependencyApplyOrders) + 1;
296
343
  }
297
- async *beginTransaction(diffs, { enableResourceCapture = false, yieldModelDiffs = false, yieldModelTransaction = false, yieldResourceDiffs = false, yieldResourceTransaction = false, } = {}) {
344
+ async *beginTransaction(diffs, { enableResourceCapture = false, enableResourceValidation = false, yieldModelDiffs = false, yieldModelTransaction = false, yieldResourceDiffs = false, yieldResourceTransaction = false, } = {}) {
298
345
  // Diff overlays and add to existing diffs.
299
- diffs.push(...(await this.overlayDataRepository.diff()));
346
+ const overlayDiffs = await this.overlayDataRepository.diff();
347
+ diffs.push(...overlayDiffs);
300
348
  // Generate diff on models.
301
349
  const modelDiffs = diffs.map((d) => {
302
350
  if (d.node.constructor.NODE_TYPE === NodeType.OVERLAY) {
@@ -323,6 +371,14 @@ export class TransactionService {
323
371
  // Generate resource diffs.
324
372
  const newDiffs = await this.resourceDataRepository.diff();
325
373
  const dirtyDiffs = await this.resourceDataRepository.diffDirty();
374
+ if (enableResourceValidation && (newDiffs.length > 0 || dirtyDiffs.length > 0)) {
375
+ throw new TransactionError('Cannot run resource validation with pending resource diffs!');
376
+ }
377
+ if (enableResourceValidation) {
378
+ const validationDiffs = this.resourceDataRepository.diffValidate();
379
+ newDiffs.push(...validationDiffs);
380
+ dirtyDiffs.push(...validationDiffs);
381
+ }
326
382
  // new diffs = new - old | dirty diffs = new - actual
327
383
  // Any new diff that is also not part of dirty diffs should be skipped, as the actual is already in desired state.
328
384
  for (let i = newDiffs.length - 1; i >= 0; i--) {
@@ -358,6 +414,7 @@ export class TransactionService {
358
414
  for (const diff of dirtyResourceDiffs) {
359
415
  this.setApplyOrder(diff, dirtyResourceDiffs);
360
416
  }
417
+ this.applyResourcesDryRun([...resourceDiffs, ...dirtyResourceDiffs], { enableResourceCapture });
361
418
  this.eventService.emit(new ResourceDiffsTransactionEvent(undefined, [[resourceDiffs], [dirtyResourceDiffs]]));
362
419
  if (yieldResourceDiffs) {
363
420
  yield [resourceDiffs, dirtyResourceDiffs];
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.service.js","sourceRoot":"","sources":["../../../src/services/transaction/transaction.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.service.js","sourceRoot":"","sources":["../../../src/services/transaction/transaction.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare class FileUtility {
2
+ static decryptFileToBuffer(inputFilePath: string, key: Buffer): Promise<Buffer>;
3
+ static encryptBufferToFile(data: Buffer, outputFilePath: string, key: Buffer): Promise<void>;
4
+ }
@@ -0,0 +1,63 @@
1
+ import { createCipheriv, createDecipheriv, randomBytes } from 'node:crypto';
2
+ import { createReadStream, createWriteStream } from 'node:fs';
3
+ import { open } from 'node:fs/promises';
4
+ import { Readable } from 'node:stream';
5
+ import { pipeline } from 'node:stream/promises';
6
+ const ALGORITHM = 'aes-256-gcm';
7
+ const IV_LENGTH = 12;
8
+ const TAG_LENGTH = 16;
9
+ export class FileUtility {
10
+ static async decryptFileToBuffer(inputFilePath, key) {
11
+ const fileHandle = await open(inputFilePath, 'r');
12
+ try {
13
+ const { size } = await fileHandle.stat();
14
+ // Extract IV (first IV_LENGTH bytes) and Tag (last TAG_LENGTH bytes).
15
+ const iv = Buffer.alloc(IV_LENGTH);
16
+ const tag = Buffer.alloc(TAG_LENGTH);
17
+ await fileHandle.read(iv, 0, IV_LENGTH, 0);
18
+ await fileHandle.read(tag, 0, TAG_LENGTH, size - TAG_LENGTH);
19
+ // Setup Decipher.
20
+ const decipher = createDecipheriv(ALGORITHM, key, iv);
21
+ decipher.setAuthTag(tag);
22
+ // Create ReadStream for the encrypted chunk in the middle.
23
+ // 'end' is inclusive, so we subtract 1 from the start of the tag.
24
+ const readStream = createReadStream(inputFilePath, {
25
+ autoClose: false, // The handle is closed manually in 'finally'.
26
+ end: size - TAG_LENGTH - 1,
27
+ fd: fileHandle.fd,
28
+ start: IV_LENGTH,
29
+ });
30
+ // Decrypt and collect chunks.
31
+ const chunks = [];
32
+ for await (const chunk of readStream.pipe(decipher)) {
33
+ chunks.push(chunk);
34
+ }
35
+ return Buffer.concat(chunks);
36
+ }
37
+ finally {
38
+ await fileHandle.close();
39
+ }
40
+ }
41
+ static async encryptBufferToFile(data, outputFilePath, key) {
42
+ const iv = randomBytes(IV_LENGTH);
43
+ const cipher = createCipheriv(ALGORITHM, key, iv);
44
+ const readStream = Readable.from(data);
45
+ const writeStream = createWriteStream(outputFilePath);
46
+ // Write the IV to the start.
47
+ writeStream.write(iv);
48
+ // Stream the encrypted data.
49
+ await pipeline(readStream, cipher, writeStream);
50
+ // Append the Auth Tag to the very end.
51
+ const tag = cipher.getAuthTag();
52
+ const tagAppendStream = createWriteStream(outputFilePath, { flags: 'a' });
53
+ // Final write with Tag.
54
+ await new Promise((resolve, reject) => {
55
+ tagAppendStream.write(tag, (error) => {
56
+ if (error)
57
+ reject(error);
58
+ tagAppendStream.end(resolve);
59
+ });
60
+ });
61
+ }
62
+ }
63
+ //# sourceMappingURL=file.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.utility.js","sourceRoot":"","sources":["../../../src/utilities/file/file.utility.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -77,5 +77,5 @@
77
77
  },
78
78
  "type": "module",
79
79
  "types": "./dist/index.d.ts",
80
- "version": "0.0.24"
80
+ "version": "0.0.26"
81
81
  }