@awsless/awsless 0.0.141 → 0.0.143
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/dist/bin.js +182 -124
- package/dist/features/cognito-client-secret/bundle.zip +0 -0
- package/dist/features/delete-bucket/bundle.zip +0 -0
- package/dist/features/delete-hosted-zone/bundle.zip +0 -0
- package/dist/features/global-exports/bundle.zip +0 -0
- package/dist/features/invalidate-cache/bundle.zip +0 -0
- package/dist/features/upload-bucket-asset/bundle.zip +0 -0
- package/package.json +3 -3
package/dist/bin.js
CHANGED
|
@@ -4098,7 +4098,7 @@ var restPlugin = definePlugin({
|
|
|
4098
4098
|
}).dependsOn(api);
|
|
4099
4099
|
bootstrap2.add(api, stage).export(`rest-${id}-id`, api.id);
|
|
4100
4100
|
if (props.domain) {
|
|
4101
|
-
const domainName =
|
|
4101
|
+
const domainName = formatFullDomainName(config2, props.domain, props.subDomain);
|
|
4102
4102
|
const hostedZoneId = bootstrap2.import(`hosted-zone-${props.domain}-id`);
|
|
4103
4103
|
const certificateArn = bootstrap2.import(`certificate-${props.domain}-arn`);
|
|
4104
4104
|
const domain = new DomainName2(id, {
|
|
@@ -6456,19 +6456,24 @@ var hr = () => {
|
|
|
6456
6456
|
};
|
|
6457
6457
|
};
|
|
6458
6458
|
|
|
6459
|
+
// src/cli/ui/layout/pad-text.ts
|
|
6460
|
+
var padText = (texts) => {
|
|
6461
|
+
const size = Math.max(...texts.map((text) => text.length));
|
|
6462
|
+
return (text, padding = 0) => {
|
|
6463
|
+
return text.padEnd(size + padding);
|
|
6464
|
+
};
|
|
6465
|
+
};
|
|
6466
|
+
|
|
6459
6467
|
// src/cli/ui/layout/list.ts
|
|
6460
6468
|
var list = (data) => {
|
|
6461
6469
|
const padding = 2;
|
|
6462
|
-
const
|
|
6463
|
-
const size = Object.keys(data).reduce((total, name) => {
|
|
6464
|
-
return name.length > total ? name.length : total;
|
|
6465
|
-
}, 0);
|
|
6470
|
+
const padName = padText(Object.keys(data));
|
|
6466
6471
|
return (term) => {
|
|
6467
6472
|
term.out.gap();
|
|
6468
6473
|
term.out.write(
|
|
6469
6474
|
Object.entries(data).map(([name, value]) => [
|
|
6470
6475
|
" ".repeat(padding),
|
|
6471
|
-
style.label((name + ":"
|
|
6476
|
+
style.label(padName(name + ":", 2)),
|
|
6472
6477
|
value,
|
|
6473
6478
|
br()
|
|
6474
6479
|
])
|
|
@@ -7173,15 +7178,23 @@ var assetBuilder = (app) => {
|
|
|
7173
7178
|
stop();
|
|
7174
7179
|
}
|
|
7175
7180
|
}, 3);
|
|
7181
|
+
let failure;
|
|
7176
7182
|
await Promise.all(
|
|
7177
7183
|
app.stacks.map(async (stack) => {
|
|
7178
7184
|
await Promise.all(
|
|
7179
7185
|
[...stack.assets].map(async (asset) => {
|
|
7180
|
-
|
|
7186
|
+
try {
|
|
7187
|
+
await queue2.push({ stack, asset });
|
|
7188
|
+
} catch (error) {
|
|
7189
|
+
failure = error;
|
|
7190
|
+
}
|
|
7181
7191
|
})
|
|
7182
7192
|
);
|
|
7183
7193
|
})
|
|
7184
7194
|
);
|
|
7195
|
+
if (failure) {
|
|
7196
|
+
throw failure;
|
|
7197
|
+
}
|
|
7185
7198
|
done("Done building stack assets");
|
|
7186
7199
|
if (showDetailedView) {
|
|
7187
7200
|
term.out.gap();
|
|
@@ -7675,69 +7688,68 @@ var bootstrap = (program2) => {
|
|
|
7675
7688
|
});
|
|
7676
7689
|
};
|
|
7677
7690
|
|
|
7678
|
-
// src/cli/ui/complex/
|
|
7679
|
-
|
|
7680
|
-
|
|
7681
|
-
const
|
|
7682
|
-
return (term) => {
|
|
7683
|
-
const
|
|
7684
|
-
|
|
7685
|
-
|
|
7686
|
-
const
|
|
7687
|
-
|
|
7688
|
-
|
|
7689
|
-
|
|
7690
|
-
|
|
7691
|
-
|
|
7692
|
-
|
|
7693
|
-
|
|
7694
|
-
|
|
7695
|
-
|
|
7696
|
-
|
|
7697
|
-
|
|
7698
|
-
|
|
7699
|
-
|
|
7700
|
-
|
|
7701
|
-
|
|
7702
|
-
|
|
7703
|
-
|
|
7704
|
-
|
|
7705
|
-
|
|
7706
|
-
|
|
7707
|
-
|
|
7708
|
-
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
|
|
7716
|
-
|
|
7717
|
-
|
|
7718
|
-
|
|
7719
|
-
|
|
7720
|
-
|
|
7721
|
-
|
|
7722
|
-
|
|
7723
|
-
|
|
7724
|
-
|
|
7725
|
-
|
|
7726
|
-
|
|
7727
|
-
|
|
7728
|
-
|
|
7691
|
+
// src/cli/ui/complex/task-group.ts
|
|
7692
|
+
import { promise as promise2 } from "fastq";
|
|
7693
|
+
var runTaskGroup = (concurrency, tasks) => {
|
|
7694
|
+
const formatLabel = padText(tasks.map((task) => task?.label ?? ""));
|
|
7695
|
+
return async (term) => {
|
|
7696
|
+
const queue2 = promise2(async (task) => {
|
|
7697
|
+
const [icon, stop] = createSpinner();
|
|
7698
|
+
const status2 = new Signal("");
|
|
7699
|
+
const entry = new Signal([
|
|
7700
|
+
icon,
|
|
7701
|
+
" ",
|
|
7702
|
+
style.label(formatLabel(task.label)),
|
|
7703
|
+
" ",
|
|
7704
|
+
style.placeholder(symbol.pointerSmall),
|
|
7705
|
+
" ",
|
|
7706
|
+
status2,
|
|
7707
|
+
br()
|
|
7708
|
+
]);
|
|
7709
|
+
term.out.write(entry);
|
|
7710
|
+
let result;
|
|
7711
|
+
try {
|
|
7712
|
+
result = await task.task((text) => {
|
|
7713
|
+
status2.set(text);
|
|
7714
|
+
});
|
|
7715
|
+
} catch (error) {
|
|
7716
|
+
result = "fail";
|
|
7717
|
+
throw error;
|
|
7718
|
+
} finally {
|
|
7719
|
+
stop();
|
|
7720
|
+
}
|
|
7721
|
+
switch (result) {
|
|
7722
|
+
case "done":
|
|
7723
|
+
icon.set(style.success(symbol.success));
|
|
7724
|
+
status2.update(style.success);
|
|
7725
|
+
break;
|
|
7726
|
+
case "fail":
|
|
7727
|
+
icon.set(style.error(symbol.error));
|
|
7728
|
+
status2.update(style.error);
|
|
7729
|
+
break;
|
|
7730
|
+
case "warn":
|
|
7731
|
+
icon.set(style.warning(symbol.warning));
|
|
7732
|
+
status2.update(style.warning);
|
|
7733
|
+
break;
|
|
7734
|
+
}
|
|
7735
|
+
}, concurrency);
|
|
7736
|
+
const results = await Promise.allSettled(
|
|
7737
|
+
tasks.map((task) => {
|
|
7738
|
+
return queue2.push(task);
|
|
7739
|
+
})
|
|
7740
|
+
);
|
|
7741
|
+
for (const result of results) {
|
|
7742
|
+
if (result.status === "rejected") {
|
|
7743
|
+
throw result.reason;
|
|
7729
7744
|
}
|
|
7730
7745
|
}
|
|
7731
|
-
term.out.write(flexLine(term, [" "], [" ", style.warning("\u26A1\uFE0F"), style.placeholder("\u2500\u2500")]));
|
|
7732
|
-
term.out.gap();
|
|
7733
|
-
return ui;
|
|
7734
7746
|
};
|
|
7735
7747
|
};
|
|
7736
7748
|
|
|
7737
7749
|
// src/cli/command/status.ts
|
|
7738
7750
|
var status = (program2) => {
|
|
7739
7751
|
program2.command("status").argument("[stacks...]", "Optionally filter stacks to lookup status").description("View the app status").action(async (filters) => {
|
|
7740
|
-
await layout(async (config2, write) => {
|
|
7752
|
+
await layout(async (config2, write, term) => {
|
|
7741
7753
|
const { app, deploymentLine } = await toApp(config2, filters);
|
|
7742
7754
|
await cleanUp();
|
|
7743
7755
|
await write(typesGenerator(config2));
|
|
@@ -7746,25 +7758,34 @@ var status = (program2) => {
|
|
|
7746
7758
|
const doneLoading = write(loadingDialog("Loading stack information..."));
|
|
7747
7759
|
const client = new StackClient(app, config2.account, config2.app.region, config2.credentials);
|
|
7748
7760
|
const statuses = [];
|
|
7749
|
-
const ui = write(stacksDeployer(deploymentLine));
|
|
7750
7761
|
debug("Load metadata for all deployed stacks on AWS");
|
|
7751
|
-
|
|
7752
|
-
|
|
7753
|
-
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7762
|
+
term.out.gap();
|
|
7763
|
+
await write(
|
|
7764
|
+
runTaskGroup(
|
|
7765
|
+
5,
|
|
7766
|
+
deploymentLine.flat().map((stack) => ({
|
|
7767
|
+
label: stack.name,
|
|
7768
|
+
task: async (update) => {
|
|
7769
|
+
update("Loading...");
|
|
7770
|
+
const info = await client.get(stack.name, stack.region);
|
|
7771
|
+
if (!info) {
|
|
7772
|
+
update("NON EXISTENT");
|
|
7773
|
+
statuses.push("non-existent");
|
|
7774
|
+
return "fail";
|
|
7775
|
+
} else if (info.template !== stack.toString()) {
|
|
7776
|
+
update("OUT OF DATE");
|
|
7777
|
+
statuses.push("out-of-date");
|
|
7778
|
+
return "warn";
|
|
7779
|
+
} else {
|
|
7780
|
+
update("UP TO DATE");
|
|
7781
|
+
statuses.push("up-to-date");
|
|
7782
|
+
return "done";
|
|
7783
|
+
}
|
|
7784
|
+
}
|
|
7785
|
+
}))
|
|
7786
|
+
)
|
|
7767
7787
|
);
|
|
7788
|
+
term.out.gap();
|
|
7768
7789
|
doneLoading("Done loading stack information");
|
|
7769
7790
|
debug("Done loading data for all deployed stacks on AWS");
|
|
7770
7791
|
if (statuses.includes("non-existent") || statuses.includes("out-of-date")) {
|
|
@@ -7780,7 +7801,7 @@ var status = (program2) => {
|
|
|
7780
7801
|
import { readFile as readFile7 } from "fs/promises";
|
|
7781
7802
|
import { join as join10 } from "path";
|
|
7782
7803
|
import { GetObjectCommand, ObjectCannedACL as ObjectCannedACL2, PutObjectCommand as PutObjectCommand2, S3Client as S3Client2, StorageClass as StorageClass2 } from "@aws-sdk/client-s3";
|
|
7783
|
-
import { promise as
|
|
7804
|
+
import { promise as promise3 } from "fastq";
|
|
7784
7805
|
var assetPublisher = (config2, app) => {
|
|
7785
7806
|
const client = new S3Client2({
|
|
7786
7807
|
credentials: config2.credentials,
|
|
@@ -7789,7 +7810,7 @@ var assetPublisher = (config2, app) => {
|
|
|
7789
7810
|
});
|
|
7790
7811
|
return async (term) => {
|
|
7791
7812
|
const done = term.out.write(loadingDialog("Publishing stack assets to AWS..."));
|
|
7792
|
-
const queue2 =
|
|
7813
|
+
const queue2 = promise3(async ({ stack, asset }) => {
|
|
7793
7814
|
const getFullPath = (file) => {
|
|
7794
7815
|
return join10(directories.asset, asset.type, app.name, stack.name, asset.id, file);
|
|
7795
7816
|
};
|
|
@@ -8151,6 +8172,7 @@ var singleTester = (stack, dir, filters) => {
|
|
|
8151
8172
|
};
|
|
8152
8173
|
var runTester = (tests, filters = []) => {
|
|
8153
8174
|
return async (term) => {
|
|
8175
|
+
term.out.gap();
|
|
8154
8176
|
for (const [name, paths] of tests.entries()) {
|
|
8155
8177
|
for (const path of paths) {
|
|
8156
8178
|
const result = await term.out.write(singleTester(name, path, filters));
|
|
@@ -8159,6 +8181,7 @@ var runTester = (tests, filters = []) => {
|
|
|
8159
8181
|
}
|
|
8160
8182
|
}
|
|
8161
8183
|
}
|
|
8184
|
+
term.out.gap();
|
|
8162
8185
|
return true;
|
|
8163
8186
|
};
|
|
8164
8187
|
};
|
|
@@ -8166,7 +8189,7 @@ var runTester = (tests, filters = []) => {
|
|
|
8166
8189
|
// src/cli/command/deploy.ts
|
|
8167
8190
|
var deploy = (program2) => {
|
|
8168
8191
|
program2.command("deploy").argument("[stacks...]", "Optionally filter stacks to deploy").description("Deploy your app to AWS").action(async (filters) => {
|
|
8169
|
-
await layout(async (config2, write) => {
|
|
8192
|
+
await layout(async (config2, write, term) => {
|
|
8170
8193
|
await write(bootstrapDeployer(config2));
|
|
8171
8194
|
const { app, deploymentLine, tests } = await toApp(config2, filters);
|
|
8172
8195
|
const stackNames = app.stacks.map((stack) => stack.name);
|
|
@@ -8195,28 +8218,30 @@ var deploy = (program2) => {
|
|
|
8195
8218
|
await write(templateBuilder(app));
|
|
8196
8219
|
const doneDeploying = write(loadingDialog("Deploying stacks to AWS..."));
|
|
8197
8220
|
const client = new StackClient(app, config2.account, config2.app.region, config2.credentials);
|
|
8198
|
-
|
|
8199
|
-
for (const
|
|
8200
|
-
|
|
8201
|
-
|
|
8202
|
-
|
|
8203
|
-
|
|
8204
|
-
|
|
8205
|
-
|
|
8206
|
-
|
|
8207
|
-
|
|
8208
|
-
|
|
8209
|
-
|
|
8210
|
-
|
|
8211
|
-
|
|
8212
|
-
|
|
8221
|
+
term.out.gap();
|
|
8222
|
+
for (const stacks of deploymentLine) {
|
|
8223
|
+
await write(
|
|
8224
|
+
runTaskGroup(
|
|
8225
|
+
5,
|
|
8226
|
+
stacks.map((stack) => ({
|
|
8227
|
+
label: stack.name,
|
|
8228
|
+
task: async (update) => {
|
|
8229
|
+
update("deploying...");
|
|
8230
|
+
try {
|
|
8231
|
+
await client.deploy(stack);
|
|
8232
|
+
} catch (error) {
|
|
8233
|
+
debugError(error);
|
|
8234
|
+
update("failed");
|
|
8235
|
+
throw error;
|
|
8236
|
+
}
|
|
8237
|
+
update("deployed");
|
|
8238
|
+
return "done";
|
|
8239
|
+
}
|
|
8240
|
+
}))
|
|
8241
|
+
)
|
|
8213
8242
|
);
|
|
8214
|
-
for (const result of results) {
|
|
8215
|
-
if (result.status === "rejected") {
|
|
8216
|
-
throw result.reason;
|
|
8217
|
-
}
|
|
8218
|
-
}
|
|
8219
8243
|
}
|
|
8244
|
+
term.out.gap();
|
|
8220
8245
|
doneDeploying("Done deploying stacks to AWS");
|
|
8221
8246
|
});
|
|
8222
8247
|
});
|
|
@@ -8453,7 +8478,7 @@ var dev = (program2) => {
|
|
|
8453
8478
|
// src/cli/command/delete.ts
|
|
8454
8479
|
var del2 = (program2) => {
|
|
8455
8480
|
program2.command("delete").argument("[stacks...]", "Optionally filter stacks to delete").description("Delete your app from AWS").action(async (filters) => {
|
|
8456
|
-
await layout(async (config2, write) => {
|
|
8481
|
+
await layout(async (config2, write, term) => {
|
|
8457
8482
|
const { app, deploymentLine } = await toApp(config2, filters);
|
|
8458
8483
|
const deletingLine = deploymentLine.reverse();
|
|
8459
8484
|
const stackNames = app.stacks.map((stack) => stack.name);
|
|
@@ -8477,33 +8502,65 @@ var del2 = (program2) => {
|
|
|
8477
8502
|
}
|
|
8478
8503
|
const doneDeploying = write(loadingDialog("Deleting stacks from AWS..."));
|
|
8479
8504
|
const client = new StackClient(app, config2.account, config2.app.region, config2.credentials);
|
|
8480
|
-
|
|
8481
|
-
for (const
|
|
8482
|
-
|
|
8483
|
-
|
|
8484
|
-
|
|
8485
|
-
|
|
8486
|
-
|
|
8487
|
-
|
|
8488
|
-
|
|
8489
|
-
|
|
8490
|
-
|
|
8491
|
-
|
|
8492
|
-
|
|
8493
|
-
|
|
8494
|
-
|
|
8505
|
+
term.out.gap();
|
|
8506
|
+
for (const stacks of deletingLine) {
|
|
8507
|
+
await write(
|
|
8508
|
+
runTaskGroup(
|
|
8509
|
+
5,
|
|
8510
|
+
stacks.map((stack) => ({
|
|
8511
|
+
label: stack.name,
|
|
8512
|
+
task: async (update) => {
|
|
8513
|
+
update("deleting...");
|
|
8514
|
+
try {
|
|
8515
|
+
await client.delete(stack.name, stack.region);
|
|
8516
|
+
} catch (error) {
|
|
8517
|
+
debugError(error);
|
|
8518
|
+
update("failed");
|
|
8519
|
+
throw error;
|
|
8520
|
+
}
|
|
8521
|
+
update("deleted");
|
|
8522
|
+
return "done";
|
|
8523
|
+
}
|
|
8524
|
+
}))
|
|
8525
|
+
)
|
|
8495
8526
|
);
|
|
8496
|
-
for (const result of results) {
|
|
8497
|
-
if (result.status === "rejected") {
|
|
8498
|
-
throw result.reason;
|
|
8499
|
-
}
|
|
8500
|
-
}
|
|
8501
8527
|
}
|
|
8528
|
+
term.out.gap();
|
|
8502
8529
|
doneDeploying("Done deleting stacks from AWS");
|
|
8503
8530
|
});
|
|
8504
8531
|
});
|
|
8505
8532
|
};
|
|
8506
8533
|
|
|
8534
|
+
// src/cli/command/draw.ts
|
|
8535
|
+
var draw = (program2) => {
|
|
8536
|
+
program2.command("draw").description("Test your app").action(async () => {
|
|
8537
|
+
await layout(async (config2, write) => {
|
|
8538
|
+
await write(
|
|
8539
|
+
runTaskGroup(1, [
|
|
8540
|
+
{
|
|
8541
|
+
label: "stack-1",
|
|
8542
|
+
task: async (update) => {
|
|
8543
|
+
update("Loading...");
|
|
8544
|
+
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
8545
|
+
update("Done");
|
|
8546
|
+
return "warn";
|
|
8547
|
+
}
|
|
8548
|
+
},
|
|
8549
|
+
{
|
|
8550
|
+
label: "stack-2",
|
|
8551
|
+
task: async (update) => {
|
|
8552
|
+
update("Loading...");
|
|
8553
|
+
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
8554
|
+
update("Done");
|
|
8555
|
+
return "done";
|
|
8556
|
+
}
|
|
8557
|
+
}
|
|
8558
|
+
])
|
|
8559
|
+
);
|
|
8560
|
+
});
|
|
8561
|
+
});
|
|
8562
|
+
};
|
|
8563
|
+
|
|
8507
8564
|
// src/cli/program.ts
|
|
8508
8565
|
var program = new Command();
|
|
8509
8566
|
program.name(logo().join("").replace(/\s+/, ""));
|
|
@@ -8533,7 +8590,8 @@ var commands2 = [
|
|
|
8533
8590
|
del2,
|
|
8534
8591
|
dev,
|
|
8535
8592
|
config,
|
|
8536
|
-
test
|
|
8593
|
+
test,
|
|
8594
|
+
draw
|
|
8537
8595
|
// diff,
|
|
8538
8596
|
// remove,
|
|
8539
8597
|
];
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awsless/awsless",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.143",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@awsless/lambda": "^0.0.15",
|
|
32
|
+
"@awsless/redis": "^0.0.10",
|
|
33
|
+
"@awsless/sns": "^0.0.7",
|
|
32
34
|
"@awsless/sqs": "^0.0.7",
|
|
33
35
|
"@awsless/ssm": "^0.0.7",
|
|
34
36
|
"@awsless/validate": "^0.0.10",
|
|
35
|
-
"@awsless/redis": "^0.0.10",
|
|
36
|
-
"@awsless/sns": "^0.0.7",
|
|
37
37
|
"@awsless/weak-cache": "^0.0.1"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|