@knpkv/alchemy-console 0.3.2 → 0.4.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.
- package/README.md +78 -23
- package/dist/api.d.ts +16 -2
- package/dist/api.d.ts.map +1 -1
- package/dist/client/assets/empty-state-creature-CWMFWDpa.svg +60 -0
- package/dist/client/assets/index-C5EGKyzJ.js +58 -0
- package/dist/client/assets/{index-CrA-MUdX.css → index-CHwWf6VU.css} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/resource-identity.d.ts +7 -0
- package/dist/internal/resource-identity.d.ts.map +1 -0
- package/dist/internal/resource-identity.js +180 -0
- package/dist/internal/resource-identity.js.map +1 -0
- package/dist/local-state.d.ts.map +1 -1
- package/dist/local-state.js +11 -1
- package/dist/local-state.js.map +1 -1
- package/dist/outputs.d.ts +5 -0
- package/dist/outputs.d.ts.map +1 -0
- package/dist/outputs.js +15 -0
- package/dist/outputs.js.map +1 -0
- package/dist/presentation/ResourceDetailView.d.ts +13 -0
- package/dist/presentation/ResourceDetailView.d.ts.map +1 -0
- package/dist/presentation/ResourceDetailView.js +12 -0
- package/dist/presentation/ResourceDetailView.js.map +1 -0
- package/dist/presentation/ResourceTree.d.ts +18 -0
- package/dist/presentation/ResourceTree.d.ts.map +1 -0
- package/dist/presentation/ResourceTree.js +36 -0
- package/dist/presentation/ResourceTree.js.map +1 -0
- package/dist/presentation/StackDetailView.d.ts +15 -0
- package/dist/presentation/StackDetailView.d.ts.map +1 -0
- package/dist/presentation/StackDetailView.js +36 -0
- package/dist/presentation/StackDetailView.js.map +1 -0
- package/dist/presentation/StackListView.d.ts +4 -2
- package/dist/presentation/StackListView.d.ts.map +1 -1
- package/dist/presentation/StackListView.js +4 -4
- package/dist/presentation/StackListView.js.map +1 -1
- package/dist/presentation/detail-model.d.ts +40 -0
- package/dist/presentation/detail-model.d.ts.map +1 -0
- package/dist/presentation/detail-model.js +2 -0
- package/dist/presentation/detail-model.js.map +1 -0
- package/dist/presentation/detail-parts.d.ts +28 -0
- package/dist/presentation/detail-parts.d.ts.map +1 -0
- package/dist/presentation/detail-parts.js +42 -0
- package/dist/presentation/detail-parts.js.map +1 -0
- package/dist/presentation/resource-graph.d.ts +4 -0
- package/dist/presentation/resource-graph.d.ts.map +1 -0
- package/dist/presentation/resource-graph.js +25 -0
- package/dist/presentation/resource-graph.js.map +1 -0
- package/dist/s3-live.d.ts +1 -0
- package/dist/s3-live.d.ts.map +1 -1
- package/dist/s3-live.js +20 -14
- package/dist/s3-live.js.map +1 -1
- package/dist/s3-reader.d.ts +2 -1
- package/dist/s3-reader.d.ts.map +1 -1
- package/dist/s3-reader.js.map +1 -1
- package/dist/s3-state.d.ts.map +1 -1
- package/dist/s3-state.js +13 -1
- package/dist/s3-state.js.map +1 -1
- package/dist/schema.d.ts +22 -3
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +16 -5
- package/dist/schema.js.map +1 -1
- package/dist/server/Catalog.d.ts.map +1 -1
- package/dist/server/Catalog.js +15 -2
- package/dist/server/Catalog.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +8 -8
- package/dist/state.js.map +1 -1
- package/dist/views/empty-state-creature.svg +60 -0
- package/dist/views/index.js +705 -105
- package/dist/views/style.css +1 -1
- package/dist/views.d.ts +5 -0
- package/dist/views.d.ts.map +1 -1
- package/dist/views.js +2 -1
- package/dist/views.js.map +1 -1
- package/package.json +3 -3
- package/dist/client/assets/index-CNQi3IQH.js +0 -58
|
@@ -40,13 +40,13 @@ const IssueNotice = ({ issue }) => {
|
|
|
40
40
|
return (_jsxs(Notice, { className: "ac-notice", tone: message.tone, children: [_jsxs("p", { children: [_jsx("strong", { children: message.title }), " ", message.body] }), _jsx("p", { className: "ac-notice-hint", children: message.hint })] }));
|
|
41
41
|
};
|
|
42
42
|
/** Group only returned rows; null metadata stays Unknown and zero remains a known count. */
|
|
43
|
-
const StackGroup = ({ app, stacks }) => {
|
|
43
|
+
const StackGroup = ({ app, stackHref, stacks }) => {
|
|
44
44
|
const headingId = useId();
|
|
45
|
-
return (_jsxs("section", { className: "ac-group", children: [_jsxs("div", { className: "ac-group-heading", children: [_jsx(Text, { as: "h2", id: headingId, variant: "section-title", children: app }), _jsxs(Text, { variant: "meta", tone: "secondary", children: [stacks.length, " ", stacks.length === 1 ? "stage" : "stages"] })] }), _jsx("div", { className: "ac-table-wrap", children: _jsxs("table", { className: "ac-table", "aria-labelledby": headingId, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { scope: "col", children: "Stage" }), _jsx("th", { scope: "col", children: "Backend" }), _jsx("th", { scope: "col", children: "Alchemy" }), _jsx("th", { scope: "col", children: "Last deploy" }), _jsx("th", { scope: "col", children: "Resources" })] }) }), _jsx("tbody", { children: stacks.map((stack) => (_jsxs("tr", { children: [_jsx("th", { scope: "row", children: _jsxs("span", { className: "ac-stage", children: [_jsxs("span", { className: "ac-sr-only", children: [app, " "] }), stack.stage] }) }), _jsxs("td", { children: [_jsx("span", { className: "ac-sr-only", children: "Backend: " }), stack.backend === "s3" ? "State bucket" : "Local"] }), _jsxs("td", { className: "ac-version", children: [_jsx("span", { className: "ac-mobile-label", children: "Alchemy " }), stack.alchemyVersion ?? "Unknown"] }), _jsxs("td", { children: [_jsx("span", { className: "ac-mobile-label", children: "Last deploy " }), stack.lastDeploy ?? "Unknown"] }), _jsxs("td", { children: [_jsx("span", { className: "ac-mobile-label", children: "Resources " }), stack.resourceCount
|
|
45
|
+
return (_jsxs("section", { className: "ac-group", children: [_jsxs("div", { className: "ac-group-heading", children: [_jsx(Text, { as: "h2", id: headingId, variant: "section-title", children: app }), _jsxs(Text, { variant: "meta", tone: "secondary", children: [stacks.length, " ", stacks.length === 1 ? "stage" : "stages"] })] }), _jsx("div", { className: "ac-table-wrap", children: _jsxs("table", { className: "ac-table", "aria-labelledby": headingId, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { scope: "col", children: "Stage" }), _jsx("th", { scope: "col", children: "Backend" }), _jsx("th", { scope: "col", children: "Alchemy" }), _jsx("th", { scope: "col", children: "Last deploy" }), _jsx("th", { scope: "col", children: "Resources" })] }) }), _jsx("tbody", { children: stacks.map((stack) => (_jsxs("tr", { children: [_jsx("th", { scope: "row", children: stackHref === undefined ? (_jsxs("span", { className: "ac-stage", children: [_jsxs("span", { className: "ac-sr-only", children: [app, " "] }), stack.stage] })) : (_jsxs("a", { className: "ac-stage ac-list-link", "data-rly-hit-area": true, href: stackHref(stack), children: [_jsxs("span", { className: "ac-sr-only", children: [app, " "] }), stack.stage] })) }), _jsxs("td", { children: [_jsx("span", { className: "ac-sr-only", children: "Backend: " }), stack.backend === "s3" ? "State bucket" : "Local"] }), _jsxs("td", { className: "ac-version", children: [_jsx("span", { className: "ac-mobile-label", children: "Alchemy " }), stack.alchemyVersion ?? "Unknown"] }), _jsxs("td", { children: [_jsx("span", { className: "ac-mobile-label", children: "Last deploy " }), stack.lastDeploy ?? "Unknown"] }), _jsxs("td", { className: stackHref === undefined ? undefined : "ac-list-count", children: [_jsx("span", { className: "ac-mobile-label", children: "Resources " }), stack.resourceCount === null ? ("Unknown") : stackHref === undefined ? (stack.resourceCount) : (_jsx("a", { className: "ac-list-link", "data-rly-hit-area": true, href: stackHref(stack), "aria-label": `${app} ${stack.stage}: ${stack.resourceCount} resources`, children: stack.resourceCount }))] })] }, stack.id))) })] }) })] }));
|
|
46
46
|
};
|
|
47
47
|
const Reading = () => (_jsx("div", { className: "ac-skeletons", "aria-hidden": "true", children: ["first", "second", "third"].map((name) => (_jsxs("div", { className: `ac-skeleton-group ac-skeleton-${name}`, children: [_jsx(Skeleton, { className: "ac-skeleton-heading" }), _jsx(Skeleton, { className: "ac-skeleton-body", variant: "block" })] }, name))) }));
|
|
48
48
|
/** Controlled module content for the local console or a host shell; no browser storage or data fetching. */
|
|
49
|
-
export const StackListView = ({ copy, onReadAgain, state }) => {
|
|
49
|
+
export const StackListView = ({ copy, onReadAgain, stackHref, state }) => {
|
|
50
50
|
const stateTitleId = useId();
|
|
51
51
|
const empty = state._tag === "Ready" && state.list.stacks.length === 0 && state.list.issues.length === 0;
|
|
52
52
|
const issues = state._tag === "Ready"
|
|
@@ -67,6 +67,6 @@ export const StackListView = ({ copy, onReadAgain, state }) => {
|
|
|
67
67
|
: "Stacks are unavailable right now.";
|
|
68
68
|
return (_jsxs("div", { className: "ac-stacks", children: [_jsxs("header", { className: "ac-list-header", children: [_jsx(Text, { as: "h1", className: "ac-title", variant: "page-title", children: "Stacks" }), _jsxs("div", { className: "ac-list-lead", children: [_jsx(Text, { as: "p", className: "ac-description", tone: "secondary", children: "Infrastructure state from local discovery and the state bucket. Read-only." }), empty || state._tag === "Unauthorized" || state._tag === "Failed" ? null : (_jsx(Button, { className: "ac-read", disabled: state._tag === "Loading", onClick: onReadAgain, children: state._tag === "Loading" ? "Reading…" : "Read again" }))] })] }), _jsx("div", { className: "ac-sr-only", role: "status", "aria-live": "polite", "aria-atomic": "true", children: summary }), issues.map((issue) => (_jsx(IssueNotice, { issue: issue }, `${issue.source}-${issue.reason}`))), state._tag === "Unauthorized" ? (_jsxs("section", { className: "ac-state-panel", "aria-labelledby": stateTitleId, children: [_jsxs("div", { className: "ac-state-label ac-state-caution", children: [_jsx(Icon, { name: "alert", size: "small", decorative: true }), _jsx("span", { children: state.reason === "bootstrap" ? "Sign-in failed" : "Signed out" })] }), _jsx(Text, { as: "h2", id: stateTitleId, className: "ac-state-title", variant: "section-title", children: state.reason === "bootstrap"
|
|
69
69
|
? "Sign-in failed or link already used."
|
|
70
|
-
: `Your ${copy.product} session has ended.` }), _jsx(Text, { as: "p", className: "ac-state-body", tone: "secondary", children: "Sign in again to see stacks." }), _jsx(Text, { as: "p", className: "ac-state-instruction", variant: "meta", tone: "secondary", children: copy.signInInstruction })] })) : state._tag === "Failed" ? (_jsxs("section", { className: "ac-state-panel", "aria-labelledby": stateTitleId, children: [_jsxs("div", { className: "ac-state-label ac-state-critical", children: [_jsx(Icon, { name: "alert", size: "small", decorative: true }), _jsx("span", { children: "Unavailable" })] }), _jsx(Text, { as: "h2", id: stateTitleId, className: "ac-state-title", variant: "section-title", children: "Stacks are unavailable right now." }), _jsx(Text, { as: "p", className: "ac-state-body", tone: "secondary", children: "The stack list couldn\u2019t be read, so no stacks are shown. Nothing was changed." }), _jsx(Button, { className: "ac-read", onClick: onReadAgain, children: "Retry" })] })) : empty ? (_jsxs("div", { className: "ac-empty", children: [_jsx("img", { className: "ac-empty-creature", src: emptyCreature, alt: "", width: "88", height: "88" }), _jsx(Text, { as: "h2", className: "ac-empty-title", variant: "section-title", children: "No stacks found in local state or the state bucket." }), _jsx(Text, { as: "p", className: "ac-empty-description", tone: "secondary", children: "Local discovery and the state bucket returned no stack state." }), _jsx(Button, { className: "ac-read", onClick: onReadAgain, children: "Read again" }), _jsxs(Text, { as: "p", className: "ac-empty-foot", variant: "meta", tone: "secondary", children: ["Checked ", state.checkedAt, " \u00B7 stacks appear here after their first deployment from the CLI."] })] })) : (_jsxs("div", { className: "ac-results", "aria-busy": state._tag === "Loading", children: [_jsx(Text, { as: "p", className: "ac-summary", variant: "meta", tone: "secondary", children: summary }), state._tag === "Loading" ? (_jsx(Reading, {})) : state._tag === "Ready" ? (apps.map((app) => (_jsx(StackGroup, { app: app, stacks: state.list.stacks.filter((stack) => stack.app === app) }, app)))) : null, state._tag === "Ready" && state.list.stacks.length === 0 ? (_jsx(Text, { as: "p", tone: "secondary", children: "No stacks could be read. Discovery is incomplete." })) : null] }))] }));
|
|
70
|
+
: `Your ${copy.product} session has ended.` }), _jsx(Text, { as: "p", className: "ac-state-body", tone: "secondary", children: "Sign in again to see stacks." }), _jsx(Text, { as: "p", className: "ac-state-instruction", variant: "meta", tone: "secondary", children: copy.signInInstruction })] })) : state._tag === "Failed" ? (_jsxs("section", { className: "ac-state-panel", "aria-labelledby": stateTitleId, children: [_jsxs("div", { className: "ac-state-label ac-state-critical", children: [_jsx(Icon, { name: "alert", size: "small", decorative: true }), _jsx("span", { children: "Unavailable" })] }), _jsx(Text, { as: "h2", id: stateTitleId, className: "ac-state-title", variant: "section-title", children: "Stacks are unavailable right now." }), _jsx(Text, { as: "p", className: "ac-state-body", tone: "secondary", children: "The stack list couldn\u2019t be read, so no stacks are shown. Nothing was changed." }), _jsx(Button, { className: "ac-read", onClick: onReadAgain, children: "Retry" })] })) : empty ? (_jsxs("div", { className: "ac-empty", children: [_jsx("img", { className: "ac-empty-creature", src: emptyCreature, alt: "", width: "88", height: "88" }), _jsx(Text, { as: "h2", className: "ac-empty-title", variant: "section-title", children: "No stacks found in local state or the state bucket." }), _jsx(Text, { as: "p", className: "ac-empty-description", tone: "secondary", children: "Local discovery and the state bucket returned no stack state." }), _jsx(Button, { className: "ac-read", onClick: onReadAgain, children: "Read again" }), _jsxs(Text, { as: "p", className: "ac-empty-foot", variant: "meta", tone: "secondary", children: ["Checked ", state.checkedAt, " \u00B7 stacks appear here after their first deployment from the CLI."] })] })) : (_jsxs("div", { className: "ac-results", "aria-busy": state._tag === "Loading", children: [_jsx(Text, { as: "p", className: "ac-summary", variant: "meta", tone: "secondary", children: summary }), state._tag === "Loading" ? (_jsx(Reading, {})) : state._tag === "Ready" ? (apps.map((app) => (_jsx(StackGroup, { app: app, stacks: state.list.stacks.filter((stack) => stack.app === app), stackHref: stackHref }, app)))) : null, state._tag === "Ready" && state.list.stacks.length === 0 ? (_jsx(Text, { as: "p", tone: "secondary", children: "No stacks could be read. Discovery is incomplete." })) : null] }))] }));
|
|
71
71
|
};
|
|
72
72
|
//# sourceMappingURL=StackListView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackListView.js","sourceRoot":"","sources":["../../src/presentation/StackListView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,KAAK,EAAqB,MAAM,OAAO,CAAA;AAGhD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,uCAAuC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"StackListView.js","sourceRoot":"","sources":["../../src/presentation/StackListView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SourceFailureReason } from "../api.js";
|
|
2
|
+
import type { ResourceSummary, StackState } from "../schema.js";
|
|
3
|
+
/** A host may have a broader lifecycle model. The standalone persisted reader never manufactures failed/unknown events. */
|
|
4
|
+
export interface ResourcePresentation extends Omit<ResourceSummary, "status"> {
|
|
5
|
+
readonly status: ResourceSummary["status"] | "failed" | null;
|
|
6
|
+
}
|
|
7
|
+
/** SafeText requires the host's explicit non-sensitive proof. Persisted plaintext and marker absence are insufficient. */
|
|
8
|
+
export interface OutputPresentation {
|
|
9
|
+
readonly key: string;
|
|
10
|
+
readonly value: {
|
|
11
|
+
readonly _tag: "Hidden";
|
|
12
|
+
} | {
|
|
13
|
+
readonly _tag: "SafeText";
|
|
14
|
+
readonly text: string;
|
|
15
|
+
readonly proof: "explicit-non-sensitive";
|
|
16
|
+
};
|
|
17
|
+
readonly description: string | null;
|
|
18
|
+
}
|
|
19
|
+
/** Normalized authenticated presentation data, never raw state. Null output data means unavailable; [] proves empty. */
|
|
20
|
+
export interface StackPresentation extends Omit<StackState, "resources" | "outputs"> {
|
|
21
|
+
readonly resources: ReadonlyArray<ResourcePresentation>;
|
|
22
|
+
readonly outputs: ReadonlyArray<OutputPresentation> | null;
|
|
23
|
+
}
|
|
24
|
+
export type StackTab = "resources" | "outputs" | "state";
|
|
25
|
+
/** Refresh and navigation replace the whole state, so a failed read cannot retain the previous stack. */
|
|
26
|
+
export type StackDetailState = {
|
|
27
|
+
readonly _tag: "Loading";
|
|
28
|
+
} | {
|
|
29
|
+
readonly _tag: "Ready";
|
|
30
|
+
readonly stack: StackPresentation;
|
|
31
|
+
} | {
|
|
32
|
+
readonly _tag: "NotFound";
|
|
33
|
+
} | {
|
|
34
|
+
readonly _tag: "Unauthorized";
|
|
35
|
+
readonly reason: "bootstrap" | "session";
|
|
36
|
+
} | {
|
|
37
|
+
readonly _tag: "Failed";
|
|
38
|
+
readonly reason: typeof SourceFailureReason.Type | "transport" | "forbidden";
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=detail-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail-model.d.ts","sourceRoot":"","sources":["../../src/presentation/detail-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE/D,2HAA2H;AAC3H,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC3E,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAA;CAC7D;AAED,0HAA0H;AAC1H,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG;QAC5C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAA;KACzC,CAAA;IACD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED,wHAAwH;AACxH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,SAAS,CAAC;IAClF,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;IACvD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;CAC3D;AAED,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAA;AAExD,yGAAyG;AACzG,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,mBAAmB,CAAC,IAAI,GAAG,WAAW,GAAG,WAAW,CAAA;CAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail-model.js","sourceRoot":"","sources":["../../src/presentation/detail-model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from "react";
|
|
2
|
+
import type { StackListCopy } from "./StackListView.js";
|
|
3
|
+
import type { ResourcePresentation, StackDetailState } from "./detail-model.js";
|
|
4
|
+
export declare const Missing: () => ReactElement;
|
|
5
|
+
export declare const DetailPanel: ({ children, title, unavailable }: {
|
|
6
|
+
readonly title: string;
|
|
7
|
+
readonly children?: ReactNode;
|
|
8
|
+
readonly unavailable?: boolean;
|
|
9
|
+
}) => ReactElement;
|
|
10
|
+
export declare const ResourceStatus: ({ status }: {
|
|
11
|
+
readonly status: ResourcePresentation["status"];
|
|
12
|
+
}) => ReactElement;
|
|
13
|
+
/** Display the actual recorded instant; unavailable times stay distinct from a known value. */
|
|
14
|
+
export declare const RecordedTime: ({ value }: {
|
|
15
|
+
readonly value: string | null;
|
|
16
|
+
}) => ReactElement;
|
|
17
|
+
/** Provider labels describe validated normalized console URLs, never raw state URLs or clickable output values. */
|
|
18
|
+
export declare const ProviderLink: ({ resource }: {
|
|
19
|
+
readonly resource: ResourcePresentation;
|
|
20
|
+
}) => ReactElement | null;
|
|
21
|
+
export declare const DetailBoundary: ({ copy, onReadAgain, state }: {
|
|
22
|
+
readonly state: Exclude<StackDetailState, {
|
|
23
|
+
readonly _tag: "Ready";
|
|
24
|
+
}>;
|
|
25
|
+
readonly copy: StackListCopy;
|
|
26
|
+
readonly onReadAgain: () => void;
|
|
27
|
+
}) => ReactElement;
|
|
28
|
+
//# sourceMappingURL=detail-parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail-parts.d.ts","sourceRoot":"","sources":["../../src/presentation/detail-parts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAE/E,eAAO,MAAM,OAAO,QAAO,YAA0E,CAAA;AAErG,eAAO,MAAM,WAAW,qCAIrB;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B,KAAG,YAWH,CAAA;AAED,eAAO,MAAM,cAAc,eAAgB;IAAE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAA;CAAE,KAAG,YAYhG,CAAA;AAED,+FAA+F;AAC/F,eAAO,MAAM,YAAY,cAAe;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,KAAG,YAa3E,CAAA;AAED,mHAAmH;AACnH,eAAO,MAAM,YAAY,iBAAkB;IAAE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAA;CAAE,KAAG,YAAY,GAAG,IAevG,CAAA;AAED,eAAO,MAAM,cAAc,iCAIxB;IACD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACrE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAA;CACjC,KAAG,YAqCD,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Icon } from "@knpkv/rly/foundations";
|
|
3
|
+
import { Button, Skeleton, Text } from "@knpkv/rly/primitives";
|
|
4
|
+
import { DateTime, Option, Schema } from "effect";
|
|
5
|
+
export const Missing = () => _jsx("span", { className: "ac-detail-muted", children: "Not available yet" });
|
|
6
|
+
export const DetailPanel = ({ children, title, unavailable = false }) => (_jsxs("div", { className: unavailable ? "ac-detail-panel ac-detail-unavailable" : "ac-detail-panel", children: [_jsx(Text, { as: "p", className: "ac-detail-panel-title", children: title }), children === undefined ? null : (_jsx(Text, { as: "p", tone: "secondary", children: children }))] }));
|
|
7
|
+
export const ResourceStatus = ({ status }) => {
|
|
8
|
+
if (status === null)
|
|
9
|
+
return _jsx("span", { className: "ac-detail-muted", children: "Unknown" });
|
|
10
|
+
const success = status === "created" || status === "updated" || status === "replaced";
|
|
11
|
+
return (_jsxs("span", { className: `ac-resource-status ${success ? "ac-resource-success" : status === "failed" ? "ac-resource-failed" : "ac-resource-working"}`, children: [_jsx(Icon, { name: success ? "check" : status === "failed" ? "alert" : "loader", decorative: true, size: "small" }), status.slice(0, 1).toUpperCase(), status.slice(1)] }));
|
|
12
|
+
};
|
|
13
|
+
/** Display the actual recorded instant; unavailable times stay distinct from a known value. */
|
|
14
|
+
export const RecordedTime = ({ value }) => {
|
|
15
|
+
const time = Option.getOrNull(Schema.decodeUnknownOption(Schema.DateTimeUtcFromString)(value));
|
|
16
|
+
if (time === null)
|
|
17
|
+
return _jsx(Missing, {});
|
|
18
|
+
return (_jsx("time", { dateTime: DateTime.formatIso(time), children: new Intl.DateTimeFormat("en-GB", {
|
|
19
|
+
day: "numeric",
|
|
20
|
+
month: "short",
|
|
21
|
+
hour: "2-digit",
|
|
22
|
+
minute: "2-digit"
|
|
23
|
+
}).format(DateTime.toEpochMillis(time)) }));
|
|
24
|
+
};
|
|
25
|
+
/** Provider labels describe validated normalized console URLs, never raw state URLs or clickable output values. */
|
|
26
|
+
export const ProviderLink = ({ resource }) => {
|
|
27
|
+
if (resource.consoleUrl === null)
|
|
28
|
+
return null;
|
|
29
|
+
return (_jsxs("a", { "data-rly-hit-area": true, className: "ac-detail-link ac-provider-link", href: resource.consoleUrl, target: "_blank", rel: "noopener noreferrer", children: ["Open in ", resource.resourceType.startsWith("Cloudflare.") ? "Cloudflare" : "AWS", " console", " ", _jsx("span", { "aria-hidden": "true", children: "\u2197" }), _jsxs("span", { className: "ac-sr-only", children: [" for ", resource.logicalId, ", opens in a new tab"] })] }));
|
|
30
|
+
};
|
|
31
|
+
export const DetailBoundary = ({ copy, onReadAgain, state }) => state._tag === "Loading" ? (_jsxs("div", { "aria-busy": "true", className: "ac-detail-loading", children: [_jsx("span", { className: "ac-sr-only", role: "status", children: "Reading stack state\u2026" }), _jsx(Skeleton, { className: "ac-detail-title-skeleton" }), _jsx(Skeleton, { variant: "block", className: "ac-detail-body-skeleton" })] })) : (_jsxs("section", { className: "ac-state-panel", role: "status", children: [_jsx(Text, { as: "h1", className: "ac-state-title", variant: "section-title", children: state._tag === "Unauthorized"
|
|
32
|
+
? state.reason === "bootstrap"
|
|
33
|
+
? "Sign-in failed or link already used."
|
|
34
|
+
: `Your ${copy.product} session has ended.`
|
|
35
|
+
: state._tag === "NotFound"
|
|
36
|
+
? "This stack is no longer available."
|
|
37
|
+
: "Stack state is unavailable right now." }), _jsx(Text, { as: "p", tone: "secondary", children: state._tag === "Unauthorized"
|
|
38
|
+
? "Sign in again to see stacks."
|
|
39
|
+
: state._tag === "NotFound"
|
|
40
|
+
? "Return to Stacks and Read again. Nothing was changed."
|
|
41
|
+
: "The stack state couldn’t be read, so no resources are shown. Nothing was changed." }), state._tag === "Unauthorized" ? (_jsx(Text, { as: "p", variant: "meta", tone: "secondary", children: copy.signInInstruction })) : state._tag === "Failed" ? (_jsx(Button, { className: "ac-read", onClick: onReadAgain, children: "Retry" })) : null] }));
|
|
42
|
+
//# sourceMappingURL=detail-parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail-parts.js","sourceRoot":"","sources":["../../src/presentation/detail-parts.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIjD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAiB,EAAE,CAAC,eAAM,SAAS,EAAC,iBAAiB,kCAAyB,CAAA;AAErG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,WAAW,GAAG,KAAK,EAKpB,EAAgB,EAAE,CAAC,CAClB,eAAK,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,iBAAiB,aACvF,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,SAAS,EAAC,uBAAuB,YAC3C,KAAK,GACD,EACN,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/B,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,WAAW,YAC1B,QAAQ,GACJ,CACR,IACG,CACP,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAuD,EAAgB,EAAE;IAC9G,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,eAAM,SAAS,EAAC,iBAAiB,wBAAe,CAAA;IAC5E,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,UAAU,CAAA;IACrF,OAAO,CACL,gBACE,SAAS,EAAE,sBAAsB,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,EAAE,aAEvI,KAAC,IAAI,IAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,QAAC,IAAI,EAAC,OAAO,GAAG,EACnG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAChC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IACX,CACR,CAAA;AACH,CAAC,CAAA;AAED,+FAA+F;AAC/F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAqC,EAAgB,EAAE;IACzF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9F,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAC,OAAO,KAAG,CAAA;IACrC,OAAO,CACL,eAAM,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,YACrC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAChC,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAClC,CACR,CAAA;AACH,CAAC,CAAA;AAED,mHAAmH;AACnH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAA+C,EAAuB,EAAE;IAC7G,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC7C,OAAO,CACL,wCAEE,SAAS,EAAC,iCAAiC,EAC3C,IAAI,EAAE,QAAQ,CAAC,UAAU,EACzB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,yBAEhB,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,cAAU,GAAG,EAC5F,8BAAkB,MAAM,uBAAS,EACjC,gBAAM,SAAS,EAAC,YAAY,sBAAO,QAAQ,CAAC,SAAS,4BAA4B,IAC/E,CACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,IAAI,EACJ,WAAW,EACX,KAAK,EAKN,EAAgB,EAAE,CACjB,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CACzB,4BAAe,MAAM,EAAC,SAAS,EAAC,mBAAmB,aACjD,eAAM,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,0CAEnC,EACP,KAAC,QAAQ,IAAC,SAAS,EAAC,0BAA0B,GAAG,EACjD,KAAC,QAAQ,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,yBAAyB,GAAG,IAC5D,CACP,CAAC,CAAC,CAAC,CACF,mBAAS,SAAS,EAAC,gBAAgB,EAAC,IAAI,EAAC,QAAQ,aAC/C,KAAC,IAAI,IAAC,EAAE,EAAC,IAAI,EAAC,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAC,eAAe,YAC7D,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC5B,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW;oBAC5B,CAAC,CAAC,sCAAsC;oBACxC,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,qBAAqB;gBAC7C,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;oBACzB,CAAC,CAAC,oCAAoC;oBACtC,CAAC,CAAC,uCAAuC,GACxC,EACP,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,WAAW,YAC1B,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC5B,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;oBACzB,CAAC,CAAC,uDAAuD;oBACzD,CAAC,CAAC,mFAAmF,GACpF,EACN,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,CAC/B,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,WAAW,YACzC,IAAI,CAAC,iBAAiB,GAClB,CACR,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC5B,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,WAAW,sBAEvC,CACV,CAAC,CAAC,CAAC,IAAI,IACA,CACX,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResourceSummary } from "../schema.js";
|
|
2
|
+
/** Invert persisted downstream edges once. Incomplete, duplicate or unbounded graphs cannot prove dependencies. */
|
|
3
|
+
export declare const indexDependencies: <Resource extends Pick<ResourceSummary, "fqn" | "downstream">>(resources: ReadonlyArray<Resource>) => ReadonlyMap<string, ReadonlyArray<Resource>> | null;
|
|
4
|
+
//# sourceMappingURL=resource-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-graph.d.ts","sourceRoot":"","sources":["../../src/presentation/resource-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,mHAAmH;AACnH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,YAAY,CAAC,aACjF,aAAa,CAAC,QAAQ,CAAC,KACjC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,IAiBjD,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Invert persisted downstream edges once. Incomplete, duplicate or unbounded graphs cannot prove dependencies. */
|
|
2
|
+
export const indexDependencies = (resources) => {
|
|
3
|
+
if (resources.length > 50_000)
|
|
4
|
+
return null;
|
|
5
|
+
const byFqn = new Map(resources.map((resource) => [resource.fqn, resource]));
|
|
6
|
+
if (byFqn.size !== resources.length)
|
|
7
|
+
return null;
|
|
8
|
+
const dependencies = new Map(resources.map((resource) => [resource.fqn, []]));
|
|
9
|
+
let edges = 0;
|
|
10
|
+
for (const resource of resources) {
|
|
11
|
+
if (resource.downstream === null)
|
|
12
|
+
return null;
|
|
13
|
+
edges += resource.downstream.length;
|
|
14
|
+
if (edges > 100_000)
|
|
15
|
+
return null;
|
|
16
|
+
for (const dependent of new Set(resource.downstream)) {
|
|
17
|
+
const upstreams = dependencies.get(dependent);
|
|
18
|
+
if (upstreams === undefined || dependent === resource.fqn)
|
|
19
|
+
return null;
|
|
20
|
+
upstreams.push(resource);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return dependencies;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=resource-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-graph.js","sourceRoot":"","sources":["../../src/presentation/resource-graph.ts"],"names":[],"mappings":"AAEA,mHAAmH;AACnH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAkC,EACmB,EAAE;IACvD,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM;QAAE,OAAO,IAAI,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,GAAG,CAA0B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IACtG,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC7C,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAA;QACnC,IAAI,KAAK,GAAG,OAAO;YAAE,OAAO,IAAI,CAAA;QAChC,KAAK,MAAM,SAAS,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YACtE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
|
package/dist/s3-live.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const makeS3Reader: (profile: SsoProfile) => Effect.Effect<{
|
|
|
8
8
|
readonly buckets: (cursor: string | null) => Effect.Effect<import("./s3-reader.js").S3BucketPage, S3ReadError>;
|
|
9
9
|
readonly versions: (bucket: S3Bucket, prefix: string, cursor: VersionCursor | null) => Effect.Effect<import("./s3-reader.js").S3VersionPage, S3ReadError>;
|
|
10
10
|
readonly resource: (bucket: S3Bucket, key: string, versionId: string) => Effect.Effect<import("./schema.ts").ResourceSummary | null, S3ReadError | import("./schema.ts").StateReadError>;
|
|
11
|
+
readonly outputs: (bucket: S3Bucket, key: string, versionId: string) => Effect.Effect<ReadonlyArray<import("./schema.ts").OutputSummary>, S3ReadError | import("./schema.ts").StateReadError>;
|
|
11
12
|
}, never, HttpClient.HttpClient | SsoCredentials>;
|
|
12
13
|
export declare const s3ReaderLayer: (profile: SsoProfile) => Layer.Layer<S3Reader, never, HttpClient.HttpClient | SsoCredentials>;
|
|
13
14
|
//# sourceMappingURL=s3-live.d.ts.map
|
package/dist/s3-live.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-live.d.ts","sourceRoot":"","sources":["../src/s3-live.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAa,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"s3-live.d.ts","sourceRoot":"","sources":["../src/s3-live.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAa,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAkB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAsBrD,qGAAqG;AACrG,eAAO,MAAM,YAAY;;;;;iDA0HvB,CAAA;AAEF,eAAO,MAAM,aAAa,YAAa,UAAU,yEAAkD,CAAA"}
|
package/dist/s3-live.js
CHANGED
|
@@ -4,6 +4,7 @@ import { getObject, listBuckets, listObjectVersions } from "@distilled.cloud/aws
|
|
|
4
4
|
import { collectBoundedText } from "@knpkv/bounded-io";
|
|
5
5
|
import { Effect, Layer, Predicate } from "effect";
|
|
6
6
|
import * as HttpClient from "effect/http/HttpClient";
|
|
7
|
+
import { decodeOutputs } from "./outputs.js";
|
|
7
8
|
import { S3Reader, S3ReadError } from "./s3-reader.js";
|
|
8
9
|
import { SsoCredentials } from "./sso-credentials.js";
|
|
9
10
|
import { decodeResource } from "./state.js";
|
|
@@ -34,6 +35,21 @@ export const makeS3Reader = Effect.fn("AlchemyConsole.makeS3Reader")(function* (
|
|
|
34
35
|
orElse: () => Effect.fail(new S3ReadError({ reason: "provider" }))
|
|
35
36
|
}), Effect.mapError(providerError));
|
|
36
37
|
});
|
|
38
|
+
const readObject = Effect.fn("AlchemyConsole.getS3Object")(function* (bucket, key, versionId) {
|
|
39
|
+
const result = yield* call(getObject({
|
|
40
|
+
Bucket: bucket.name,
|
|
41
|
+
ExpectedBucketOwner: profile.account,
|
|
42
|
+
Key: key,
|
|
43
|
+
VersionId: versionId
|
|
44
|
+
}), bucket.region);
|
|
45
|
+
if ((result.VersionId ?? "null") !== versionId || result.DeleteMarker === true || result.Body === undefined) {
|
|
46
|
+
return yield* new S3ReadError({ reason: "invalid-response" });
|
|
47
|
+
}
|
|
48
|
+
return yield* collectBoundedText(result.Body, 8 * 1024 * 1024).pipe(Effect.mapError((error) => new S3ReadError({ reason: Predicate.isTagged(error, "ByteLimitExceeded") ? "limit" : "provider" })), Effect.timeoutOrElse({
|
|
49
|
+
duration: "30 seconds",
|
|
50
|
+
orElse: () => Effect.fail(new S3ReadError({ reason: "provider" }))
|
|
51
|
+
}));
|
|
52
|
+
});
|
|
37
53
|
return S3Reader.of({
|
|
38
54
|
buckets: Effect.fn("AlchemyConsole.listS3Buckets")(function* (cursor) {
|
|
39
55
|
const request = { MaxBuckets: 1000 };
|
|
@@ -91,20 +107,10 @@ export const makeS3Reader = Effect.fn("AlchemyConsole.makeS3Reader")(function* (
|
|
|
91
107
|
};
|
|
92
108
|
}),
|
|
93
109
|
resource: Effect.fn("AlchemyConsole.getS3Resource")(function* (bucket, key, versionId) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
VersionId: versionId
|
|
99
|
-
}), bucket.region);
|
|
100
|
-
if ((result.VersionId ?? "null") !== versionId || result.DeleteMarker === true || result.Body === undefined) {
|
|
101
|
-
return yield* new S3ReadError({ reason: "invalid-response" });
|
|
102
|
-
}
|
|
103
|
-
const text = yield* collectBoundedText(result.Body, 8 * 1024 * 1024).pipe(Effect.mapError((error) => new S3ReadError({ reason: Predicate.isTagged(error, "ByteLimitExceeded") ? "limit" : "provider" })), Effect.timeoutOrElse({
|
|
104
|
-
duration: "30 seconds",
|
|
105
|
-
orElse: () => Effect.fail(new S3ReadError({ reason: "provider" }))
|
|
106
|
-
}));
|
|
107
|
-
return yield* decodeResource(text);
|
|
110
|
+
return yield* decodeResource(yield* readObject(bucket, key, versionId));
|
|
111
|
+
}),
|
|
112
|
+
outputs: Effect.fn("AlchemyConsole.getS3Outputs")(function* (bucket, key, versionId) {
|
|
113
|
+
return yield* decodeOutputs(yield* readObject(bucket, key, versionId));
|
|
108
114
|
})
|
|
109
115
|
});
|
|
110
116
|
});
|
package/dist/s3-live.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-live.js","sourceRoot":"","sources":["../src/s3-live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AACpD,OAAO,EAEL,SAAS,EAET,WAAW,EAGX,kBAAkB,EAGnB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"s3-live.js","sourceRoot":"","sources":["../src/s3-live.ts"],"names":[],"mappings":"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"}
|
package/dist/s3-reader.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Effect } from "effect";
|
|
2
2
|
import { Context, Schema } from "effect";
|
|
3
|
-
import type { ResourceSummary, StateReadError } from "./schema.js";
|
|
3
|
+
import type { OutputSummary, ResourceSummary, StateReadError } from "./schema.js";
|
|
4
4
|
/** Server-private bucket name and routing region; memory only, never HTTP, browser storage, logs or telemetry. */
|
|
5
5
|
export interface S3Bucket {
|
|
6
6
|
readonly name: string;
|
|
@@ -38,6 +38,7 @@ declare const S3Reader_base: Context.ServiceClass<S3Reader, "@knpkv/alchemy-cons
|
|
|
38
38
|
readonly buckets: (cursor: string | null) => Effect.Effect<S3BucketPage, S3ReadError>;
|
|
39
39
|
readonly versions: (bucket: S3Bucket, prefix: string, cursor: VersionCursor | null) => Effect.Effect<S3VersionPage, S3ReadError>;
|
|
40
40
|
readonly resource: (bucket: S3Bucket, key: string, versionId: string) => Effect.Effect<ResourceSummary | null, S3ReadError | StateReadError>;
|
|
41
|
+
readonly outputs: (bucket: S3Bucket, key: string, versionId: string) => Effect.Effect<ReadonlyArray<OutputSummary>, S3ReadError | StateReadError>;
|
|
41
42
|
}>;
|
|
42
43
|
/** Bound to one explicit SSO profile. No writes, Alchemy runtime, credential chain or implicit login. */
|
|
43
44
|
export declare class S3Reader extends S3Reader_base {
|
package/dist/s3-reader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-reader.d.ts","sourceRoot":"","sources":["../src/s3-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"s3-reader.d.ts","sourceRoot":"","sources":["../src/s3-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjF,kHAAkH;AAClH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,sGAAsG;AACtG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC;AAED,mHAAmH;AACnH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC3C,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAA;CACpC;;;;AAED,iEAAiE;AACjE,qBAAa,WAAY,SAAQ,gBAE/B;CAAG;;sBAIe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC;uBAClE,CACjB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,aAAa,GAAG,IAAI,KACzB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC;uBAC3B,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CACpF,eAAe,GAAG,IAAI,EACtB,WAAW,GAAG,cAAc,CAC7B;sBACiB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CACnF,aAAa,CAAC,aAAa,CAAC,EAC5B,WAAW,GAAG,cAAc,CAC7B;;AAfH,yGAAyG;AACzG,qBAAa,QAAS,SAAQ,aAeS;CAAG"}
|
package/dist/s3-reader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-reader.js","sourceRoot":"","sources":["../src/s3-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAmCxC,iEAAiE;AACjE,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,WAAW,EAAe,CAAC,aAAa,EAAE;IAChF,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;CAC5G,CAAC;CAAG;AAEL,yGAAyG;AACzG,MAAM,OAAO,QAAS,SAAQ,OAAO,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"s3-reader.js","sourceRoot":"","sources":["../src/s3-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAmCxC,iEAAiE;AACjE,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,WAAW,EAAe,CAAC,aAAa,EAAE;IAChF,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;CAC5G,CAAC;CAAG;AAEL,yGAAyG;AACzG,MAAM,OAAO,QAAS,SAAQ,OAAO,CAAC,OAAO,EAezC,CAAC,iCAAiC,CAAC;CAAG"}
|
package/dist/s3-state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-state.d.ts","sourceRoot":"","sources":["../src/s3-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EACL,KAAK,QAAQ,EAEb,QAAQ,EACR,WAAW,EACX,KAAK,SAAS,EAGf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,KAAK,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE7D,iIAAiI;AACjI,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,oHAAoH;AACpH,eAAO,MAAM,iBAAiB,qBACZ,MAAM,KAAK,OAAO,kEAqBlC,CAAA;AAEF,iHAAiH;AACjH,eAAO,MAAM,cAAc,uFAsBzB,CAAA;AAYF,0HAA0H;AAC1H,eAAO,MAAM,gBAAgB,8EAoB3B,CAAA;AAIF,wGAAwG;AACxG,eAAO,MAAM,cAAc,gKAmBzB,CAAA;AAEF,4GAA4G;AAC5G,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"s3-state.d.ts","sourceRoot":"","sources":["../src/s3-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EACL,KAAK,QAAQ,EAEb,QAAQ,EACR,WAAW,EACX,KAAK,SAAS,EAGf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,KAAK,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE7D,iIAAiI;AACjI,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,oHAAoH;AACpH,eAAO,MAAM,iBAAiB,qBACZ,MAAM,KAAK,OAAO,kEAqBlC,CAAA;AAEF,iHAAiH;AACjH,eAAO,MAAM,cAAc,uFAsBzB,CAAA;AAYF,0HAA0H;AAC1H,eAAO,MAAM,gBAAgB,8EAoB3B,CAAA;AAIF,wGAAwG;AACxG,eAAO,MAAM,cAAc,gKAmBzB,CAAA;AAEF,4GAA4G;AAC5G,eAAO,MAAM,WAAW,0IAyBtB,CAAA"}
|
package/dist/s3-state.js
CHANGED
|
@@ -122,8 +122,20 @@ export const readS3State = Effect.fn("AlchemyConsole.readS3State")(function* (st
|
|
|
122
122
|
backend: "s3",
|
|
123
123
|
alchemyVersion,
|
|
124
124
|
lastDeploy: null,
|
|
125
|
-
resources: resources.sort((a, b) => a.fqn.localeCompare(b.fqn))
|
|
125
|
+
resources: resources.sort((a, b) => a.fqn.localeCompare(b.fqn)),
|
|
126
|
+
outputs: alchemyVersion === null ? null : yield* readS3Outputs(stack, versions)
|
|
126
127
|
};
|
|
127
128
|
return state;
|
|
128
129
|
});
|
|
130
|
+
/** Use the already selected current version; a latest delete marker can never fall back to an older output. */
|
|
131
|
+
const readS3Outputs = Effect.fn("AlchemyConsole.readS3Outputs")(function* (stack, versions) {
|
|
132
|
+
const output = versions.find((version) => version.key === `${stagePrefix(stack)}__stack_output__.json`);
|
|
133
|
+
if (output === undefined)
|
|
134
|
+
return null;
|
|
135
|
+
const reader = yield* S3Reader;
|
|
136
|
+
return yield* reader.outputs(stack.bucket, output.key, output.versionId);
|
|
137
|
+
}, Effect.catchTags({
|
|
138
|
+
S3ReadError: () => Effect.succeed(null),
|
|
139
|
+
StateReadError: () => Effect.succeed(null)
|
|
140
|
+
}));
|
|
129
141
|
//# sourceMappingURL=s3-state.js.map
|
package/dist/s3-state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-state.js","sourceRoot":"","sources":["../src/s3-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAGL,QAAQ,EACR,WAAW,EAIZ,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAmB,cAAc,EAAE,MAAM,aAAa,CAAA;AAU7D,oHAAoH;AACpH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC,QAAQ,CAAC,EACtF,OAAO,GAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;IAE7E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAA;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,IAAI,MAAM,GAAkB,IAAI,CAAA;IAChC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,GAAG,CAAC;QACF,IAAI,EAAE,KAAK,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACrE,MAAM,IAAI,GAAiB,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACxD,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,KAAK,GAAG,MAAM;YAAE,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACtE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC7F,MAAM,GAAG,IAAI,CAAC,IAAI,CAAA;QAClB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAA;YACnF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClB,CAAC;IACH,CAAC,QAAQ,MAAM,KAAK,IAAI,EAAC;IACzB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3E,CAAC,CAAC,CAAA;AAEF,iHAAiH;AACjH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EAAC,MAAgB,EAAE,MAAM,GAAG,EAAE;IAC9G,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAA;IAC9B,MAAM,QAAQ,GAAqB,EAAE,CAAA;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,IAAI,MAAM,GAAyB,IAAI,CAAA;IACvC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,GAAG,CAAC;QACF,IAAI,EAAE,KAAK,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACrE,MAAM,IAAI,GAAkB,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM;YAAE,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;QACvG,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAA;QAClB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;YAC/D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAA;YACrF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,QAAQ,MAAM,KAAK,IAAI,EAAC;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,EAAC,QAAkC;IAC9G,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAA;IAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,SAAQ;QAC7B,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAA;QAC1F,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACnE,CAAC,CAAC,CAAA;AAEF,0HAA0H;AAC1H,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,EAAC,MAAgB;IACrG,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;IAChD,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACxB,IACE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS;YAChG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,EAC9F,CAAC;YACD,SAAQ;QACV,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;QAC3E,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAClF,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CACjG,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,KAAqB,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,CAAA;AAE5F,wGAAwG;AACxG,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC,QAAQ,CAAC,EAChF,KAAqB,EACrB,GAAW,EACX,SAAiB;IAEjB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,IACE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,uBAAuB;QAC5G,SAAS,CAAC,MAAM,KAAK,CAAC,EACtB,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAA;IAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IACrE,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAC,CAAA;AAEF,4GAA4G;AAC5G,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAC1E,KAAqB,EACrB,cAAc,GAAkB,IAAI;IAEpC,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,eAAe,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;QACxG,OAAO,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnF,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,MAAM,uBAAuB;YAAE,SAAQ;QAChG,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAC7E,IAAI,QAAQ,KAAK,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IACD,MAAM,KAAK,GAAe;QACxB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,IAAI;QACb,cAAc;QACd,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"s3-state.js","sourceRoot":"","sources":["../src/s3-state.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
+
/** Bounded normalized resource identity, not a filesystem path or provider locator. */
|
|
3
|
+
export declare const ResourceFqn: Schema.NonEmptyString;
|
|
2
4
|
export declare const ResourceSummary: Schema.Struct<{
|
|
3
5
|
readonly fqn: Schema.NonEmptyString;
|
|
4
6
|
readonly logicalId: Schema.NonEmptyString;
|
|
5
7
|
readonly resourceType: Schema.NonEmptyString;
|
|
6
8
|
readonly status: Schema.Literals<readonly ["creating", "created", "updating", "updated", "deleting", "replacing", "replaced"]>;
|
|
7
|
-
readonly parent: Schema.NullOr<Schema.
|
|
9
|
+
readonly parent: Schema.NullOr<Schema.NonEmptyString>;
|
|
8
10
|
readonly providerId: Schema.NullOr<Schema.String>;
|
|
9
11
|
readonly account: Schema.NullOr<Schema.String>;
|
|
10
12
|
readonly region: Schema.NullOr<Schema.String>;
|
|
11
13
|
readonly consoleUrl: Schema.NullOr<Schema.String>;
|
|
14
|
+
readonly updatedAt: Schema.NullOr<Schema.String>;
|
|
15
|
+
readonly downstream: Schema.NullOr<Schema.$Array<Schema.NonEmptyString>>;
|
|
12
16
|
}>;
|
|
13
17
|
export interface ResourceSummary extends Schema.Schema.Type<typeof ResourceSummary> {
|
|
14
18
|
}
|
|
15
|
-
/**
|
|
19
|
+
/** Output keys cross authenticated HTTP; persisted values never do. Plaintext is not proof of safety. */
|
|
20
|
+
export declare const OutputSummary: Schema.Struct<{
|
|
21
|
+
readonly key: Schema.NonEmptyString;
|
|
22
|
+
readonly value: Schema.TaggedStruct<"Hidden", {}>;
|
|
23
|
+
readonly description: Schema.Null;
|
|
24
|
+
}>;
|
|
25
|
+
export interface OutputSummary extends Schema.Schema.Type<typeof OutputSummary> {
|
|
26
|
+
}
|
|
27
|
+
/** Authenticated resource-own identity and output keys. No backend locators, props, output values or credentials. */
|
|
16
28
|
export declare const StackState: Schema.Struct<{
|
|
17
29
|
readonly app: Schema.NonEmptyString;
|
|
18
30
|
readonly stage: Schema.NonEmptyString;
|
|
@@ -24,12 +36,19 @@ export declare const StackState: Schema.Struct<{
|
|
|
24
36
|
readonly logicalId: Schema.NonEmptyString;
|
|
25
37
|
readonly resourceType: Schema.NonEmptyString;
|
|
26
38
|
readonly status: Schema.Literals<readonly ["creating", "created", "updating", "updated", "deleting", "replacing", "replaced"]>;
|
|
27
|
-
readonly parent: Schema.NullOr<Schema.
|
|
39
|
+
readonly parent: Schema.NullOr<Schema.NonEmptyString>;
|
|
28
40
|
readonly providerId: Schema.NullOr<Schema.String>;
|
|
29
41
|
readonly account: Schema.NullOr<Schema.String>;
|
|
30
42
|
readonly region: Schema.NullOr<Schema.String>;
|
|
31
43
|
readonly consoleUrl: Schema.NullOr<Schema.String>;
|
|
44
|
+
readonly updatedAt: Schema.NullOr<Schema.String>;
|
|
45
|
+
readonly downstream: Schema.NullOr<Schema.$Array<Schema.NonEmptyString>>;
|
|
32
46
|
}>>;
|
|
47
|
+
readonly outputs: Schema.NullOr<Schema.$Array<Schema.Struct<{
|
|
48
|
+
readonly key: Schema.NonEmptyString;
|
|
49
|
+
readonly value: Schema.TaggedStruct<"Hidden", {}>;
|
|
50
|
+
readonly description: Schema.Null;
|
|
51
|
+
}>>>;
|
|
33
52
|
}>;
|
|
34
53
|
export interface StackState extends Schema.Schema.Type<typeof StackState> {
|
|
35
54
|
}
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,uFAAuF;AACvF,eAAO,MAAM,WAAW,uBAIvB,CAAA;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;EAY1B,CAAA;AACF,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,eAAe,CAAC;CAAG;AAEtF,yGAAyG;AACzG,eAAO,MAAM,aAAa;;;;EAIxB,CAAA;AACF,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC;CAAG;AAElF,qHAAqH;AACrH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;EAQrB,CAAA;AACF,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC;CAAG;;;;AAE5E,wGAAwG;AACxG,qBAAa,cAAe,SAAQ,mBAElC;CAAG"}
|
package/dist/schema.js
CHANGED
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
+
/** Bounded normalized resource identity, not a filesystem path or provider locator. */
|
|
3
|
+
export const ResourceFqn = Schema.NonEmptyString.check(Schema.isMaxLength(1024), Schema.isPattern(/^\P{Cc}+$/u), Schema.isPattern(/^[^/]+(?:\/[^/]+)*$/));
|
|
2
4
|
export const ResourceSummary = Schema.Struct({
|
|
3
|
-
fqn:
|
|
5
|
+
fqn: ResourceFqn,
|
|
4
6
|
logicalId: Schema.NonEmptyString,
|
|
5
7
|
resourceType: Schema.NonEmptyString,
|
|
6
8
|
status: Schema.Literals(["creating", "created", "updating", "updated", "deleting", "replacing", "replaced"]),
|
|
7
|
-
parent: Schema.NullOr(
|
|
9
|
+
parent: Schema.NullOr(ResourceFqn),
|
|
8
10
|
providerId: Schema.NullOr(Schema.String),
|
|
9
11
|
account: Schema.NullOr(Schema.String),
|
|
10
12
|
region: Schema.NullOr(Schema.String),
|
|
11
|
-
consoleUrl: Schema.NullOr(Schema.String)
|
|
13
|
+
consoleUrl: Schema.NullOr(Schema.String),
|
|
14
|
+
updatedAt: Schema.NullOr(Schema.String),
|
|
15
|
+
downstream: Schema.NullOr(Schema.Array(ResourceFqn).check(Schema.isMaxLength(50_000)))
|
|
12
16
|
});
|
|
13
|
-
/**
|
|
17
|
+
/** Output keys cross authenticated HTTP; persisted values never do. Plaintext is not proof of safety. */
|
|
18
|
+
export const OutputSummary = Schema.Struct({
|
|
19
|
+
key: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
20
|
+
value: Schema.TaggedStruct("Hidden", {}),
|
|
21
|
+
description: Schema.Null
|
|
22
|
+
});
|
|
23
|
+
/** Authenticated resource-own identity and output keys. No backend locators, props, output values or credentials. */
|
|
14
24
|
export const StackState = Schema.Struct({
|
|
15
25
|
app: Schema.NonEmptyString,
|
|
16
26
|
stage: Schema.NonEmptyString,
|
|
17
27
|
backend: Schema.Literals(["local", "s3"]),
|
|
18
28
|
alchemyVersion: Schema.NullOr(Schema.String),
|
|
19
29
|
lastDeploy: Schema.NullOr(Schema.String),
|
|
20
|
-
resources: Schema.Array(ResourceSummary)
|
|
30
|
+
resources: Schema.Array(ResourceSummary).check(Schema.isMaxLength(50_000)),
|
|
31
|
+
outputs: Schema.NullOr(Schema.Array(OutputSummary).check(Schema.isMaxLength(1000)))
|
|
21
32
|
});
|
|
22
33
|
/** Contains no source input, parser diagnostics, provider locators, or underlying filesystem errors. */
|
|
23
34
|
export class StateReadError extends Schema.TaggedError()("StateReadError", {
|