alchemy 2.0.0-beta.68 → 2.0.0-beta.69
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.
- package/bin/exec.js +124 -16
- package/bin/exec.js.map +1 -1
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +33 -0
- package/lib/Apply.js.map +1 -1
- package/lib/Cli/LoggingCli.d.ts.map +1 -1
- package/lib/Cli/LoggingCli.js +9 -1
- package/lib/Cli/LoggingCli.js.map +1 -1
- package/lib/Cloudflare/Access/Group.d.ts +11 -2
- package/lib/Cloudflare/Access/Group.d.ts.map +1 -1
- package/lib/Cloudflare/Access/Group.js.map +1 -1
- package/lib/Cloudflare/Access/Policy.d.ts +11 -2
- package/lib/Cloudflare/Access/Policy.d.ts.map +1 -1
- package/lib/Cloudflare/Access/Policy.js.map +1 -1
- package/lib/Cloudflare/Account/Member.d.ts +1 -1
- package/lib/Cloudflare/Account/Member.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.js +8 -1
- package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
- package/lib/Plan.d.ts +23 -4
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +226 -22
- package/lib/Plan.js.map +1 -1
- package/lib/Rename.d.ts +132 -0
- package/lib/Rename.d.ts.map +1 -0
- package/lib/Rename.js +117 -0
- package/lib/Rename.js.map +1 -0
- package/lib/Resource.d.ts +9 -0
- package/lib/Resource.d.ts.map +1 -1
- package/lib/Resource.js +11 -0
- package/lib/Resource.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +14 -14
- package/lib/Sync.d.ts.map +1 -1
- package/lib/Sync.js +1 -0
- package/lib/Sync.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/Apply.ts +47 -0
- package/src/Cli/LoggingCli.ts +10 -1
- package/src/Cloudflare/Access/Group.ts +16 -2
- package/src/Cloudflare/Access/Policy.ts +16 -2
- package/src/Cloudflare/Website/StaticSite.ts +8 -1
- package/src/Plan.ts +284 -28
- package/src/Rename.ts +135 -0
- package/src/Resource.ts +27 -0
- package/src/Sync.ts +1 -0
- package/src/index.ts +1 -0
package/src/Resource.ts
CHANGED
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
} from "./ProviderMode.ts";
|
|
17
17
|
import { ref as makeRef } from "./Ref.ts";
|
|
18
18
|
import { RemovalPolicy } from "./RemovalPolicy.ts";
|
|
19
|
+
import { RenamePolicy } from "./Rename.ts";
|
|
19
20
|
import { Self } from "./Self.ts";
|
|
20
21
|
import { Stack } from "./Stack.ts";
|
|
21
22
|
|
|
@@ -136,6 +137,15 @@ export interface ResourceLike<
|
|
|
136
137
|
* during dev); `undefined` means the run default (`AlchemyContext.dev`).
|
|
137
138
|
*/
|
|
138
139
|
Mode: ProviderMode | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* Former FQNs this resource's state may still be persisted under,
|
|
142
|
+
* captured from the ambient {@link RenamePolicy} at registration (via
|
|
143
|
+
* `.pipe(renamedFrom("OldId"))`) and resolved against the same namespace
|
|
144
|
+
* as the resource's own FQN. The planner migrates a state row found at a
|
|
145
|
+
* former FQN to {@link FQN} instead of planning a create+delete
|
|
146
|
+
* replacement — see `renamedFrom` in Rename.ts for the full semantics.
|
|
147
|
+
*/
|
|
148
|
+
FormerFqns: readonly string[] | undefined;
|
|
139
149
|
/** @internal phantom */
|
|
140
150
|
Attributes: Attributes;
|
|
141
151
|
/** @internal phantom */
|
|
@@ -381,6 +391,23 @@ export function Resource<R extends ResourceLike>(
|
|
|
381
391
|
Effect.map(Option.getOrUndefined),
|
|
382
392
|
),
|
|
383
393
|
Mode: ambientMode,
|
|
394
|
+
// Bare-string former ids resolve against the SAME namespace as the
|
|
395
|
+
// resource's own id, so `renamedFrom("Site/Worker")` declared at the
|
|
396
|
+
// caller's level claims `<callerNs>/Site/Worker`; the `{ fqn }` form
|
|
397
|
+
// is absolute (cross-namespace moves).
|
|
398
|
+
FormerFqns: yield* Effect.serviceOption(RenamePolicy).pipe(
|
|
399
|
+
Effect.map(
|
|
400
|
+
Option.match({
|
|
401
|
+
onNone: () => undefined,
|
|
402
|
+
onSome: (formerIds) =>
|
|
403
|
+
formerIds.map((formerId) =>
|
|
404
|
+
typeof formerId === "string"
|
|
405
|
+
? toFqn(namespace, formerId)
|
|
406
|
+
: formerId.fqn,
|
|
407
|
+
),
|
|
408
|
+
}),
|
|
409
|
+
),
|
|
410
|
+
),
|
|
384
411
|
bind,
|
|
385
412
|
toString(this: typeof target) {
|
|
386
413
|
return `Resource<${this.Type}>(${this.LogicalId})`;
|
package/src/Sync.ts
CHANGED
|
@@ -472,6 +472,7 @@ export const plan = (stack: {
|
|
|
472
472
|
Provider: Provider(persisted.resourceType),
|
|
473
473
|
RemovalPolicy: persisted.removalPolicy,
|
|
474
474
|
Adopt: undefined,
|
|
475
|
+
FormerFqns: undefined,
|
|
475
476
|
Mode: persisted.providerMode,
|
|
476
477
|
RuntimeContext: undefined!,
|
|
477
478
|
Providers: undefined,
|
package/src/index.ts
CHANGED
|
@@ -30,6 +30,7 @@ export { remote } from "./ProviderMode.ts";
|
|
|
30
30
|
export * from "./Random.ts";
|
|
31
31
|
export * from "./Ref.ts";
|
|
32
32
|
export * as RemovalPolicy from "./RemovalPolicy.ts";
|
|
33
|
+
export { renamedFrom } from "./Rename.ts";
|
|
33
34
|
export * from "./Resource.ts";
|
|
34
35
|
export * as Schema from "./Schema.ts";
|
|
35
36
|
export * as Server from "./Server/index.ts";
|