alchemy-effect 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/lib/app.d.ts +23 -0
  2. package/lib/app.d.ts.map +1 -0
  3. package/lib/app.js +26 -0
  4. package/lib/app.js.map +1 -0
  5. package/lib/apply.d.ts +22 -0
  6. package/lib/apply.d.ts.map +1 -0
  7. package/lib/apply.js +191 -0
  8. package/lib/apply.js.map +1 -0
  9. package/lib/approve.d.ts +15 -0
  10. package/lib/approve.d.ts.map +1 -0
  11. package/lib/approve.js +7 -0
  12. package/lib/approve.js.map +1 -0
  13. package/lib/binding.d.ts +58 -0
  14. package/lib/binding.d.ts.map +1 -0
  15. package/lib/binding.js +27 -0
  16. package/lib/binding.js.map +1 -0
  17. package/lib/capability.d.ts +11 -0
  18. package/lib/capability.d.ts.map +1 -0
  19. package/lib/capability.js +1 -0
  20. package/lib/capability.js.map +1 -0
  21. package/lib/destroy.d.ts +4 -0
  22. package/lib/destroy.d.ts.map +1 -0
  23. package/lib/destroy.js +1 -0
  24. package/lib/destroy.js.map +1 -0
  25. package/lib/dot-alchemy.d.ts +9 -0
  26. package/lib/dot-alchemy.d.ts.map +1 -0
  27. package/lib/dot-alchemy.js +14 -0
  28. package/lib/dot-alchemy.js.map +1 -0
  29. package/lib/env.d.ts +4 -0
  30. package/lib/env.d.ts.map +1 -0
  31. package/lib/env.js +33 -0
  32. package/lib/env.js.map +1 -0
  33. package/lib/event.d.ts +16 -0
  34. package/lib/event.d.ts.map +1 -0
  35. package/lib/event.js +1 -0
  36. package/lib/event.js.map +1 -0
  37. package/lib/index.d.ts +18 -0
  38. package/lib/index.d.ts.map +1 -0
  39. package/lib/index.js +18 -0
  40. package/lib/index.js.map +1 -0
  41. package/lib/phase.d.ts +2 -0
  42. package/lib/phase.d.ts.map +1 -0
  43. package/lib/phase.js +1 -0
  44. package/lib/phase.js.map +1 -0
  45. package/lib/physical-name.d.ts +4 -0
  46. package/lib/physical-name.d.ts.map +1 -0
  47. package/lib/physical-name.js +7 -0
  48. package/lib/physical-name.js.map +1 -0
  49. package/lib/plan.d.ts +98 -0
  50. package/lib/plan.d.ts.map +1 -0
  51. package/lib/plan.js +228 -0
  52. package/lib/plan.js.map +1 -0
  53. package/lib/policy.d.ts +37 -0
  54. package/lib/policy.d.ts.map +1 -0
  55. package/lib/policy.js +16 -0
  56. package/lib/policy.js.map +1 -0
  57. package/lib/provider.d.ts +57 -0
  58. package/lib/provider.d.ts.map +1 -0
  59. package/lib/provider.js +2 -0
  60. package/lib/provider.js.map +1 -0
  61. package/lib/reporter.d.ts +8 -0
  62. package/lib/reporter.d.ts.map +1 -0
  63. package/lib/reporter.js +4 -0
  64. package/lib/reporter.js.map +1 -0
  65. package/lib/resource.d.ts +38 -0
  66. package/lib/resource.d.ts.map +1 -0
  67. package/lib/resource.js +25 -0
  68. package/lib/resource.js.map +1 -0
  69. package/lib/runtime.d.ts +39 -0
  70. package/lib/runtime.d.ts.map +1 -0
  71. package/lib/runtime.js +54 -0
  72. package/lib/runtime.js.map +1 -0
  73. package/lib/service.d.ts +33 -0
  74. package/lib/service.d.ts.map +1 -0
  75. package/lib/service.js +4 -0
  76. package/lib/service.js.map +1 -0
  77. package/lib/state.d.ts +38 -0
  78. package/lib/state.d.ts.map +1 -0
  79. package/lib/state.js +66 -0
  80. package/lib/state.js.map +1 -0
  81. package/package.json +49 -0
  82. package/src/app.ts +43 -0
  83. package/src/apply.ts +318 -0
  84. package/src/approve.ts +13 -0
  85. package/src/binding.ts +144 -0
  86. package/src/capability.ts +19 -0
  87. package/src/destroy.ts +4 -0
  88. package/src/dot-alchemy.ts +17 -0
  89. package/src/env.ts +51 -0
  90. package/src/event.ts +27 -0
  91. package/src/index.ts +17 -0
  92. package/src/phase.ts +1 -0
  93. package/src/physical-name.ts +7 -0
  94. package/src/plan.ts +470 -0
  95. package/src/policy.ts +77 -0
  96. package/src/provider.ts +74 -0
  97. package/src/reporter.ts +8 -0
  98. package/src/resource.ts +68 -0
  99. package/src/runtime.ts +145 -0
  100. package/src/service.ts +55 -0
  101. package/src/state.ts +196 -0
package/lib/app.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Layer from "effect/Layer";
3
+ declare const App_base: Context.TagClass<App, "App", {
4
+ name: string;
5
+ stage: string;
6
+ }>;
7
+ export declare class App extends App_base {
8
+ }
9
+ declare const FailedToParseArg_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
10
+ readonly _tag: "FailedToParseArg";
11
+ } & Readonly<A>;
12
+ export declare class FailedToParseArg extends FailedToParseArg_base<{
13
+ message: string;
14
+ arg: string;
15
+ }> {
16
+ }
17
+ export declare const fromArgs: Layer.Layer<App, FailedToParseArg, never>;
18
+ export declare const app: (input: {
19
+ name: string;
20
+ stage: string;
21
+ }) => Layer.Layer<App, never, never>;
22
+ export {};
23
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAG1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;;UAK5B,MAAM;WACL,MAAM;;AAJjB,qBAAa,GAAI,SAAQ,QAMtB;CAAG;;;;AAEN,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;CAAG;AAeL,eAAO,MAAM,QAAQ,2CAQpB,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,OAAO;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,mCACvB,CAAC"}
package/lib/app.js ADDED
@@ -0,0 +1,26 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Data from "effect/Data";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ export class App extends Context.Tag("App")() {
6
+ }
7
+ export class FailedToParseArg extends Data.TaggedError("FailedToParseArg") {
8
+ }
9
+ const parseArg = Effect.fn(function* (arg, defaultValue) {
10
+ const i = process.argv.indexOf(arg);
11
+ return i !== -1 && i + 1 < process.argv.length
12
+ ? process.argv[i + 1]
13
+ : (defaultValue ??
14
+ (yield* Effect.fail(new FailedToParseArg({
15
+ message: `Argument ${arg} not found`,
16
+ arg: arg,
17
+ }))));
18
+ });
19
+ export const fromArgs = Layer.effect(App, Effect.gen(function* () {
20
+ return App.of({
21
+ name: yield* parseArg("--app"),
22
+ stage: yield* parseArg("--stage"),
23
+ });
24
+ }));
25
+ export const app = (input) => Layer.succeed(App, App.of(input));
26
+ //# sourceMappingURL=app.js.map
package/lib/app.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,MAAM,OAAO,GAAI,SAAQ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAMxC;CAAG;AAEN,MAAM,OAAO,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAGvE;CAAG;AAEL,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAW,EAAE,YAAqB;IACtE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM;QAC5C,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC,YAAY;YACX,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACjB,IAAI,gBAAgB,CAAC;gBACnB,OAAO,EAAE,YAAY,GAAG,YAAY;gBACpC,GAAG,EAAE,GAAG;aACT,CAAC,CACH,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAClC,GAAG,EACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,OAAO,GAAG,CAAC,EAAE,CAAC;QACZ,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9B,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;KAClC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,KAAsC,EAAE,EAAE,CAC5D,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC"}
package/lib/apply.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import type { Simplify } from "effect/Types";
4
+ import { type PlanRejected } from "./approve.ts";
5
+ import type { ApplyEvent } from "./event.ts";
6
+ import { type Delete, type Plan } from "./plan.ts";
7
+ import type { Resource } from "./resource.ts";
8
+ export interface PlanStatusSession {
9
+ emit: (event: ApplyEvent) => Effect.Effect<void>;
10
+ done: () => Effect.Effect<void>;
11
+ }
12
+ export interface ScopedPlanStatusSession extends PlanStatusSession {
13
+ note: (note: string) => Effect.Effect<void>;
14
+ }
15
+ declare const PlanStatusReporter_base: Context.TagClass<PlanStatusReporter, "PlanStatusReporter", {
16
+ start(plan: Plan): Effect.Effect<PlanStatusSession, never>;
17
+ }>;
18
+ export declare class PlanStatusReporter extends PlanStatusReporter_base {
19
+ }
20
+ export declare const apply: <P extends Plan, Err, Req>(plan: Effect.Effect<P, Err, Req>) => Effect.Effect<"update" extends P["phase"] ? { [id in keyof P["resources"]]: P["resources"][id] extends Delete<Resource> | undefined | never ? never : Simplify<P["resources"][id]["resource"]["attr"]>; } | ("destroy" extends P["phase"] ? void : never) : void, Err | PlanRejected, Req>;
21
+ export {};
22
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../src/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAC1D,OAAO,EAA4B,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC7C;;gBAKe,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC;;AAH9D,qBAAa,kBAAmB,SAAQ,uBAKrC;CAAG;AAEN,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,EAC5C,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,KAiR3B,MAAM,CAAC,MAAM,CAChB,QAAQ,SAAS,CAAC,CAAC,OAAO,CAAC,GAEnB,GACG,EAAE,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,SAC5C,MAAM,CAAC,QAAQ,CAAC,GAChB,SAAS,GACT,KAAK,GACL,KAAK,GACL,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GACrD,GAED,CAAC,SAAS,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GACjD,IAAI,EACR,GAAG,GAAG,YAAY,EAClB,GAAG,CACJ,CAAC"}
package/lib/apply.js ADDED
@@ -0,0 +1,191 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Option from "effect/Option";
4
+ import { PlanReviewer } from "./approve.js";
5
+ import {} from "./plan.js";
6
+ import { State } from "./state.js";
7
+ export class PlanStatusReporter extends Context.Tag("PlanStatusReporter")() {
8
+ }
9
+ export const apply = (plan) => plan.pipe(Effect.flatMap((plan) => Effect.gen(function* () {
10
+ const state = yield* State;
11
+ const outputs = {};
12
+ const reviewer = yield* Effect.serviceOption(PlanReviewer);
13
+ if (Option.isSome(reviewer)) {
14
+ yield* reviewer.value.approve(plan);
15
+ }
16
+ const events = yield* Effect.serviceOption(PlanStatusReporter);
17
+ const session = Option.isSome(events)
18
+ ? yield* events.value.start(plan)
19
+ : {
20
+ emit: () => Effect.void,
21
+ done: () => Effect.void,
22
+ };
23
+ const { emit, done } = session;
24
+ const applyBindings = Effect.fn(function* (resource, bindings, target) {
25
+ return yield* Effect.all(bindings.map(Effect.fn(function* (node) {
26
+ const binding = node.binding;
27
+ const provider = yield* binding.Tag;
28
+ const resourceId = node.binding.capability.resource.id;
29
+ const upstreamNode = plan.resources[resourceId];
30
+ const upstreamAttr = resource
31
+ ? yield* apply(upstreamNode)
32
+ : yield* Effect.dieMessage(`Resource ${resourceId} not found`);
33
+ const attach = provider.attach({
34
+ source: {
35
+ id: resourceId,
36
+ attr: upstreamAttr,
37
+ props: upstreamNode.resource.props,
38
+ },
39
+ props: node.binding.props,
40
+ target,
41
+ });
42
+ return Effect.isEffect(attach)
43
+ ? yield* attach
44
+ : attach;
45
+ })));
46
+ });
47
+ const apply = (node) => Effect.gen(function* () {
48
+ const checkpoint = (effect) => effect.pipe(Effect.flatMap((output) => state
49
+ .set(node.resource.id, {
50
+ id: node.resource.id,
51
+ type: node.resource.type,
52
+ status: node.action === "create" ? "created" : "updated",
53
+ props: node.resource.props,
54
+ output,
55
+ bindings: node.bindings,
56
+ })
57
+ .pipe(Effect.map(() => output))));
58
+ const id = node.resource.id;
59
+ const resource = node.resource;
60
+ const scopedSession = {
61
+ ...session,
62
+ note: (note) => session.emit({
63
+ id,
64
+ kind: "annotate",
65
+ message: note,
66
+ }),
67
+ };
68
+ return yield* (outputs[id] ??= yield* Effect.cached(Effect.gen(function* () {
69
+ const report = (status) => emit({
70
+ kind: "status-change",
71
+ id,
72
+ type: node.resource.type,
73
+ status,
74
+ });
75
+ if (node.action === "noop") {
76
+ return (yield* state.get(id))?.output;
77
+ }
78
+ else if (node.action === "create") {
79
+ let attr;
80
+ if (node.provider.stub) {
81
+ // stub the resource prior to resolving upstream resources or bindings if a stub is available
82
+ attr = yield* node.provider.stub({
83
+ id,
84
+ news: node.news,
85
+ session: scopedSession,
86
+ });
87
+ }
88
+ const bindings = yield* applyBindings(resource, node.bindings, {
89
+ id,
90
+ props: node.news,
91
+ attr,
92
+ });
93
+ yield* report("creating");
94
+ return yield* node.provider
95
+ .create({
96
+ id,
97
+ news: node.news,
98
+ bindings,
99
+ session: scopedSession,
100
+ })
101
+ .pipe(checkpoint, Effect.tap(() => report("created")));
102
+ }
103
+ else if (node.action === "update") {
104
+ const bindings = yield* applyBindings(resource, node.bindings, {
105
+ id,
106
+ props: node.news,
107
+ attr: node.attributes,
108
+ });
109
+ yield* report("updating");
110
+ // const bindings = yield* applyDependencies(node.bindings);
111
+ return yield* node.provider
112
+ .update({
113
+ id,
114
+ news: node.news,
115
+ olds: node.olds,
116
+ output: node.output,
117
+ bindings,
118
+ session: scopedSession,
119
+ })
120
+ .pipe(checkpoint, Effect.tap(() => report("updated")));
121
+ }
122
+ else if (node.action === "delete") {
123
+ yield* Effect.all(node.downstream.map((dep) => dep in plan.resources
124
+ ? apply(plan.resources[dep])
125
+ : Effect.void));
126
+ yield* report("deleting");
127
+ return yield* node.provider
128
+ .delete({
129
+ id,
130
+ olds: node.olds,
131
+ output: node.output,
132
+ session: scopedSession,
133
+ bindings: [],
134
+ })
135
+ .pipe(Effect.flatMap(() => state.delete(id)), Effect.tap(() => report("deleted")));
136
+ }
137
+ else if (node.action === "replace") {
138
+ const destroy = Effect.gen(function* () {
139
+ yield* report("deleting");
140
+ return yield* node.provider.delete({
141
+ id,
142
+ olds: node.olds,
143
+ output: node.output,
144
+ session: scopedSession,
145
+ bindings: [],
146
+ });
147
+ });
148
+ const create = Effect.gen(function* () {
149
+ yield* report("creating");
150
+ return yield* (node.provider
151
+ .create({
152
+ id,
153
+ news: node.news,
154
+ // TODO(sam): these need to only include attach actions
155
+ bindings: yield* applyBindings(resource, node.bindings, {
156
+ id,
157
+ props: node.news,
158
+ attr: node.attributes,
159
+ }),
160
+ session: scopedSession,
161
+ })
162
+ // TODO(sam): delete and create will conflict here, we need to extend the state store for replace
163
+ .pipe(checkpoint, Effect.tap(() => report("created"))));
164
+ });
165
+ if (!node.deleteFirst) {
166
+ const outputs = yield* create;
167
+ yield* destroy;
168
+ return outputs;
169
+ }
170
+ else {
171
+ yield* destroy;
172
+ return yield* create;
173
+ }
174
+ }
175
+ })));
176
+ });
177
+ const nodes = [
178
+ ...Object.entries(plan.resources),
179
+ ...Object.entries(plan.deletions),
180
+ ];
181
+ const resources = Object.fromEntries(yield* Effect.all(nodes.map(Effect.fn(function* ([id, node]) {
182
+ return [id, yield* apply(node)];
183
+ }))));
184
+ yield* done();
185
+ if (Object.keys(plan.resources).length === 0) {
186
+ // all resources are deleted, return undefined
187
+ return undefined;
188
+ }
189
+ return resources;
190
+ })));
191
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../src/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,YAAY,EAAqB,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAoD,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAWnC,MAAM,OAAO,kBAAmB,SAAQ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAKtE;CAAG;AAEN,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,IAAgC,EAChC,EAAE,CACF,IAAI,CAAC,IAAI,CACP,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC;IAC3B,MAAM,OAAO,GAAG,EAA6C,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAE3D,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,CAAC,CAAE;YACC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;YACvB,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;SACK,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAE/B,MAAM,aAAa,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EACvC,QAAkB,EAClB,QAAoB,EACpB,MAIC;QAED,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,QAAQ,CAAC,GAAG,CACV,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAGpB,CAAC;YACF,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;YAEpC,MAAM,UAAU,GAAW,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,QAAQ;gBAC3B,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC5B,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,YAAY,UAAU,YAAY,CACnC,CAAC;YAEN,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC7B,MAAM,EAAE;oBACN,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK;iBACnC;gBACD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,MAAM;aACP,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC5B,CAAC,CAAC,KAAK,CAAC,CAAC,MAA0C;gBACnD,CAAC,CAAC,MAAM,CAAC;QACb,CAAC,CAAC,CACH,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAqD,CAC9D,IAAI,EACJ,EAAE,CACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,UAAU,GAAG,CACjB,MAAsC,EACtC,EAAE,CACF,MAAM,CAAC,IAAI,CACT,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxB,KAAK;aACF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACrB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YACpB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACxD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC1B,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;aACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAClC,CACF,CAAC;QAEJ,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,MAAM,aAAa,GAAG;YACpB,GAAG,OAAO;YACV,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CACrB,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE;gBACF,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,IAAI;aACd,CAAC;SAC6B,CAAC;QAEpC,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CACjD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,MAAM,GAAG,CAAC,MAAmB,EAAE,EAAE,CACrC,IAAI,CAAC;gBACH,IAAI,EAAE,eAAe;gBACrB,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACxB,MAAM;aACP,CAAC,CAAC;YAEL,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,IAAI,IAAS,CAAC;gBACd,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACvB,6FAA6F;oBAC7F,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC/B,EAAE;wBACF,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,OAAO,EAAE,aAAa;qBACvB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,aAAa,CACnC,QAAQ,EACR,IAAI,CAAC,QAAQ,EACb;oBACE,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,IAAI;oBAChB,IAAI;iBACL,CACF,CAAC;gBAEF,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAE1B,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ;qBACxB,MAAM,CAAC;oBACN,EAAE;oBACF,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ;oBACR,OAAO,EAAE,aAAa;iBACvB,CAAC;qBACD,IAAI,CACH,UAAU,EACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CACpC,CAAC;YACN,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,aAAa,CACnC,QAAQ,EACR,IAAI,CAAC,QAAQ,EACb;oBACE,EAAE;oBACF,KAAK,EAAE,IAAI,CAAC,IAAI;oBAChB,IAAI,EAAE,IAAI,CAAC,UAAU;iBACtB,CACF,CAAC;gBAEF,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAE1B,4DAA4D;gBAE5D,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ;qBACxB,MAAM,CAAC;oBACN,EAAE;oBACF,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ;oBACR,OAAO,EAAE,aAAa;iBACvB,CAAC;qBACD,IAAI,CACH,UAAU,EACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CACpC,CAAC;YACN,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1B,GAAG,IAAI,IAAI,CAAC,SAAS;oBACnB,CAAC,CAAC,KAAK,CACH,IAAI,CAAC,SAAS,CACZ,GAAG,CACoC,CAC1C;oBACH,CAAC,CAAC,MAAM,CAAC,IAAI,CAChB,CACF,CAAC;gBACF,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAE1B,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ;qBACxB,MAAM,CAAC;oBACN,EAAE;oBACF,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,aAAa;oBACtB,QAAQ,EAAE,EAAE;iBACb,CAAC;qBACD,IAAI,CACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EACtC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CACpC,CAAC;YACN,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAClC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACjC,EAAE;wBACF,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,OAAO,EAAE,aAAa;wBACtB,QAAQ,EAAE,EAAE;qBACb,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACjC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1B,OAAO,KAAK,CAAC,CAAC,CACZ,IAAI,CAAC,QAAQ;yBACV,MAAM,CAAC;wBACN,EAAE;wBACF,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,uDAAuD;wBACvD,QAAQ,EAAE,KAAK,CAAC,CAAC,aAAa,CAC5B,QAAQ,EACR,IAAI,CAAC,QAAQ,EACb;4BACE,EAAE;4BACF,KAAK,EAAE,IAAI,CAAC,IAAI;4BAChB,IAAI,EAAE,IAAI,CAAC,UAAU;yBACtB,CACF;wBACD,OAAO,EAAE,aAAa;qBACvB,CAAC;wBACF,iGAAiG;yBAChG,IAAI,CACH,UAAU,EACV,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CACpC,CACJ,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC;oBAC9B,KAAK,CAAC,CAAC,OAAO,CAAC;oBACf,OAAO,OAAO,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,CAAC,OAAO,CAAC;oBACf,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAC,CAAC;IACL,CAAC,CAAqC,CAAC;IAEzC,MAAM,KAAK,GAAG;QACZ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;KAClC,CAAC;IAEF,MAAM,SAAS,GAAQ,MAAM,CAAC,WAAW,CACvC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CACP,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC;QAC7B,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAY,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CACH,CACF,CACF,CAAC;IACF,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACd,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,8CAA8C;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC,CACH,CAiBF,CAAC"}
@@ -0,0 +1,15 @@
1
+ import * as Context from "effect/Context";
2
+ import type * as Effect from "effect/Effect";
3
+ import type { Plan } from "./plan.ts";
4
+ declare const PlanRejected_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
5
+ readonly _tag: "PlanRejected";
6
+ } & Readonly<A>;
7
+ export declare class PlanRejected extends PlanRejected_base<{}> {
8
+ }
9
+ declare const PlanReviewer_base: Context.TagClass<PlanReviewer, "PlanReviewer", {
10
+ approve: <P extends Plan>(plan: P) => Effect.Effect<void, PlanRejected>;
11
+ }>;
12
+ export declare class PlanReviewer extends PlanReviewer_base {
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=approve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../src/approve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;;;;AAEtC,qBAAa,YAAa,SAAQ,kBAAiC,EAAE,CAAC;CAAG;;aAK5D,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC;;AAH3E,qBAAa,YAAa,SAAQ,iBAK/B;CAAG"}
package/lib/approve.js ADDED
@@ -0,0 +1,7 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Data from "effect/Data";
3
+ export class PlanRejected extends Data.TaggedError("PlanRejected") {
4
+ }
5
+ export class PlanReviewer extends Context.Tag("PlanReviewer")() {
6
+ }
7
+ //# sourceMappingURL=approve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.js","sourceRoot":"","sources":["../src/approve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAIpC,MAAM,OAAO,YAAa,SAAQ,IAAI,CAAC,WAAW,CAAC,cAAc,CAAK;CAAG;AAEzE,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAK1D;CAAG"}
@@ -0,0 +1,58 @@
1
+ import * as Context from "effect/Context";
2
+ import type { Effect } from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import type { Capability } from "./capability.ts";
5
+ import type { Resource } from "./resource.ts";
6
+ import type { Runtime } from "./runtime.ts";
7
+ export interface BindingProps {
8
+ [key: string]: any;
9
+ }
10
+ export declare const isBinding: (b: any) => b is AnyBinding;
11
+ export type AnyBinding<F extends Runtime = any> = Binding<F, any, any, string, boolean>;
12
+ export interface Binding<Run extends Runtime, Cap extends Capability = Capability, Props = any, Tag extends string = Cap["type"], IsCustom extends boolean = Cap["type"] extends Tag ? false : true> {
13
+ runtime: Run;
14
+ capability: Cap;
15
+ tag: Tag;
16
+ props: Props;
17
+ isCustom: IsCustom;
18
+ }
19
+ /** Tag for a Service that can bind a Capability to a Runtime */
20
+ export interface Bind<F extends Runtime, Cap extends Capability, Tag extends string> extends Context.Tag<`${F["type"]}(${Cap["type"]}, ${Tag})`, BindingService<F, Extract<Extract<Cap["resource"], Resource>["parent"], Resource>, F["props"]>> {
21
+ /** @internal phantom */
22
+ name: Tag;
23
+ }
24
+ export declare const Binding: {
25
+ <F extends (resource: any, props?: any) => AnyBinding & {
26
+ isCustom: true;
27
+ }>(runtime: ReturnType<F>["runtime"], type: ReturnType<F>["capability"]["type"], tag: ReturnType<F>["tag"]): F & BindingDeclaration<ReturnType<F>["runtime"], F>;
28
+ <F extends (resource: any, props?: any) => AnyBinding & {
29
+ isCustom: false;
30
+ }>(runtime: ReturnType<F>["runtime"], type: ReturnType<F>["capability"]["type"]): F & BindingDeclaration<ReturnType<F>["runtime"], F>;
31
+ };
32
+ export interface BindingDeclaration<Run extends Runtime, F extends (target: any, props?: any) => AnyBinding<Run>, Tag extends string = ReturnType<F>["tag"], Cap extends Capability = ReturnType<F>["capability"]> {
33
+ provider: {
34
+ effect<Err, Req>(eff: Effect<BindingService<Run, Parameters<F>[0], Parameters<F>[1]>, Err, Req>): Layer.Layer<Bind<Run, Cap, Tag>, Err, Req>;
35
+ succeed(service: BindingService<Run, Parameters<F>[0], Parameters<F>[1]>): Layer.Layer<Bind<Run, Cap, Tag>>;
36
+ };
37
+ }
38
+ export type BindingService<Target extends Runtime = any, Source extends Resource = Resource, Props = any, AttachReq = never, DetachReq = never> = {
39
+ attach: (props: {
40
+ source: {
41
+ id: string;
42
+ attr: Source["attr"];
43
+ props: Source["props"];
44
+ };
45
+ props: Props;
46
+ target: {
47
+ id: string;
48
+ props: Target["props"];
49
+ attr: Target["attr"];
50
+ };
51
+ }) => Effect<Partial<Target["binding"]> | void, never, AttachReq> | Partial<Target["binding"]>;
52
+ detach?: (resource: {
53
+ id: string;
54
+ attr: Source["attr"];
55
+ props: Source["props"];
56
+ }, from: Target["binding"]) => Effect<void, never, DetachReq> | void;
57
+ };
58
+ //# sourceMappingURL=binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,UAC4B,CAAC;AAErE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,GAAG,IAAI,OAAO,CACvD,CAAC,EACD,GAAG,EACH,GAAG,EACH,MAAM,EACN,OAAO,CACR,CAAC;AAEF,MAAM,WAAW,OAAO,CACtB,GAAG,SAAS,OAAO,EACnB,GAAG,SAAS,UAAU,GAAG,UAAU,EACnC,KAAK,GAAG,GAAG,EACX,GAAG,SAAS,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAChC,QAAQ,SAAS,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,IAAI;IAEjE,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,gEAAgE;AAChE,MAAM,WAAW,IAAI,CACnB,CAAC,SAAS,OAAO,EACjB,GAAG,SAAS,UAAU,EACtB,GAAG,SAAS,MAAM,CAClB,SAAQ,OAAO,CAAC,GAAG,CACjB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,EACtC,cAAc,CACZ,CAAC,EACD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAC/D,CAAC,CAAC,OAAO,CAAC,CACX,CACF;IACD,wBAAwB;IACxB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,eAAO,MAAM,OAAO,EAAE;IACpB,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,UAAU,GAAG;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,EACxE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAEjC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EACzC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GACxB,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,UAAU,GAAG;QAAE,QAAQ,EAAE,KAAK,CAAA;KAAE,EACzE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAEjC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GACxC,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;CA2BxD,CAAC;AAEF,MAAM,WAAW,kBAAkB,CACjC,GAAG,SAAS,OAAO,EACnB,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,EACvD,GAAG,SAAS,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACzC,GAAG,SAAS,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAEpD,QAAQ,EAAE;QACR,MAAM,CAAC,GAAG,EAAE,GAAG,EACb,GAAG,EAAE,MAAM,CACT,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,GAAG,EACH,GAAG,CACJ,GACA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,OAAO,CACL,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC/D,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,MAAM,cAAc,CACxB,MAAM,SAAS,OAAO,GAAG,GAAG,EAC5B,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,KAAK,EACjB,SAAS,GAAG,KAAK,IACf;IACF,MAAM,EAAE,CAAC,KAAK,EAAE;QACd,MAAM,EAAE;YACN,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;SACxB,CAAC;QACF,KAAK,EAAE,KAAK,CAAC;QACb,MAAM,EAAE;YACN,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SACtB,CAAC;KACH,KACG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,GAC3D,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,CACP,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KACxB,EACD,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,KACpB,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;CAC5C,CAAC"}
package/lib/binding.js ADDED
@@ -0,0 +1,27 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Layer from "effect/Layer";
3
+ export const isBinding = (b) => "runtime" in b && "capability" in b && "tag" in b && "output" in b;
4
+ export const Binding = (runtime, cap, tag) => {
5
+ const Tag = Context.Tag(`${runtime.type}(${cap}, ${tag ?? cap})`)();
6
+ return Object.assign((resource, props) => ({
7
+ runtime,
8
+ capability: {
9
+ type: cap,
10
+ resource,
11
+ constraint: undefined,
12
+ sid: `${cap}${resource.id}`.replace(/[^a-zA-Z0-9]/g, ""),
13
+ label: `${cap}(${resource.id})`,
14
+ },
15
+ props,
16
+ isCustom: false,
17
+ tag: tag ?? cap,
18
+ // @ts-expect-error - we smuggle this property because it interacts poorly with inference
19
+ Tag,
20
+ }), {
21
+ provider: {
22
+ effect: (eff) => Layer.effect(Tag, eff),
23
+ succeed: (service) => Layer.succeed(Tag, service),
24
+ },
25
+ });
26
+ };
27
+ //# sourceMappingURL=binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAStC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAM,EAAmB,EAAE,CACnD,SAAS,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC;AAyCrE,MAAM,CAAC,MAAM,OAAO,GAYhB,CAAC,OAAY,EAAE,GAAW,EAAE,GAAY,EAAE,EAAE;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;IACpE,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,QAAa,EAAE,KAAW,EAAE,EAAE,CAC7B,CAAC;QACC,OAAO;QACP,UAAU,EAAE;YACV,IAAI,EAAE,GAAG;YACT,QAAQ;YACR,UAAU,EAAE,SAAU;YACtB,GAAG,EAAE,GAAG,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;YACxD,KAAK,EAAE,GAAG,GAAG,IAAI,QAAQ,CAAC,EAAE,GAAG;SACV;QACvB,KAAK;QACL,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,GAAG,IAAI,GAAG;QACf,yFAAyF;QACzF,GAAG;KACJ,CAAiD,EACpD;QACE,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;YACvC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;SAClD;KACyC,CAC7C,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface ICapability<Type extends string = string, Resource = unknown, Constraint = unknown> {
2
+ type: Type;
3
+ resource: Resource;
4
+ constraint: Constraint;
5
+ sid: string;
6
+ label: string;
7
+ }
8
+ export interface Capability<Type extends string = string, Resource = unknown, Constraint = unknown> extends ICapability<Type, Resource, Constraint> {
9
+ new (): {};
10
+ }
11
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAC1B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,QAAQ,GAAG,OAAO,EAClB,UAAU,GAAG,OAAO;IAEpB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU,CACzB,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,QAAQ,GAAG,OAAO,EAClB,UAAU,GAAG,OAAO,CACpB,SAAQ,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;IAC/C,QAAQ,EAAE,CAAC;CACZ"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type * as Effect from "effect/Effect";
2
+ import type { App } from "./app.ts";
3
+ export declare const destroy: () => Effect.Effect<void, never, App>;
4
+ //# sourceMappingURL=destroy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy.d.ts","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAC,OAAO,CAAC,MAAM,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC"}
package/lib/destroy.js ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=destroy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { FileSystem } from "@effect/platform";
2
+ import * as Context from "effect/Context";
3
+ import * as Layer from "effect/Layer";
4
+ declare const DotAlchemy_base: Context.TagClass<DotAlchemy, ".alchemy", string>;
5
+ export declare class DotAlchemy extends DotAlchemy_base {
6
+ }
7
+ export declare const dotAlchemy: Layer.Layer<DotAlchemy, import("@effect/platform/Error").PlatformError, FileSystem.FileSystem>;
8
+ export {};
9
+ //# sourceMappingURL=dot-alchemy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dot-alchemy.d.ts","sourceRoot":"","sources":["../src/dot-alchemy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;;AAGtC,qBAAa,UAAW,SAAQ,eAA6C;CAAG;AAEhF,eAAO,MAAM,UAAU,gGAQtB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FileSystem } from "@effect/platform";
2
+ import * as Context from "effect/Context";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ import path from "node:path";
6
+ export class DotAlchemy extends Context.Tag(".alchemy")() {
7
+ }
8
+ export const dotAlchemy = Layer.effect(DotAlchemy, Effect.gen(function* () {
9
+ const fs = yield* FileSystem.FileSystem;
10
+ const dir = path.join(process.cwd(), ".alchemy");
11
+ yield* fs.makeDirectory(dir, { recursive: true });
12
+ return dir;
13
+ }));
14
+ //# sourceMappingURL=dot-alchemy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dot-alchemy.js","sourceRoot":"","sources":["../src/dot-alchemy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,UAAW,SAAQ,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAsB;CAAG;AAEhF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CACpC,UAAU,EACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACjD,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,CACH,CAAC"}
package/lib/env.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare const toEnvKey: <const ID extends string, const Suffix extends string>(id: ID, suffix: Suffix) => `${Replace<string extends ID ? ID : Uppercase<ID>, "">}_${Replace<string extends Suffix ? Suffix : Uppercase<Suffix>, "">}`;
2
+ type Replace<S extends string, Accum extends string = ""> = string extends S ? S : S extends "" ? Accum : S extends `${infer S}${infer Rest}` ? S extends "-" ? Replace<Rest, `${Accum}_`> : Replace<Rest, `${Accum}${S}`> : Accum;
3
+ export {};
4
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,CAAC,MAAM,SAAS,MAAM,EAC3E,IAAI,EAAE,EACN,QAAQ,MAAM,gIACmD,CAAC;AAQpE,KAAK,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,GAAG,EAAE,IAAI,MAAM,SAAS,CAAC,GACxE,CAAC,GACD,CAAC,SAAS,EAAE,GACV,KAAK,GACL,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,GACjC,CAAC,SAAS,GAAG,GACX,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,GAC1B,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAC/B,KAAK,CAAC"}
package/lib/env.js ADDED
@@ -0,0 +1,33 @@
1
+ export const toEnvKey = (id, suffix) => `${replace(toUpper(id))}_${replace(toUpper(suffix))}`;
2
+ const toUpper = (str) => str.toUpperCase();
3
+ const replace = (str) => str.replace(/-/g, "_");
4
+ function _test_both_literals() {
5
+ const key = toEnvKey("my-id", "my-suffix");
6
+ const _ = "MY_ID_MY_SUFFIX";
7
+ // @ts-expect-error
8
+ const _err = "MY_ID_MY_SUFFIX2";
9
+ }
10
+ function _test_replace_wide_string() {
11
+ const ___ = toUpper(undefined);
12
+ const id = "my-id";
13
+ const key = toEnvKey(id, "my-suffix");
14
+ const _ = "MY_ID_MY_SUFFIX";
15
+ const _2 = `${id}_MY_SUFFIX`;
16
+ // @ts-expect-error
17
+ const _err = "MY_ID_MY_SUFFIX2";
18
+ // @ts-expect-error
19
+ const _err2 = `${id}_MY_SUFFIX2`;
20
+ }
21
+ function _test_replace_wide_suffix() {
22
+ const ___ = toUpper(undefined);
23
+ const id = "my-id";
24
+ const suffix = "my-suffix";
25
+ const key = toEnvKey(id, suffix);
26
+ const _ = "MY_ID_MY_SUFFIX";
27
+ const _2 = `MY_ID_${suffix}`;
28
+ // @ts-expect-error
29
+ const _err = "WRONG_PREFIX_MY_SUFFIX";
30
+ // @ts-expect-error
31
+ const _err2 = `WRONG_PREFIX_${suffix}`;
32
+ }
33
+ //# sourceMappingURL=env.js.map
package/lib/env.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,EAAM,EACN,MAAc,EACd,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAW,CAAC;AAEpE,MAAM,OAAO,GAAG,CAAyB,GAAM,EAAE,EAAE,CACjD,GAAG,CAAC,WAAW,EAAyC,CAAC;AAE3D,MAAM,OAAO,GAAG,CAAyB,GAAM,EAAE,EAAE,CACjD,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAe,CAAC;AAYvC,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAe,iBAAiB,CAAC;IACxC,mBAAmB;IACnB,MAAM,IAAI,GAAe,kBAAkB,CAAC;AAC9C,CAAC;AACD,SAAS,yBAAyB;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAoB,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAW,OAAO,CAAC;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACtC,MAAM,CAAC,GAAe,iBAAiB,CAAC;IACxC,MAAM,EAAE,GAAe,GAAG,EAAE,YAAqB,CAAC;IAClD,mBAAmB;IACnB,MAAM,IAAI,GAAe,kBAAkB,CAAC;IAC5C,mBAAmB;IACnB,MAAM,KAAK,GAAe,GAAG,EAAE,aAAsB,CAAC;AACxD,CAAC;AAED,SAAS,yBAAyB;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAoB,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,OAAO,CAAC;IACnB,MAAM,MAAM,GAAG,WAAqB,CAAC;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,GAAe,iBAAiB,CAAC;IACxC,MAAM,EAAE,GAAe,SAAS,MAAM,EAAW,CAAC;IAClD,mBAAmB;IACnB,MAAM,IAAI,GAAe,wBAAwB,CAAC;IAClD,mBAAmB;IACnB,MAAM,KAAK,GAAe,gBAAgB,MAAM,EAAE,CAAC;AACrD,CAAC"}
package/lib/event.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ export type ApplyStatus = "pending" | "creating" | "created" | "updating" | "updated" | "deleting" | "deleted" | "success" | "fail";
2
+ export type ApplyEvent = AnnotateEvent | StatusChangeEvent;
3
+ export interface AnnotateEvent {
4
+ kind: "annotate";
5
+ id: string;
6
+ message: string;
7
+ }
8
+ export interface StatusChangeEvent {
9
+ kind: "status-change";
10
+ id: string;
11
+ type: string;
12
+ status: ApplyStatus;
13
+ message?: string;
14
+ bindingId?: string;
15
+ }
16
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
package/lib/event.js ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":""}
package/lib/index.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ export * from "./app.ts";
2
+ export * from "./apply.ts";
3
+ export * from "./approve.ts";
4
+ export * from "./binding.ts";
5
+ export * from "./capability.ts";
6
+ export * from "./destroy.ts";
7
+ export * from "./dot-alchemy.ts";
8
+ export * from "./env.ts";
9
+ export * from "./event.ts";
10
+ export * from "./phase.ts";
11
+ export * from "./plan.ts";
12
+ export * from "./policy.ts";
13
+ export * from "./provider.ts";
14
+ export * from "./resource.ts";
15
+ export * from "./runtime.ts";
16
+ export * from "./service.ts";
17
+ export * as State from "./state.ts";
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,18 @@
1
+ export * from "./app.js";
2
+ export * from "./apply.js";
3
+ export * from "./approve.js";
4
+ export * from "./binding.js";
5
+ export * from "./capability.js";
6
+ export * from "./destroy.js";
7
+ export * from "./dot-alchemy.js";
8
+ export * from "./env.js";
9
+ export * from "./event.js";
10
+ export * from "./phase.js";
11
+ export * from "./plan.js";
12
+ export * from "./policy.js";
13
+ export * from "./provider.js";
14
+ export * from "./resource.js";
15
+ export * from "./runtime.js";
16
+ export * from "./service.js";
17
+ export * as State from "./state.js";
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}