declastruct 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,43 +1,26 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  const fs_1 = require("fs");
27
4
  const promises_1 = require("fs/promises");
28
5
  const path_1 = require("path");
6
+ const uuid_fns_1 = require("uuid-fns");
29
7
  const DeclastructPlan_1 = require("../../domain.objects/DeclastructPlan");
30
8
  const plan_1 = require("./plan");
9
+ /**
10
+ * .what = generates unique temp directory for test run
11
+ * .why = enables isolated test artifacts without cleanup
12
+ */
13
+ const genTempDir = async () => {
14
+ const testUuid = (0, uuid_fns_1.getUuid)();
15
+ const tempDir = (0, path_1.resolve)(process.cwd(), `src/.test/assets/.temp/${testUuid}`);
16
+ await (0, promises_1.mkdir)(tempDir, { recursive: true });
17
+ return tempDir;
18
+ };
31
19
  describe('executePlanCommand', () => {
32
20
  const wishFilePath = (0, path_1.resolve)(process.cwd(), 'src/.test/assets/wish.fixture.ts');
33
- const planFilePath = (0, path_1.resolve)(process.cwd(), 'src/.test/assets/plan.test.json');
34
- afterEach(async () => {
35
- // cleanup plan file after each test
36
- if ((0, fs_1.existsSync)(planFilePath)) {
37
- await (0, promises_1.rm)(planFilePath);
38
- }
39
- });
40
21
  it('should generate a plan file with changes based on wish file', async () => {
22
+ const tempDir = await genTempDir();
23
+ const planFilePath = (0, path_1.resolve)(tempDir, 'plan.json');
41
24
  // execute plan command
42
25
  await (0, plan_1.executePlanCommand)({ wishFilePath, planFilePath });
43
26
  // verify plan file was created
@@ -65,31 +48,33 @@ describe('executePlanCommand', () => {
65
48
  expect(slugs[0]).not.toBe(slugs[1]);
66
49
  });
67
50
  it('should throw when wish file does not exist', async () => {
68
- const nonexistentWishPath = (0, path_1.resolve)(__dirname, 'nonexistent.ts');
51
+ const tempDir = await genTempDir();
52
+ const nonexistentWishPath = (0, path_1.resolve)(tempDir, 'nonexistent.ts');
53
+ const planFilePath = (0, path_1.resolve)(tempDir, 'plan.json');
69
54
  await expect((0, plan_1.executePlanCommand)({
70
55
  wishFilePath: nonexistentWishPath,
71
56
  planFilePath,
72
57
  })).rejects.toThrow('Wish file not found');
73
58
  });
74
59
  it('should throw when wish file does not export getResources', async () => {
75
- const badWishPath = (0, path_1.resolve)(process.cwd(), 'src/.test/assets/bad-wish.ts');
60
+ const tempDir = await genTempDir();
61
+ const badWishPath = (0, path_1.resolve)(tempDir, 'bad-wish.ts');
62
+ const planFilePath = (0, path_1.resolve)(tempDir, 'plan.json');
76
63
  // create bad wish file
77
- const { writeFile } = await Promise.resolve().then(() => __importStar(require('fs/promises')));
78
- await writeFile(badWishPath, 'export const getProviders = async () => [];', 'utf-8');
64
+ await (0, promises_1.writeFile)(badWishPath, 'export const getProviders = async () => [];', 'utf-8');
79
65
  await expect((0, plan_1.executePlanCommand)({ wishFilePath: badWishPath, planFilePath })).rejects.toThrow('Wish file must export getResources() function');
80
- // cleanup
81
- await (0, promises_1.rm)(badWishPath);
82
66
  });
83
67
  it('should throw when wish file does not export getProviders', async () => {
84
- const badWishPath = (0, path_1.resolve)(process.cwd(), 'src/.test/assets/bad-wish2.ts');
68
+ const tempDir = await genTempDir();
69
+ const badWishPath = (0, path_1.resolve)(tempDir, 'bad-wish.ts');
70
+ const planFilePath = (0, path_1.resolve)(tempDir, 'plan.json');
85
71
  // create bad wish file
86
- const { writeFile } = await Promise.resolve().then(() => __importStar(require('fs/promises')));
87
- await writeFile(badWishPath, 'export const getResources = async () => [];', 'utf-8');
72
+ await (0, promises_1.writeFile)(badWishPath, 'export const getResources = async () => [];', 'utf-8');
88
73
  await expect((0, plan_1.executePlanCommand)({ wishFilePath: badWishPath, planFilePath })).rejects.toThrow('Wish file must export getProviders() function');
89
- // cleanup
90
- await (0, promises_1.rm)(badWishPath);
91
74
  });
92
75
  it('should detect KEEP action when resource already exists remotely', async () => {
76
+ const tempDir = await genTempDir();
77
+ const planFilePath = (0, path_1.resolve)(tempDir, 'plan.json');
93
78
  // first run - create resources
94
79
  await (0, plan_1.executePlanCommand)({ wishFilePath, planFilePath });
95
80
  // read first plan
@@ -97,11 +82,61 @@ describe('executePlanCommand', () => {
97
82
  const firstPlan = new DeclastructPlan_1.DeclastructPlan(JSON.parse(firstPlanJson));
98
83
  // verify all CREATE
99
84
  expect(firstPlan.changes.every((c) => c.action === 'CREATE')).toBe(true);
100
- // cleanup and run again
101
- await (0, promises_1.rm)(planFilePath);
102
85
  // Note: In a real integration test, we would need to actually apply the changes
103
86
  // to populate remote state. For now, this test just verifies the basic flow.
104
87
  // A more complete test would require mocking or actual provider state.
105
88
  });
89
+ it('should pass provider context through to DAO operations', async () => {
90
+ const tempDir = await genTempDir();
91
+ const authWishFilePath = (0, path_1.resolve)(process.cwd(), 'src/.test/assets/wish-with-auth.fixture.ts');
92
+ const authPlanFilePath = (0, path_1.resolve)(tempDir, 'plan.json');
93
+ // execute plan command with auth provider
94
+ await (0, plan_1.executePlanCommand)({
95
+ wishFilePath: authWishFilePath,
96
+ planFilePath: authPlanFilePath,
97
+ });
98
+ // verify plan file was created successfully
99
+ expect((0, fs_1.existsSync)(authPlanFilePath)).toBe(true);
100
+ // read and parse plan
101
+ const planJson = await (0, promises_1.readFile)(authPlanFilePath, 'utf-8');
102
+ const plan = new DeclastructPlan_1.DeclastructPlan(JSON.parse(planJson));
103
+ // verify plan was generated (context was passed through)
104
+ expect(plan.changes.length).toBe(2);
105
+ expect(plan.changes[0]?.forResource.class).toBe('DemoAuthResource');
106
+ // verify context enabled DAO operations (if this passes, context was properly passed)
107
+ expect(plan.changes[0]?.state.desired).toBeDefined();
108
+ });
109
+ it('should throw when provider context is missing required auth token', async () => {
110
+ const tempDir = await genTempDir();
111
+ const badAuthWishPath = (0, path_1.resolve)(tempDir, 'bad-auth-wish.ts');
112
+ const badAuthPlanPath = (0, path_1.resolve)(tempDir, 'plan.json');
113
+ // create wish file with provider missing auth token
114
+ await (0, promises_1.writeFile)(badAuthWishPath, `
115
+ import { DomainEntity } from 'domain-objects';
116
+ import { DeclastructProvider } from '${(0, path_1.resolve)(process.cwd(), 'src/domain.objects/DeclastructProvider')}';
117
+ import {
118
+ DemoAuthResource,
119
+ genSampleDemoAuthResource,
120
+ demoAuthProvider,
121
+ } from '${(0, path_1.resolve)(process.cwd(), 'src/.test/assets/providers/demo-with-auth.provider')}';
122
+
123
+ export const getResources = async (): Promise<DomainEntity<any>[]> => {
124
+ return [genSampleDemoAuthResource({ name: 'Test' })];
125
+ };
126
+
127
+ export const getProviders = async (): Promise<DeclastructProvider<any, any>[]> => {
128
+ // return provider with invalid context (missing demoAuthToken)
129
+ return [new DeclastructProvider({
130
+ ...demoAuthProvider,
131
+ context: {} as any, // invalid context - missing required demoAuthToken
132
+ })];
133
+ };
134
+ `, 'utf-8');
135
+ // attempt to execute plan command
136
+ await expect((0, plan_1.executePlanCommand)({
137
+ wishFilePath: badAuthWishPath,
138
+ planFilePath: badAuthPlanPath,
139
+ })).rejects.toThrow('demoAuthToken required in context');
140
+ });
106
141
  });
107
142
  //# sourceMappingURL=plan.integration.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.integration.test.js","sourceRoot":"","sources":["../../../src/contract/cli/plan.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.integration.test.js","sourceRoot":"","sources":["../../../src/contract/cli/plan.integration.test.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,3 @@ export { DeclastructDao } from '../../domain.objects/DeclastructDao';
4
4
  export { DeclastructProvider } from '../../domain.objects/DeclastructProvider';
5
5
  export { DeclastructPlan } from '../../domain.objects/DeclastructPlan';
6
6
  export { ContextDeclastruct } from '../../domain.objects/ContextDeclastruct';
7
- export { getDaoByResource } from '../../domain.operations/plan/getDaoByResource';
8
- export { computeChange } from '../../domain.operations/plan/computeChange';
9
- export { planChanges } from '../../domain.operations/plan/planChanges';
10
- export { assertPlanStillValid } from '../../domain.operations/plan/validate';
11
- export { hashChanges } from '../../domain.operations/plan/hashChanges';
12
- export { extractResourcesFromPlan } from '../../domain.operations/plan/extractResourcesFromPlan';
13
- export { asIsoTimestamp } from '../../infra/asIsoTimestamp';
14
- export { applyChange } from '../../domain.operations/apply/applyChange';
15
- export { applyChanges } from '../../domain.operations/apply/applyChanges';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyChanges = exports.applyChange = exports.asIsoTimestamp = exports.extractResourcesFromPlan = exports.hashChanges = exports.assertPlanStillValid = exports.planChanges = exports.computeChange = exports.getDaoByResource = exports.DeclastructPlan = exports.DeclastructProvider = exports.DeclastructDao = exports.DeclastructChangeAction = exports.DeclastructChange = void 0;
3
+ exports.DeclastructPlan = exports.DeclastructProvider = exports.DeclastructDao = exports.DeclastructChangeAction = exports.DeclastructChange = void 0;
4
4
  var DeclastructChange_1 = require("../../domain.objects/DeclastructChange");
5
5
  Object.defineProperty(exports, "DeclastructChange", { enumerable: true, get: function () { return DeclastructChange_1.DeclastructChange; } });
6
6
  Object.defineProperty(exports, "DeclastructChangeAction", { enumerable: true, get: function () { return DeclastructChange_1.DeclastructChangeAction; } });
@@ -10,25 +10,4 @@ var DeclastructProvider_1 = require("../../domain.objects/DeclastructProvider");
10
10
  Object.defineProperty(exports, "DeclastructProvider", { enumerable: true, get: function () { return DeclastructProvider_1.DeclastructProvider; } });
11
11
  var DeclastructPlan_1 = require("../../domain.objects/DeclastructPlan");
12
12
  Object.defineProperty(exports, "DeclastructPlan", { enumerable: true, get: function () { return DeclastructPlan_1.DeclastructPlan; } });
13
- // domain operations - plan
14
- var getDaoByResource_1 = require("../../domain.operations/plan/getDaoByResource");
15
- Object.defineProperty(exports, "getDaoByResource", { enumerable: true, get: function () { return getDaoByResource_1.getDaoByResource; } });
16
- var computeChange_1 = require("../../domain.operations/plan/computeChange");
17
- Object.defineProperty(exports, "computeChange", { enumerable: true, get: function () { return computeChange_1.computeChange; } });
18
- var planChanges_1 = require("../../domain.operations/plan/planChanges");
19
- Object.defineProperty(exports, "planChanges", { enumerable: true, get: function () { return planChanges_1.planChanges; } });
20
- var validate_1 = require("../../domain.operations/plan/validate");
21
- Object.defineProperty(exports, "assertPlanStillValid", { enumerable: true, get: function () { return validate_1.assertPlanStillValid; } });
22
- var hashChanges_1 = require("../../domain.operations/plan/hashChanges");
23
- Object.defineProperty(exports, "hashChanges", { enumerable: true, get: function () { return hashChanges_1.hashChanges; } });
24
- var extractResourcesFromPlan_1 = require("../../domain.operations/plan/extractResourcesFromPlan");
25
- Object.defineProperty(exports, "extractResourcesFromPlan", { enumerable: true, get: function () { return extractResourcesFromPlan_1.extractResourcesFromPlan; } });
26
- // infra
27
- var asIsoTimestamp_1 = require("../../infra/asIsoTimestamp");
28
- Object.defineProperty(exports, "asIsoTimestamp", { enumerable: true, get: function () { return asIsoTimestamp_1.asIsoTimestamp; } });
29
- // domain operations - apply
30
- var applyChange_1 = require("../../domain.operations/apply/applyChange");
31
- Object.defineProperty(exports, "applyChange", { enumerable: true, get: function () { return applyChange_1.applyChange; } });
32
- var applyChanges_1 = require("../../domain.operations/apply/applyChanges");
33
- Object.defineProperty(exports, "applyChanges", { enumerable: true, get: function () { return applyChanges_1.applyChanges; } });
34
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contract/sdk/index.ts"],"names":[],"mappings":";;;AAEA,4EAGgD;AAF9C,sHAAA,iBAAiB,OAAA;AACjB,4HAAA,uBAAuB,OAAA;AAEzB,sEAAqE;AAA5D,gHAAA,cAAc,OAAA;AACvB,gFAA+E;AAAtE,0HAAA,mBAAmB,OAAA;AAC5B,wEAAuE;AAA9D,kHAAA,eAAe,OAAA;AAGxB,2BAA2B;AAC3B,kFAAiF;AAAxE,oHAAA,gBAAgB,OAAA;AACzB,4EAA2E;AAAlE,8GAAA,aAAa,OAAA;AACtB,wEAAuE;AAA9D,0GAAA,WAAW,OAAA;AACpB,kEAA6E;AAApE,gHAAA,oBAAoB,OAAA;AAC7B,wEAAuE;AAA9D,0GAAA,WAAW,OAAA;AACpB,kGAAiG;AAAxF,oIAAA,wBAAwB,OAAA;AAEjC,QAAQ;AACR,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEvB,4BAA4B;AAC5B,yEAAwE;AAA/D,0GAAA,WAAW,OAAA;AACpB,2EAA0E;AAAjE,4GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contract/sdk/index.ts"],"names":[],"mappings":";;;AAEA,4EAGgD;AAF9C,sHAAA,iBAAiB,OAAA;AACjB,4HAAA,uBAAuB,OAAA;AAEzB,sEAAqE;AAA5D,gHAAA,cAAc,OAAA;AACvB,gFAA+E;AAAtE,0HAAA,mBAAmB,OAAA;AAC5B,wEAAuE;AAA9D,kHAAA,eAAe,OAAA"}
@@ -6,9 +6,8 @@ import { DeclastructProvider } from '../../domain.objects/DeclastructProvider';
6
6
  * .why = executes the actual infrastructure modification
7
7
  * .note = different actions require different DAO methods; fails fast if method not available
8
8
  */
9
- export declare const applyChange: <TContext = any>({ resource, change, providers, context, }: {
9
+ export declare const applyChange: ({ resource, change, providers, }: {
10
10
  resource: DomainEntity<any>;
11
11
  change: DeclastructChange;
12
- providers: DeclastructProvider<any, TContext>[];
13
- context: TContext;
12
+ providers: DeclastructProvider<any, any>[];
14
13
  }) => Promise<DeclastructChange>;
@@ -9,50 +9,56 @@ const getDaoByResource_1 = require("../plan/getDaoByResource");
9
9
  * .why = executes the actual infrastructure modification
10
10
  * .note = different actions require different DAO methods; fails fast if method not available
11
11
  */
12
- const applyChange = async ({ resource, change, providers, context, }) => {
12
+ const applyChange = async ({ resource, change, providers, }) => {
13
13
  // skip KEEP actions immediately
14
14
  if (change.action === DeclastructChange_1.DeclastructChangeAction.KEEP)
15
15
  return change;
16
16
  // validate that the name of the resource and on the change is the same
17
17
  if (resource.constructor.name !== change.forResource.class)
18
18
  throw new helpful_errors_1.UnexpectedCodePathError('why were we asked to apply a change on an unrelated resource?', { resource, change });
19
- const dao = (0, getDaoByResource_1.getDaoByResource)({
19
+ // find DAO and provider context for this resource
20
+ const { dao, context: providerContext } = (0, getDaoByResource_1.getDaoByResource)({
20
21
  resource,
21
22
  providers,
22
23
  });
23
24
  // execute action based on change type
24
25
  switch (change.action) {
25
26
  case DeclastructChange_1.DeclastructChangeAction.CREATE:
26
- // create new resource
27
- await dao.set.finsert(change.state.desired, context);
27
+ // create new resource using provider context
28
+ await dao.set.finsert(change.state.desired ??
29
+ helpful_errors_1.UnexpectedCodePathError.throw('expected change.state.desired for CREATE', { change }), providerContext);
28
30
  return change;
29
31
  case DeclastructChange_1.DeclastructChangeAction.UPDATE:
30
- // update existing resource
32
+ // update existing resource using provider context
31
33
  if (!dao.set.upsert) {
32
34
  throw new helpful_errors_1.UnexpectedCodePathError('DAO does not support updates', {
33
35
  resourceClassName: change.forResource.class,
34
36
  });
35
37
  }
36
- await dao.set.upsert(change.state.desired, context);
38
+ await dao.set.upsert(change.state.desired ??
39
+ helpful_errors_1.UnexpectedCodePathError.throw('expected change.state.desired for UPDATE', { change }), providerContext);
37
40
  return change;
38
41
  case DeclastructChange_1.DeclastructChangeAction.DESTROY:
39
- // delete resource
42
+ // delete resource using provider context
40
43
  if (!dao.set.delete) {
41
44
  throw new helpful_errors_1.UnexpectedCodePathError('DAO does not support deletes', {
42
45
  resourceClassName: change.forResource.class,
43
46
  });
44
47
  }
45
- await dao.set.delete(change.state.remote, context);
48
+ await dao.set.delete(change.state.remote ??
49
+ helpful_errors_1.UnexpectedCodePathError.throw('expected change.state.remote for DESTROY', { change }), providerContext);
46
50
  return change;
47
51
  case DeclastructChange_1.DeclastructChangeAction.REPLACE:
48
- // delete then create
52
+ // delete then create using provider context
49
53
  if (!dao.set.delete) {
50
54
  throw new helpful_errors_1.UnexpectedCodePathError('DAO does not support deletes', {
51
55
  resourceClassName: change.forResource.class,
52
56
  });
53
57
  }
54
- await dao.set.delete(change.state.remote, context);
55
- await dao.set.finsert(change.state.desired, context);
58
+ await dao.set.delete(change.state.remote ??
59
+ helpful_errors_1.UnexpectedCodePathError.throw('expected change.state.remote for REPLACE', { change }), providerContext);
60
+ await dao.set.finsert(change.state.desired ??
61
+ helpful_errors_1.UnexpectedCodePathError.throw('expected change.state.desired for REPLACE', { change }), providerContext);
56
62
  return change;
57
63
  default:
58
64
  throw new helpful_errors_1.UnexpectedCodePathError('unknown change action', {
@@ -1 +1 @@
1
- {"version":3,"file":"applyChange.js","sourceRoot":"","sources":["../../../src/domain.operations/apply/applyChange.ts"],"names":[],"mappings":";;;AACA,mDAAyD;AAEzD,8EAGgD;AAEhD,+DAA4D;AAE5D;;;;GAIG;AACI,MAAM,WAAW,GAAG,KAAK,EAAkB,EAChD,QAAQ,EACR,MAAM,EACN,SAAS,EACT,OAAO,GAMR,EAA8B,EAAE;IAC/B,gCAAgC;IAChC,IAAI,MAAM,CAAC,MAAM,KAAK,2CAAuB,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IAElE,uEAAuE;IACvE,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK;QACxD,MAAM,IAAI,wCAAuB,CAC/B,+DAA+D,EAC/D,EAAE,QAAQ,EAAE,MAAM,EAAE,CACrB,CAAC;IAEJ,MAAM,GAAG,GAAG,IAAA,mCAAgB,EAAC;QAC3B,QAAQ;QACR,SAAS;KACV,CAAC,CAAC;IAEH,sCAAsC;IACtC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,2CAAuB,CAAC,MAAM;YACjC,sBAAsB;YACtB,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAQ,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC;QAEhB,KAAK,2CAAuB,CAAC,MAAM;YACjC,2BAA2B;YAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,wCAAuB,CAAC,8BAA8B,EAAE;oBAChE,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;iBAC5C,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC;QAEhB,KAAK,2CAAuB,CAAC,OAAO;YAClC,kBAAkB;YAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,wCAAuB,CAAC,8BAA8B,EAAE;oBAChE,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;iBAC5C,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAa,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;QAEhB,KAAK,2CAAuB,CAAC,OAAO;YAClC,qBAAqB;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,wCAAuB,CAAC,8BAA8B,EAAE;oBAChE,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;iBAC5C,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAa,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAQ,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC;QAEhB;YACE,MAAM,IAAI,wCAAuB,CAAC,uBAAuB,EAAE;gBACzD,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;IACP,CAAC;AACH,CAAC,CAAC;AArEW,QAAA,WAAW,eAqEtB"}
1
+ {"version":3,"file":"applyChange.js","sourceRoot":"","sources":["../../../src/domain.operations/apply/applyChange.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,6 @@ describe('applyChange', () => {
27
27
  resource,
28
28
  change,
29
29
  providers: [],
30
- context: {},
31
30
  });
32
31
  expect(result).toBe(change);
33
32
  });
@@ -68,7 +67,6 @@ describe('applyChange', () => {
68
67
  resource,
69
68
  change,
70
69
  providers: [provider],
71
- context: {},
72
70
  });
73
71
  expect(finsertSpy).toHaveBeenCalledWith(resource, {});
74
72
  });
@@ -111,7 +109,6 @@ describe('applyChange', () => {
111
109
  resource: desired,
112
110
  change,
113
111
  providers: [provider],
114
- context: {},
115
112
  });
116
113
  expect(upsertSpy).toHaveBeenCalledWith(desired, {});
117
114
  });
@@ -152,7 +149,6 @@ describe('applyChange', () => {
152
149
  resource: desired,
153
150
  change,
154
151
  providers: [provider],
155
- context: {},
156
152
  }));
157
153
  expect(error.message).toContain('DAO does not support updates');
158
154
  });
@@ -194,7 +190,6 @@ describe('applyChange', () => {
194
190
  resource,
195
191
  change,
196
192
  providers: [provider],
197
- context: {},
198
193
  });
199
194
  expect(deleteSpy).toHaveBeenCalledWith(resource, {});
200
195
  });
@@ -238,7 +233,6 @@ describe('applyChange', () => {
238
233
  resource: desired,
239
234
  change,
240
235
  providers: [provider],
241
- context: {},
242
236
  });
243
237
  expect(deleteSpy).toHaveBeenCalledWith(remote, {});
244
238
  expect(finsertSpy).toHaveBeenCalledWith(desired, {});
@@ -1 +1 @@
1
- {"version":3,"file":"applyChange.test.js","sourceRoot":"","sources":["../../../src/domain.operations/apply/applyChange.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applyChange.test.js","sourceRoot":"","sources":["../../../src/domain.operations/apply/applyChange.test.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,6 @@ const applyChanges = async (input, context) => {
41
41
  change,
42
42
  resource: resourceFound,
43
43
  providers: input.providers,
44
- context,
45
44
  });
46
45
  // log success immediately
47
46
  context.log.info(`✔ [${applied.action}] ${applied.forResource.slug}`, {});
@@ -1 +1 @@
1
- {"version":3,"file":"applyChanges.js","sourceRoot":"","sources":["../../../src/domain.operations/apply/applyChanges.ts"],"names":[],"mappings":";;;AAAA,mDAAuE;AACvE,mDAAyD;AAIzD,8EAGgD;AAGhD,qDAAkD;AAClD,+CAAwD;AACxD,+CAA4C;AAE5C;;;;GAIG;AACI,MAAM,YAAY,GAAG,KAAK,EAC/B,KAIC,EACD,OAA6C,EACK,EAAE;IACpD,uCAAuC;IACvC,MAAM,WAAW,GAAG,MAAM,IAAA,yBAAW,EACnC;QACE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KAClC,EACD,OAAO,CACR,CAAC;IAEF,sCAAsC;IACtC,IAAA,+BAAoB,EAAC;QACnB,YAAY,EAAE,KAAK,CAAC,IAAI;QACxB,WAAW;KACZ,CAAC,CAAC;IAEH,2CAA2C;IAC3C,MAAM,cAAc,GAAwB,EAAE,CAAC;IAE/C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,4BAA4B;QAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,2CAAuB,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QAED,4BAA4B;QAC5B,MAAM,aAAa,GACjB,KAAK,CAAC,SAAS,CAAC,IAAI,CAClB,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK;YACvD,IAAA,wCAAuB,EAAC,SAAS,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CACjE;YACD,wCAAuB,CAAC,KAAK,CAC3B,wFAAwF,EACxF,EAAE,MAAM,EAAE,CACX,CAAC;QAEJ,mBAAmB;QACnB,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAW,EAAC;YAChC,MAAM;YACN,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO;SACR,CAAC,CAAC;QAEH,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1E,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC,CAAC;AA7DW,QAAA,YAAY,gBA6DvB"}
1
+ {"version":3,"file":"applyChanges.js","sourceRoot":"","sources":["../../../src/domain.operations/apply/applyChanges.ts"],"names":[],"mappings":";;;AAAA,mDAAuE;AACvE,mDAAyD;AAIzD,8EAGgD;AAGhD,qDAAkD;AAClD,+CAAwD;AACxD,+CAA4C;AAE5C;;;;GAIG;AACI,MAAM,YAAY,GAAG,KAAK,EAC/B,KAIC,EACD,OAA6C,EACK,EAAE;IACpD,uCAAuC;IACvC,MAAM,WAAW,GAAG,MAAM,IAAA,yBAAW,EACnC;QACE,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KAClC,EACD,OAAO,CACR,CAAC;IAEF,sCAAsC;IACtC,IAAA,+BAAoB,EAAC;QACnB,YAAY,EAAE,KAAK,CAAC,IAAI;QACxB,WAAW;KACZ,CAAC,CAAC;IAEH,2CAA2C;IAC3C,MAAM,cAAc,GAAwB,EAAE,CAAC;IAE/C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,4BAA4B;QAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,2CAAuB,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QAED,4BAA4B;QAC5B,MAAM,aAAa,GACjB,KAAK,CAAC,SAAS,CAAC,IAAI,CAClB,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK;YACvD,IAAA,wCAAuB,EAAC,SAAS,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CACjE;YACD,wCAAuB,CAAC,KAAK,CAC3B,wFAAwF,EACxF,EAAE,MAAM,EAAE,CACX,CAAC;QAEJ,mBAAmB;QACnB,MAAM,OAAO,GAAG,MAAM,IAAA,yBAAW,EAAC;YAChC,MAAM;YACN,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1E,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC,CAAC;AA5DW,QAAA,YAAY,gBA4DvB"}
@@ -1,5 +1,9 @@
1
1
  import { DomainEntity } from 'domain-objects';
2
2
  import { DeclastructChange } from '../../domain.objects/DeclastructChange';
3
+ export declare const withHelpfulError: <TLogic extends (...args: any[]) => any>(logic: TLogic, options: {
4
+ message: string;
5
+ metadata: Record<string, any>;
6
+ }) => (...args: Parameters<TLogic>) => ReturnType<TLogic>;
3
7
  /**
4
8
  * .what = computes a single change by comparing desired vs remote state
5
9
  * .why = determines the action needed to achieve desired state for one resource
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.computeChange = void 0;
3
+ exports.computeChange = exports.withHelpfulError = void 0;
4
4
  const domain_objects_1 = require("domain-objects");
5
+ const helpful_errors_1 = require("helpful-errors");
5
6
  const jest_diff_1 = require("jest-diff");
6
7
  const DeclastructChange_1 = require("../../domain.objects/DeclastructChange");
7
8
  /**
@@ -34,6 +35,23 @@ const computeDiff = ({ from, into, }) => {
34
35
  });
35
36
  return difference;
36
37
  };
38
+ // todo: lift this into `helpful-errors`
39
+ const withHelpfulError = (logic, options) => {
40
+ return (...args) => {
41
+ try {
42
+ return logic(...args);
43
+ }
44
+ catch (error) {
45
+ if (!(error instanceof Error))
46
+ throw error;
47
+ throw new helpful_errors_1.HelpfulError(options.message, {
48
+ ...options.metadata,
49
+ cause: error,
50
+ });
51
+ }
52
+ };
53
+ };
54
+ exports.withHelpfulError = withHelpfulError;
37
55
  /**
38
56
  * .what = computes a single change by comparing desired vs remote state
39
57
  * .why = determines the action needed to achieve desired state for one resource
@@ -64,7 +82,10 @@ const computeChange = ({ desired, remote, }) => {
64
82
  return new DeclastructChange_1.DeclastructChange({
65
83
  forResource: {
66
84
  class: resourceForChange.constructor.name,
67
- slug: (0, domain_objects_1.getUniqueIdentifierSlug)(resourceForChange),
85
+ slug: (0, exports.withHelpfulError)(() => (0, domain_objects_1.getUniqueIdentifierSlug)(resourceForChange), {
86
+ message: 'failed to getUniqueIdentifierSlug',
87
+ metadata: { input: { desired, remote } },
88
+ })(),
68
89
  },
69
90
  action,
70
91
  state: {
@@ -1 +1 @@
1
- {"version":3,"file":"computeChange.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/computeChange.ts"],"names":[],"mappings":";;;AAAA,mDAAuE;AACvE,yCAAiC;AAEjC,8EAGgD;AAEhD;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAC7B,MAAyB,EACzB,OAA0B,EACjB,EAAE;IACX,6CAA6C;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,UAAU,KAAK,WAAW,CAAC;AACpC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,EACnB,IAAI,EACJ,IAAI,GAIL,EAAiB,EAAE;IAClB,2BAA2B;IAC3B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhD,6DAA6D;IAC7D,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5C,+BAA+B;IAC/B,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,EAAE;QAC5C,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,SAAS;KACvB,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,MAAM,GAIP,EAAqB,EAAE;IACtB,6CAA6C;IAC7C,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,kCAAkC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO,2CAAuB,CAAC,MAAM,CAAC;QAEnD,wCAAwC;QACxC,IAAI,CAAC,OAAO;YAAE,OAAO,2CAAuB,CAAC,OAAO,CAAC;QAErD,oBAAoB;QACpB,IAAI,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC;YACzC,OAAO,2CAAuB,CAAC,IAAI,CAAC;QAEtC,qCAAqC;QACrC,OAAO,2CAAuB,CAAC,MAAM,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC;IAEL,iCAAiC;IACjC,MAAM,UAAU,GACd,MAAM,KAAK,2CAAuB,CAAC,IAAI;QACrC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAEnD,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,OAAO,IAAI,MAAO,CAAC;IAE7C,gBAAgB;IAChB,OAAO,IAAI,qCAAiB,CAAC;QAC3B,WAAW,EAAE;YACX,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,IAAI;YACzC,IAAI,EAAE,IAAA,wCAAuB,EAAC,iBAAiB,CAAC;SACjD;QACD,MAAM;QACN,KAAK,EAAE;YACL,OAAO;YACP,MAAM;YACN,UAAU;SACX;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AA7CW,QAAA,aAAa,iBA6CxB"}
1
+ {"version":3,"file":"computeChange.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/computeChange.ts"],"names":[],"mappings":";;;AAAA,mDAAuE;AACvE,mDAA8C;AAC9C,yCAAiC;AAEjC,8EAGgD;AAEhD;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAC7B,MAAyB,EACzB,OAA0B,EACjB,EAAE;IACX,6CAA6C;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,UAAU,KAAK,WAAW,CAAC;AACpC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,EACnB,IAAI,EACJ,IAAI,GAIL,EAAiB,EAAE;IAClB,2BAA2B;IAC3B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhD,6DAA6D;IAC7D,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5C,+BAA+B;IAC/B,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,SAAS,EAAE;QAC5C,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,SAAS;KACvB,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,wCAAwC;AACjC,MAAM,gBAAgB,GAAG,CAC9B,KAAa,EACb,OAGC,EACD,EAAE;IACF,OAAO,CAAC,GAAG,IAA8B,EAA4B,EAAE;QACrE,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC3C,MAAM,IAAI,6BAAY,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtC,GAAG,OAAO,CAAC,QAAQ;gBACnB,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,gBAAgB,oBAkB3B;AAEF;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,EAC5B,OAAO,EACP,MAAM,GAIP,EAAqB,EAAE;IACtB,6CAA6C;IAC7C,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,kCAAkC;QAClC,IAAI,CAAC,MAAM;YAAE,OAAO,2CAAuB,CAAC,MAAM,CAAC;QAEnD,wCAAwC;QACxC,IAAI,CAAC,OAAO;YAAE,OAAO,2CAAuB,CAAC,OAAO,CAAC;QAErD,oBAAoB;QACpB,IAAI,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC;YACzC,OAAO,2CAAuB,CAAC,IAAI,CAAC;QAEtC,qCAAqC;QACrC,OAAO,2CAAuB,CAAC,MAAM,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC;IAEL,iCAAiC;IACjC,MAAM,UAAU,GACd,MAAM,KAAK,2CAAuB,CAAC,IAAI;QACrC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAEnD,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,OAAO,IAAI,MAAO,CAAC;IAE7C,gBAAgB;IAChB,OAAO,IAAI,qCAAiB,CAAC;QAC3B,WAAW,EAAE;YACX,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,IAAI;YACzC,IAAI,EAAE,IAAA,wBAAgB,EAAC,GAAG,EAAE,CAAC,IAAA,wCAAuB,EAAC,iBAAiB,CAAC,EAAE;gBACvE,OAAO,EAAE,mCAAmC;gBAC5C,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;aACzC,CAAC,EAAE;SACL;QACD,MAAM;QACN,KAAK,EAAE;YACL,OAAO;YACP,MAAM;YACN,UAAU;SACX;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAhDW,QAAA,aAAa,iBAgDxB"}
@@ -2,11 +2,14 @@ import { DomainEntity } from 'domain-objects';
2
2
  import { DeclastructDao } from '../../domain.objects/DeclastructDao';
3
3
  import { DeclastructProvider } from '../../domain.objects/DeclastructProvider';
4
4
  /**
5
- * .what = gets the DAO for a given resource from available providers
6
- * .why = enables automatic routing of operations to the correct provider
5
+ * .what = gets the DAO and provider context for a given resource from available providers
6
+ * .why = enables automatic routing of operations to the correct provider with proper context
7
7
  * .note = fails fast if multiple providers support same resource or if no provider is found
8
8
  */
9
9
  export declare const getDaoByResource: ({ resource, providers, }: {
10
10
  resource: DomainEntity<any>;
11
11
  providers: DeclastructProvider<any, any>[];
12
- }) => DeclastructDao<DomainEntity<any>, any, any>;
12
+ }) => {
13
+ dao: DeclastructDao<DomainEntity<any>, any, any>;
14
+ context: any;
15
+ };
@@ -3,30 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDaoByResource = void 0;
4
4
  const helpful_errors_1 = require("helpful-errors");
5
5
  /**
6
- * .what = gets the DAO for a given resource from available providers
7
- * .why = enables automatic routing of operations to the correct provider
6
+ * .what = gets the DAO and provider context for a given resource from available providers
7
+ * .why = enables automatic routing of operations to the correct provider with proper context
8
8
  * .note = fails fast if multiple providers support same resource or if no provider is found
9
9
  */
10
10
  const getDaoByResource = ({ resource, providers, }) => {
11
11
  // get resource class name
12
12
  const resourceClassName = resource.constructor.name;
13
- // find all DAOs applicable to this resource
14
- const daosApplicable = providers
13
+ // find all providers applicable to this resource
14
+ const providersApplicable = providers
15
15
  .map((provider) => ({
16
- from: provider.name,
16
+ name: provider.name,
17
17
  dao: provider.daos[resourceClassName],
18
+ context: provider.context,
18
19
  }))
19
20
  .filter((match) => match.dao);
20
21
  // reject if multiple providers support same resource
21
- if (daosApplicable.length > 1) {
22
+ if (providersApplicable.length > 1) {
22
23
  throw new helpful_errors_1.UnexpectedCodePathError('multiple providers support same resource', {
23
24
  resource: resourceClassName,
24
- providers: daosApplicable.map((m) => m.from),
25
+ providers: providersApplicable.map((m) => m.name),
25
26
  });
26
27
  }
27
- // reject if no DAO found
28
- const [matchedDao] = daosApplicable;
29
- if (!matchedDao) {
28
+ // reject if no provider found
29
+ const [matchedProvider] = providersApplicable;
30
+ if (!matchedProvider) {
30
31
  throw new helpful_errors_1.UnexpectedCodePathError('no DAO found for resource', {
31
32
  resourceClassName,
32
33
  availableProviders: providers.map((p) => ({
@@ -35,7 +36,7 @@ const getDaoByResource = ({ resource, providers, }) => {
35
36
  })),
36
37
  });
37
38
  }
38
- return matchedDao.dao;
39
+ return { dao: matchedProvider.dao, context: matchedProvider.context };
39
40
  };
40
41
  exports.getDaoByResource = getDaoByResource;
41
42
  //# sourceMappingURL=getDaoByResource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDaoByResource.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/getDaoByResource.ts"],"names":[],"mappings":";;;AACA,mDAAyD;AAKzD;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,SAAS,GAIV,EAA+C,EAAE;IAChD,0BAA0B;IAC1B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;IAEpD,4CAA4C;IAC5C,MAAM,cAAc,GAAG,SAAS;SAC7B,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;KACtC,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,qDAAqD;IACrD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,wCAAuB,CAC/B,0CAA0C,EAC1C;YACE,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAC7C,CACF,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,wCAAuB,CAAC,2BAA2B,EAAE;YAC7D,iBAAiB;YACjB,kBAAkB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aACxC,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC;AACxB,CAAC,CAAC;AA1CW,QAAA,gBAAgB,oBA0C3B"}
1
+ {"version":3,"file":"getDaoByResource.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/getDaoByResource.ts"],"names":[],"mappings":";;;AACA,mDAAyD;AAKzD;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,SAAS,GAIV,EAGC,EAAE;IACF,0BAA0B;IAC1B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;IAEpD,iDAAiD;IACjD,MAAM,mBAAmB,GAAG,SAAS;SAClC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACrC,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,qDAAqD;IACrD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,wCAAuB,CAC/B,0CAA0C,EAC1C;YACE,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClD,CACF,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,eAAe,CAAC,GAAG,mBAAmB,CAAC;IAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,wCAAuB,CAAC,2BAA2B,EAAE;YAC7D,iBAAiB;YACjB,kBAAkB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;aACxC,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC;AACxE,CAAC,CAAC;AA9CW,QAAA,gBAAgB,oBA8C3B"}
@@ -8,7 +8,7 @@ describe('getDaoByResource', () => {
8
8
  class DemoResource extends domain_objects_1.DomainEntity {
9
9
  }
10
10
  DemoResource.unique = ['id'];
11
- it('should return DAO when exactly one provider matches', () => {
11
+ it('should return DAO and context when exactly one provider matches', () => {
12
12
  const demoDao = {
13
13
  get: {
14
14
  byUnique: async () => null,
@@ -18,10 +18,11 @@ describe('getDaoByResource', () => {
18
18
  finsert: async (input) => input,
19
19
  },
20
20
  };
21
+ const providerContext = { testKey: 'testValue' };
21
22
  const provider = new DeclastructProvider_1.DeclastructProvider({
22
23
  name: 'test-provider',
23
24
  daos: { DemoResource: demoDao },
24
- context: {},
25
+ context: providerContext,
25
26
  hooks: {
26
27
  beforeAll: async () => { },
27
28
  afterAll: async () => { },
@@ -32,7 +33,8 @@ describe('getDaoByResource', () => {
32
33
  resource,
33
34
  providers: [provider],
34
35
  });
35
- expect(result).toBe(demoDao);
36
+ expect(result.dao).toBe(demoDao);
37
+ expect(result.context).toBe(providerContext);
36
38
  });
37
39
  it('should throw UnexpectedCodePathError when multiple providers support same resource', () => {
38
40
  const dao1 = {
@@ -1 +1 @@
1
- {"version":3,"file":"getDaoByResource.test.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/getDaoByResource.test.ts"],"names":[],"mappings":";;AAAA,mDAA8C;AAC9C,mDAA0C;AAG1C,kFAA+E;AAC/E,yDAAsD;AAEtD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAMhC,MAAM,YACJ,SAAQ,6BAA0B;;IAGpB,mBAAM,GAAG,CAAC,IAAI,CAAU,CAAC;IAGzC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAA2D;YACtE,GAAG,EAAE;gBACH,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;gBAC1B,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;aACxB;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAY;aACvC;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,yCAAmB,CAAC;YACvC,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;YAC/B,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACzB,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aACzB;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,IAAA,mCAAgB,EAAC;YAC9B,QAAQ;YACR,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC5F,MAAM,IAAI,GAA2D;YACnE,GAAG,EAAE;gBACH,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;gBAC1B,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;aACxB;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAY;aACvC;SACF,CAAC;QAEF,MAAM,IAAI,GAA2D;YACnE,GAAG,EAAE;gBACH,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;gBAC1B,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;aACxB;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAY;aACvC;SACF,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,yCAAmB,CAAC;YACxC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;YAC5B,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACzB,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aACzB;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,yCAAmB,CAAC;YACxC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;YAC5B,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACzB,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aACzB;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,IAAA,yBAAQ,EAAC,GAAG,EAAE,CAC1B,IAAA,mCAAgB,EAAC;YACf,QAAQ;YACR,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;SAClC,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,QAAQ,GAAG,IAAI,yCAAmB,CAAC;YACvC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,EAAE;YACX,KAAK,EAAE;gBACL,SAAS,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACzB,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;aACzB;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAElE,MAAM,KAAK,GAAG,IAAA,yBAAQ,EAAC,GAAG,EAAE,CAC1B,IAAA,mCAAgB,EAAC;YACf,QAAQ;YACR,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"getDaoByResource.test.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/getDaoByResource.test.ts"],"names":[],"mappings":"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"}
@@ -19,13 +19,13 @@ const planChanges = async (input, context) => {
19
19
  : context.bottleneck;
20
20
  // compute change for each resource with real-time logging
21
21
  const changes = await Promise.all(input.resources.map((resource) => bottleneck.schedule(async () => {
22
- // find DAO for this resource
23
- const dao = (0, getDaoByResource_1.getDaoByResource)({
22
+ // find DAO and provider context for this resource
23
+ const { dao, context: providerContext } = (0, getDaoByResource_1.getDaoByResource)({
24
24
  resource,
25
25
  providers: input.providers,
26
26
  });
27
- // fetch current remote state
28
- const remoteState = await dao.get.byUnique(resource, context);
27
+ // fetch current remote state using provider context
28
+ const remoteState = await dao.get.byUnique(resource, providerContext);
29
29
  // compute change
30
30
  const change = (0, computeChange_1.computeChange)({
31
31
  desired: resource,
@@ -1 +1 @@
1
- {"version":3,"file":"planChanges.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/planChanges.ts"],"names":[],"mappings":";;;AAIA,8EAAiF;AACjF,0EAAuE;AAEvE,+DAA4D;AAC5D,mDAAgD;AAChD,yDAAsD;AACtD,+CAA4C;AAE5C;;;;GAIG;AACI,MAAM,WAAW,GAAG,KAAK,EAC9B,KAIC,EACD,OAA6C,EACnB,EAAE;IAC5B,kCAAkC;IAClC,MAAM,UAAU,GACd,QAAQ,IAAI,OAAO,CAAC,UAAU;QAC5B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM;QAC3B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAEzB,0DAA0D;IAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/B,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;QAC7B,6BAA6B;QAC7B,MAAM,GAAG,GAAG,IAAA,mCAAgB,EAAC;YAC3B,QAAQ;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE9D,iBAAiB;QACjB,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC;YAC3B,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,KAAK,2CAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EACzD,EAAE,CACH,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CACH,CACF,CAAC;IAEF,cAAc;IACd,OAAO,IAAI,iCAAe,CAAC;QACzB,IAAI,EAAE,IAAA,yBAAW,EAAC,OAAO,CAAC;QAC1B,SAAS,EAAE,IAAA,+BAAc,EAAC,IAAI,IAAI,EAAE,CAAC;QACrC,IAAI,EAAE;YACJ,GAAG,EAAE,KAAK,CAAC,YAAY;SACxB;QACD,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC;AAvDW,QAAA,WAAW,eAuDtB"}
1
+ {"version":3,"file":"planChanges.js","sourceRoot":"","sources":["../../../src/domain.operations/plan/planChanges.ts"],"names":[],"mappings":";;;AAIA,8EAAiF;AACjF,0EAAuE;AAEvE,+DAA4D;AAC5D,mDAAgD;AAChD,yDAAsD;AACtD,+CAA4C;AAE5C;;;;GAIG;AACI,MAAM,WAAW,GAAG,KAAK,EAC9B,KAIC,EACD,OAA6C,EACnB,EAAE;IAC5B,kCAAkC;IAClC,MAAM,UAAU,GACd,QAAQ,IAAI,OAAO,CAAC,UAAU;QAC5B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM;QAC3B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAEzB,0DAA0D;IAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/B,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;QAC7B,kDAAkD;QAClD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,IAAA,mCAAgB,EAAC;YACzD,QAAQ;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,oDAAoD;QACpD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAEtE,iBAAiB;QACjB,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC;YAC3B,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,MAAM,GACV,MAAM,CAAC,MAAM,KAAK,2CAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,CACd,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EACzD,EAAE,CACH,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CACH,CACF,CAAC;IAEF,cAAc;IACd,OAAO,IAAI,iCAAe,CAAC;QACzB,IAAI,EAAE,IAAA,yBAAW,EAAC,OAAO,CAAC;QAC1B,SAAS,EAAE,IAAA,+BAAc,EAAC,IAAI,IAAI,EAAE,CAAC;QACrC,IAAI,EAAE;YACJ,GAAG,EAAE,KAAK,CAAC,YAAY;SACxB;QACD,OAAO;KACR,CAAC,CAAC;AACL,CAAC,CAAC;AAvDW,QAAA,WAAW,eAuDtB"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "declastruct",
3
3
  "author": "ehmpathy",
4
4
  "description": "Add declarative control to any resource constructs. Declare, plan, and apply within an observable pit-of-success.",
5
- "version": "1.1.2",
5
+ "version": "1.1.4",
6
6
  "repository": "ehmpathy/declastruct",
7
7
  "homepage": "https://github.com/ehmpathy/declastruct",
8
8
  "keywords": [
@@ -56,7 +56,7 @@
56
56
  "dependencies": {
57
57
  "bottleneck": "2.19.5",
58
58
  "commander": "14.0.2",
59
- "domain-objects": "0.25.7",
59
+ "domain-objects": "0.28.1",
60
60
  "helpful-errors": "1.4.0",
61
61
  "jest-diff": "30.0.2",
62
62
  "simple-log-methods": "0.6.1",