@awsless/cli 0.0.32 → 0.0.34
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 +65 -63
- package/dist/prebuild/icon/bundle.zip +0 -0
- package/dist/prebuild/image/bundle.zip +0 -0
- package/dist/prebuild/on-error-log/bundle.zip +0 -0
- package/dist/prebuild/on-failure/bundle.zip +0 -0
- package/dist/prebuild/pubsub-publisher/bundle.zip +0 -0
- package/dist/prebuild/pubsub-server/HASH +1 -1
- package/dist/prebuild/pubsub-server/index.mjs +2 -2
- package/dist/prebuild/rpc/bundle.zip +0 -0
- package/dist/prebuild.js +0 -1
- package/package.json +9 -9
package/dist/bin.js
CHANGED
|
@@ -3543,6 +3543,57 @@ var formatByteSize = (size) => {
|
|
|
3543
3543
|
return color.attr(number) + color.attr.dim(unit);
|
|
3544
3544
|
};
|
|
3545
3545
|
|
|
3546
|
+
// src/util/policy.ts
|
|
3547
|
+
import { pascalCase } from "change-case";
|
|
3548
|
+
var sortKeysDeep = (value) => {
|
|
3549
|
+
if (Array.isArray(value)) {
|
|
3550
|
+
return value.map(sortKeysDeep);
|
|
3551
|
+
}
|
|
3552
|
+
if (value && typeof value === "object") {
|
|
3553
|
+
const entries = Object.entries(value);
|
|
3554
|
+
return Object.fromEntries(
|
|
3555
|
+
entries.sort(([a], [b]) => a.localeCompare(b)).map(([key, entry]) => {
|
|
3556
|
+
return [key, sortKeysDeep(entry)];
|
|
3557
|
+
})
|
|
3558
|
+
);
|
|
3559
|
+
}
|
|
3560
|
+
return value;
|
|
3561
|
+
};
|
|
3562
|
+
var unique = (list3) => {
|
|
3563
|
+
return [...new Set(list3)];
|
|
3564
|
+
};
|
|
3565
|
+
var mergePolicyStatements = (statements) => {
|
|
3566
|
+
const merged = /* @__PURE__ */ new Map();
|
|
3567
|
+
for (const statement of statements) {
|
|
3568
|
+
const effect = statement.effect ?? "allow";
|
|
3569
|
+
const actions = unique(statement.actions).sort();
|
|
3570
|
+
const key = JSON.stringify([effect, actions, sortKeysDeep(statement.conditions) ?? null]);
|
|
3571
|
+
const entry = merged.get(key);
|
|
3572
|
+
if (entry) {
|
|
3573
|
+
entry.resources = unique([...entry.resources, ...statement.resources]);
|
|
3574
|
+
} else {
|
|
3575
|
+
merged.set(key, {
|
|
3576
|
+
effect,
|
|
3577
|
+
actions,
|
|
3578
|
+
resources: unique(statement.resources),
|
|
3579
|
+
conditions: statement.conditions
|
|
3580
|
+
});
|
|
3581
|
+
}
|
|
3582
|
+
}
|
|
3583
|
+
return [...merged.values()];
|
|
3584
|
+
};
|
|
3585
|
+
var formatPolicyDocument = (statements) => {
|
|
3586
|
+
return {
|
|
3587
|
+
Version: "2012-10-17",
|
|
3588
|
+
Statement: mergePolicyStatements(statements).map((statement) => ({
|
|
3589
|
+
Effect: pascalCase(statement.effect ?? "allow"),
|
|
3590
|
+
Action: statement.actions,
|
|
3591
|
+
Resource: statement.resources,
|
|
3592
|
+
Condition: statement.conditions
|
|
3593
|
+
}))
|
|
3594
|
+
};
|
|
3595
|
+
};
|
|
3596
|
+
|
|
3546
3597
|
// src/feature/on-failure/util.ts
|
|
3547
3598
|
var getGlobalOnFailure = (ctx) => {
|
|
3548
3599
|
return ctx.shared.get("on-failure", "bucket-arn");
|
|
@@ -3572,7 +3623,6 @@ var zipFiles = (files) => {
|
|
|
3572
3623
|
// src/feature/function/util.ts
|
|
3573
3624
|
import { toDays as toDays5, toSeconds } from "@awsless/duration";
|
|
3574
3625
|
import { toMebibytes as toMebibytes3 } from "@awsless/size";
|
|
3575
|
-
import { pascalCase } from "change-case";
|
|
3576
3626
|
|
|
3577
3627
|
// src/util/cache.ts
|
|
3578
3628
|
import { lstat as lstat2, readdir } from "fs/promises";
|
|
@@ -3871,17 +3921,7 @@ var createLambdaFunction = (parentGroup, ctx, ns, id, local) => {
|
|
|
3871
3921
|
name: "lambda-policy",
|
|
3872
3922
|
policy: new Output3(statementDeps, async (resolve2) => {
|
|
3873
3923
|
const list3 = await resolveInputs(statements);
|
|
3874
|
-
resolve2(
|
|
3875
|
-
JSON.stringify({
|
|
3876
|
-
Version: "2012-10-17",
|
|
3877
|
-
Statement: list3.map((statement) => ({
|
|
3878
|
-
Effect: pascalCase(statement.effect ?? "allow"),
|
|
3879
|
-
Action: statement.actions,
|
|
3880
|
-
Resource: statement.resources,
|
|
3881
|
-
Condition: statement.conditions
|
|
3882
|
-
}))
|
|
3883
|
-
})
|
|
3884
|
-
);
|
|
3924
|
+
resolve2(JSON.stringify(formatPolicyDocument(list3)));
|
|
3885
3925
|
})
|
|
3886
3926
|
});
|
|
3887
3927
|
let dependsOn = [];
|
|
@@ -4550,7 +4590,6 @@ import { days as days8, seconds as seconds5, toDays as toDays6, toSeconds as toS
|
|
|
4550
4590
|
import { mebibytes as mebibytes2, toMebibytes as toMebibytes4 } from "@awsless/size";
|
|
4551
4591
|
import { aws as aws8 } from "@terraforge/aws";
|
|
4552
4592
|
import { Output as Output4, findInputDeps as findInputDeps2, resolveInputs as resolveInputs2 } from "@terraforge/core";
|
|
4553
|
-
import { pascalCase as pascalCase2 } from "change-case";
|
|
4554
4593
|
var createPrebuildLambdaFunction = (group, ctx, ns, id, props) => {
|
|
4555
4594
|
let name;
|
|
4556
4595
|
let roleName;
|
|
@@ -4641,16 +4680,7 @@ var createPrebuildLambdaFunction = (group, ctx, ns, id, props) => {
|
|
|
4641
4680
|
name: "lambda-policy",
|
|
4642
4681
|
policy: new Output4(statementDeps, async (resolve2) => {
|
|
4643
4682
|
const list3 = await resolveInputs2(statements);
|
|
4644
|
-
resolve2(
|
|
4645
|
-
JSON.stringify({
|
|
4646
|
-
Version: "2012-10-17",
|
|
4647
|
-
Statement: list3.map((statement) => ({
|
|
4648
|
-
Effect: pascalCase2(statement.effect ?? "allow"),
|
|
4649
|
-
Action: statement.actions,
|
|
4650
|
-
Resource: statement.resources
|
|
4651
|
-
}))
|
|
4652
|
-
})
|
|
4653
|
-
);
|
|
4683
|
+
resolve2(JSON.stringify(formatPolicyDocument(list3)));
|
|
4654
4684
|
})
|
|
4655
4685
|
});
|
|
4656
4686
|
const variables = {};
|
|
@@ -5103,7 +5133,7 @@ import { toDays as toDays7 } from "@awsless/duration";
|
|
|
5103
5133
|
import { stringify } from "@awsless/json";
|
|
5104
5134
|
import { aws as aws11 } from "@terraforge/aws";
|
|
5105
5135
|
import { Group as Group10, Output as Output5, findInputDeps as findInputDeps3, resolveInputs as resolveInputs3 } from "@terraforge/core";
|
|
5106
|
-
import { pascalCase as
|
|
5136
|
+
import { pascalCase as pascalCase2 } from "change-case";
|
|
5107
5137
|
import { createHash as createHash4 } from "crypto";
|
|
5108
5138
|
import { readFile as readFile5 } from "fs/promises";
|
|
5109
5139
|
import { fileURLToPath } from "url";
|
|
@@ -5244,7 +5274,7 @@ var createPubSubService = (parentGroup, ctx, id, props, inputs) => {
|
|
|
5244
5274
|
Version: "2012-10-17",
|
|
5245
5275
|
Statement: [
|
|
5246
5276
|
{
|
|
5247
|
-
Effect:
|
|
5277
|
+
Effect: pascalCase2("allow"),
|
|
5248
5278
|
Action: ["s3:getObject", "s3:HeadObject"],
|
|
5249
5279
|
Resource: `arn:aws:s3:::${bucket}/${key}`
|
|
5250
5280
|
}
|
|
@@ -5265,16 +5295,7 @@ var createPubSubService = (parentGroup, ctx, id, props, inputs) => {
|
|
|
5265
5295
|
name: "task-policy",
|
|
5266
5296
|
policy: new Output5(statementDeps, async (resolve2) => {
|
|
5267
5297
|
const list3 = await resolveInputs3(statements);
|
|
5268
|
-
resolve2(
|
|
5269
|
-
JSON.stringify({
|
|
5270
|
-
Version: "2012-10-17",
|
|
5271
|
-
Statement: list3.map((statement) => ({
|
|
5272
|
-
Effect: pascalCase3(statement.effect ?? "allow"),
|
|
5273
|
-
Action: statement.actions,
|
|
5274
|
-
Resource: statement.resources
|
|
5275
|
-
}))
|
|
5276
|
-
})
|
|
5277
|
-
);
|
|
5298
|
+
resolve2(JSON.stringify(formatPolicyDocument(list3)));
|
|
5278
5299
|
})
|
|
5279
5300
|
});
|
|
5280
5301
|
const addPermission = (...permissions) => {
|
|
@@ -6695,12 +6716,12 @@ var storeFeature = defineFeature({
|
|
|
6695
6716
|
ctx.addAppPermission({
|
|
6696
6717
|
actions: [
|
|
6697
6718
|
"s3:ListBucket",
|
|
6698
|
-
|
|
6699
|
-
|
|
6719
|
+
// 's3:ListBucketV2',
|
|
6720
|
+
// 's3:HeadObject',
|
|
6700
6721
|
"s3:GetObject",
|
|
6701
6722
|
"s3:PutObject",
|
|
6702
6723
|
"s3:DeleteObject",
|
|
6703
|
-
|
|
6724
|
+
// 's3:CopyObject',
|
|
6704
6725
|
"s3:GetObjectAttributes"
|
|
6705
6726
|
],
|
|
6706
6727
|
resources: [
|
|
@@ -7017,7 +7038,6 @@ var tableFeature = defineFeature({
|
|
|
7017
7038
|
"dynamodb:GetItem",
|
|
7018
7039
|
"dynamodb:UpdateItem",
|
|
7019
7040
|
"dynamodb:DeleteItem",
|
|
7020
|
-
"dynamodb:TransactWrite",
|
|
7021
7041
|
"dynamodb:BatchWriteItem",
|
|
7022
7042
|
"dynamodb:BatchGetItem",
|
|
7023
7043
|
"dynamodb:ConditionCheckItem",
|
|
@@ -7895,7 +7915,7 @@ import { toMebibytes as toMebibytes5 } from "@awsless/size";
|
|
|
7895
7915
|
import { generateFileHash as generateFileHash2 } from "@awsless/ts-file-cache";
|
|
7896
7916
|
import { aws as aws27 } from "@terraforge/aws";
|
|
7897
7917
|
import { Group as Group26, Output as Output7, findInputDeps as findInputDeps4, resolveInputs as resolveInputs4 } from "@terraforge/core";
|
|
7898
|
-
import { constantCase as constantCase12, pascalCase as
|
|
7918
|
+
import { constantCase as constantCase12, pascalCase as pascalCase3 } from "change-case";
|
|
7899
7919
|
import deepmerge4 from "deepmerge";
|
|
7900
7920
|
|
|
7901
7921
|
// src/feature/job/build/executable.ts
|
|
@@ -8043,7 +8063,7 @@ var createFargateJob = (parentGroup, ctx, ns, id, local) => {
|
|
|
8043
8063
|
Version: "2012-10-17",
|
|
8044
8064
|
Statement: [
|
|
8045
8065
|
{
|
|
8046
|
-
Effect:
|
|
8066
|
+
Effect: pascalCase3("allow"),
|
|
8047
8067
|
Action: ["s3:GetObject", "s3:HeadObject"],
|
|
8048
8068
|
Resource: [`arn:aws:s3:::${bucket}/${key}`, `arn:aws:s3:::${bucket}/payloads/*`]
|
|
8049
8069
|
}
|
|
@@ -8064,16 +8084,7 @@ var createFargateJob = (parentGroup, ctx, ns, id, local) => {
|
|
|
8064
8084
|
name: "task-policy",
|
|
8065
8085
|
policy: new Output7(statementDeps, async (resolve2) => {
|
|
8066
8086
|
const list3 = await resolveInputs4(statements);
|
|
8067
|
-
resolve2(
|
|
8068
|
-
JSON.stringify({
|
|
8069
|
-
Version: "2012-10-17",
|
|
8070
|
-
Statement: list3.map((statement) => ({
|
|
8071
|
-
Effect: pascalCase4(statement.effect ?? "allow"),
|
|
8072
|
-
Action: statement.actions,
|
|
8073
|
-
Resource: statement.resources
|
|
8074
|
-
}))
|
|
8075
|
-
})
|
|
8076
|
-
);
|
|
8087
|
+
resolve2(JSON.stringify(formatPolicyDocument(list3)));
|
|
8077
8088
|
})
|
|
8078
8089
|
});
|
|
8079
8090
|
const addPermission = (...permissions) => {
|
|
@@ -8474,7 +8485,7 @@ import { toMebibytes as toMebibytes6 } from "@awsless/size";
|
|
|
8474
8485
|
import { generateFileHash as generateFileHash3 } from "@awsless/ts-file-cache";
|
|
8475
8486
|
import { aws as aws29 } from "@terraforge/aws";
|
|
8476
8487
|
import { Group as Group28, Output as Output9, findInputDeps as findInputDeps6, resolveInputs as resolveInputs6 } from "@terraforge/core";
|
|
8477
|
-
import { constantCase as constantCase13, pascalCase as
|
|
8488
|
+
import { constantCase as constantCase13, pascalCase as pascalCase4 } from "change-case";
|
|
8478
8489
|
import { createHash as createHash7 } from "crypto";
|
|
8479
8490
|
import deepmerge6 from "deepmerge";
|
|
8480
8491
|
import { join as join21 } from "path";
|
|
@@ -8554,7 +8565,7 @@ var createFargateTask = (parentGroup, ctx, ns, id, local) => {
|
|
|
8554
8565
|
Version: "2012-10-17",
|
|
8555
8566
|
Statement: [
|
|
8556
8567
|
{
|
|
8557
|
-
Effect:
|
|
8568
|
+
Effect: pascalCase4("allow"),
|
|
8558
8569
|
Action: ["s3:getObject", "s3:HeadObject"],
|
|
8559
8570
|
Resource: `arn:aws:s3:::${bucket}/${key}`
|
|
8560
8571
|
}
|
|
@@ -8575,16 +8586,7 @@ var createFargateTask = (parentGroup, ctx, ns, id, local) => {
|
|
|
8575
8586
|
name: "task-policy",
|
|
8576
8587
|
policy: new Output9(statementDeps, async (resolve2) => {
|
|
8577
8588
|
const list3 = await resolveInputs6(statements);
|
|
8578
|
-
resolve2(
|
|
8579
|
-
JSON.stringify({
|
|
8580
|
-
Version: "2012-10-17",
|
|
8581
|
-
Statement: list3.map((statement) => ({
|
|
8582
|
-
Effect: pascalCase5(statement.effect ?? "allow"),
|
|
8583
|
-
Action: statement.actions,
|
|
8584
|
-
Resource: statement.resources
|
|
8585
|
-
}))
|
|
8586
|
-
})
|
|
8587
|
-
);
|
|
8589
|
+
resolve2(JSON.stringify(formatPolicyDocument(list3)));
|
|
8588
8590
|
})
|
|
8589
8591
|
});
|
|
8590
8592
|
const addPermission = (...permissions) => {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
7669ae3aa167b158129e305933548bfced402e16
|