@aws-amplify/backend-output-storage 0.0.0-test-20240315202106
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 +4 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +19 -0
- package/lib/stack_metadata_output_storage_strategy.d.ts +24 -0
- package/lib/stack_metadata_output_storage_strategy.js +73 -0
- package/lib/store_attribution_metadata.d.ts +48 -0
- package/lib/store_attribution_metadata.js +90 -0
- package/package.json +28 -0
package/README.md
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# Description
|
|
2
|
+
|
|
3
|
+
Contains classes that know how to write stack output in a format that is understood by the Amplfiy platform.
|
|
4
|
+
This package should be used anywhere we need to write client config output or any other stack output that needs to be consumed after deployment in a consistent way.
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./stack_metadata_output_storage_strategy.js"), exports);
|
|
18
|
+
__exportStar(require("./store_attribution_metadata.js"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhFQUE0RDtBQUM1RCxrRUFBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N0YWNrX21ldGFkYXRhX291dHB1dF9zdG9yYWdlX3N0cmF0ZWd5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmVfYXR0cmlidXRpb25fbWV0YWRhdGEuanMnO1xuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
private lazyListValueMap;
|
|
9
|
+
/**
|
|
10
|
+
* Initialize the instance with a stack.
|
|
11
|
+
*
|
|
12
|
+
* If the stack is an AmplifyStack, set a parameter in SSM so the stack can be identified later by the project environment
|
|
13
|
+
*/
|
|
14
|
+
constructor(stack: Stack);
|
|
15
|
+
/**
|
|
16
|
+
* Store construct output as stack output and add metadata to the metadata object.
|
|
17
|
+
*/
|
|
18
|
+
addBackendOutputEntry: (keyName: string, backendOutputEntry: BackendOutputEntry) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Lazily construct and append to output list as stack output and add metadata to the metadata object.
|
|
21
|
+
*/
|
|
22
|
+
appendToBackendOutputList: (keyName: string, backendOutputEntry: BackendOutputEntry) => void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=stack_metadata_output_storage_strategy.d.ts.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StackMetadataBackendOutputStorageStrategy = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
/**
|
|
6
|
+
* Implementation of BackendOutputStorageStrategy that stores config data in stack metadata and outputs
|
|
7
|
+
*/
|
|
8
|
+
class StackMetadataBackendOutputStorageStrategy {
|
|
9
|
+
stack;
|
|
10
|
+
lazyListValueMap = new Map();
|
|
11
|
+
/**
|
|
12
|
+
* Initialize the instance with a stack.
|
|
13
|
+
*
|
|
14
|
+
* If the stack is an AmplifyStack, set a parameter in SSM so the stack can be identified later by the project environment
|
|
15
|
+
*/
|
|
16
|
+
constructor(stack) {
|
|
17
|
+
this.stack = stack;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Store construct output as stack output and add metadata to the metadata object.
|
|
21
|
+
*/
|
|
22
|
+
addBackendOutputEntry = (keyName, backendOutputEntry) => {
|
|
23
|
+
// add all the data values as stack outputs
|
|
24
|
+
Object.entries(backendOutputEntry.payload).forEach(([key, value]) => {
|
|
25
|
+
new aws_cdk_lib_1.CfnOutput(this.stack, key, { value });
|
|
26
|
+
});
|
|
27
|
+
this.stack.addMetadata(keyName, {
|
|
28
|
+
version: backendOutputEntry.version,
|
|
29
|
+
stackOutputs: Object.keys(backendOutputEntry.payload),
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Lazily construct and append to output list as stack output and add metadata to the metadata object.
|
|
34
|
+
*/
|
|
35
|
+
appendToBackendOutputList = (keyName, backendOutputEntry) => {
|
|
36
|
+
const version = backendOutputEntry.version;
|
|
37
|
+
let listsMap = this.lazyListValueMap.get(keyName);
|
|
38
|
+
const metadata = this.stack.templateOptions.metadata || {};
|
|
39
|
+
const existingMetadataEntry = metadata[keyName];
|
|
40
|
+
if (existingMetadataEntry) {
|
|
41
|
+
if (existingMetadataEntry.version !== version) {
|
|
42
|
+
throw new Error(`Metadata entry for ${keyName} at version ${existingMetadataEntry.version} already exists. Cannot add another entry for the same key at version ${version}.`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.stack.addMetadata(keyName, {
|
|
47
|
+
version,
|
|
48
|
+
stackOutputs: aws_cdk_lib_1.Lazy.list({
|
|
49
|
+
produce: () => Array.from(listsMap ? listsMap.keys() : []),
|
|
50
|
+
}),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
Object.entries(backendOutputEntry.payload).forEach(([listName, value]) => {
|
|
54
|
+
if (!listsMap) {
|
|
55
|
+
listsMap = new Map();
|
|
56
|
+
this.lazyListValueMap.set(keyName, listsMap);
|
|
57
|
+
}
|
|
58
|
+
let outputList = listsMap.get(listName);
|
|
59
|
+
if (outputList) {
|
|
60
|
+
outputList.push(value);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
outputList = [value];
|
|
64
|
+
listsMap.set(listName, outputList);
|
|
65
|
+
new aws_cdk_lib_1.CfnOutput(this.stack, listName, {
|
|
66
|
+
value: aws_cdk_lib_1.Lazy.string({ produce: () => JSON.stringify(outputList) }),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
exports.StackMetadataBackendOutputStorageStrategy = StackMetadataBackendOutputStorageStrategy;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2tfbWV0YWRhdGFfb3V0cHV0X3N0b3JhZ2Vfc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RhY2tfbWV0YWRhdGFfb3V0cHV0X3N0b3JhZ2Vfc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsNkNBQXFEO0FBTXJEOztHQUVHO0FBQ0gsTUFBYSx5Q0FBeUM7SUFXdkI7SUFSckIsZ0JBQWdCLEdBQ3RCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFWjs7OztPQUlHO0lBQ0gsWUFBNkIsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDO0lBRTdDOztPQUVHO0lBQ0gscUJBQXFCLEdBQUcsQ0FDdEIsT0FBZSxFQUNmLGtCQUFzQyxFQUNoQyxFQUFFO1FBQ1IsMkNBQTJDO1FBQzNDLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNsRSxJQUFJLHVCQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQzlCLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO1lBQ25DLFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztTQUN0RCxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILHlCQUF5QixHQUFHLENBQzFCLE9BQWUsRUFDZixrQkFBc0MsRUFDaEMsRUFBRTtRQUNSLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztRQUMzQyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDM0QsTUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEQsSUFBSSxxQkFBcUIsRUFBRTtZQUN6QixJQUFJLHFCQUFxQixDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7Z0JBQzdDLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0JBQXNCLE9BQU8sZUFBZSxxQkFBcUIsQ0FBQyxPQUFPLHlFQUF5RSxPQUFPLEdBQUcsQ0FDN0osQ0FBQzthQUNIO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtnQkFDOUIsT0FBTztnQkFDUCxZQUFZLEVBQUUsa0JBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ3RCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7aUJBQzNELENBQUM7YUFDSCxDQUFDLENBQUM7U0FDSjtRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN2RSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNiLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQzthQUM5QztZQUNELElBQUksVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFeEMsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4QjtpQkFBTTtnQkFDTCxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBRW5DLElBQUksdUJBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtvQkFDbEMsS0FBSyxFQUFFLGtCQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztpQkFDbEUsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztDQUNIO0FBOUVELDhGQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhY2tlbmRPdXRwdXRFbnRyeSxcbiAgQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneSxcbn0gZnJvbSAnQGF3cy1hbXBsaWZ5L3BsdWdpbi10eXBlcyc7XG5pbXBvcnQgeyBDZm5PdXRwdXQsIExhenksIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vLyBBbGlhc2VkIHN0cmluZ3MgZm9yIHJlYWRhYmlsaXR5XG50eXBlIE1ldGFkYXRhS2V5ID0gc3RyaW5nO1xudHlwZSBPdXRwdXRLZXkgPSBzdHJpbmc7XG5cbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgQmFja2VuZE91dHB1dFN0b3JhZ2VTdHJhdGVneSB0aGF0IHN0b3JlcyBjb25maWcgZGF0YSBpbiBzdGFjayBtZXRhZGF0YSBhbmQgb3V0cHV0c1xuICovXG5leHBvcnQgY2xhc3MgU3RhY2tNZXRhZGF0YUJhY2tlbmRPdXRwdXRTdG9yYWdlU3RyYXRlZ3lcbiAgaW1wbGVtZW50cyBCYWNrZW5kT3V0cHV0U3RvcmFnZVN0cmF0ZWd5PEJhY2tlbmRPdXRwdXRFbnRyeT5cbntcbiAgcHJpdmF0ZSBsYXp5TGlzdFZhbHVlTWFwOiBNYXA8TWV0YWRhdGFLZXksIE1hcDxPdXRwdXRLZXksIHN0cmluZ1tdPj4gPVxuICAgIG5ldyBNYXAoKTtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgaW5zdGFuY2Ugd2l0aCBhIHN0YWNrLlxuICAgKlxuICAgKiBJZiB0aGUgc3RhY2sgaXMgYW4gQW1wbGlmeVN0YWNrLCBzZXQgYSBwYXJhbWV0ZXIgaW4gU1NNIHNvIHRoZSBzdGFjayBjYW4gYmUgaWRlbnRpZmllZCBsYXRlciBieSB0aGUgcHJvamVjdCBlbnZpcm9ubWVudFxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGFjazogU3RhY2spIHt9XG5cbiAgLyoqXG4gICAqIFN0b3JlIGNvbnN0cnVjdCBvdXRwdXQgYXMgc3RhY2sgb3V0cHV0IGFuZCBhZGQgbWV0YWRhdGEgdG8gdGhlIG1ldGFkYXRhIG9iamVjdC5cbiAgICovXG4gIGFkZEJhY2tlbmRPdXRwdXRFbnRyeSA9IChcbiAgICBrZXlOYW1lOiBzdHJpbmcsXG4gICAgYmFja2VuZE91dHB1dEVudHJ5OiBCYWNrZW5kT3V0cHV0RW50cnlcbiAgKTogdm9pZCA9PiB7XG4gICAgLy8gYWRkIGFsbCB0aGUgZGF0YSB2YWx1ZXMgYXMgc3RhY2sgb3V0cHV0c1xuICAgIE9iamVjdC5lbnRyaWVzKGJhY2tlbmRPdXRwdXRFbnRyeS5wYXlsb2FkKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIG5ldyBDZm5PdXRwdXQodGhpcy5zdGFjaywga2V5LCB7IHZhbHVlIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGFjay5hZGRNZXRhZGF0YShrZXlOYW1lLCB7XG4gICAgICB2ZXJzaW9uOiBiYWNrZW5kT3V0cHV0RW50cnkudmVyc2lvbixcbiAgICAgIHN0YWNrT3V0cHV0czogT2JqZWN0LmtleXMoYmFja2VuZE91dHB1dEVudHJ5LnBheWxvYWQpLFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBMYXppbHkgY29uc3RydWN0IGFuZCBhcHBlbmQgdG8gb3V0cHV0IGxpc3QgYXMgc3RhY2sgb3V0cHV0IGFuZCBhZGQgbWV0YWRhdGEgdG8gdGhlIG1ldGFkYXRhIG9iamVjdC5cbiAgICovXG4gIGFwcGVuZFRvQmFja2VuZE91dHB1dExpc3QgPSAoXG4gICAga2V5TmFtZTogc3RyaW5nLFxuICAgIGJhY2tlbmRPdXRwdXRFbnRyeTogQmFja2VuZE91dHB1dEVudHJ5XG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHZlcnNpb24gPSBiYWNrZW5kT3V0cHV0RW50cnkudmVyc2lvbjtcbiAgICBsZXQgbGlzdHNNYXAgPSB0aGlzLmxhenlMaXN0VmFsdWVNYXAuZ2V0KGtleU5hbWUpO1xuXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5tZXRhZGF0YSB8fCB7fTtcbiAgICBjb25zdCBleGlzdGluZ01ldGFkYXRhRW50cnkgPSBtZXRhZGF0YVtrZXlOYW1lXTtcblxuICAgIGlmIChleGlzdGluZ01ldGFkYXRhRW50cnkpIHtcbiAgICAgIGlmIChleGlzdGluZ01ldGFkYXRhRW50cnkudmVyc2lvbiAhPT0gdmVyc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYE1ldGFkYXRhIGVudHJ5IGZvciAke2tleU5hbWV9IGF0IHZlcnNpb24gJHtleGlzdGluZ01ldGFkYXRhRW50cnkudmVyc2lvbn0gYWxyZWFkeSBleGlzdHMuIENhbm5vdCBhZGQgYW5vdGhlciBlbnRyeSBmb3IgdGhlIHNhbWUga2V5IGF0IHZlcnNpb24gJHt2ZXJzaW9ufS5gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhY2suYWRkTWV0YWRhdGEoa2V5TmFtZSwge1xuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBzdGFja091dHB1dHM6IExhenkubGlzdCh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT4gQXJyYXkuZnJvbShsaXN0c01hcCA/IGxpc3RzTWFwLmtleXMoKSA6IFtdKSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBPYmplY3QuZW50cmllcyhiYWNrZW5kT3V0cHV0RW50cnkucGF5bG9hZCkuZm9yRWFjaCgoW2xpc3ROYW1lLCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmICghbGlzdHNNYXApIHtcbiAgICAgICAgbGlzdHNNYXAgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMubGF6eUxpc3RWYWx1ZU1hcC5zZXQoa2V5TmFtZSwgbGlzdHNNYXApO1xuICAgICAgfVxuICAgICAgbGV0IG91dHB1dExpc3QgPSBsaXN0c01hcC5nZXQobGlzdE5hbWUpO1xuXG4gICAgICBpZiAob3V0cHV0TGlzdCkge1xuICAgICAgICBvdXRwdXRMaXN0LnB1c2godmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0cHV0TGlzdCA9IFt2YWx1ZV07XG4gICAgICAgIGxpc3RzTWFwLnNldChsaXN0TmFtZSwgb3V0cHV0TGlzdCk7XG5cbiAgICAgICAgbmV3IENmbk91dHB1dCh0aGlzLnN0YWNrLCBsaXN0TmFtZSwge1xuICAgICAgICAgIHZhbHVlOiBMYXp5LnN0cmluZyh7IHByb2R1Y2U6ICgpID0+IEpTT04uc3RyaW5naWZ5KG91dHB1dExpc3QpIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Stack } from 'aws-cdk-lib';
|
|
3
|
+
import * as _os from 'os';
|
|
4
|
+
import { PackageJsonReader } from '@aws-amplify/platform-core';
|
|
5
|
+
/**
|
|
6
|
+
* Stores BI metrics information in stack descriptions
|
|
7
|
+
*/
|
|
8
|
+
export declare class AttributionMetadataStorage {
|
|
9
|
+
private readonly os;
|
|
10
|
+
private readonly packageJsonReader;
|
|
11
|
+
/**
|
|
12
|
+
* Constructor with props for injecting test mocks
|
|
13
|
+
*/
|
|
14
|
+
constructor(os?: typeof _os, packageJsonReader?: PackageJsonReader);
|
|
15
|
+
/**
|
|
16
|
+
* Stores an attribution metadata string in the stack description of the provided stack
|
|
17
|
+
* Does nothing if the stack already has a non-empty description
|
|
18
|
+
*/
|
|
19
|
+
storeAttributionMetadata: (stack: Stack, stackType: string, libraryPackageJsonAbsolutePath: string, additionalMetadata?: Record<string, string>) => void;
|
|
20
|
+
private getAttributionMetadata;
|
|
21
|
+
private getDeploymentEngineType;
|
|
22
|
+
private getPlatform;
|
|
23
|
+
}
|
|
24
|
+
export type AttributionMetadata = {
|
|
25
|
+
/**
|
|
26
|
+
* The OS that synthesized this stack
|
|
27
|
+
*/
|
|
28
|
+
createdOn: Platform;
|
|
29
|
+
/**
|
|
30
|
+
* The synthesis engine that generated this stack
|
|
31
|
+
*/
|
|
32
|
+
createdBy: DeploymentEngineType;
|
|
33
|
+
/**
|
|
34
|
+
* The library version that created this metadata
|
|
35
|
+
*/
|
|
36
|
+
createdWith: string;
|
|
37
|
+
/**
|
|
38
|
+
* String that identifies what type of stack this metadata is set on
|
|
39
|
+
*/
|
|
40
|
+
stackType: string;
|
|
41
|
+
/**
|
|
42
|
+
* Field where constructs can put additional information for BI tracking
|
|
43
|
+
*/
|
|
44
|
+
metadata: Record<string, string>;
|
|
45
|
+
};
|
|
46
|
+
export type DeploymentEngineType = 'AmplifyPipelineDeploy' | 'AmplifySandbox' | 'AmplifyCDK';
|
|
47
|
+
export type Platform = 'Mac' | 'Windows' | 'Linux' | 'Other';
|
|
48
|
+
//# sourceMappingURL=store_attribution_metadata.d.ts.map
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.AttributionMetadataStorage = void 0;
|
|
27
|
+
const _os = __importStar(require("os"));
|
|
28
|
+
const platform_core_1 = require("@aws-amplify/platform-core");
|
|
29
|
+
/**
|
|
30
|
+
* Stores BI metrics information in stack descriptions
|
|
31
|
+
*/
|
|
32
|
+
class AttributionMetadataStorage {
|
|
33
|
+
os;
|
|
34
|
+
packageJsonReader;
|
|
35
|
+
/**
|
|
36
|
+
* Constructor with props for injecting test mocks
|
|
37
|
+
*/
|
|
38
|
+
constructor(os = _os, packageJsonReader = new platform_core_1.PackageJsonReader()) {
|
|
39
|
+
this.os = os;
|
|
40
|
+
this.packageJsonReader = packageJsonReader;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Stores an attribution metadata string in the stack description of the provided stack
|
|
44
|
+
* Does nothing if the stack already has a non-empty description
|
|
45
|
+
*/
|
|
46
|
+
storeAttributionMetadata = (stack, stackType, libraryPackageJsonAbsolutePath, additionalMetadata = {}) => {
|
|
47
|
+
if (typeof stack.templateOptions.description === 'string' &&
|
|
48
|
+
stack.templateOptions.description.length > 0) {
|
|
49
|
+
// don't overwrite an existing description
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
stack.templateOptions.description = JSON.stringify(this.getAttributionMetadata(stack, stackType, libraryPackageJsonAbsolutePath, additionalMetadata));
|
|
53
|
+
};
|
|
54
|
+
getAttributionMetadata = (stack, stackType, libraryPackageJsonAbsolutePath, additionalMetadata) => ({
|
|
55
|
+
createdOn: this.getPlatform(),
|
|
56
|
+
createdBy: this.getDeploymentEngineType(stack),
|
|
57
|
+
createdWith: this.packageJsonReader.read(libraryPackageJsonAbsolutePath).version ?? '',
|
|
58
|
+
stackType: stackType,
|
|
59
|
+
metadata: additionalMetadata,
|
|
60
|
+
});
|
|
61
|
+
getDeploymentEngineType = (stack) => {
|
|
62
|
+
const deploymentType = stack.node.tryGetContext(platform_core_1.CDKContextKey.DEPLOYMENT_TYPE);
|
|
63
|
+
if (deploymentType === undefined) {
|
|
64
|
+
// if no deployment type context value is set, assume the construct is being used in a native CDK project
|
|
65
|
+
return 'AmplifyCDK';
|
|
66
|
+
}
|
|
67
|
+
switch (deploymentType) {
|
|
68
|
+
case 'branch':
|
|
69
|
+
return 'AmplifyPipelineDeploy';
|
|
70
|
+
case 'sandbox':
|
|
71
|
+
return 'AmplifySandbox';
|
|
72
|
+
default:
|
|
73
|
+
throw new Error(`Unknown ${platform_core_1.CDKContextKey.DEPLOYMENT_TYPE} CDK context value "${deploymentType}"`);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
getPlatform = () => {
|
|
77
|
+
switch (this.os.platform()) {
|
|
78
|
+
case 'darwin':
|
|
79
|
+
return 'Mac';
|
|
80
|
+
case 'win32':
|
|
81
|
+
return 'Windows';
|
|
82
|
+
case 'linux':
|
|
83
|
+
return 'Linux';
|
|
84
|
+
default:
|
|
85
|
+
return 'Other';
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
exports.AttributionMetadataStorage = AttributionMetadataStorage;
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVfYXR0cmlidXRpb25fbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RvcmVfYXR0cmlidXRpb25fbWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx3Q0FBMEI7QUFDMUIsOERBQThFO0FBRzlFOztHQUVHO0FBQ0gsTUFBYSwwQkFBMEI7SUFLbEI7SUFDQTtJQUxuQjs7T0FFRztJQUNILFlBQ21CLEtBQWlCLEdBQUcsRUFDcEIsb0JBQW9CLElBQUksaUNBQWlCLEVBQUU7UUFEM0MsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDcEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtJQUMzRCxDQUFDO0lBRUo7OztPQUdHO0lBQ0gsd0JBQXdCLEdBQUcsQ0FDekIsS0FBWSxFQUNaLFNBQWlCLEVBQ2pCLDhCQUFzQyxFQUN0QyxxQkFBNkMsRUFBRSxFQUN6QyxFQUFFO1FBQ1IsSUFDRSxPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxLQUFLLFFBQVE7WUFDckQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDNUM7WUFDQSwwQ0FBMEM7WUFDMUMsT0FBTztTQUNSO1FBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUN6QixLQUFLLEVBQ0wsU0FBUyxFQUNULDhCQUE4QixFQUM5QixrQkFBa0IsQ0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRU0sc0JBQXNCLEdBQUcsQ0FDL0IsS0FBWSxFQUNaLFNBQWlCLEVBQ2pCLDhCQUFzQyxFQUN0QyxrQkFBMEMsRUFDckIsRUFBRSxDQUFDLENBQUM7UUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUM7UUFDOUMsV0FBVyxFQUNULElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRTtRQUMzRSxTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsa0JBQWtCO0tBQzdCLENBQUMsQ0FBQztJQUVLLHVCQUF1QixHQUFHLENBQUMsS0FBWSxFQUF3QixFQUFFO1FBQ3ZFLE1BQU0sY0FBYyxHQUErQixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FDekUsNkJBQWEsQ0FBQyxlQUFlLENBQzlCLENBQUM7UUFFRixJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDaEMseUdBQXlHO1lBQ3pHLE9BQU8sWUFBWSxDQUFDO1NBQ3JCO1FBRUQsUUFBUSxjQUFjLEVBQUU7WUFDdEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sdUJBQXVCLENBQUM7WUFDakMsS0FBSyxTQUFTO2dCQUNaLE9BQU8sZ0JBQWdCLENBQUM7WUFDMUI7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FDYixXQUFXLDZCQUFhLENBQUMsZUFBZSx1QkFDdEMsY0FDRixHQUFHLENBQ0osQ0FBQztTQUNMO0lBQ0gsQ0FBQyxDQUFDO0lBRU0sV0FBVyxHQUFHLEdBQWEsRUFBRTtRQUNuQyxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDMUIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sS0FBSyxDQUFDO1lBQ2YsS0FBSyxPQUFPO2dCQUNWLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssT0FBTztnQkFDVixPQUFPLE9BQU8sQ0FBQztZQUNqQjtnQkFDRSxPQUFPLE9BQU8sQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQztDQUNIO0FBdEZELGdFQXNGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgX29zIGZyb20gJ29zJztcbmltcG9ydCB7IENES0NvbnRleHRLZXksIFBhY2thZ2VKc29uUmVhZGVyIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L3BsYXRmb3JtLWNvcmUnO1xuaW1wb3J0IHsgRGVwbG95bWVudFR5cGUgfSBmcm9tICdAYXdzLWFtcGxpZnkvcGx1Z2luLXR5cGVzJztcblxuLyoqXG4gKiBTdG9yZXMgQkkgbWV0cmljcyBpbmZvcm1hdGlvbiBpbiBzdGFjayBkZXNjcmlwdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIEF0dHJpYnV0aW9uTWV0YWRhdGFTdG9yYWdlIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIHdpdGggcHJvcHMgZm9yIGluamVjdGluZyB0ZXN0IG1vY2tzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9zOiB0eXBlb2YgX29zID0gX29zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFja2FnZUpzb25SZWFkZXIgPSBuZXcgUGFja2FnZUpzb25SZWFkZXIoKVxuICApIHt9XG5cbiAgLyoqXG4gICAqIFN0b3JlcyBhbiBhdHRyaWJ1dGlvbiBtZXRhZGF0YSBzdHJpbmcgaW4gdGhlIHN0YWNrIGRlc2NyaXB0aW9uIG9mIHRoZSBwcm92aWRlZCBzdGFja1xuICAgKiBEb2VzIG5vdGhpbmcgaWYgdGhlIHN0YWNrIGFscmVhZHkgaGFzIGEgbm9uLWVtcHR5IGRlc2NyaXB0aW9uXG4gICAqL1xuICBzdG9yZUF0dHJpYnV0aW9uTWV0YWRhdGEgPSAoXG4gICAgc3RhY2s6IFN0YWNrLFxuICAgIHN0YWNrVHlwZTogc3RyaW5nLFxuICAgIGxpYnJhcnlQYWNrYWdlSnNvbkFic29sdXRlUGF0aDogc3RyaW5nLFxuICAgIGFkZGl0aW9uYWxNZXRhZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XG4gICk6IHZvaWQgPT4ge1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBzdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPT09ICdzdHJpbmcnICYmXG4gICAgICBzdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24ubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgLy8gZG9uJ3Qgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGRlc2NyaXB0aW9uXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgdGhpcy5nZXRBdHRyaWJ1dGlvbk1ldGFkYXRhKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgc3RhY2tUeXBlLFxuICAgICAgICBsaWJyYXJ5UGFja2FnZUpzb25BYnNvbHV0ZVBhdGgsXG4gICAgICAgIGFkZGl0aW9uYWxNZXRhZGF0YVxuICAgICAgKVxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGlvbk1ldGFkYXRhID0gKFxuICAgIHN0YWNrOiBTdGFjayxcbiAgICBzdGFja1R5cGU6IHN0cmluZyxcbiAgICBsaWJyYXJ5UGFja2FnZUpzb25BYnNvbHV0ZVBhdGg6IHN0cmluZyxcbiAgICBhZGRpdGlvbmFsTWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgKTogQXR0cmlidXRpb25NZXRhZGF0YSA9PiAoe1xuICAgIGNyZWF0ZWRPbjogdGhpcy5nZXRQbGF0Zm9ybSgpLFxuICAgIGNyZWF0ZWRCeTogdGhpcy5nZXREZXBsb3ltZW50RW5naW5lVHlwZShzdGFjayksXG4gICAgY3JlYXRlZFdpdGg6XG4gICAgICB0aGlzLnBhY2thZ2VKc29uUmVhZGVyLnJlYWQobGlicmFyeVBhY2thZ2VKc29uQWJzb2x1dGVQYXRoKS52ZXJzaW9uID8/ICcnLCAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4sIHJlZ2FyZGxlc3Mgd2Ugc2hvdWxkbid0IHRocm93IGZvciBhdHRyaWJ1dGlvblxuICAgIHN0YWNrVHlwZTogc3RhY2tUeXBlLFxuICAgIG1ldGFkYXRhOiBhZGRpdGlvbmFsTWV0YWRhdGEsXG4gIH0pO1xuXG4gIHByaXZhdGUgZ2V0RGVwbG95bWVudEVuZ2luZVR5cGUgPSAoc3RhY2s6IFN0YWNrKTogRGVwbG95bWVudEVuZ2luZVR5cGUgPT4ge1xuICAgIGNvbnN0IGRlcGxveW1lbnRUeXBlOiBEZXBsb3ltZW50VHlwZSB8IHVuZGVmaW5lZCA9IHN0YWNrLm5vZGUudHJ5R2V0Q29udGV4dChcbiAgICAgIENES0NvbnRleHRLZXkuREVQTE9ZTUVOVF9UWVBFXG4gICAgKTtcblxuICAgIGlmIChkZXBsb3ltZW50VHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBpZiBubyBkZXBsb3ltZW50IHR5cGUgY29udGV4dCB2YWx1ZSBpcyBzZXQsIGFzc3VtZSB0aGUgY29uc3RydWN0IGlzIGJlaW5nIHVzZWQgaW4gYSBuYXRpdmUgQ0RLIHByb2plY3RcbiAgICAgIHJldHVybiAnQW1wbGlmeUNESyc7XG4gICAgfVxuXG4gICAgc3dpdGNoIChkZXBsb3ltZW50VHlwZSkge1xuICAgICAgY2FzZSAnYnJhbmNoJzpcbiAgICAgICAgcmV0dXJuICdBbXBsaWZ5UGlwZWxpbmVEZXBsb3knO1xuICAgICAgY2FzZSAnc2FuZGJveCc6XG4gICAgICAgIHJldHVybiAnQW1wbGlmeVNhbmRib3gnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBVbmtub3duICR7Q0RLQ29udGV4dEtleS5ERVBMT1lNRU5UX1RZUEV9IENESyBjb250ZXh0IHZhbHVlIFwiJHtcbiAgICAgICAgICAgIGRlcGxveW1lbnRUeXBlIGFzIHN0cmluZ1xuICAgICAgICAgIH1cImBcbiAgICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBnZXRQbGF0Zm9ybSA9ICgpOiBQbGF0Zm9ybSA9PiB7XG4gICAgc3dpdGNoICh0aGlzLm9zLnBsYXRmb3JtKCkpIHtcbiAgICAgIGNhc2UgJ2Rhcndpbic6XG4gICAgICAgIHJldHVybiAnTWFjJztcbiAgICAgIGNhc2UgJ3dpbjMyJzpcbiAgICAgICAgcmV0dXJuICdXaW5kb3dzJztcbiAgICAgIGNhc2UgJ2xpbnV4JzpcbiAgICAgICAgcmV0dXJuICdMaW51eCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ090aGVyJztcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEF0dHJpYnV0aW9uTWV0YWRhdGEgPSB7XG4gIC8qKlxuICAgKiBUaGUgT1MgdGhhdCBzeW50aGVzaXplZCB0aGlzIHN0YWNrXG4gICAqL1xuICBjcmVhdGVkT246IFBsYXRmb3JtO1xuICAvKipcbiAgICogVGhlIHN5bnRoZXNpcyBlbmdpbmUgdGhhdCBnZW5lcmF0ZWQgdGhpcyBzdGFja1xuICAgKi9cbiAgY3JlYXRlZEJ5OiBEZXBsb3ltZW50RW5naW5lVHlwZTtcbiAgLyoqXG4gICAqIFRoZSBsaWJyYXJ5IHZlcnNpb24gdGhhdCBjcmVhdGVkIHRoaXMgbWV0YWRhdGFcbiAgICovXG4gIGNyZWF0ZWRXaXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdHJpbmcgdGhhdCBpZGVudGlmaWVzIHdoYXQgdHlwZSBvZiBzdGFjayB0aGlzIG1ldGFkYXRhIGlzIHNldCBvblxuICAgKi9cbiAgc3RhY2tUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpZWxkIHdoZXJlIGNvbnN0cnVjdHMgY2FuIHB1dCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBCSSB0cmFja2luZ1xuICAgKi9cbiAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59O1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50RW5naW5lVHlwZSA9XG4gIHwgJ0FtcGxpZnlQaXBlbGluZURlcGxveSdcbiAgfCAnQW1wbGlmeVNhbmRib3gnXG4gIHwgJ0FtcGxpZnlDREsnO1xuXG5leHBvcnQgdHlwZSBQbGF0Zm9ybSA9ICdNYWMnIHwgJ1dpbmRvd3MnIHwgJ0xpbnV4JyB8ICdPdGhlcic7XG4iXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aws-amplify/backend-output-storage",
|
|
3
|
+
"version": "0.0.0-test-20240315202106",
|
|
4
|
+
"type": "commonjs",
|
|
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
|
+
"license": "Apache-2.0",
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@aws-amplify/backend-output-schemas": "0.0.0-test-20240315202106",
|
|
23
|
+
"@aws-amplify/platform-core": "0.0.0-test-20240315202106"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"aws-cdk-lib": "^2.127.0"
|
|
27
|
+
}
|
|
28
|
+
}
|