@aws-amplify/backend-output-storage 0.1.1-alpha.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/lib/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './stack_metadata_output_storage_strategy.js';
2
+ //# sourceMappingURL=index.d.ts.map
package/lib/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './stack_metadata_output_storage_strategy.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RhY2tfbWV0YWRhdGFfb3V0cHV0X3N0b3JhZ2Vfc3RyYXRlZ3kuanMnO1xuIl19
@@ -0,0 +1,25 @@
1
+ import { BackendOutputEntry, BackendOutputStorageStrategy } from '@aws-amplify/plugin-types';
2
+ import { Stack } from 'aws-cdk-lib';
3
+ /**
4
+ * Implementation of BackendOutputStorageStrategy that stores config data in stack metadata and outputs
5
+ */
6
+ export declare class StackMetadataBackendOutputStorageStrategy implements BackendOutputStorageStrategy<BackendOutputEntry> {
7
+ private readonly stack;
8
+ /**
9
+ * Initialize the instance with a stack.
10
+ *
11
+ * If the stack is an AmplifyStack, set a parameter in SSM so the stack can be identified later by the project environment
12
+ */
13
+ constructor(stack: Stack);
14
+ /**
15
+ * Store construct output as stack output and add pending metadata to the metadata object.
16
+ *
17
+ * Metadata is not written to the stack until flush() is called
18
+ */
19
+ addBackendOutputEntry: (keyName: string, backendOutputEntry: BackendOutputEntry) => void;
20
+ /**
21
+ * Persists the metadata object to the stack metadata
22
+ */
23
+ flush: () => void;
24
+ }
25
+ //# sourceMappingURL=stack_metadata_output_storage_strategy.d.ts.map
@@ -0,0 +1,43 @@
1
+ import { CfnOutput } from 'aws-cdk-lib';
2
+ import { graphqlOutputKey } from '@aws-amplify/backend-output-schemas';
3
+ /**
4
+ * Implementation of BackendOutputStorageStrategy that stores config data in stack metadata and outputs
5
+ */
6
+ export class StackMetadataBackendOutputStorageStrategy {
7
+ stack;
8
+ /**
9
+ * Initialize the instance with a stack.
10
+ *
11
+ * If the stack is an AmplifyStack, set a parameter in SSM so the stack can be identified later by the project environment
12
+ */
13
+ constructor(stack) {
14
+ this.stack = stack;
15
+ }
16
+ /**
17
+ * Store construct output as stack output and add pending metadata to the metadata object.
18
+ *
19
+ * Metadata is not written to the stack until flush() is called
20
+ */
21
+ addBackendOutputEntry = (keyName, backendOutputEntry) => {
22
+ // add all the data values as stack outputs
23
+ Object.entries(backendOutputEntry.payload).forEach(([key, value]) => {
24
+ new CfnOutput(this.stack, key, { value });
25
+ });
26
+ // TODO https://github.com/aws-amplify/samsara-cli/issues/252
27
+ // temporary hack to work around the fact that the gql construct has hard-coded a duplicate of this key in their codebase
28
+ // once this hard-coding is removed and they are depending on the shared packages, this can be removed
29
+ const mappedKeyName = keyName === 'graphqlOutput' ? graphqlOutputKey : keyName;
30
+ this.stack.addMetadata(mappedKeyName, {
31
+ version: backendOutputEntry.version,
32
+ stackOutputs: Object.keys(backendOutputEntry.payload),
33
+ });
34
+ };
35
+ /**
36
+ * Persists the metadata object to the stack metadata
37
+ */
38
+ flush = () => {
39
+ // TODO https://github.com/aws-amplify/samsara-cli/issues/252
40
+ // NOOP until the duplicate BackendOutputStorageStrategy type in the gql construct can be removed
41
+ };
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2tfbWV0YWRhdGFfb3V0cHV0X3N0b3JhZ2Vfc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RhY2tfbWV0YWRhdGFfb3V0cHV0X3N0b3JhZ2Vfc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RTs7R0FFRztBQUNILE1BQU0sT0FBTyx5Q0FBeUM7SUFRdkI7SUFMN0I7Ozs7T0FJRztJQUNILFlBQTZCLEtBQVk7UUFBWixVQUFLLEdBQUwsS0FBSyxDQUFPO0lBQUcsQ0FBQztJQUU3Qzs7OztPQUlHO0lBQ0gscUJBQXFCLEdBQUcsQ0FDdEIsT0FBZSxFQUNmLGtCQUFzQyxFQUNoQyxFQUFFO1FBQ1IsMkNBQTJDO1FBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNsRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCw2REFBNkQ7UUFDN0QseUhBQXlIO1FBQ3pILHNHQUFzRztRQUN0RyxNQUFNLGFBQWEsR0FDakIsT0FBTyxLQUFLLGVBQWUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUUzRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDcEMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE9BQU87WUFDbkMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1NBQ3RELENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsS0FBSyxHQUFHLEdBQVMsRUFBRTtRQUNqQiw2REFBNkQ7UUFDN0QsaUdBQWlHO0lBQ25HLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFja2VuZE91dHB1dEVudHJ5LFxuICBCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5LFxufSBmcm9tICdAYXdzLWFtcGxpZnkvcGx1Z2luLXR5cGVzJztcbmltcG9ydCB7IENmbk91dHB1dCwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBncmFwaHFsT3V0cHV0S2V5IH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2JhY2tlbmQtb3V0cHV0LXNjaGVtYXMnO1xuXG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIEJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3kgdGhhdCBzdG9yZXMgY29uZmlnIGRhdGEgaW4gc3RhY2sgbWV0YWRhdGEgYW5kIG91dHB1dHNcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrTWV0YWRhdGFCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5XG4gIGltcGxlbWVudHMgQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneTxCYWNrZW5kT3V0cHV0RW50cnk+XG57XG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBpbnN0YW5jZSB3aXRoIGEgc3RhY2suXG4gICAqXG4gICAqIElmIHRoZSBzdGFjayBpcyBhbiBBbXBsaWZ5U3RhY2ssIHNldCBhIHBhcmFtZXRlciBpbiBTU00gc28gdGhlIHN0YWNrIGNhbiBiZSBpZGVudGlmaWVkIGxhdGVyIGJ5IHRoZSBwcm9qZWN0IGVudmlyb25tZW50XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YWNrOiBTdGFjaykge31cblxuICAvKipcbiAgICogU3RvcmUgY29uc3RydWN0IG91dHB1dCBhcyBzdGFjayBvdXRwdXQgYW5kIGFkZCBwZW5kaW5nIG1ldGFkYXRhIHRvIHRoZSBtZXRhZGF0YSBvYmplY3QuXG4gICAqXG4gICAqIE1ldGFkYXRhIGlzIG5vdCB3cml0dGVuIHRvIHRoZSBzdGFjayB1bnRpbCBmbHVzaCgpIGlzIGNhbGxlZFxuICAgKi9cbiAgYWRkQmFja2VuZE91dHB1dEVudHJ5ID0gKFxuICAgIGtleU5hbWU6IHN0cmluZyxcbiAgICBiYWNrZW5kT3V0cHV0RW50cnk6IEJhY2tlbmRPdXRwdXRFbnRyeVxuICApOiB2b2lkID0+IHtcbiAgICAvLyBhZGQgYWxsIHRoZSBkYXRhIHZhbHVlcyBhcyBzdGFjayBvdXRwdXRzXG4gICAgT2JqZWN0LmVudHJpZXMoYmFja2VuZE91dHB1dEVudHJ5LnBheWxvYWQpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLnN0YWNrLCBrZXksIHsgdmFsdWUgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBUT0RPIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MtYW1wbGlmeS9zYW1zYXJhLWNsaS9pc3N1ZXMvMjUyXG4gICAgLy8gdGVtcG9yYXJ5IGhhY2sgdG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdCB0aGUgZ3FsIGNvbnN0cnVjdCBoYXMgaGFyZC1jb2RlZCBhIGR1cGxpY2F0ZSBvZiB0aGlzIGtleSBpbiB0aGVpciBjb2RlYmFzZVxuICAgIC8vIG9uY2UgdGhpcyBoYXJkLWNvZGluZyBpcyByZW1vdmVkIGFuZCB0aGV5IGFyZSBkZXBlbmRpbmcgb24gdGhlIHNoYXJlZCBwYWNrYWdlcywgdGhpcyBjYW4gYmUgcmVtb3ZlZFxuICAgIGNvbnN0IG1hcHBlZEtleU5hbWUgPVxuICAgICAga2V5TmFtZSA9PT0gJ2dyYXBocWxPdXRwdXQnID8gZ3JhcGhxbE91dHB1dEtleSA6IGtleU5hbWU7XG5cbiAgICB0aGlzLnN0YWNrLmFkZE1ldGFkYXRhKG1hcHBlZEtleU5hbWUsIHtcbiAgICAgIHZlcnNpb246IGJhY2tlbmRPdXRwdXRFbnRyeS52ZXJzaW9uLFxuICAgICAgc3RhY2tPdXRwdXRzOiBPYmplY3Qua2V5cyhiYWNrZW5kT3V0cHV0RW50cnkucGF5bG9hZCksXG4gICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFBlcnNpc3RzIHRoZSBtZXRhZGF0YSBvYmplY3QgdG8gdGhlIHN0YWNrIG1ldGFkYXRhXG4gICAqL1xuICBmbHVzaCA9ICgpOiB2b2lkID0+IHtcbiAgICAvLyBUT0RPIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MtYW1wbGlmeS9zYW1zYXJhLWNsaS9pc3N1ZXMvMjUyXG4gICAgLy8gTk9PUCB1bnRpbCB0aGUgZHVwbGljYXRlIEJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3kgdHlwZSBpbiB0aGUgZ3FsIGNvbnN0cnVjdCBjYW4gYmUgcmVtb3ZlZFxuICB9O1xufVxuIl19
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@aws-amplify/backend-output-storage",
3
+ "version": "0.1.1-alpha.0",
4
+ "type": "module",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/index.d.ts",
11
+ "import": "./lib/index.js",
12
+ "require": "./lib/index.js"
13
+ }
14
+ },
15
+ "main": "lib/index.js",
16
+ "types": "lib/index.d.ts",
17
+ "scripts": {
18
+ "update:api": "api-extractor run --local"
19
+ },
20
+ "dependencies": {
21
+ "@aws-amplify/backend-output-schemas": "^0.2.0-alpha.3"
22
+ },
23
+ "peerDependencies": {
24
+ "aws-cdk-lib": "^2.80.0"
25
+ }
26
+ }