From 5eb0aa8bd2ded182aa90fce7355eac99973e8fc8 Mon Sep 17 00:00:00 2001 From: Dane Pilcher Date: Mon, 29 Apr 2024 10:50:26 -0600 Subject: [PATCH 1/4] fix: java builder steps to respect handleListNullabilityTransparently (#830) --- .../appsync-java-visitor.test.ts.snap | 1398 ++++++++++++++++- .../visitors/appsync-java-visitor.test.ts | 23 + .../src/visitors/appsync-java-visitor.ts | 2 +- 3 files changed, 1421 insertions(+), 2 deletions(-) diff --git a/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-java-visitor.test.ts.snap b/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-java-visitor.test.ts.snap index b68a0cec3..b19462d61 100644 --- a/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-java-visitor.test.ts.snap +++ b/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-java-visitor.test.ts.snap @@ -6997,7 +6997,7 @@ public final class ListContainer implements Model { .toString(); } - public static RequiredListOfRequiredStep builder() { + public static RequiredListStep builder() { return new Builder(); } @@ -10540,6 +10540,1402 @@ public final class SqlRelated implements Model { " `; +exports[`AppSyncModelVisitor handleListNullabilityTransparently optionalElementOptionalList: [String] with handleListNullabilityTransparently: false 1`] = ` +"package com.amplifyframework.datastore.generated.model; + +import com.amplifyframework.core.model.temporal.Temporal; + +import java.util.List; +import java.util.UUID; +import java.util.Objects; + +import androidx.core.util.ObjectsCompat; + +import com.amplifyframework.core.model.Model; +import com.amplifyframework.core.model.annotations.Index; +import com.amplifyframework.core.model.annotations.ModelConfig; +import com.amplifyframework.core.model.annotations.ModelField; +import com.amplifyframework.core.model.query.predicate.QueryField; + +import static com.amplifyframework.core.model.query.predicate.QueryField.field; + +/** This is an auto generated class representing the Foo type in your schema. */ +@SuppressWarnings(\\"all\\") +@ModelConfig(pluralName = \\"Foos\\") +public final class Foo implements Model { + public static final QueryField ID = field(\\"Foo\\", \\"id\\"); + public static final QueryField OPTIONAL_ELEMENT_OPTIONAL_LIST = field(\\"Foo\\", \\"optionalElementOptionalList\\"); + private final @ModelField(targetType=\\"ID\\", isRequired = true) String id; + private final @ModelField(targetType=\\"String\\") List optionalElementOptionalList; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime createdAt; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime updatedAt; + public String getId() { + return id; + } + + public List getOptionalElementOptionalList() { + return optionalElementOptionalList; + } + + public Temporal.DateTime getCreatedAt() { + return createdAt; + } + + public Temporal.DateTime getUpdatedAt() { + return updatedAt; + } + + private Foo(String id, List optionalElementOptionalList) { + this.id = id; + this.optionalElementOptionalList = optionalElementOptionalList; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } else if(obj == null || getClass() != obj.getClass()) { + return false; + } else { + Foo foo = (Foo) obj; + return ObjectsCompat.equals(getId(), foo.getId()) && + ObjectsCompat.equals(getOptionalElementOptionalList(), foo.getOptionalElementOptionalList()) && + ObjectsCompat.equals(getCreatedAt(), foo.getCreatedAt()) && + ObjectsCompat.equals(getUpdatedAt(), foo.getUpdatedAt()); + } + } + + @Override + public int hashCode() { + return new StringBuilder() + .append(getId()) + .append(getOptionalElementOptionalList()) + .append(getCreatedAt()) + .append(getUpdatedAt()) + .toString() + .hashCode(); + } + + @Override + public String toString() { + return new StringBuilder() + .append(\\"Foo {\\") + .append(\\"id=\\" + String.valueOf(getId()) + \\", \\") + .append(\\"optionalElementOptionalList=\\" + String.valueOf(getOptionalElementOptionalList()) + \\", \\") + .append(\\"createdAt=\\" + String.valueOf(getCreatedAt()) + \\", \\") + .append(\\"updatedAt=\\" + String.valueOf(getUpdatedAt())) + .append(\\"}\\") + .toString(); + } + + public static BuildStep builder() { + return new Builder(); + } + + /** + * WARNING: This method should not be used to build an instance of this object for a CREATE mutation. + * This is a convenience method to return an instance of the object with only its ID populated + * to be used in the context of a parameter in a delete mutation or referencing a foreign key + * in a relationship. + * @param id the id of the existing item this instance will represent + * @return an instance of this model with only ID populated + */ + public static Foo justId(String id) { + return new Foo( + id, + null + ); + } + + public CopyOfBuilder copyOfBuilder() { + return new CopyOfBuilder(id, + optionalElementOptionalList); + } + public interface BuildStep { + Foo build(); + BuildStep id(String id); + BuildStep optionalElementOptionalList(List optionalElementOptionalList); + } + + + public static class Builder implements BuildStep { + private String id; + private List optionalElementOptionalList; + public Builder() { + + } + + private Builder(String id, List optionalElementOptionalList) { + this.id = id; + this.optionalElementOptionalList = optionalElementOptionalList; + } + + @Override + public Foo build() { + String id = this.id != null ? this.id : UUID.randomUUID().toString(); + + return new Foo( + id, + optionalElementOptionalList); + } + + @Override + public BuildStep optionalElementOptionalList(List optionalElementOptionalList) { + this.optionalElementOptionalList = optionalElementOptionalList; + return this; + } + + /** + * @param id id + * @return Current Builder instance, for fluent method chaining + */ + public BuildStep id(String id) { + this.id = id; + return this; + } + } + + + public final class CopyOfBuilder extends Builder { + private CopyOfBuilder(String id, List optionalElementOptionalList) { + super(id, optionalElementOptionalList); + + } + + @Override + public CopyOfBuilder optionalElementOptionalList(List optionalElementOptionalList) { + return (CopyOfBuilder) super.optionalElementOptionalList(optionalElementOptionalList); + } + } + +} +" +`; + +exports[`AppSyncModelVisitor handleListNullabilityTransparently optionalElementOptionalList: [String] with handleListNullabilityTransparently: true 1`] = ` +"package com.amplifyframework.datastore.generated.model; + +import com.amplifyframework.core.model.temporal.Temporal; + +import java.util.List; +import java.util.UUID; +import java.util.Objects; + +import androidx.core.util.ObjectsCompat; + +import com.amplifyframework.core.model.Model; +import com.amplifyframework.core.model.annotations.Index; +import com.amplifyframework.core.model.annotations.ModelConfig; +import com.amplifyframework.core.model.annotations.ModelField; +import com.amplifyframework.core.model.query.predicate.QueryField; + +import static com.amplifyframework.core.model.query.predicate.QueryField.field; + +/** This is an auto generated class representing the Foo type in your schema. */ +@SuppressWarnings(\\"all\\") +@ModelConfig(pluralName = \\"Foos\\") +public final class Foo implements Model { + public static final QueryField ID = field(\\"Foo\\", \\"id\\"); + public static final QueryField OPTIONAL_ELEMENT_OPTIONAL_LIST = field(\\"Foo\\", \\"optionalElementOptionalList\\"); + private final @ModelField(targetType=\\"ID\\", isRequired = true) String id; + private final @ModelField(targetType=\\"String\\") List optionalElementOptionalList; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime createdAt; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime updatedAt; + public String getId() { + return id; + } + + public List getOptionalElementOptionalList() { + return optionalElementOptionalList; + } + + public Temporal.DateTime getCreatedAt() { + return createdAt; + } + + public Temporal.DateTime getUpdatedAt() { + return updatedAt; + } + + private Foo(String id, List optionalElementOptionalList) { + this.id = id; + this.optionalElementOptionalList = optionalElementOptionalList; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } else if(obj == null || getClass() != obj.getClass()) { + return false; + } else { + Foo foo = (Foo) obj; + return ObjectsCompat.equals(getId(), foo.getId()) && + ObjectsCompat.equals(getOptionalElementOptionalList(), foo.getOptionalElementOptionalList()) && + ObjectsCompat.equals(getCreatedAt(), foo.getCreatedAt()) && + ObjectsCompat.equals(getUpdatedAt(), foo.getUpdatedAt()); + } + } + + @Override + public int hashCode() { + return new StringBuilder() + .append(getId()) + .append(getOptionalElementOptionalList()) + .append(getCreatedAt()) + .append(getUpdatedAt()) + .toString() + .hashCode(); + } + + @Override + public String toString() { + return new StringBuilder() + .append(\\"Foo {\\") + .append(\\"id=\\" + String.valueOf(getId()) + \\", \\") + .append(\\"optionalElementOptionalList=\\" + String.valueOf(getOptionalElementOptionalList()) + \\", \\") + .append(\\"createdAt=\\" + String.valueOf(getCreatedAt()) + \\", \\") + .append(\\"updatedAt=\\" + String.valueOf(getUpdatedAt())) + .append(\\"}\\") + .toString(); + } + + public static BuildStep builder() { + return new Builder(); + } + + /** + * WARNING: This method should not be used to build an instance of this object for a CREATE mutation. + * This is a convenience method to return an instance of the object with only its ID populated + * to be used in the context of a parameter in a delete mutation or referencing a foreign key + * in a relationship. + * @param id the id of the existing item this instance will represent + * @return an instance of this model with only ID populated + */ + public static Foo justId(String id) { + return new Foo( + id, + null + ); + } + + public CopyOfBuilder copyOfBuilder() { + return new CopyOfBuilder(id, + optionalElementOptionalList); + } + public interface BuildStep { + Foo build(); + BuildStep id(String id); + BuildStep optionalElementOptionalList(List optionalElementOptionalList); + } + + + public static class Builder implements BuildStep { + private String id; + private List optionalElementOptionalList; + public Builder() { + + } + + private Builder(String id, List optionalElementOptionalList) { + this.id = id; + this.optionalElementOptionalList = optionalElementOptionalList; + } + + @Override + public Foo build() { + String id = this.id != null ? this.id : UUID.randomUUID().toString(); + + return new Foo( + id, + optionalElementOptionalList); + } + + @Override + public BuildStep optionalElementOptionalList(List optionalElementOptionalList) { + this.optionalElementOptionalList = optionalElementOptionalList; + return this; + } + + /** + * @param id id + * @return Current Builder instance, for fluent method chaining + */ + public BuildStep id(String id) { + this.id = id; + return this; + } + } + + + public final class CopyOfBuilder extends Builder { + private CopyOfBuilder(String id, List optionalElementOptionalList) { + super(id, optionalElementOptionalList); + + } + + @Override + public CopyOfBuilder optionalElementOptionalList(List optionalElementOptionalList) { + return (CopyOfBuilder) super.optionalElementOptionalList(optionalElementOptionalList); + } + } + +} +" +`; + +exports[`AppSyncModelVisitor handleListNullabilityTransparently optionalElementRequiredList: [String]! with handleListNullabilityTransparently: false 1`] = ` +"package com.amplifyframework.datastore.generated.model; + +import com.amplifyframework.core.model.temporal.Temporal; + +import java.util.List; +import java.util.UUID; +import java.util.Objects; + +import androidx.core.util.ObjectsCompat; + +import com.amplifyframework.core.model.Model; +import com.amplifyframework.core.model.annotations.Index; +import com.amplifyframework.core.model.annotations.ModelConfig; +import com.amplifyframework.core.model.annotations.ModelField; +import com.amplifyframework.core.model.query.predicate.QueryField; + +import static com.amplifyframework.core.model.query.predicate.QueryField.field; + +/** This is an auto generated class representing the Foo type in your schema. */ +@SuppressWarnings(\\"all\\") +@ModelConfig(pluralName = \\"Foos\\") +public final class Foo implements Model { + public static final QueryField ID = field(\\"Foo\\", \\"id\\"); + public static final QueryField OPTIONAL_ELEMENT_REQUIRED_LIST = field(\\"Foo\\", \\"optionalElementRequiredList\\"); + private final @ModelField(targetType=\\"ID\\", isRequired = true) String id; + private final @ModelField(targetType=\\"String\\") List optionalElementRequiredList; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime createdAt; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime updatedAt; + public String getId() { + return id; + } + + public List getOptionalElementRequiredList() { + return optionalElementRequiredList; + } + + public Temporal.DateTime getCreatedAt() { + return createdAt; + } + + public Temporal.DateTime getUpdatedAt() { + return updatedAt; + } + + private Foo(String id, List optionalElementRequiredList) { + this.id = id; + this.optionalElementRequiredList = optionalElementRequiredList; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } else if(obj == null || getClass() != obj.getClass()) { + return false; + } else { + Foo foo = (Foo) obj; + return ObjectsCompat.equals(getId(), foo.getId()) && + ObjectsCompat.equals(getOptionalElementRequiredList(), foo.getOptionalElementRequiredList()) && + ObjectsCompat.equals(getCreatedAt(), foo.getCreatedAt()) && + ObjectsCompat.equals(getUpdatedAt(), foo.getUpdatedAt()); + } + } + + @Override + public int hashCode() { + return new StringBuilder() + .append(getId()) + .append(getOptionalElementRequiredList()) + .append(getCreatedAt()) + .append(getUpdatedAt()) + .toString() + .hashCode(); + } + + @Override + public String toString() { + return new StringBuilder() + .append(\\"Foo {\\") + .append(\\"id=\\" + String.valueOf(getId()) + \\", \\") + .append(\\"optionalElementRequiredList=\\" + String.valueOf(getOptionalElementRequiredList()) + \\", \\") + .append(\\"createdAt=\\" + String.valueOf(getCreatedAt()) + \\", \\") + .append(\\"updatedAt=\\" + String.valueOf(getUpdatedAt())) + .append(\\"}\\") + .toString(); + } + + public static BuildStep builder() { + return new Builder(); + } + + /** + * WARNING: This method should not be used to build an instance of this object for a CREATE mutation. + * This is a convenience method to return an instance of the object with only its ID populated + * to be used in the context of a parameter in a delete mutation or referencing a foreign key + * in a relationship. + * @param id the id of the existing item this instance will represent + * @return an instance of this model with only ID populated + */ + public static Foo justId(String id) { + return new Foo( + id, + null + ); + } + + public CopyOfBuilder copyOfBuilder() { + return new CopyOfBuilder(id, + optionalElementRequiredList); + } + public interface BuildStep { + Foo build(); + BuildStep id(String id); + BuildStep optionalElementRequiredList(List optionalElementRequiredList); + } + + + public static class Builder implements BuildStep { + private String id; + private List optionalElementRequiredList; + public Builder() { + + } + + private Builder(String id, List optionalElementRequiredList) { + this.id = id; + this.optionalElementRequiredList = optionalElementRequiredList; + } + + @Override + public Foo build() { + String id = this.id != null ? this.id : UUID.randomUUID().toString(); + + return new Foo( + id, + optionalElementRequiredList); + } + + @Override + public BuildStep optionalElementRequiredList(List optionalElementRequiredList) { + this.optionalElementRequiredList = optionalElementRequiredList; + return this; + } + + /** + * @param id id + * @return Current Builder instance, for fluent method chaining + */ + public BuildStep id(String id) { + this.id = id; + return this; + } + } + + + public final class CopyOfBuilder extends Builder { + private CopyOfBuilder(String id, List optionalElementRequiredList) { + super(id, optionalElementRequiredList); + + } + + @Override + public CopyOfBuilder optionalElementRequiredList(List optionalElementRequiredList) { + return (CopyOfBuilder) super.optionalElementRequiredList(optionalElementRequiredList); + } + } + +} +" +`; + +exports[`AppSyncModelVisitor handleListNullabilityTransparently optionalElementRequiredList: [String]! with handleListNullabilityTransparently: true 1`] = ` +"package com.amplifyframework.datastore.generated.model; + +import com.amplifyframework.core.model.temporal.Temporal; + +import java.util.List; +import java.util.UUID; +import java.util.Objects; + +import androidx.core.util.ObjectsCompat; + +import com.amplifyframework.core.model.Model; +import com.amplifyframework.core.model.annotations.Index; +import com.amplifyframework.core.model.annotations.ModelConfig; +import com.amplifyframework.core.model.annotations.ModelField; +import com.amplifyframework.core.model.query.predicate.QueryField; + +import static com.amplifyframework.core.model.query.predicate.QueryField.field; + +/** This is an auto generated class representing the Foo type in your schema. */ +@SuppressWarnings(\\"all\\") +@ModelConfig(pluralName = \\"Foos\\") +public final class Foo implements Model { + public static final QueryField ID = field(\\"Foo\\", \\"id\\"); + public static final QueryField OPTIONAL_ELEMENT_REQUIRED_LIST = field(\\"Foo\\", \\"optionalElementRequiredList\\"); + private final @ModelField(targetType=\\"ID\\", isRequired = true) String id; + private final @ModelField(targetType=\\"String\\", isRequired = true) List optionalElementRequiredList; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime createdAt; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime updatedAt; + public String getId() { + return id; + } + + public List getOptionalElementRequiredList() { + return optionalElementRequiredList; + } + + public Temporal.DateTime getCreatedAt() { + return createdAt; + } + + public Temporal.DateTime getUpdatedAt() { + return updatedAt; + } + + private Foo(String id, List optionalElementRequiredList) { + this.id = id; + this.optionalElementRequiredList = optionalElementRequiredList; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } else if(obj == null || getClass() != obj.getClass()) { + return false; + } else { + Foo foo = (Foo) obj; + return ObjectsCompat.equals(getId(), foo.getId()) && + ObjectsCompat.equals(getOptionalElementRequiredList(), foo.getOptionalElementRequiredList()) && + ObjectsCompat.equals(getCreatedAt(), foo.getCreatedAt()) && + ObjectsCompat.equals(getUpdatedAt(), foo.getUpdatedAt()); + } + } + + @Override + public int hashCode() { + return new StringBuilder() + .append(getId()) + .append(getOptionalElementRequiredList()) + .append(getCreatedAt()) + .append(getUpdatedAt()) + .toString() + .hashCode(); + } + + @Override + public String toString() { + return new StringBuilder() + .append(\\"Foo {\\") + .append(\\"id=\\" + String.valueOf(getId()) + \\", \\") + .append(\\"optionalElementRequiredList=\\" + String.valueOf(getOptionalElementRequiredList()) + \\", \\") + .append(\\"createdAt=\\" + String.valueOf(getCreatedAt()) + \\", \\") + .append(\\"updatedAt=\\" + String.valueOf(getUpdatedAt())) + .append(\\"}\\") + .toString(); + } + + public static OptionalElementRequiredListStep builder() { + return new Builder(); + } + + /** + * WARNING: This method should not be used to build an instance of this object for a CREATE mutation. + * This is a convenience method to return an instance of the object with only its ID populated + * to be used in the context of a parameter in a delete mutation or referencing a foreign key + * in a relationship. + * @param id the id of the existing item this instance will represent + * @return an instance of this model with only ID populated + */ + public static Foo justId(String id) { + return new Foo( + id, + null + ); + } + + public CopyOfBuilder copyOfBuilder() { + return new CopyOfBuilder(id, + optionalElementRequiredList); + } + public interface OptionalElementRequiredListStep { + BuildStep optionalElementRequiredList(List optionalElementRequiredList); + } + + + public interface BuildStep { + Foo build(); + BuildStep id(String id); + } + + + public static class Builder implements OptionalElementRequiredListStep, BuildStep { + private String id; + private List optionalElementRequiredList; + public Builder() { + + } + + private Builder(String id, List optionalElementRequiredList) { + this.id = id; + this.optionalElementRequiredList = optionalElementRequiredList; + } + + @Override + public Foo build() { + String id = this.id != null ? this.id : UUID.randomUUID().toString(); + + return new Foo( + id, + optionalElementRequiredList); + } + + @Override + public BuildStep optionalElementRequiredList(List optionalElementRequiredList) { + Objects.requireNonNull(optionalElementRequiredList); + this.optionalElementRequiredList = optionalElementRequiredList; + return this; + } + + /** + * @param id id + * @return Current Builder instance, for fluent method chaining + */ + public BuildStep id(String id) { + this.id = id; + return this; + } + } + + + public final class CopyOfBuilder extends Builder { + private CopyOfBuilder(String id, List optionalElementRequiredList) { + super(id, optionalElementRequiredList); + Objects.requireNonNull(optionalElementRequiredList); + } + + @Override + public CopyOfBuilder optionalElementRequiredList(List optionalElementRequiredList) { + return (CopyOfBuilder) super.optionalElementRequiredList(optionalElementRequiredList); + } + } + +} +" +`; + +exports[`AppSyncModelVisitor handleListNullabilityTransparently requiredElementOptionalList: [String!] with handleListNullabilityTransparently: false 1`] = ` +"package com.amplifyframework.datastore.generated.model; + +import com.amplifyframework.core.model.temporal.Temporal; + +import java.util.List; +import java.util.UUID; +import java.util.Objects; + +import androidx.core.util.ObjectsCompat; + +import com.amplifyframework.core.model.Model; +import com.amplifyframework.core.model.annotations.Index; +import com.amplifyframework.core.model.annotations.ModelConfig; +import com.amplifyframework.core.model.annotations.ModelField; +import com.amplifyframework.core.model.query.predicate.QueryField; + +import static com.amplifyframework.core.model.query.predicate.QueryField.field; + +/** This is an auto generated class representing the Foo type in your schema. */ +@SuppressWarnings(\\"all\\") +@ModelConfig(pluralName = \\"Foos\\") +public final class Foo implements Model { + public static final QueryField ID = field(\\"Foo\\", \\"id\\"); + public static final QueryField REQUIRED_ELEMENT_OPTIONAL_LIST = field(\\"Foo\\", \\"requiredElementOptionalList\\"); + private final @ModelField(targetType=\\"ID\\", isRequired = true) String id; + private final @ModelField(targetType=\\"String\\", isRequired = true) List requiredElementOptionalList; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime createdAt; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime updatedAt; + public String getId() { + return id; + } + + public List getRequiredElementOptionalList() { + return requiredElementOptionalList; + } + + public Temporal.DateTime getCreatedAt() { + return createdAt; + } + + public Temporal.DateTime getUpdatedAt() { + return updatedAt; + } + + private Foo(String id, List requiredElementOptionalList) { + this.id = id; + this.requiredElementOptionalList = requiredElementOptionalList; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } else if(obj == null || getClass() != obj.getClass()) { + return false; + } else { + Foo foo = (Foo) obj; + return ObjectsCompat.equals(getId(), foo.getId()) && + ObjectsCompat.equals(getRequiredElementOptionalList(), foo.getRequiredElementOptionalList()) && + ObjectsCompat.equals(getCreatedAt(), foo.getCreatedAt()) && + ObjectsCompat.equals(getUpdatedAt(), foo.getUpdatedAt()); + } + } + + @Override + public int hashCode() { + return new StringBuilder() + .append(getId()) + .append(getRequiredElementOptionalList()) + .append(getCreatedAt()) + .append(getUpdatedAt()) + .toString() + .hashCode(); + } + + @Override + public String toString() { + return new StringBuilder() + .append(\\"Foo {\\") + .append(\\"id=\\" + String.valueOf(getId()) + \\", \\") + .append(\\"requiredElementOptionalList=\\" + String.valueOf(getRequiredElementOptionalList()) + \\", \\") + .append(\\"createdAt=\\" + String.valueOf(getCreatedAt()) + \\", \\") + .append(\\"updatedAt=\\" + String.valueOf(getUpdatedAt())) + .append(\\"}\\") + .toString(); + } + + public static RequiredElementOptionalListStep builder() { + return new Builder(); + } + + /** + * WARNING: This method should not be used to build an instance of this object for a CREATE mutation. + * This is a convenience method to return an instance of the object with only its ID populated + * to be used in the context of a parameter in a delete mutation or referencing a foreign key + * in a relationship. + * @param id the id of the existing item this instance will represent + * @return an instance of this model with only ID populated + */ + public static Foo justId(String id) { + return new Foo( + id, + null + ); + } + + public CopyOfBuilder copyOfBuilder() { + return new CopyOfBuilder(id, + requiredElementOptionalList); + } + public interface RequiredElementOptionalListStep { + BuildStep requiredElementOptionalList(List requiredElementOptionalList); + } + + + public interface BuildStep { + Foo build(); + BuildStep id(String id); + } + + + public static class Builder implements RequiredElementOptionalListStep, BuildStep { + private String id; + private List requiredElementOptionalList; + public Builder() { + + } + + private Builder(String id, List requiredElementOptionalList) { + this.id = id; + this.requiredElementOptionalList = requiredElementOptionalList; + } + + @Override + public Foo build() { + String id = this.id != null ? this.id : UUID.randomUUID().toString(); + + return new Foo( + id, + requiredElementOptionalList); + } + + @Override + public BuildStep requiredElementOptionalList(List requiredElementOptionalList) { + Objects.requireNonNull(requiredElementOptionalList); + this.requiredElementOptionalList = requiredElementOptionalList; + return this; + } + + /** + * @param id id + * @return Current Builder instance, for fluent method chaining + */ + public BuildStep id(String id) { + this.id = id; + return this; + } + } + + + public final class CopyOfBuilder extends Builder { + private CopyOfBuilder(String id, List requiredElementOptionalList) { + super(id, requiredElementOptionalList); + Objects.requireNonNull(requiredElementOptionalList); + } + + @Override + public CopyOfBuilder requiredElementOptionalList(List requiredElementOptionalList) { + return (CopyOfBuilder) super.requiredElementOptionalList(requiredElementOptionalList); + } + } + +} +" +`; + +exports[`AppSyncModelVisitor handleListNullabilityTransparently requiredElementOptionalList: [String!] with handleListNullabilityTransparently: true 1`] = ` +"package com.amplifyframework.datastore.generated.model; + +import com.amplifyframework.core.model.temporal.Temporal; + +import java.util.List; +import java.util.UUID; +import java.util.Objects; + +import androidx.core.util.ObjectsCompat; + +import com.amplifyframework.core.model.Model; +import com.amplifyframework.core.model.annotations.Index; +import com.amplifyframework.core.model.annotations.ModelConfig; +import com.amplifyframework.core.model.annotations.ModelField; +import com.amplifyframework.core.model.query.predicate.QueryField; + +import static com.amplifyframework.core.model.query.predicate.QueryField.field; + +/** This is an auto generated class representing the Foo type in your schema. */ +@SuppressWarnings(\\"all\\") +@ModelConfig(pluralName = \\"Foos\\") +public final class Foo implements Model { + public static final QueryField ID = field(\\"Foo\\", \\"id\\"); + public static final QueryField REQUIRED_ELEMENT_OPTIONAL_LIST = field(\\"Foo\\", \\"requiredElementOptionalList\\"); + private final @ModelField(targetType=\\"ID\\", isRequired = true) String id; + private final @ModelField(targetType=\\"String\\") List requiredElementOptionalList; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime createdAt; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime updatedAt; + public String getId() { + return id; + } + + public List getRequiredElementOptionalList() { + return requiredElementOptionalList; + } + + public Temporal.DateTime getCreatedAt() { + return createdAt; + } + + public Temporal.DateTime getUpdatedAt() { + return updatedAt; + } + + private Foo(String id, List requiredElementOptionalList) { + this.id = id; + this.requiredElementOptionalList = requiredElementOptionalList; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } else if(obj == null || getClass() != obj.getClass()) { + return false; + } else { + Foo foo = (Foo) obj; + return ObjectsCompat.equals(getId(), foo.getId()) && + ObjectsCompat.equals(getRequiredElementOptionalList(), foo.getRequiredElementOptionalList()) && + ObjectsCompat.equals(getCreatedAt(), foo.getCreatedAt()) && + ObjectsCompat.equals(getUpdatedAt(), foo.getUpdatedAt()); + } + } + + @Override + public int hashCode() { + return new StringBuilder() + .append(getId()) + .append(getRequiredElementOptionalList()) + .append(getCreatedAt()) + .append(getUpdatedAt()) + .toString() + .hashCode(); + } + + @Override + public String toString() { + return new StringBuilder() + .append(\\"Foo {\\") + .append(\\"id=\\" + String.valueOf(getId()) + \\", \\") + .append(\\"requiredElementOptionalList=\\" + String.valueOf(getRequiredElementOptionalList()) + \\", \\") + .append(\\"createdAt=\\" + String.valueOf(getCreatedAt()) + \\", \\") + .append(\\"updatedAt=\\" + String.valueOf(getUpdatedAt())) + .append(\\"}\\") + .toString(); + } + + public static BuildStep builder() { + return new Builder(); + } + + /** + * WARNING: This method should not be used to build an instance of this object for a CREATE mutation. + * This is a convenience method to return an instance of the object with only its ID populated + * to be used in the context of a parameter in a delete mutation or referencing a foreign key + * in a relationship. + * @param id the id of the existing item this instance will represent + * @return an instance of this model with only ID populated + */ + public static Foo justId(String id) { + return new Foo( + id, + null + ); + } + + public CopyOfBuilder copyOfBuilder() { + return new CopyOfBuilder(id, + requiredElementOptionalList); + } + public interface BuildStep { + Foo build(); + BuildStep id(String id); + BuildStep requiredElementOptionalList(List requiredElementOptionalList); + } + + + public static class Builder implements BuildStep { + private String id; + private List requiredElementOptionalList; + public Builder() { + + } + + private Builder(String id, List requiredElementOptionalList) { + this.id = id; + this.requiredElementOptionalList = requiredElementOptionalList; + } + + @Override + public Foo build() { + String id = this.id != null ? this.id : UUID.randomUUID().toString(); + + return new Foo( + id, + requiredElementOptionalList); + } + + @Override + public BuildStep requiredElementOptionalList(List requiredElementOptionalList) { + this.requiredElementOptionalList = requiredElementOptionalList; + return this; + } + + /** + * @param id id + * @return Current Builder instance, for fluent method chaining + */ + public BuildStep id(String id) { + this.id = id; + return this; + } + } + + + public final class CopyOfBuilder extends Builder { + private CopyOfBuilder(String id, List requiredElementOptionalList) { + super(id, requiredElementOptionalList); + + } + + @Override + public CopyOfBuilder requiredElementOptionalList(List requiredElementOptionalList) { + return (CopyOfBuilder) super.requiredElementOptionalList(requiredElementOptionalList); + } + } + +} +" +`; + +exports[`AppSyncModelVisitor handleListNullabilityTransparently requiredElementRequiredList: [String!]! with handleListNullabilityTransparently: false 1`] = ` +"package com.amplifyframework.datastore.generated.model; + +import com.amplifyframework.core.model.temporal.Temporal; + +import java.util.List; +import java.util.UUID; +import java.util.Objects; + +import androidx.core.util.ObjectsCompat; + +import com.amplifyframework.core.model.Model; +import com.amplifyframework.core.model.annotations.Index; +import com.amplifyframework.core.model.annotations.ModelConfig; +import com.amplifyframework.core.model.annotations.ModelField; +import com.amplifyframework.core.model.query.predicate.QueryField; + +import static com.amplifyframework.core.model.query.predicate.QueryField.field; + +/** This is an auto generated class representing the Foo type in your schema. */ +@SuppressWarnings(\\"all\\") +@ModelConfig(pluralName = \\"Foos\\") +public final class Foo implements Model { + public static final QueryField ID = field(\\"Foo\\", \\"id\\"); + public static final QueryField REQUIRED_ELEMENT_REQUIRED_LIST = field(\\"Foo\\", \\"requiredElementRequiredList\\"); + private final @ModelField(targetType=\\"ID\\", isRequired = true) String id; + private final @ModelField(targetType=\\"String\\", isRequired = true) List requiredElementRequiredList; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime createdAt; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime updatedAt; + public String getId() { + return id; + } + + public List getRequiredElementRequiredList() { + return requiredElementRequiredList; + } + + public Temporal.DateTime getCreatedAt() { + return createdAt; + } + + public Temporal.DateTime getUpdatedAt() { + return updatedAt; + } + + private Foo(String id, List requiredElementRequiredList) { + this.id = id; + this.requiredElementRequiredList = requiredElementRequiredList; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } else if(obj == null || getClass() != obj.getClass()) { + return false; + } else { + Foo foo = (Foo) obj; + return ObjectsCompat.equals(getId(), foo.getId()) && + ObjectsCompat.equals(getRequiredElementRequiredList(), foo.getRequiredElementRequiredList()) && + ObjectsCompat.equals(getCreatedAt(), foo.getCreatedAt()) && + ObjectsCompat.equals(getUpdatedAt(), foo.getUpdatedAt()); + } + } + + @Override + public int hashCode() { + return new StringBuilder() + .append(getId()) + .append(getRequiredElementRequiredList()) + .append(getCreatedAt()) + .append(getUpdatedAt()) + .toString() + .hashCode(); + } + + @Override + public String toString() { + return new StringBuilder() + .append(\\"Foo {\\") + .append(\\"id=\\" + String.valueOf(getId()) + \\", \\") + .append(\\"requiredElementRequiredList=\\" + String.valueOf(getRequiredElementRequiredList()) + \\", \\") + .append(\\"createdAt=\\" + String.valueOf(getCreatedAt()) + \\", \\") + .append(\\"updatedAt=\\" + String.valueOf(getUpdatedAt())) + .append(\\"}\\") + .toString(); + } + + public static RequiredElementRequiredListStep builder() { + return new Builder(); + } + + /** + * WARNING: This method should not be used to build an instance of this object for a CREATE mutation. + * This is a convenience method to return an instance of the object with only its ID populated + * to be used in the context of a parameter in a delete mutation or referencing a foreign key + * in a relationship. + * @param id the id of the existing item this instance will represent + * @return an instance of this model with only ID populated + */ + public static Foo justId(String id) { + return new Foo( + id, + null + ); + } + + public CopyOfBuilder copyOfBuilder() { + return new CopyOfBuilder(id, + requiredElementRequiredList); + } + public interface RequiredElementRequiredListStep { + BuildStep requiredElementRequiredList(List requiredElementRequiredList); + } + + + public interface BuildStep { + Foo build(); + BuildStep id(String id); + } + + + public static class Builder implements RequiredElementRequiredListStep, BuildStep { + private String id; + private List requiredElementRequiredList; + public Builder() { + + } + + private Builder(String id, List requiredElementRequiredList) { + this.id = id; + this.requiredElementRequiredList = requiredElementRequiredList; + } + + @Override + public Foo build() { + String id = this.id != null ? this.id : UUID.randomUUID().toString(); + + return new Foo( + id, + requiredElementRequiredList); + } + + @Override + public BuildStep requiredElementRequiredList(List requiredElementRequiredList) { + Objects.requireNonNull(requiredElementRequiredList); + this.requiredElementRequiredList = requiredElementRequiredList; + return this; + } + + /** + * @param id id + * @return Current Builder instance, for fluent method chaining + */ + public BuildStep id(String id) { + this.id = id; + return this; + } + } + + + public final class CopyOfBuilder extends Builder { + private CopyOfBuilder(String id, List requiredElementRequiredList) { + super(id, requiredElementRequiredList); + Objects.requireNonNull(requiredElementRequiredList); + } + + @Override + public CopyOfBuilder requiredElementRequiredList(List requiredElementRequiredList) { + return (CopyOfBuilder) super.requiredElementRequiredList(requiredElementRequiredList); + } + } + +} +" +`; + +exports[`AppSyncModelVisitor handleListNullabilityTransparently requiredElementRequiredList: [String!]! with handleListNullabilityTransparently: true 1`] = ` +"package com.amplifyframework.datastore.generated.model; + +import com.amplifyframework.core.model.temporal.Temporal; + +import java.util.List; +import java.util.UUID; +import java.util.Objects; + +import androidx.core.util.ObjectsCompat; + +import com.amplifyframework.core.model.Model; +import com.amplifyframework.core.model.annotations.Index; +import com.amplifyframework.core.model.annotations.ModelConfig; +import com.amplifyframework.core.model.annotations.ModelField; +import com.amplifyframework.core.model.query.predicate.QueryField; + +import static com.amplifyframework.core.model.query.predicate.QueryField.field; + +/** This is an auto generated class representing the Foo type in your schema. */ +@SuppressWarnings(\\"all\\") +@ModelConfig(pluralName = \\"Foos\\") +public final class Foo implements Model { + public static final QueryField ID = field(\\"Foo\\", \\"id\\"); + public static final QueryField REQUIRED_ELEMENT_REQUIRED_LIST = field(\\"Foo\\", \\"requiredElementRequiredList\\"); + private final @ModelField(targetType=\\"ID\\", isRequired = true) String id; + private final @ModelField(targetType=\\"String\\", isRequired = true) List requiredElementRequiredList; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime createdAt; + private @ModelField(targetType=\\"AWSDateTime\\", isReadOnly = true) Temporal.DateTime updatedAt; + public String getId() { + return id; + } + + public List getRequiredElementRequiredList() { + return requiredElementRequiredList; + } + + public Temporal.DateTime getCreatedAt() { + return createdAt; + } + + public Temporal.DateTime getUpdatedAt() { + return updatedAt; + } + + private Foo(String id, List requiredElementRequiredList) { + this.id = id; + this.requiredElementRequiredList = requiredElementRequiredList; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } else if(obj == null || getClass() != obj.getClass()) { + return false; + } else { + Foo foo = (Foo) obj; + return ObjectsCompat.equals(getId(), foo.getId()) && + ObjectsCompat.equals(getRequiredElementRequiredList(), foo.getRequiredElementRequiredList()) && + ObjectsCompat.equals(getCreatedAt(), foo.getCreatedAt()) && + ObjectsCompat.equals(getUpdatedAt(), foo.getUpdatedAt()); + } + } + + @Override + public int hashCode() { + return new StringBuilder() + .append(getId()) + .append(getRequiredElementRequiredList()) + .append(getCreatedAt()) + .append(getUpdatedAt()) + .toString() + .hashCode(); + } + + @Override + public String toString() { + return new StringBuilder() + .append(\\"Foo {\\") + .append(\\"id=\\" + String.valueOf(getId()) + \\", \\") + .append(\\"requiredElementRequiredList=\\" + String.valueOf(getRequiredElementRequiredList()) + \\", \\") + .append(\\"createdAt=\\" + String.valueOf(getCreatedAt()) + \\", \\") + .append(\\"updatedAt=\\" + String.valueOf(getUpdatedAt())) + .append(\\"}\\") + .toString(); + } + + public static RequiredElementRequiredListStep builder() { + return new Builder(); + } + + /** + * WARNING: This method should not be used to build an instance of this object for a CREATE mutation. + * This is a convenience method to return an instance of the object with only its ID populated + * to be used in the context of a parameter in a delete mutation or referencing a foreign key + * in a relationship. + * @param id the id of the existing item this instance will represent + * @return an instance of this model with only ID populated + */ + public static Foo justId(String id) { + return new Foo( + id, + null + ); + } + + public CopyOfBuilder copyOfBuilder() { + return new CopyOfBuilder(id, + requiredElementRequiredList); + } + public interface RequiredElementRequiredListStep { + BuildStep requiredElementRequiredList(List requiredElementRequiredList); + } + + + public interface BuildStep { + Foo build(); + BuildStep id(String id); + } + + + public static class Builder implements RequiredElementRequiredListStep, BuildStep { + private String id; + private List requiredElementRequiredList; + public Builder() { + + } + + private Builder(String id, List requiredElementRequiredList) { + this.id = id; + this.requiredElementRequiredList = requiredElementRequiredList; + } + + @Override + public Foo build() { + String id = this.id != null ? this.id : UUID.randomUUID().toString(); + + return new Foo( + id, + requiredElementRequiredList); + } + + @Override + public BuildStep requiredElementRequiredList(List requiredElementRequiredList) { + Objects.requireNonNull(requiredElementRequiredList); + this.requiredElementRequiredList = requiredElementRequiredList; + return this; + } + + /** + * @param id id + * @return Current Builder instance, for fluent method chaining + */ + public BuildStep id(String id) { + this.id = id; + return this; + } + } + + + public final class CopyOfBuilder extends Builder { + private CopyOfBuilder(String id, List requiredElementRequiredList) { + super(id, requiredElementRequiredList); + Objects.requireNonNull(requiredElementRequiredList); + } + + @Override + public CopyOfBuilder requiredElementRequiredList(List requiredElementRequiredList) { + return (CopyOfBuilder) super.requiredElementRequiredList(requiredElementRequiredList); + } + } + +} +" +`; + exports[`AppSyncModelVisitor should avoid name collision on builder step 1`] = ` "package com.amplifyframework.datastore.generated.model; diff --git a/packages/appsync-modelgen-plugin/src/__tests__/visitors/appsync-java-visitor.test.ts b/packages/appsync-modelgen-plugin/src/__tests__/visitors/appsync-java-visitor.test.ts index 9946c53f5..7a4cd85ff 100644 --- a/packages/appsync-modelgen-plugin/src/__tests__/visitors/appsync-java-visitor.test.ts +++ b/packages/appsync-modelgen-plugin/src/__tests__/visitors/appsync-java-visitor.test.ts @@ -782,6 +782,29 @@ describe('AppSyncModelVisitor', () => { }); }); + describe('handleListNullabilityTransparently', () => { + const testCases = [ + ['requiredElementRequiredList: [String!]!', true], + ['requiredElementRequiredList: [String!]!', false], + ['requiredElementOptionalList: [String!]', true], + ['requiredElementOptionalList: [String!]', false], + ['optionalElementRequiredList: [String]!', true], + ['optionalElementRequiredList: [String]!', false], + ['optionalElementOptionalList: [String]', true], + ['optionalElementOptionalList: [String]', false], + ]; + + test.each(testCases)('%s with handleListNullabilityTransparently: %s', (field, handleListNullabilityTransparently) => { + const schema = ` + type Foo @model + { + ${field} + } + `; + expect(getVisitorPipelinedTransformer(schema, 'Foo', { handleListNullabilityTransparently }).generate()).toMatchSnapshot(); + }); + }); + describe('custom references', () => { test('sets the association to the references field for hasMany/belongsTo', () => { const schema = /* GraphQL */ ` diff --git a/packages/appsync-modelgen-plugin/src/visitors/appsync-java-visitor.ts b/packages/appsync-modelgen-plugin/src/visitors/appsync-java-visitor.ts index d25c9cd3d..d5fb21936 100644 --- a/packages/appsync-modelgen-plugin/src/visitors/appsync-java-visitor.ts +++ b/packages/appsync-modelgen-plugin/src/visitors/appsync-java-visitor.ts @@ -947,7 +947,7 @@ export class AppSyncModelJavaVisitor< isIdAsModelPrimaryKey: boolean = true, ): void { const requiredFields = this.getWritableFields(model).filter( - field => !field.isNullable && !(isIdAsModelPrimaryKey && this.READ_ONLY_FIELDS.includes(field.name)), + field => this.isRequiredField(field) && !(isIdAsModelPrimaryKey && this.READ_ONLY_FIELDS.includes(field.name)), ); const types = this.getTypesUsedByModel(model); const returnType = requiredFields.length From d78e4ded0a06df9cbee0288fc7b0e7178f3d9c51 Mon Sep 17 00:00:00 2001 From: Zeyu Li Date: Wed, 1 May 2024 10:17:54 -0700 Subject: [PATCH 2/4] chore: update nexpect to latest (#831) * chore: update nexpect to latest * fix: lint rules * fix: revert build spec change * fix: replace with regex * test: add log * fix: amplify configure * fix: nexpect uses correct CLI path * fix: add initial delay * fix: return * fix: remove debug log --- .../src/asciinema-recorder.ts | 21 +- .../src/configure/index.ts | 52 +- .../amplify-codegen-e2e-core/src/index.ts | 11 +- .../src/utils/nexpect.ts | 642 ++++++++++-------- 4 files changed, 423 insertions(+), 303 deletions(-) diff --git a/packages/amplify-codegen-e2e-core/src/asciinema-recorder.ts b/packages/amplify-codegen-e2e-core/src/asciinema-recorder.ts index 99284044e..2217a8a43 100644 --- a/packages/amplify-codegen-e2e-core/src/asciinema-recorder.ts +++ b/packages/amplify-codegen-e2e-core/src/asciinema-recorder.ts @@ -9,6 +9,7 @@ export type RecordingHeader = { title: string; env: any; }; + export type RecordingFrame = [number, 'o' | 'i', string]; export type Recording = { header: RecordingHeader; @@ -17,13 +18,21 @@ export type Recording = { export class Recorder { private isPaused: boolean = false; + private childProcess: pty.IPty; + private onDataHandlers: ((data: string) => void)[] = []; + private onExitHandlers: ((exitCode: number, signal: string | number) => void)[] = []; + private startTime: number; + private recording: Recording; + private cwd: string; + private exitCode: number | undefined; + constructor( private cmd: string, private args: string[], @@ -41,7 +50,7 @@ export class Recorder { height: rows, timestamp: null, title: 'Recording', - env: options, + env: {}, }, frames: [], }; @@ -57,6 +66,9 @@ export class Recorder { cols: this.cols, rows: this.rows, cwd: this.cwd, + shell: true, + // Do not set useConpty. node-pty is smart enough to set it to true only on versions of Windows that support it. + // useConpty: true, ...this.options, }); this.addFrame(this.renderPrompt(this.cwd, this.cmd, this.args)); @@ -79,6 +91,7 @@ export class Recorder { addOnExitHandlers(fn: (code: number, signal: string | number) => void) { this.onExitHandlers.push(fn); } + removeOnExitHandlers(fn: (code: number, signal: string | number) => void): boolean { const idx = this.onExitHandlers.indexOf(fn); if (idx === -1) { @@ -89,7 +102,11 @@ export class Recorder { } getRecording(): string { - return [JSON.stringify(this.recording.header), ...this.recording.frames.map(frame => JSON.stringify(frame))].join('\n'); + return [JSON.stringify(this.recording.header), ...this.recording.frames.map((frame) => JSON.stringify(frame))].join('\n'); + } + + getRecordingFrames(): Readonly { + return [...this.recording.frames]; } pauseRecording(): void { diff --git a/packages/amplify-codegen-e2e-core/src/configure/index.ts b/packages/amplify-codegen-e2e-core/src/configure/index.ts index f1e08c55f..347af7b96 100644 --- a/packages/amplify-codegen-e2e-core/src/configure/index.ts +++ b/packages/amplify-codegen-e2e-core/src/configure/index.ts @@ -56,40 +56,32 @@ const MANDATORY_PARAMS = ['accessKeyId', 'secretAccessKey', 'region']; export function amplifyConfigure(settings: AmplifyConfiguration): Promise { const s = { ...defaultSettings, ...settings }; - const missingParam = MANDATORY_PARAMS.filter(p => !Object.keys(s).includes(p)); + const missingParam = MANDATORY_PARAMS.filter((p) => !Object.keys(s).includes(p)); if (missingParam.length) { throw new Error(`mandatory params ${missingParam.join(' ')} are missing`); } - return new Promise((resolve, reject) => { - const chain = spawn(getCLIPath(), ['configure'], { stripColors: true }) - .wait('Sign in to your AWS administrator account:') - .wait('Press Enter to continue') - .sendCarriageReturn() - .wait('Specify the AWS Region'); - - singleSelect(chain, s.region, amplifyRegions); - - chain - .wait('Press Enter to continue') - .sendCarriageReturn() - .wait('accessKeyId') - .pauseRecording() - .sendLine(s.accessKeyId) - .wait('secretAccessKey') - .sendLine(s.secretAccessKey) - .resumeRecording() - .wait('Profile Name:') - .sendLine(s.profileName) - .wait('Successfully set up the new user.') - .run((err: Error) => { - if (!err) { - resolve(); - } else { - reject(err); - } - }); - }); + const chain = spawn(getCLIPath(), ['configure'], { stripColors: true }) + .wait('Sign in to your AWS administrator account:') + .wait('Press Enter to continue') + .sendCarriageReturn() + .wait('Specify the AWS Region'); + + singleSelect(chain, s.region, amplifyRegions); + + return chain + .wait('Press Enter to continue') + .sendCarriageReturn() + .wait('accessKeyId') + .pauseRecording() + .sendLine(s.accessKeyId) + .wait('secretAccessKey') + .sendLine(s.secretAccessKey) + .resumeRecording() + .wait('Profile Name:') + .sendLine(s.profileName) + .wait('Successfully set up the new user.') + .runAsync(); } export function amplifyConfigureProject(settings: { diff --git a/packages/amplify-codegen-e2e-core/src/index.ts b/packages/amplify-codegen-e2e-core/src/index.ts index ab689f25d..cc06341b9 100644 --- a/packages/amplify-codegen-e2e-core/src/index.ts +++ b/packages/amplify-codegen-e2e-core/src/index.ts @@ -5,7 +5,7 @@ import { spawnSync, execSync } from 'child_process'; import { v4 as uuid } from 'uuid'; import * as ini from 'ini'; import { pathManager } from '@aws-amplify/amplify-cli-core'; -import { getCommandPath } from './utils'; +import { getCommandPath, sleep } from './utils'; export * from './configure/'; export * from './init/'; @@ -70,6 +70,15 @@ export async function createNewProjectDir( } while (fs.existsSync(projectDir)); fs.ensureDirSync(projectDir); + if (!process.env.SKIP_CREATE_PROJECT_DIR_INITIAL_DELAY) { + // createProjectDir(..) is something that nearly every test uses + // Commands like 'init' would collide with each other if they occurred too close to one another. + // Especially for nexpect output waiting + // This makes it a perfect candidate for staggering test start times + const initialDelay = Math.floor(Math.random() * 180 * 1000); // between 0 to 3 min + console.log(`Waiting for ${initialDelay} ms`); + await sleep(initialDelay); + } console.log(projectDir); return projectDir; } diff --git a/packages/amplify-codegen-e2e-core/src/utils/nexpect.ts b/packages/amplify-codegen-e2e-core/src/utils/nexpect.ts index d742ab458..a9d226fad 100644 --- a/packages/amplify-codegen-e2e-core/src/utils/nexpect.ts +++ b/packages/amplify-codegen-e2e-core/src/utils/nexpect.ts @@ -1,3 +1,9 @@ +/* eslint-disable @typescript-eslint/explicit-function-return-type */ +/* eslint-disable no-empty */ +/* eslint-disable quotes */ +/* eslint-disable no-underscore-dangle */ +/* eslint-disable prefer-const */ +/* eslint-disable func-style */ /* * nexpect.js: Top-level include for the `nexpect` module. * @@ -13,23 +19,31 @@ declare global { } } -import { isRegExp, format } from 'util'; -import { Recorder } from '../asciinema-recorder'; +import { types, format } from 'util'; import { AssertionError } from 'assert'; -import strip = require('strip-ansi'); import { EOL } from 'os'; -import retimer = require('retimer'); import { join, parse } from 'path'; +import * as os from 'os'; +import strip = require('strip-ansi'); +import retimer = require('retimer'); +import * as fs from 'fs-extra'; +import { Recorder } from '../asciinema-recorder'; -const DEFAULT_NO_OUTPUT_TIMEOUT = 5 * 60 * 1000; // 5 Minutes +export const RETURN = EOL; +const DEFAULT_NO_OUTPUT_TIMEOUT = process.env.AMPLIFY_TEST_TIMEOUT_SEC + ? Number.parseInt(process.env.AMPLIFY_TEST_TIMEOUT_SEC, 10) * 1000 + : 5 * 60 * 1000; // 5 Minutes const EXIT_CODE_TIMEOUT = 2; const EXIT_CODE_GENERIC_ERROR = 3; +const LOG_DUMP_FILE = process.env.LOG_DUMP_FILE; // https://notes.burke.libbey.me/ansi-escape-codes/ export const KEY_UP_ARROW = '\x1b[A'; export const KEY_DOWN_ARROW = '\x1b[B'; // https://donsnotes.com/tech/charsets/ascii.html export const CONTROL_C = '\x03'; +export const CONTROL_A = '\x01'; +export const SPACE_BAR = '\x20'; type ExecutionStep = { fn: (data: string) => boolean; @@ -63,12 +77,25 @@ export type ExecutionContext = { send: (line: string) => ExecutionContext; sendKeyDown: (repeat?: number) => ExecutionContext; sendKeyUp: (repeat?: number) => ExecutionContext; + /** + * @deprecated If using `@aws-amplify/amplify-prompts` sending a newline after 'y' is not required and could cause problems. Use `sendYes` instead. + */ sendConfirmYes: () => ExecutionContext; + sendYes: () => ExecutionContext; + /** + * @deprecated If using `@aws-amplify/amplify-prompts` sending a newline after 'n' is not required and could cause problems. Use `sendNo` instead. + */ sendConfirmNo: () => ExecutionContext; + sendNo: () => ExecutionContext; sendCtrlC: () => ExecutionContext; + sendCtrlA: () => ExecutionContext; sendEof: () => ExecutionContext; delay: (milliseconds: number) => ExecutionContext; + /** + * @deprecated Use runAsync + */ run: (cb: (err: any, signal?: any) => void) => ExecutionContext; + runAsync: () => Promise; }; export type SpawnOptions = { @@ -82,7 +109,7 @@ export type SpawnOptions = { }; function chain(context: Context): ExecutionContext { - return { + const partialExecutionContext = { pauseRecording: (): ExecutionContext => { let _pauseRecording: ExecutionStep = { fn: () => { @@ -100,7 +127,7 @@ function chain(context: Context): ExecutionContext { }, resumeRecording: (): ExecutionContext => { let _resumeRecording: ExecutionStep = { - fn: data => { + fn: (data) => { context.process.resumeRecording(); return true; }, @@ -113,9 +140,9 @@ function chain(context: Context): ExecutionContext { return chain(context); }, - expect: function(expectation: string | RegExp): ExecutionContext { + expect: function (expectation: string | RegExp): ExecutionContext { let _expect: ExecutionStep = { - fn: data => { + fn: (data) => { return testExpectation(data, expectation, context); }, name: '_expect', @@ -129,10 +156,10 @@ function chain(context: Context): ExecutionContext { return chain(context); }, - wait: function(expectation: string | RegExp, callback = (data: string) => {}): ExecutionContext { + wait: function (expectation: string | RegExp, callback = (data: string) => {}): ExecutionContext { let _wait: ExecutionStep = { - fn: data => { - var val = testExpectation(data, expectation, context); + fn: (data) => { + let val = testExpectation(data, expectation, context); if (val === true && typeof callback === 'function') { callback(data); } @@ -147,10 +174,10 @@ function chain(context: Context): ExecutionContext { context.queue.push(_wait); return chain(context); }, - sendLine: function(line: string): ExecutionContext { + sendLine: function (line: string): ExecutionContext { let _sendline: ExecutionStep = { fn: () => { - context.process.write(`${line}${EOL}`); + context.process.write(`${line}${RETURN}`); return true; }, name: '_sendline', @@ -161,10 +188,10 @@ function chain(context: Context): ExecutionContext { context.queue.push(_sendline); return chain(context); }, - sendCarriageReturn: function(): ExecutionContext { + sendCarriageReturn: function (): ExecutionContext { let _sendline: ExecutionStep = { fn: () => { - context.process.write(EOL); + context.process.write(RETURN); return true; }, name: '_sendline', @@ -175,8 +202,8 @@ function chain(context: Context): ExecutionContext { context.queue.push(_sendline); return chain(context); }, - send: function(line: string): ExecutionContext { - var _send: ExecutionStep = { + send: function (line: string): ExecutionContext { + let _send: ExecutionStep = { fn: () => { context.process.write(line); return true; @@ -189,44 +216,44 @@ function chain(context: Context): ExecutionContext { context.queue.push(_send); return chain(context); }, - sendKeyDown: function(repeat?: number): ExecutionContext { - const repeatitions = repeat ? Math.max(1, repeat) : 1; - var _send: ExecutionStep = { + sendKeyDown: function (repeat?: number): ExecutionContext { + const repetitions = repeat ? Math.max(1, repeat) : 1; + let _send: ExecutionStep = { fn: () => { - for (let i = 0; i < repeatitions; i++) { + for (let i = 0; i < repetitions; ++i) { context.process.write(KEY_DOWN_ARROW); } return true; }, name: '_send', shift: true, - description: `'[send] (${repeatitions})`, + description: `'[send] (${repetitions})`, requiresInput: false, }; context.queue.push(_send); return chain(context); }, - sendKeyUp: function(repeat?: number): ExecutionContext { - const repeatitions = repeat ? Math.max(1, repeat) : 1; - var _send: ExecutionStep = { + sendKeyUp: function (repeat?: number): ExecutionContext { + const repetitions = repeat ? Math.max(1, repeat) : 1; + let _send: ExecutionStep = { fn: () => { - for (let i = 0; i < repeatitions; i++) { + for (let i = 0; i < repetitions; ++i) { context.process.write(KEY_UP_ARROW); } return true; }, name: '_send', shift: true, - description: `'[send] (${repeatitions})`, + description: `'[send] (${repetitions})`, requiresInput: false, }; context.queue.push(_send); return chain(context); }, - sendConfirmYes: function(): ExecutionContext { - var _send: ExecutionStep = { + sendConfirmYes: function (): ExecutionContext { + let _send: ExecutionStep = { fn: () => { - context.process.write(`Y${EOL}`); + context.process.write(`Y${RETURN}`); return true; }, name: '_send', @@ -237,10 +264,24 @@ function chain(context: Context): ExecutionContext { context.queue.push(_send); return chain(context); }, - sendConfirmNo: function(): ExecutionContext { - var _send: ExecutionStep = { + sendYes: function (): ExecutionContext { + let _send: ExecutionStep = { fn: () => { - context.process.write(`N${EOL}`); + context.process.write(`Y`); + return true; + }, + name: '_send', + shift: true, + description: `'[send] Y `, + requiresInput: false, + }; + context.queue.push(_send); + return chain(context); + }, + sendConfirmNo: function (): ExecutionContext { + let _send: ExecutionStep = { + fn: () => { + context.process.write(`N${RETURN}`); return true; }, name: '_send', @@ -251,10 +292,24 @@ function chain(context: Context): ExecutionContext { context.queue.push(_send); return chain(context); }, - sendCtrlC: function(): ExecutionContext { - var _send: ExecutionStep = { + sendNo: function (): ExecutionContext { + let _send: ExecutionStep = { + fn: () => { + context.process.write(`N`); + return true; + }, + name: '_send', + shift: true, + description: `'[send] Y `, + requiresInput: false, + }; + context.queue.push(_send); + return chain(context); + }, + sendCtrlC: function (): ExecutionContext { + let _send: ExecutionStep = { fn: () => { - context.process.write(`${CONTROL_C}${EOL}`); + context.process.write(`${CONTROL_C}${RETURN}`); return true; }, name: '_send', @@ -265,10 +320,24 @@ function chain(context: Context): ExecutionContext { context.queue.push(_send); return chain(context); }, - sendEof: function(): ExecutionContext { - var _sendEof: ExecutionStep = { + sendCtrlA: function (): ExecutionContext { + let _send: ExecutionStep = { fn: () => { - context.process.write(''); + context.process.write(`${CONTROL_A}`); + return true; + }, + name: '_send', + shift: true, + description: '[send] Ctrl+A', + requiresInput: false, + }; + context.queue.push(_send); + return chain(context); + }, + sendEof: function (): ExecutionContext { + let _sendEof: ExecutionStep = { + fn: () => { + context.process.sendEof(); return true; }, shift: true, @@ -279,8 +348,8 @@ function chain(context: Context): ExecutionContext { context.queue.push(_sendEof); return chain(context); }, - delay: function(milliseconds: number): ExecutionContext { - var _delay: ExecutionStep = { + delay: function (milliseconds: number): ExecutionContext { + let _delay: ExecutionStep = { fn: () => { const startCallback = Date.now(); @@ -296,261 +365,291 @@ function chain(context: Context): ExecutionContext { context.queue.push(_delay); return chain(context); }, - run: function(callback: (err: any, code?: number, signal?: string | number) => void): ExecutionContext { - let errState: any = null; - let responded = false; - let stdout: string[] = []; - let options; - let noOutputTimer; - - const exitHandler = (code: number, signal: any) => { - noOutputTimer.clear(); - context.process.removeOnExitHandlers(exitHandler); - if (code !== 0) { - if (code === EXIT_CODE_TIMEOUT) { - const err = new Error( - `Killed the process as no output receive for ${context.noOutputTimeout / - 1000} Sec. The no output timeout is set to ${context.noOutputTimeout / 1000}`, - ); - return onError(err, true); - } else if (code === 127) { - // XXX(sam) Not how node works (anymore?), 127 is what /bin/sh returns, - // but it appears node does not, or not in all conditions, blithely - // return 127 to user, it emits an 'error' from the child_process. - - // - // If the response code is `127` then `context.command` was not found. - // - return onError(new Error('Command not found: ' + context.command), false); - } - return onError(new Error(`Process exited with non zero exit code ${code}`), false); - } else { - if (context.queue.length && !flushQueue()) { - // if flushQueue returned false, onError was called - return; - } - recordOutputs(code); - callback(null, signal || code); + }; + const run = (callback: (err: any, code?: number, signal?: string | number) => void): ExecutionContext => { + let errState: any = null; + let responded = false; + let stdout: string[] = []; + let options; + let noOutputTimer; + + let logDumpFile: fs.WriteStream; + + if (process.env.VERBOSE_LOGGING_DO_NOT_USE_IN_CI_OR_YOU_WILL_BE_FIRED) { + const rand = Math.floor(Math.random() * 10000); + const logdir = join(os.tmpdir(), 'amplify_e2e_logs'); + fs.ensureDirSync(logdir); + const filename = join(logdir, `amplify_e2e_log_${rand}`); + logDumpFile = fs.createWriteStream(filename); + console.log(`CLI test logs at [${filename}]`); + } + + const exitHandler = (code: number, signal: any) => { + noOutputTimer.clear(); + context.process.removeOnExitHandlers(exitHandler); + if (logDumpFile) { + logDumpFile.close(); + } + if (code !== 0) { + if (code === EXIT_CODE_TIMEOUT) { + const recordings = context.process?.getRecordingFrames() || []; + const lastScreen = recordings.length + ? recordings + .filter((f) => f[1] === 'o') + .map((f) => f[2]) + .slice(-10) + .join('\n') + : 'No output'; + const err = new Error( + `Killed the process as no output received for ${context.noOutputTimeout / 1000} Sec. The no output timeout is set to ${ + context.noOutputTimeout / 1000 + } seconds.\n\nLast 10 lines:👇🏽👇🏽👇🏽👇🏽\n\n\n\n\n${lastScreen}\n\n\n👆🏼👆🏼👆🏼👆🏼`, + ); + err.stack = undefined; + return onError(err, true); + } else if (code === 127) { + // XXX(sam) Not how node works (anymore?), 127 is what /bin/sh returns, + // but it appears node does not, or not in all conditions, blithely + // return 127 to user, it emits an 'error' from the child_process. + + // + // If the response code is `127` then `context.command` was not found. + // + return onError(new Error('Command not found: ' + context.command), false); } - }; - // - // **onError** - // - // Helper function to respond to the callback with a - // specified error. Kills the child process if necessary. - // - function onError(err: any, kill: boolean, errorCode: number = EXIT_CODE_GENERIC_ERROR) { - if (errState || responded) { + return onError(new Error(`Process exited with non zero exit code ${code}`), false); + } else { + if (context.queue.length && !flushQueue()) { + // if flushQueue returned false, onError was called return; } + recordOutputs(code); + callback(null, signal || code); + } + }; + // + // **onError** + // + // Helper function to respond to the callback with a + // specified error. Kills the child process if necessary. + // + function onError(err: any, kill: boolean, errorCode: number = EXIT_CODE_GENERIC_ERROR) { + if (errState || responded) { + return; + } - recordOutputs(errorCode); - errState = err; - responded = true; - - if (kill) { - try { - context.process.kill(); - } catch (ex) {} - } + recordOutputs(errorCode); + errState = err; + responded = true; - callback(err, errorCode); + if (kill) { + try { + context.process.kill(); + } catch (ex) {} } - // - // **validateFnType** - // - // Helper function to validate the `currentFn` in the - // `context.queue` for the target chain. - // - function validateFnType(step: ExecutionStep): boolean { - const currentFn = step.fn; - const currentFnName = step.name; - if (typeof currentFn !== 'function') { - // - // If the `currentFn` is not a function, short-circuit with an error. - // - onError(new Error('Cannot process non-function on nexpect stack.'), true); - return false; - } else if ( - ['_expect', '_sendline', '_send', '_wait', '_sendEof', '_delay', '_pauseRecording', '_resumeRecording'].indexOf(currentFnName) === - -1 - ) { - // - // If the `currentFn` is a function, but not those set by `.sendline()` or - // `.expect()` then short-circuit with an error. - // - onError(new Error('Unexpected context function name: ' + currentFn.name), true); - return false; - } + callback(err, errorCode); + } - return true; + // + // **validateFnType** + // + // Helper function to validate the `currentFn` in the + // `context.queue` for the target chain. + // + function validateFnType(step: ExecutionStep): boolean { + const currentFn = step.fn; + const currentFnName = step.name; + if (typeof currentFn !== 'function') { + // + // If the `currentFn` is not a function, short-circuit with an error. + // + onError(new Error('Cannot process non-function on nexpect stack.'), true); + return false; + } else if ( + ['_expect', '_sendline', '_send', '_wait', '_sendEof', '_delay', '_pauseRecording', '_resumeRecording'].indexOf(currentFnName) === + -1 + ) { + // + // If the `currentFn` is a function, but not those set by `.sendline()` or + // `.expect()` then short-circuit with an error. + // + onError(new Error('Unexpected context function name: ' + currentFn.name), true); + return false; } - // - // **evalContext** - // - // Core evaluation logic that evaluates the next function in - // `context.queue` against the specified `data` where the last - // function run had `name`. - // - function evalContext(data: string, name?: string): void { - var step = context.queue[0]; - const { fn: currentFn, name: currentFnName, shift } = step; - - if (!currentFn || (name === '_expect' && currentFnName === '_expect')) { - // - // If there is nothing left on the context or we are trying to - // evaluate two consecutive `_expect` functions, return. - // - return; - } + return true; + } - if (shift) { - context.queue.shift(); - } + // + // **evalContext** + // + // Core evaluation logic that evaluates the next function in + // `context.queue` against the specified `data` where the last + // function run had `name`. + // + function evalContext(data: string, name?: string): void { + let step = context.queue[0]; + const { fn: currentFn, name: currentFnName, shift } = step; + + if (!currentFn || (name === '_expect' && currentFnName === '_expect')) { + // + // If there is nothing left on the context or we are trying to + // evaluate two consecutive `_expect` functions, return. + // + return; + } - if (!validateFnType(step)) { - return; - } + if (shift) { + context.queue.shift(); + } - if (currentFnName === '_expect') { - // - // If this is an `_expect` function, then evaluate it and attempt - // to evaluate the next function (in case it is a `_sendline` function). - // - return currentFn(data) === true ? evalContext(data, '_expect') : onError(createExpectationError(step.expectation, data), true); - } else if (currentFnName === '_wait') { - // - // If this is a `_wait` function, then evaluate it and if it returns true, - // then evaluate the function (in case it is a `_sendline` function). - // - if (currentFn(data) === true) { - context.queue.shift(); - evalContext(data, '_expect'); - } - } else { - // - // If the `currentFn` is any other function then evaluate it - // - if (currentFn(data)) { - // Evaluate the next function if it does not need input - var nextFn = context.queue[0]; - if (nextFn && !nextFn.requiresInput) evalContext(data); - } - } + if (!validateFnType(step)) { + return; } - // - // **onLine** - // - // Preprocesses the `data` from `context.process` on the - // specified `context.stream` and then evaluates the processed lines: - // - // 1. Stripping ANSI colors (if necessary) - // 2. Removing case sensitivity (if necessary) - // 3. Splitting `data` into multiple lines. - // - function onLine(data: string | Buffer) { - noOutputTimer.reschedule(context.noOutputTimeout); - data = data.toString(); - if (process.env && process.env.VERBOSE_LOGGING_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) { - console.log(data); - } - if (context.stripColors) { - data = strip(data); + if (currentFnName === '_expect') { + // + // If this is an `_expect` function, then evaluate it and attempt + // to evaluate the next function (in case it is a `_sendline` function). + // + return currentFn(data) === true ? evalContext(data, '_expect') : onError(createExpectationError(step.expectation, data), true); + } else if (currentFnName === '_wait') { + // + // If this is a `_wait` function, then evaluate it and if it returns true, + // then evaluate the function (in case it is a `_sendline` function). + // + if (currentFn(data) === true) { + context.queue.shift(); + evalContext(data, '_expect'); } + } else if (currentFn(data)) { + // + // If the `currentFn` is any other function then evaluate it + // + // Evaluate the next function if it does not need input + let nextFn = context.queue[0]; + if (nextFn && !nextFn.requiresInput) evalContext(data); + } + } - var lines = data.split(EOL).filter(function(line) { - return line.length > 0 && line !== '\r'; - }); - stdout = stdout.concat(lines); + const spinnerRegex = new RegExp(/.*(⠋|⠙|⠹|⠸|⠼|⠴|⠦|⠧|⠇|⠏).*/); + + // + // **onLine** + // + // Preprocesses the `data` from `context.process` on the + // specified `context.stream` and then evaluates the processed lines: + // + // 1. Stripping ANSI colors (if necessary) + // 2. Removing case sensitivity (if necessary) + // 3. Splitting `data` into multiple lines. + // + function onLine(data: string | Buffer) { + noOutputTimer.reschedule(context.noOutputTimeout); + data = data.toString(); + if (logDumpFile && spinnerRegex.test(data) === false && strip(data).trim().length > 0) { + logDumpFile.write(`${data}${EOL}`); + } - while (lines.length > 0) { - evalContext(lines.shift(), null); - } + if (context.stripColors) { + data = strip(data); } - // - // **flushQueue** - // - // Helper function which flushes any remaining functions from - // `context.queue` and responds to the `callback` accordingly. - // - function flushQueue() { - const remainingQueue = context.queue.slice().map(item => { - const description = ['_sendline', '_send'].includes(item.name) ? `[${item.name}] **redacted**` : item.description; - return { - ...item, - description, - }; - }); - const step = context.queue.shift(); - const { fn: currentFn, name: currentFnName } = step; - const nonEmptyLines = stdout.map(line => line.replace('\r', '').trim()).filter(line => line !== ''); + let lines = data.split(EOL).filter(function (line) { + return line.length > 0 && line !== '\r'; + }); + stdout = stdout.concat(lines); - var lastLine = nonEmptyLines[nonEmptyLines.length - 1]; + while (lines.length > 0) { + evalContext(lines.shift(), null); + } + } - if (!lastLine) { - onError(createUnexpectedEndError('No data from child with non-empty queue.', remainingQueue), false); - return false; - } else if (context.queue.length > 0) { - onError(createUnexpectedEndError('Non-empty queue on spawn exit.', remainingQueue), true); - return false; - } else if (!validateFnType(step)) { - // onError was called + // + // **flushQueue** + // + // Helper function which flushes any remaining functions from + // `context.queue` and responds to the `callback` accordingly. + // + function flushQueue() { + const remainingQueue = context.queue.slice().map((item) => { + const description = ['_sendline', '_send'].includes(item.name) ? `[${item.name}] **redacted**` : item.description; + return { + ...item, + description, + }; + }); + const step = context.queue.shift(); + const { fn: currentFn, name: currentFnName } = step; + const nonEmptyLines = stdout.map((line) => line.replace(/\r/g, '').trim()).filter((line) => line !== ''); + + let lastLine = nonEmptyLines[nonEmptyLines.length - 1]; + + if (!lastLine) { + onError(createUnexpectedEndError('No data from child with non-empty queue.', remainingQueue), false); + return false; + } else if (context.queue.length > 0) { + onError(createUnexpectedEndError('Non-empty queue on spawn exit.', remainingQueue), true); + return false; + } else if (!validateFnType(step)) { + // onError was called + return false; + } else if (currentFnName === '_sendline') { + onError(new Error('Cannot call sendline after the process has exited'), false); + return false; + } else if (currentFnName === '_wait' || currentFnName === '_expect') { + if (currentFn(lastLine) !== true) { + onError(createExpectationError(step.expectation, lastLine), false); return false; - } else if (currentFnName === '_sendline') { - onError(new Error('Cannot call sendline after the process has exited'), false); - return false; - } else if (currentFnName === '_wait' || currentFnName === '_expect') { - if (currentFn(lastLine) !== true) { - onError(createExpectationError(step.expectation, lastLine), false); - return false; - } } - - return true; } - options = { - cwd: context.cwd, - env: context.env, - }; + return true; + } - const recordOutputs = (code: number) => { - if (global.storeCLIExecutionLog) { - global.storeCLIExecutionLog({ - cmd: context.command, - cwd: context.cwd, - exitCode: code, - params: context.params, - recording: context.getRecording(), - }); - } - }; + options = { + cwd: context.cwd, + env: context.env, + }; - try { - context.process = new Recorder(context.command, context.params, options); + const recordOutputs = (code: number) => { + if (global.storeCLIExecutionLog) { + global.storeCLIExecutionLog({ + cmd: context.command, + cwd: context.cwd, + exitCode: code, + params: context.params, + recording: context.getRecording(), + }); + } + }; - context.process.addOnDataHandler(onLine); + try { + context.process = new Recorder(context.command, context.params, options); - context.process.addOnExitHandlers(exitHandler); + context.process.addOnDataHandler(onLine); - context.process.run(); - noOutputTimer = retimer(() => { - exitHandler(EXIT_CODE_TIMEOUT, 'SIGTERM'); - }, context.noOutputTimeout); - return chain(context); - } catch (e) { - onError(e, true); - } - }, + context.process.addOnExitHandlers(exitHandler); + + context.process.run(); + noOutputTimer = retimer(() => { + exitHandler(EXIT_CODE_TIMEOUT, 'SIGTERM'); + }, context.noOutputTimeout); + return chain(context); + } catch (e) { + onError(e, true); + } + }; + return { + ...partialExecutionContext, + run, + runAsync: () => new Promise((resolve, reject) => run((err) => (err ? reject(err) : resolve()))), }; } function testExpectation(data: string, expectation: string | RegExp, context: Context): boolean { - if (isRegExp(expectation)) { + if (types.isRegExp(expectation)) { return expectation.test(data); } else if (context.ignoreCase) { return data.toLowerCase().indexOf(expectation.toLowerCase()) > -1; @@ -560,10 +659,10 @@ function testExpectation(data: string, expectation: string | RegExp, context: Co } function createUnexpectedEndError(message: string, remainingQueue: ExecutionStep[]) { - const desc: string[] = remainingQueue.map(function(it) { + const desc: string[] = remainingQueue.map(function (it) { return it.description; }); - var msg = message + '\n' + desc.join('\n'); + let msg = message + '\n' + desc.join('\n'); return new AssertionError({ message: msg, @@ -573,14 +672,14 @@ function createUnexpectedEndError(message: string, remainingQueue: ExecutionStep } function createExpectationError(expected: string | RegExp, actual: string) { - var expectation; - if (isRegExp(expected)) { + let expectation; + if (types.isRegExp(expected)) { expectation = 'to match ' + expected; } else { expectation = 'to contain ' + JSON.stringify(expected); } - var err = new AssertionError({ + let err = new AssertionError({ message: format('expected %j %s', actual, expectation), actual: actual, expected: expected, @@ -588,7 +687,7 @@ function createExpectationError(expected: string | RegExp, actual: string) { return err; } -export function nspawn(command: string | string[], params: string[] = [], options: SpawnOptions = {}) { +export const nspawn = (command: string | string[], params: string[] = [], options: SpawnOptions = {}): ExecutionContext => { if (Array.isArray(command)) { params = command; command = params.shift(); @@ -598,6 +697,7 @@ export function nspawn(command: string | string[], params: string[] = [], option command = join(parsedPath.dir, parsedArgs[0]); params = params || parsedArgs.slice(1); } + if (options.addLeadingPathPeriod) { command = `./${command}`; } @@ -622,6 +722,7 @@ export function nspawn(command: string | string[], params: string[] = [], option ...process.env, ...pushEnv, ...options.env, + NODE_OPTIONS: '--max_old_space_size=4096', }; // Undo ci-info detection, required for some tests @@ -636,7 +737,7 @@ export function nspawn(command: string | string[], params: string[] = [], option } } - let context: Context = { + const context: Context = { command: command, cwd: options.cwd || undefined, env: childEnv || undefined, @@ -650,8 +751,9 @@ export function nspawn(command: string | string[], params: string[] = [], option if (context.process) { return context.process.getRecording(); } + return undefined; }, }; return chain(context); -} +}; From cc8859574a03e9ea91e63bc7b07446b177c4c970 Mon Sep 17 00:00:00 2001 From: Zeyu Li Date: Fri, 3 May 2024 12:33:05 -0700 Subject: [PATCH 3/4] test: add gen2 e2e tests (#833) --- .codebuild/e2e_workflow.yml | 21 + .codebuild/e2e_workflow_base.yml | 21 + .codebuild/run_gen2_e2e_test.yml | 23 + .codebuild/run_gen2_e2e_test_windows.yml | 21 + .codebuild/scripts/gen2_e2e_test_windows.sh | 8 + dependency_licenses.txt | 1074 ++++++--- .../amplify-codegen-e2e-core/src/index.ts | 9 + .../amplify-codegen-e2e-tests/package.json | 2 + .../handlers/mutation.ts | 11 + .../graphql-generator-gen2/handlers/query.ts | 9 + .../graphql-generator-gen2/resource.ts | 59 + .../__tests__/graphql-generator-gen2.test.ts | 65 + .../src/gen2-codegen-tests-base/commands.ts | 179 ++ .../src/gen2-codegen-tests-base/index.ts | 2 + .../test-graphql-client-codegen.ts | 15 + scripts/cloud-utils.sh | 7 +- scripts/split-e2e-tests.ts | 1 + shared-scripts.sh | 42 + yarn.lock | 2107 ++++++++++++++++- 19 files changed, 3375 insertions(+), 301 deletions(-) create mode 100644 .codebuild/run_gen2_e2e_test.yml create mode 100644 .codebuild/run_gen2_e2e_test_windows.yml create mode 100644 .codebuild/scripts/gen2_e2e_test_windows.sh create mode 100644 packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/handlers/mutation.ts create mode 100644 packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/handlers/query.ts create mode 100644 packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/resource.ts create mode 100644 packages/amplify-codegen-e2e-tests/src/__tests__/graphql-generator-gen2.test.ts create mode 100644 packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/commands.ts create mode 100644 packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/index.ts create mode 100644 packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/test-graphql-client-codegen.ts diff --git a/.codebuild/e2e_workflow.yml b/.codebuild/e2e_workflow.yml index 3e2b9f315..cf40ec345 100644 --- a/.codebuild/e2e_workflow.yml +++ b/.codebuild/e2e_workflow.yml @@ -78,6 +78,27 @@ batch: debug-session: true depend-on: - publish_to_local_registry + - identifier: l_graphql_generator_gen2 + buildspec: .codebuild/run_gen2_e2e_test.yml + env: + compute-type: BUILD_GENERAL1_LARGE + variables: + TEST_SUITE: src/__tests__/graphql-generator-gen2.test.ts + CLI_REGION: us-west-2 + depend-on: + - publish_to_local_registry + - identifier: w_graphql_generator_gen2 + buildspec: .codebuild/run_gen2_e2e_test_windows.yml + env: + compute-type: BUILD_GENERAL1_LARGE + image: $WINDOWS_IMAGE_2019 + type: WINDOWS_SERVER_2019_CONTAINER + variables: + TEST_SUITE: src/__tests__/graphql-generator-gen2.test.ts + CLI_REGION: us-east-1 + depend-on: + - publish_to_local_registry + - build_windows - identifier: >- l_add_codegen_ios_configure_codegen_android_configure_codegen_js_graphql_codegen_android buildspec: .codebuild/run_e2e_tests.yml diff --git a/.codebuild/e2e_workflow_base.yml b/.codebuild/e2e_workflow_base.yml index 84aa5485a..c82c3a7f4 100644 --- a/.codebuild/e2e_workflow_base.yml +++ b/.codebuild/e2e_workflow_base.yml @@ -78,3 +78,24 @@ batch: debug-session: true depend-on: - publish_to_local_registry + - identifier: l_graphql_generator_gen2 + buildspec: .codebuild/run_gen2_e2e_test.yml + env: + compute-type: BUILD_GENERAL1_LARGE + variables: + TEST_SUITE: src/__tests__/graphql-generator-gen2.test.ts + CLI_REGION: us-west-2 + depend-on: + - publish_to_local_registry + - identifier: w_graphql_generator_gen2 + buildspec: .codebuild/run_gen2_e2e_test_windows.yml + env: + compute-type: BUILD_GENERAL1_LARGE + image: $WINDOWS_IMAGE_2019 + type: WINDOWS_SERVER_2019_CONTAINER + variables: + TEST_SUITE: src/__tests__/graphql-generator-gen2.test.ts + CLI_REGION: us-east-1 + depend-on: + - publish_to_local_registry + - build_windows diff --git a/.codebuild/run_gen2_e2e_test.yml b/.codebuild/run_gen2_e2e_test.yml new file mode 100644 index 000000000..604d00bc1 --- /dev/null +++ b/.codebuild/run_gen2_e2e_test.yml @@ -0,0 +1,23 @@ +version: 0.2 +env: + shell: bash + variables: + CI: true + CODEBUILD: true + NODE_OPTIONS: --max-old-space-size=8096 + +phases: + build: + commands: + - source ./shared-scripts.sh && _setupGen2E2ETestsLinux + - source ./shared-scripts.sh && _runGen2E2ETestsLinux + post_build: + commands: + - source ./shared-scripts.sh && _unassumeTestAccountCredentials + - aws sts get-caller-identity + - source ./shared-scripts.sh && _scanArtifacts + +artifacts: + files: + - '**/*' + base-directory: $CODEBUILD_SRC_DIR/packages/amplify-codegen-e2e-tests/amplify-e2e-reports diff --git a/.codebuild/run_gen2_e2e_test_windows.yml b/.codebuild/run_gen2_e2e_test_windows.yml new file mode 100644 index 000000000..9f1ae6377 --- /dev/null +++ b/.codebuild/run_gen2_e2e_test_windows.yml @@ -0,0 +1,21 @@ +version: 0.2 +env: + shell: powershell.exe + variables: + CI: true + CODEBUILD: true + NODE_OPTIONS: --max-old-space-size=8096 +phases: + build: + commands: + # commands need to be run in stand-alone bash scripts so that bash can be used on windows + - bash ./.codebuild/scripts/gen2_e2e_test_windows.sh + post_build: + commands: + # commands need to be run in stand-alone bash scripts so that bash can be used on windows + - bash ./.codebuild/scripts/post_e2e_test.sh + +artifacts: + files: + - '**/*' + base-directory: $Env:CODEBUILD_SRC_DIR\packages\amplify-codegen-e2e-tests\amplify-e2e-reports diff --git a/.codebuild/scripts/gen2_e2e_test_windows.sh b/.codebuild/scripts/gen2_e2e_test_windows.sh new file mode 100644 index 000000000..efecaf2dd --- /dev/null +++ b/.codebuild/scripts/gen2_e2e_test_windows.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# set exit on error to true +set -e + +source ./shared-scripts.sh && _setupGen2E2ETestsWindows +codebuild-breakpoint +source ./shared-scripts.sh && _runGen2E2ETestsWindows diff --git a/dependency_licenses.txt b/dependency_licenses.txt index 54177154c..a26d9c2c0 100644 --- a/dependency_licenses.txt +++ b/dependency_licenses.txt @@ -684,7 +684,7 @@ Apache License ----- -The following software may be included in this product: @aws-amplify/graphql-directives, @aws-amplify/graphql-schema-test-library, @aws-amplify/graphql-transformer-interfaces, graphql-mapping-template, graphql-transformer-common, graphql-transformer-core. A copy of the source code may be downloaded from https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-directives), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-schema-test-library), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-transformer-interfaces), https://github.com/aws-amplify/amplify-category-api.git (graphql-mapping-template), https://github.com/aws-amplify/amplify-category-api.git (graphql-transformer-common), https://github.com/aws-amplify/amplify-category-api.git (graphql-transformer-core). This software contains the following license and notice below: +The following software may be included in this product: @aws-amplify/data-construct, @aws-amplify/graphql-api-construct, @aws-amplify/graphql-auth-transformer, @aws-amplify/graphql-default-value-transformer, @aws-amplify/graphql-directives, @aws-amplify/graphql-function-transformer, @aws-amplify/graphql-http-transformer, @aws-amplify/graphql-index-transformer, @aws-amplify/graphql-maps-to-transformer, @aws-amplify/graphql-model-transformer, @aws-amplify/graphql-predictions-transformer, @aws-amplify/graphql-relational-transformer, @aws-amplify/graphql-schema-test-library, @aws-amplify/graphql-searchable-transformer, @aws-amplify/graphql-sql-transformer, @aws-amplify/graphql-transformer, @aws-amplify/graphql-transformer-core, @aws-amplify/graphql-transformer-interfaces, graphql-mapping-template, graphql-transformer-common, graphql-transformer-core. A copy of the source code may be downloaded from https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/data-construct), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-api-construct), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-auth-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-default-value-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-directives), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-function-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-http-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-index-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-maps-to-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-model-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-predictions-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-relational-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-schema-test-library), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-searchable-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-sql-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-transformer), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-transformer-core), https://github.com/aws-amplify/amplify-category-api.git (@aws-amplify/graphql-transformer-interfaces), https://github.com/aws-amplify/amplify-category-api.git (graphql-mapping-template), https://github.com/aws-amplify/amplify-category-api.git (graphql-transformer-common), https://github.com/aws-amplify/amplify-category-api.git (graphql-transformer-core). This software contains the following license and notice below: Apache License Version 2.0, January 2004 @@ -890,6 +890,369 @@ limitations under the License. ----- +The following software may be included in this product: @aws-amplify/data-schema. A copy of the source code may be downloaded from https://github.com/aws-amplify/amplify-api-next.git. This software contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + +NOTICE + +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + +----- + +The following software may be included in this product: @aws-amplify/data-schema-types, aws-appsync. A copy of the source code may be downloaded from https://github.com/awslabs/aws-mobile-appsync-sdk-js.git (aws-appsync). This software contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +----- + The following software may be included in this product: @aws-cdk/asset-awscli-v1, @aws-cdk/asset-kubectl-v20, @aws-cdk/asset-node-proxy-agent-v5. A copy of the source code may be downloaded from https://github.com/cdklabs/awscdk-asset-awscli.git (@aws-cdk/asset-awscli-v1), https://github.com/cdklabs/awscdk-asset-kubectl.git (@aws-cdk/asset-kubectl-v20), https://github.com/cdklabs/awscdk-asset-node-proxy-agent.git (@aws-cdk/asset-node-proxy-agent-v5). This software contains the following license and notice below: Apache License @@ -1513,7 +1876,7 @@ Apache License ----- -The following software may be included in this product: @aws-sdk/abort-controller, @aws-sdk/config-resolver, @aws-sdk/credential-provider-env, @aws-sdk/credential-provider-imds, @aws-sdk/credential-provider-ini, @aws-sdk/credential-provider-node, @aws-sdk/fetch-http-handler, @aws-sdk/hash-node, @aws-sdk/is-array-buffer, @aws-sdk/lib-storage, @aws-sdk/md5-js, @aws-sdk/middleware-content-length, @aws-sdk/middleware-signing, @aws-sdk/middleware-stack, @aws-sdk/node-http-handler, @aws-sdk/property-provider, @aws-sdk/region-config-resolver, @aws-sdk/shared-ini-file-loader, @aws-sdk/signature-v4, @aws-sdk/token-providers, @aws-sdk/types, @aws-sdk/util-arn-parser, @aws-sdk/util-base64-browser, @aws-sdk/util-base64-node, @aws-sdk/util-body-length-browser, @aws-sdk/util-body-length-node, @aws-sdk/util-buffer-from, @aws-sdk/util-endpoints, @aws-sdk/util-hex-encoding, @aws-sdk/util-locate-window, @aws-sdk/util-uri-escape, @aws-sdk/util-utf8-browser, @aws-sdk/util-utf8-node, @aws-sdk/util-waiter, @aws-sdk/xml-builder, @smithy/abort-controller, @smithy/chunked-blob-reader, @smithy/chunked-blob-reader-native, @smithy/config-resolver, @smithy/credential-provider-imds, @smithy/fetch-http-handler, @smithy/hash-blob-browser, @smithy/hash-node, @smithy/hash-stream-node, @smithy/is-array-buffer, @smithy/md5-js, @smithy/middleware-content-length, @smithy/middleware-endpoint, @smithy/middleware-stack, @smithy/node-http-handler, @smithy/property-provider, @smithy/shared-ini-file-loader, @smithy/signature-v4, @smithy/util-base64, @smithy/util-body-length-browser, @smithy/util-body-length-node, @smithy/util-buffer-from, @smithy/util-hex-encoding, @smithy/util-stream, @smithy/util-uri-escape, @smithy/util-utf8, @smithy/util-waiter. A copy of the source code may be downloaded from https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/abort-controller), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/config-resolver), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-env), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-imds), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-ini), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/fetch-http-handler), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/hash-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/is-array-buffer), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/lib-storage), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/md5-js), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-content-length), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-signing), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-stack), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/node-http-handler), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/property-provider), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/region-config-resolver), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/shared-ini-file-loader), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/signature-v4), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/token-providers), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/types), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-arn-parser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-base64-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-base64-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-body-length-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-body-length-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-buffer-from), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-endpoints), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-hex-encoding), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-locate-window), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-uri-escape), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-utf8-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-utf8-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-waiter), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/xml-builder), https://github.com/awslabs/smithy-typescript.git (@smithy/abort-controller), https://github.com/awslabs/smithy-typescript.git (@smithy/chunked-blob-reader), https://github.com/awslabs/smithy-typescript.git (@smithy/chunked-blob-reader-native), https://github.com/awslabs/smithy-typescript.git (@smithy/config-resolver), https://github.com/awslabs/smithy-typescript.git (@smithy/credential-provider-imds), https://github.com/awslabs/smithy-typescript.git (@smithy/fetch-http-handler), https://github.com/awslabs/smithy-typescript.git (@smithy/hash-blob-browser), https://github.com/awslabs/smithy-typescript.git (@smithy/hash-node), https://github.com/awslabs/smithy-typescript.git (@smithy/hash-stream-node), https://github.com/awslabs/smithy-typescript.git (@smithy/is-array-buffer), https://github.com/awslabs/smithy-typescript.git (@smithy/md5-js), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-content-length), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-endpoint), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-stack), https://github.com/awslabs/smithy-typescript.git (@smithy/node-http-handler), https://github.com/awslabs/smithy-typescript.git (@smithy/property-provider), https://github.com/awslabs/smithy-typescript.git (@smithy/shared-ini-file-loader), https://github.com/awslabs/smithy-typescript.git (@smithy/signature-v4), https://github.com/awslabs/smithy-typescript.git (@smithy/util-base64), https://github.com/awslabs/smithy-typescript.git (@smithy/util-body-length-browser), https://github.com/awslabs/smithy-typescript.git (@smithy/util-body-length-node), https://github.com/awslabs/smithy-typescript.git (@smithy/util-buffer-from), https://github.com/awslabs/smithy-typescript.git (@smithy/util-hex-encoding), https://github.com/awslabs/smithy-typescript.git (@smithy/util-stream), https://github.com/awslabs/smithy-typescript.git (@smithy/util-uri-escape), https://github.com/awslabs/smithy-typescript.git (@smithy/util-utf8), https://github.com/awslabs/smithy-typescript.git (@smithy/util-waiter). This software contains the following license and notice below: +The following software may be included in this product: @aws-sdk/abort-controller, @aws-sdk/config-resolver, @aws-sdk/credential-provider-env, @aws-sdk/credential-provider-imds, @aws-sdk/credential-provider-ini, @aws-sdk/credential-provider-node, @aws-sdk/credential-providers, @aws-sdk/fetch-http-handler, @aws-sdk/hash-node, @aws-sdk/is-array-buffer, @aws-sdk/lib-storage, @aws-sdk/md5-js, @aws-sdk/middleware-content-length, @aws-sdk/middleware-signing, @aws-sdk/middleware-stack, @aws-sdk/node-http-handler, @aws-sdk/property-provider, @aws-sdk/region-config-resolver, @aws-sdk/shared-ini-file-loader, @aws-sdk/signature-v4, @aws-sdk/token-providers, @aws-sdk/types, @aws-sdk/util-arn-parser, @aws-sdk/util-base64-browser, @aws-sdk/util-base64-node, @aws-sdk/util-body-length-browser, @aws-sdk/util-body-length-node, @aws-sdk/util-buffer-from, @aws-sdk/util-endpoints, @aws-sdk/util-hex-encoding, @aws-sdk/util-locate-window, @aws-sdk/util-uri-escape, @aws-sdk/util-utf8-browser, @aws-sdk/util-utf8-node, @aws-sdk/util-waiter, @aws-sdk/xml-builder, @smithy/abort-controller, @smithy/chunked-blob-reader, @smithy/chunked-blob-reader-native, @smithy/config-resolver, @smithy/credential-provider-imds, @smithy/fetch-http-handler, @smithy/hash-blob-browser, @smithy/hash-node, @smithy/hash-stream-node, @smithy/is-array-buffer, @smithy/md5-js, @smithy/middleware-content-length, @smithy/middleware-endpoint, @smithy/middleware-stack, @smithy/node-http-handler, @smithy/property-provider, @smithy/shared-ini-file-loader, @smithy/signature-v4, @smithy/util-base64, @smithy/util-body-length-browser, @smithy/util-body-length-node, @smithy/util-buffer-from, @smithy/util-hex-encoding, @smithy/util-stream, @smithy/util-uri-escape, @smithy/util-utf8, @smithy/util-waiter. A copy of the source code may be downloaded from https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/abort-controller), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/config-resolver), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-env), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-imds), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-ini), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-providers), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/fetch-http-handler), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/hash-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/is-array-buffer), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/lib-storage), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/md5-js), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-content-length), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-signing), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-stack), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/node-http-handler), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/property-provider), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/region-config-resolver), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/shared-ini-file-loader), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/signature-v4), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/token-providers), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/types), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-arn-parser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-base64-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-base64-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-body-length-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-body-length-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-buffer-from), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-endpoints), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-hex-encoding), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-locate-window), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-uri-escape), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-utf8-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-utf8-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-waiter), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/xml-builder), https://github.com/awslabs/smithy-typescript.git (@smithy/abort-controller), https://github.com/awslabs/smithy-typescript.git (@smithy/chunked-blob-reader), https://github.com/awslabs/smithy-typescript.git (@smithy/chunked-blob-reader-native), https://github.com/awslabs/smithy-typescript.git (@smithy/config-resolver), https://github.com/awslabs/smithy-typescript.git (@smithy/credential-provider-imds), https://github.com/awslabs/smithy-typescript.git (@smithy/fetch-http-handler), https://github.com/awslabs/smithy-typescript.git (@smithy/hash-blob-browser), https://github.com/awslabs/smithy-typescript.git (@smithy/hash-node), https://github.com/awslabs/smithy-typescript.git (@smithy/hash-stream-node), https://github.com/awslabs/smithy-typescript.git (@smithy/is-array-buffer), https://github.com/awslabs/smithy-typescript.git (@smithy/md5-js), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-content-length), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-endpoint), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-stack), https://github.com/awslabs/smithy-typescript.git (@smithy/node-http-handler), https://github.com/awslabs/smithy-typescript.git (@smithy/property-provider), https://github.com/awslabs/smithy-typescript.git (@smithy/shared-ini-file-loader), https://github.com/awslabs/smithy-typescript.git (@smithy/signature-v4), https://github.com/awslabs/smithy-typescript.git (@smithy/util-base64), https://github.com/awslabs/smithy-typescript.git (@smithy/util-body-length-browser), https://github.com/awslabs/smithy-typescript.git (@smithy/util-body-length-node), https://github.com/awslabs/smithy-typescript.git (@smithy/util-buffer-from), https://github.com/awslabs/smithy-typescript.git (@smithy/util-hex-encoding), https://github.com/awslabs/smithy-typescript.git (@smithy/util-stream), https://github.com/awslabs/smithy-typescript.git (@smithy/util-uri-escape), https://github.com/awslabs/smithy-typescript.git (@smithy/util-utf8), https://github.com/awslabs/smithy-typescript.git (@smithy/util-waiter). This software contains the following license and notice below: Apache License Version 2.0, January 2004 @@ -1719,7 +2082,7 @@ Apache License ----- -The following software may be included in this product: @aws-sdk/client-cloudwatch-logs, @aws-sdk/client-comprehend, @aws-sdk/client-firehose, @aws-sdk/client-kinesis, @aws-sdk/client-lex-runtime-service, @aws-sdk/client-personalize-events, @aws-sdk/client-polly, @aws-sdk/client-rekognition, @aws-sdk/client-s3, @aws-sdk/client-sso, @aws-sdk/client-sts, @aws-sdk/client-textract, @aws-sdk/client-translate, @aws-sdk/eventstream-codec, @aws-sdk/eventstream-marshaller, @aws-sdk/middleware-bucket-endpoint, @aws-sdk/middleware-eventstream, @aws-sdk/middleware-expect-continue, @aws-sdk/middleware-location-constraint, @aws-sdk/middleware-retry, @aws-sdk/middleware-sdk-sts, @aws-sdk/middleware-ssec, @aws-sdk/querystring-builder, @aws-sdk/querystring-parser, @aws-sdk/service-error-classification, @aws-sdk/url-parser, @aws-sdk/url-parser-native, @aws-sdk/util-defaults-mode-browser, @aws-sdk/util-defaults-mode-node, @aws-sdk/util-user-agent-browser, @aws-sdk/util-user-agent-node, @smithy/eventstream-codec, @smithy/middleware-retry, @smithy/querystring-builder, @smithy/querystring-parser, @smithy/service-error-classification, @smithy/url-parser, @smithy/util-defaults-mode-browser, @smithy/util-defaults-mode-node. A copy of the source code may be downloaded from https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-cloudwatch-logs), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-comprehend), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-firehose), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-kinesis), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-lex-runtime-service), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-personalize-events), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-polly), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-rekognition), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-s3), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-sso), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-sts), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-textract), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-translate), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-codec), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-marshaller), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-bucket-endpoint), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-eventstream), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-expect-continue), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-location-constraint), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-retry), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-sdk-sts), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-ssec), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/querystring-builder), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/querystring-parser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/service-error-classification), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/url-parser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/url-parser-native), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-defaults-mode-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-defaults-mode-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-user-agent-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-user-agent-node), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-codec), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-retry), https://github.com/awslabs/smithy-typescript.git (@smithy/querystring-builder), https://github.com/awslabs/smithy-typescript.git (@smithy/querystring-parser), https://github.com/awslabs/smithy-typescript.git (@smithy/service-error-classification), https://github.com/awslabs/smithy-typescript.git (@smithy/url-parser), https://github.com/awslabs/smithy-typescript.git (@smithy/util-defaults-mode-browser), https://github.com/awslabs/smithy-typescript.git (@smithy/util-defaults-mode-node). This software contains the following license and notice below: +The following software may be included in this product: @aws-sdk/client-amplify, @aws-sdk/client-appsync, @aws-sdk/client-cloudwatch-logs, @aws-sdk/client-cognito-identity, @aws-sdk/client-comprehend, @aws-sdk/client-firehose, @aws-sdk/client-kinesis, @aws-sdk/client-lex-runtime-service, @aws-sdk/client-personalize-events, @aws-sdk/client-polly, @aws-sdk/client-rekognition, @aws-sdk/client-s3, @aws-sdk/client-ssm, @aws-sdk/client-sso, @aws-sdk/client-sts, @aws-sdk/client-textract, @aws-sdk/client-translate, @aws-sdk/credential-provider-cognito-identity, @aws-sdk/eventstream-codec, @aws-sdk/eventstream-marshaller, @aws-sdk/middleware-bucket-endpoint, @aws-sdk/middleware-eventstream, @aws-sdk/middleware-expect-continue, @aws-sdk/middleware-location-constraint, @aws-sdk/middleware-retry, @aws-sdk/middleware-sdk-sts, @aws-sdk/middleware-ssec, @aws-sdk/querystring-builder, @aws-sdk/querystring-parser, @aws-sdk/service-error-classification, @aws-sdk/url-parser, @aws-sdk/url-parser-native, @aws-sdk/util-defaults-mode-browser, @aws-sdk/util-defaults-mode-node, @aws-sdk/util-user-agent-browser, @aws-sdk/util-user-agent-node, @smithy/eventstream-codec, @smithy/middleware-retry, @smithy/querystring-builder, @smithy/querystring-parser, @smithy/service-error-classification, @smithy/url-parser, @smithy/util-defaults-mode-browser, @smithy/util-defaults-mode-node. A copy of the source code may be downloaded from https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-amplify), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-appsync), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-cloudwatch-logs), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-cognito-identity), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-comprehend), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-firehose), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-kinesis), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-lex-runtime-service), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-personalize-events), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-polly), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-rekognition), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-s3), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-ssm), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-sso), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-sts), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-textract), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/client-translate), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/credential-provider-cognito-identity), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-codec), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-marshaller), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-bucket-endpoint), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-eventstream), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-expect-continue), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-location-constraint), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-retry), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-sdk-sts), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-ssec), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/querystring-builder), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/querystring-parser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/service-error-classification), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/url-parser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/url-parser-native), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-defaults-mode-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-defaults-mode-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-user-agent-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/util-user-agent-node), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-codec), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-retry), https://github.com/awslabs/smithy-typescript.git (@smithy/querystring-builder), https://github.com/awslabs/smithy-typescript.git (@smithy/querystring-parser), https://github.com/awslabs/smithy-typescript.git (@smithy/service-error-classification), https://github.com/awslabs/smithy-typescript.git (@smithy/url-parser), https://github.com/awslabs/smithy-typescript.git (@smithy/util-defaults-mode-browser), https://github.com/awslabs/smithy-typescript.git (@smithy/util-defaults-mode-node). This software contains the following license and notice below: Apache License Version 2.0, January 2004 @@ -2337,7 +2700,7 @@ Apache License ----- -The following software may be included in this product: @aws-sdk/eventstream-handler-node, @aws-sdk/eventstream-serde-browser, @aws-sdk/eventstream-serde-config-resolver, @aws-sdk/eventstream-serde-node, @aws-sdk/eventstream-serde-universal, @aws-sdk/invalid-dependency, @aws-sdk/middleware-host-header, @aws-sdk/middleware-recursion-detection, @aws-sdk/middleware-sdk-s3, @aws-sdk/middleware-serde, @aws-sdk/middleware-user-agent, @aws-sdk/protocol-http, @aws-sdk/signature-v4-multi-region, @aws-sdk/smithy-client, @smithy/eventstream-serde-browser, @smithy/eventstream-serde-config-resolver, @smithy/eventstream-serde-node, @smithy/eventstream-serde-universal, @smithy/invalid-dependency, @smithy/middleware-serde, @smithy/protocol-http, @smithy/smithy-client, @smithy/types. A copy of the source code may be downloaded from https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-handler-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-serde-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-serde-config-resolver), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-serde-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-serde-universal), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/invalid-dependency), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-host-header), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-recursion-detection), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-sdk-s3), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-serde), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-user-agent), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/protocol-http), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/signature-v4-multi-region), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/smithy-client), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-serde-browser), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-serde-config-resolver), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-serde-node), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-serde-universal), https://github.com/awslabs/smithy-typescript.git (@smithy/invalid-dependency), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-serde), https://github.com/awslabs/smithy-typescript.git (@smithy/protocol-http), https://github.com/awslabs/smithy-typescript.git (@smithy/smithy-client), https://github.com/awslabs/smithy-typescript.git (@smithy/types). This software contains the following license and notice below: +The following software may be included in this product: @aws-sdk/eventstream-handler-node, @aws-sdk/eventstream-serde-browser, @aws-sdk/eventstream-serde-config-resolver, @aws-sdk/eventstream-serde-node, @aws-sdk/eventstream-serde-universal, @aws-sdk/invalid-dependency, @aws-sdk/middleware-host-header, @aws-sdk/middleware-recursion-detection, @aws-sdk/middleware-sdk-s3, @aws-sdk/middleware-serde, @aws-sdk/middleware-user-agent, @aws-sdk/protocol-http, @aws-sdk/signature-v4-multi-region, @aws-sdk/smithy-client, @smithy/core, @smithy/eventstream-serde-browser, @smithy/eventstream-serde-config-resolver, @smithy/eventstream-serde-node, @smithy/eventstream-serde-universal, @smithy/invalid-dependency, @smithy/middleware-serde, @smithy/protocol-http, @smithy/smithy-client, @smithy/types. A copy of the source code may be downloaded from https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-handler-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-serde-browser), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-serde-config-resolver), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-serde-node), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/eventstream-serde-universal), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/invalid-dependency), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-host-header), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-recursion-detection), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-sdk-s3), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-serde), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/middleware-user-agent), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/protocol-http), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/signature-v4-multi-region), https://github.com/aws/aws-sdk-js-v3.git (@aws-sdk/smithy-client), https://github.com/awslabs/smithy-typescript.git (@smithy/core), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-serde-browser), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-serde-config-resolver), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-serde-node), https://github.com/awslabs/smithy-typescript.git (@smithy/eventstream-serde-universal), https://github.com/awslabs/smithy-typescript.git (@smithy/invalid-dependency), https://github.com/awslabs/smithy-typescript.git (@smithy/middleware-serde), https://github.com/awslabs/smithy-typescript.git (@smithy/protocol-http), https://github.com/awslabs/smithy-typescript.git (@smithy/smithy-client), https://github.com/awslabs/smithy-typescript.git (@smithy/types). This software contains the following license and notice below: Apache License Version 2.0, January 2004 @@ -4479,7 +4842,7 @@ MIT License ----- -The following software may be included in this product: @types/babel__core, @types/babel__generator, @types/babel__template, @types/babel__traverse, @types/babel-generator, @types/babel-types, @types/cli-progress, @types/common-tags, @types/fs-extra, @types/glob, @types/graceful-fs, @types/ini, @types/istanbul-lib-coverage, @types/istanbul-lib-report, @types/istanbul-reports, @types/jest, @types/js-yaml, @types/json-schema, @types/minimatch, @types/minimist, @types/node, @types/node-fetch, @types/normalize-package-data, @types/parse-json, @types/prettier, @types/rimraf, @types/semver, @types/stack-utils, @types/triple-beam, @types/yargs, @types/yargs-parser, @types/zen-observable. A copy of the source code may be downloaded from https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__core), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__generator), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__template), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__traverse), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel-generator), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel-types), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/cli-progress), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/common-tags), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/fs-extra), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/glob), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/graceful-fs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/ini), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-lib-coverage), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-lib-report), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-reports), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/jest), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/js-yaml), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/json-schema), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/minimatch), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/minimist), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/node), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/node-fetch), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/normalize-package-data), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/parse-json), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/prettier), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/rimraf), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/semver), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/stack-utils), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/triple-beam), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yargs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yargs-parser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/zen-observable). This software contains the following license and notice below: +The following software may be included in this product: @types/aws-lambda, @types/babel__core, @types/babel__generator, @types/babel__template, @types/babel__traverse, @types/babel-generator, @types/babel-types, @types/cli-progress, @types/common-tags, @types/fs-extra, @types/glob, @types/graceful-fs, @types/ini, @types/istanbul-lib-coverage, @types/istanbul-lib-report, @types/istanbul-reports, @types/jest, @types/js-yaml, @types/json-schema, @types/minimatch, @types/minimist, @types/node, @types/node-fetch, @types/normalize-package-data, @types/parse-json, @types/prettier, @types/rimraf, @types/semver, @types/stack-utils, @types/triple-beam, @types/yargs, @types/yargs-parser, @types/zen-observable. A copy of the source code may be downloaded from https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/aws-lambda), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__core), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__generator), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__template), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel__traverse), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel-generator), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/babel-types), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/cli-progress), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/common-tags), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/fs-extra), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/glob), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/graceful-fs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/ini), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-lib-coverage), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-lib-report), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/istanbul-reports), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/jest), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/js-yaml), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/json-schema), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/minimatch), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/minimist), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/node), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/node-fetch), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/normalize-package-data), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/parse-json), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/prettier), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/rimraf), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/semver), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/stack-utils), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/triple-beam), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yargs), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/yargs-parser), https://github.com/DefinitelyTyped/DefinitelyTyped.git (@types/zen-observable). This software contains the following license and notice below: MIT License @@ -5168,7 +5531,7 @@ THE SOFTWARE. ----- -The following software may be included in this product: ansi-escapes, camelcase, cli-spinners, dot-prop, emittery, execa, figures, find-up, get-stream, globals, import-fresh, import-from, is-docker, is-stream, is-unicode-supported, locate-path, log-symbols, make-dir, map-obj, meow, multimatch, onetime, open, ora, p-limit, p-locate, p-map, p-pipe, p-queue, p-waterfall, parse-json, pify, sort-keys, string-length, strip-json-comments, supports-color, wrap-ansi, yocto-queue. A copy of the source code may be downloaded from https://github.com/sindresorhus/ansi-escapes.git (ansi-escapes), https://github.com/sindresorhus/camelcase.git (camelcase), https://github.com/sindresorhus/cli-spinners.git (cli-spinners), https://github.com/sindresorhus/dot-prop.git (dot-prop), https://github.com/sindresorhus/emittery.git (emittery), https://github.com/sindresorhus/execa.git (execa), https://github.com/sindresorhus/figures.git (figures), https://github.com/sindresorhus/find-up.git (find-up), https://github.com/sindresorhus/get-stream.git (get-stream), https://github.com/sindresorhus/globals.git (globals), https://github.com/sindresorhus/import-fresh.git (import-fresh), https://github.com/sindresorhus/import-from.git (import-from), https://github.com/sindresorhus/is-docker.git (is-docker), https://github.com/sindresorhus/is-stream.git (is-stream), https://github.com/sindresorhus/is-unicode-supported.git (is-unicode-supported), https://github.com/sindresorhus/locate-path.git (locate-path), https://github.com/sindresorhus/log-symbols.git (log-symbols), https://github.com/sindresorhus/make-dir.git (make-dir), https://github.com/sindresorhus/map-obj.git (map-obj), https://github.com/sindresorhus/meow.git (meow), https://github.com/sindresorhus/multimatch.git (multimatch), https://github.com/sindresorhus/onetime.git (onetime), https://github.com/sindresorhus/open.git (open), https://github.com/sindresorhus/ora.git (ora), https://github.com/sindresorhus/p-limit.git (p-limit), https://github.com/sindresorhus/p-locate.git (p-locate), https://github.com/sindresorhus/p-map.git (p-map), https://github.com/sindresorhus/p-pipe.git (p-pipe), https://github.com/sindresorhus/p-queue.git (p-queue), https://github.com/sindresorhus/p-waterfall.git (p-waterfall), https://github.com/sindresorhus/parse-json.git (parse-json), https://github.com/sindresorhus/pify.git (pify), https://github.com/sindresorhus/sort-keys.git (sort-keys), https://github.com/sindresorhus/string-length.git (string-length), https://github.com/sindresorhus/strip-json-comments.git (strip-json-comments), https://github.com/chalk/supports-color.git (supports-color), https://github.com/chalk/wrap-ansi.git (wrap-ansi), https://github.com/sindresorhus/yocto-queue.git (yocto-queue). This software contains the following license and notice below: +The following software may be included in this product: ansi-escapes, camelcase, cli-spinners, dot-prop, emittery, execa, figures, find-up, get-stream, globals, import-fresh, import-from, is-docker, is-stream, is-unicode-supported, locate-path, log-symbols, make-dir, map-obj, meow, mimic-fn, multimatch, npm-run-path, onetime, open, ora, p-limit, p-locate, p-map, p-pipe, p-queue, p-waterfall, parse-json, path-key, pify, sort-keys, string-length, strip-final-newline, strip-json-comments, supports-color, wrap-ansi, yocto-queue. A copy of the source code may be downloaded from https://github.com/sindresorhus/ansi-escapes.git (ansi-escapes), https://github.com/sindresorhus/camelcase.git (camelcase), https://github.com/sindresorhus/cli-spinners.git (cli-spinners), https://github.com/sindresorhus/dot-prop.git (dot-prop), https://github.com/sindresorhus/emittery.git (emittery), https://github.com/sindresorhus/execa.git (execa), https://github.com/sindresorhus/figures.git (figures), https://github.com/sindresorhus/find-up.git (find-up), https://github.com/sindresorhus/get-stream.git (get-stream), https://github.com/sindresorhus/globals.git (globals), https://github.com/sindresorhus/import-fresh.git (import-fresh), https://github.com/sindresorhus/import-from.git (import-from), https://github.com/sindresorhus/is-docker.git (is-docker), https://github.com/sindresorhus/is-stream.git (is-stream), https://github.com/sindresorhus/is-unicode-supported.git (is-unicode-supported), https://github.com/sindresorhus/locate-path.git (locate-path), https://github.com/sindresorhus/log-symbols.git (log-symbols), https://github.com/sindresorhus/make-dir.git (make-dir), https://github.com/sindresorhus/map-obj.git (map-obj), https://github.com/sindresorhus/meow.git (meow), https://github.com/sindresorhus/mimic-fn.git (mimic-fn), https://github.com/sindresorhus/multimatch.git (multimatch), https://github.com/sindresorhus/npm-run-path.git (npm-run-path), https://github.com/sindresorhus/onetime.git (onetime), https://github.com/sindresorhus/open.git (open), https://github.com/sindresorhus/ora.git (ora), https://github.com/sindresorhus/p-limit.git (p-limit), https://github.com/sindresorhus/p-locate.git (p-locate), https://github.com/sindresorhus/p-map.git (p-map), https://github.com/sindresorhus/p-pipe.git (p-pipe), https://github.com/sindresorhus/p-queue.git (p-queue), https://github.com/sindresorhus/p-waterfall.git (p-waterfall), https://github.com/sindresorhus/parse-json.git (parse-json), https://github.com/sindresorhus/path-key.git (path-key), https://github.com/sindresorhus/pify.git (pify), https://github.com/sindresorhus/sort-keys.git (sort-keys), https://github.com/sindresorhus/string-length.git (string-length), https://github.com/sindresorhus/strip-final-newline.git (strip-final-newline), https://github.com/sindresorhus/strip-json-comments.git (strip-json-comments), https://github.com/chalk/supports-color.git (supports-color), https://github.com/chalk/wrap-ansi.git (wrap-ansi), https://github.com/sindresorhus/yocto-queue.git (yocto-queue). This software contains the following license and notice below: MIT License @@ -6181,260 +6544,54 @@ furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ------ - -The following software may be included in this product: at-least-node. A copy of the source code may be downloaded from git+https://github.com/RyanZim/at-least-node.git. This software contains the following license and notice below: - -The ISC License -Copyright (c) 2020 Ryan Zimmerman - -Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ------ - -The following software may be included in this product: available-typed-arrays, is-finalizationregistry, is-weakref, typed-array-byte-length, typed-array-byte-offset, typed-array-length. A copy of the source code may be downloaded from git+https://github.com/inspect-js/available-typed-arrays.git (available-typed-arrays), git+https://github.com/inspect-js/is-finalizationregistry.git (is-finalizationregistry), git+https://github.com/inspect-js/is-weakref.git (is-weakref), git+https://github.com/inspect-js/typed-array-byte-length.git (typed-array-byte-length), git+https://github.com/inspect-js/typed-array-byte-offset.git (typed-array-byte-offset), git+https://github.com/inspect-js/typed-array-length.git (typed-array-length). This software contains the following license and notice below: - -MIT License - -Copyright (c) 2020 Inspect JS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ------ - -The following software may be included in this product: aws-amplify. A copy of the source code may be downloaded from https://github.com/aws-amplify/amplify-js.git. This software contains the following license and notice below: - -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. +----- - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. +The following software may be included in this product: at-least-node. A copy of the source code may be downloaded from git+https://github.com/RyanZim/at-least-node.git. This software contains the following license and notice below: - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. +The ISC License +Copyright (c) 2020 Ryan Zimmerman - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - END OF TERMS AND CONDITIONS +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - APPENDIX: How to apply the Apache License to your work. +----- - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. +The following software may be included in this product: available-typed-arrays, is-finalizationregistry, is-weakref, typed-array-byte-length, typed-array-byte-offset, typed-array-length. A copy of the source code may be downloaded from git+https://github.com/inspect-js/available-typed-arrays.git (available-typed-arrays), git+https://github.com/inspect-js/is-finalizationregistry.git (is-finalizationregistry), git+https://github.com/inspect-js/is-weakref.git (is-weakref), git+https://github.com/inspect-js/typed-array-byte-length.git (typed-array-byte-length), git+https://github.com/inspect-js/typed-array-byte-offset.git (typed-array-byte-offset), git+https://github.com/inspect-js/typed-array-length.git (typed-array-length). This software contains the following license and notice below: - Copyright {yyyy} {name of copyright owner} +MIT License - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at +Copyright (c) 2020 Inspect JS - http://www.apache.org/licenses/LICENSE-2.0 +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. ----- -The following software may be included in this product: aws-appsync. A copy of the source code may be downloaded from https://github.com/awslabs/aws-mobile-appsync-sdk-js.git. This software contains the following license and notice below: +The following software may be included in this product: aws-amplify. A copy of the source code may be downloaded from https://github.com/aws-amplify/amplify-js.git. This software contains the following license and notice below: Apache License Version 2.0, January 2004 @@ -6611,6 +6768,33 @@ Apache License incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ----- The following software may be included in this product: aws-cdk-lib. A copy of the source code may be downloaded from https://github.com/aws/aws-cdk.git. This software contains the following license and notice below: @@ -14017,69 +14201,275 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI The following software may be included in this product: html-escaper. A copy of the source code may be downloaded from https://github.com/WebReflection/html-escaper.git. This software contains the following license and notice below: -Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection +Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----- + +The following software may be included in this product: http-cache-semantics. A copy of the source code may be downloaded from https://github.com/kornelski/http-cache-semantics.git. This software contains the following license and notice below: + +Copyright 2016-2018 Kornel Lesiński + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The following software may be included in this product: http-proxy-agent. A copy of the source code may be downloaded from https://github.com/TooTallNate/proxy-agents.git. This software contains the following license and notice below: + +License +------- + +(The MIT License) + +Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The following software may be included in this product: human-signals. A copy of the source code may be downloaded from https://github.com/ehmicky/human-signals.git. This software contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and ------ + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and -The following software may be included in this product: http-cache-semantics. A copy of the source code may be downloaded from https://github.com/kornelski/http-cache-semantics.git. This software contains the following license and notice below: + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -Copyright 2016-2018 Kornel Lesiński + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. ------ + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. -The following software may be included in this product: http-proxy-agent. A copy of the source code may be downloaded from https://github.com/TooTallNate/proxy-agents.git. This software contains the following license and notice below: + END OF TERMS AND CONDITIONS -License -------- + APPENDIX: How to apply the Apache License to your work. -(The MIT License) + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. -Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net> + Copyright 2019 ehmicky -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. + http://www.apache.org/licenses/LICENSE-2.0 -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. ----- @@ -14273,7 +14663,7 @@ Apache License same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2019 ehmicky + Copyright 2022 ehmicky Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14733,6 +15123,32 @@ THE SOFTWARE. ----- +The following software may be included in this product: is-ci. A copy of the source code may be downloaded from https://github.com/watson/is-ci.git. This software contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016-2021 Thomas Watson Steen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + The following software may be included in this product: is-core-module. A copy of the source code may be downloaded from git+https://github.com/inspect-js/is-core-module.git. This software contains the following license and notice below: The MIT License (MIT) @@ -15693,6 +16109,33 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----- +The following software may be included in this product: libphonenumber-js. A copy of the source code may be downloaded from git+https://gitlab.com/catamphetamine/libphonenumber-js.git. This software contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2016 @catamphetamine + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + The following software may be included in this product: lines-and-columns. A copy of the source code may be downloaded from https://github.com/eventualbuddha/lines-and-columns.git. This software contains the following license and notice below: The MIT License (MIT) @@ -18832,6 +19275,27 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----- +The following software may be included in this product: signal-exit. A copy of the source code may be downloaded from https://github.com/tapjs/signal-exit.git. This software contains the following license and notice below: + +The ISC License + +Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----- + The following software may be included in this product: signedsource. This software contains the following license and notice below: BSD License @@ -21473,3 +21937,29 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +----- + +The following software may be included in this product: zod. A copy of the source code may be downloaded from git+https://github.com/colinhacks/zod.git. This software contains the following license and notice below: + +MIT License + +Copyright (c) 2020 Colin McDonnell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/packages/amplify-codegen-e2e-core/src/index.ts b/packages/amplify-codegen-e2e-core/src/index.ts index cc06341b9..cf76bd643 100644 --- a/packages/amplify-codegen-e2e-core/src/index.ts +++ b/packages/amplify-codegen-e2e-core/src/index.ts @@ -33,6 +33,15 @@ export function getCLIPath(testingWithLatestCodebase = false) { return getCommandPath(commandName); } +export function getScriptRunnerPath(testingWithLatestCodebase = false) { + if (!testingWithLatestCodebase) { + return process.platform === 'win32' ? 'node.exe' : 'exec'; + } + + // nodejs executable + return process.execPath; +} + export function isCI(): boolean { return process.env.CI && process.env.CODEBUILD ? true : false; } diff --git a/packages/amplify-codegen-e2e-tests/package.json b/packages/amplify-codegen-e2e-tests/package.json index b27be3920..f60eac58b 100644 --- a/packages/amplify-codegen-e2e-tests/package.json +++ b/packages/amplify-codegen-e2e-tests/package.json @@ -18,6 +18,7 @@ "private": true, "scripts": { "e2e": "npm run setup-profile && jest --verbose --forceExit", + "e2e-gen2": "jest --verbose --forceExit", "setup-profile": "ts-node ./src/configure_tests.ts", "clean-e2e-resources": "ts-node ./src/cleanup-e2e-resources.ts" }, @@ -41,6 +42,7 @@ }, "devDependencies": { "@types/jest": "^27.0.0", + "@aws-amplify/backend": "^1.0.0", "graphql": "^15.8.0", "ts-node": "^8.10.1" }, diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/handlers/mutation.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/handlers/mutation.ts new file mode 100644 index 000000000..e4f707b85 --- /dev/null +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/handlers/mutation.ts @@ -0,0 +1,11 @@ +import type { Schema } from '../resource' + +export const handler: Schema["echoMutation"]["functionHandler"] = async (event, context) => { + return { + id: 'todo1', + content: `Echoing content: ${event.arguments.requiredContent}`, + status: 'COMPLETED', + createdAt: performance.now().toString(), + updatedAt: performance.now().toString(), + }; +}; diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/handlers/query.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/handlers/query.ts new file mode 100644 index 000000000..f7eda1ac1 --- /dev/null +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/handlers/query.ts @@ -0,0 +1,9 @@ +import type { Schema } from '../resource' + +export const handler: Schema["echoQuery"]["functionHandler"] = async (event, context) => { + const start = performance.now(); + return { + content: `Echoing content: ${event.arguments.content}`, + executionDuration: performance.now() - start + }; +}; diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/resource.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/resource.ts new file mode 100644 index 000000000..dc2f27cb5 --- /dev/null +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/backends/graphql-generator-gen2/resource.ts @@ -0,0 +1,59 @@ +import { type ClientSchema, a, defineData, defineFunction } from '@aws-amplify/backend'; + +const echoQueryHandler = defineFunction({ + entry: './handlers/query.ts' +}); +const echoMutationHandler = defineFunction({ + entry: './handlers/mutation.ts' +}); + +const schema = a.schema({ + // Model type + Todo: a + .model({ + content: a.string(), + status: a.ref('Status'), + }) + .authorization((allow) => [allow.guest()]), + // Enum Type + Status: a.enum([ + 'PROGRESS', + 'COMPLETED', + ]), + EchoQueryStatus: a.enum([ + 'PROGRESS', + 'COMPLETED', + ]), + // Non model type + EchoResponse: a.customType({ + content: a.string(), + executionDuration: a.float() + }), + // Custom query and mutation + echoQuery: a + .query() + .arguments({ + content: a.string(), + status: a.enum(['PROGRESS', 'COMPLETED']), + }) + .returns(a.ref('EchoResponse')) + .authorization(allow => [allow.authenticated()]) + .handler(a.handler.function(echoQueryHandler)), + echoMutation: a + .mutation() + .arguments({ + requiredContent: a.string().required() + }) + .returns(a.ref('Todo').required()) + .authorization(allow => [allow.authenticated()]) + .handler(a.handler.function(echoMutationHandler)), +}); + +export type Schema = ClientSchema; + +export const data = defineData({ + schema, + authorizationModes: { + defaultAuthorizationMode: 'iam', + }, +}); diff --git a/packages/amplify-codegen-e2e-tests/src/__tests__/graphql-generator-gen2.test.ts b/packages/amplify-codegen-e2e-tests/src/__tests__/graphql-generator-gen2.test.ts new file mode 100644 index 000000000..7902d4f63 --- /dev/null +++ b/packages/amplify-codegen-e2e-tests/src/__tests__/graphql-generator-gen2.test.ts @@ -0,0 +1,65 @@ +import * as path from 'path'; +import { createNewProjectDir, deleteProjectDir } from "@aws-amplify/amplify-codegen-e2e-core"; +import { GraphqlCodegenConfig, IntrospectionCodegenConfig, ModelgenConfig, deleteSandbox, generateForms, generateOutputs, initGen2Project, sandboxDeploy, testGraphqlClientCodegen } from "../gen2-codegen-tests-base/"; + +describe('GraphQL generator for Gen2 e2e tests', () => { + let projRoot: string; + let projFolderName: string; + + beforeAll(async () => { + projFolderName = 'graphqlGeneratorGen2'; + projRoot = await createNewProjectDir(projFolderName); + const template = path.resolve(path.join(__dirname, 'backends', 'graphql-generator-gen2')) + await initGen2Project(projRoot, template); + await sandboxDeploy(projRoot); + }); + + afterAll(async () => { + await deleteSandbox(projRoot); + deleteProjectDir(projRoot); + }); + + it('should not throw error when generating outputs', async () => { + await expect(generateOutputs(projRoot)).resolves.not.toThrow(); + }); + + it('should not throw error when generating forms', async () => { + await expect(generateForms(projRoot)).resolves.not.toThrow(); + }); + describe('Graphql client codegen', () => { + // introspection + const introspectionCodegenConfigs: IntrospectionCodegenConfig[] = [ + { outDir: 'codegen', format: 'introspection' } + ]; + introspectionCodegenConfigs.forEach(config => { + it(`should not throw error when generating GraphQL client code in format ${config.format}`, async () => { + await testGraphqlClientCodegen(projRoot, config); + }); + }); + // modelgen + const modelTargets = ['java', 'swift', 'javascript', 'typescript', 'dart'] + const modelgenConfigs: ModelgenConfig[] = modelTargets.map(target => { + return { outDir: 'codegen', format: 'modelgen', modelTarget: target }; + }) + modelgenConfigs.forEach(config => { + it(`should not throw error when generating GraphQL client code in format ${config.format} with target ${config.modelTarget}`, async () => { + await testGraphqlClientCodegen(projRoot, config); + }); + }); + // graphql codegen + const statementTargets = ['javascript', 'graphql', 'flow', 'typescript', 'angular']; + const typeTargets = ['json', 'swift', 'typescript', 'flow', 'scala', 'flow-modern', 'angular']; + const typeTargetConfigs = typeTargets.map(tt => { return { outDir: 'codegen', format: 'graphql-codegen', typeTarget: tt }}); + const graphqlCodegenConfigs: GraphqlCodegenConfig[] = statementTargets.map(st => { + return typeTargetConfigs.map(config => { + return { ...config, statementTarget: st } as GraphqlCodegenConfig + }); + }).flat(); + graphqlCodegenConfigs.forEach(config => { + // TODO: skip these tests as it will fail due to the duplicate graphql module. Will enable them once the issue is resolved + it.skip(`should not throw error when generating GraphQL client code in format ${config.format} with type ${config.typeTarget} and statement ${config.statementTarget}`, async () => { + await testGraphqlClientCodegen(projRoot, config); + }); + }) + }) +}); \ No newline at end of file diff --git a/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/commands.ts b/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/commands.ts new file mode 100644 index 000000000..30351502b --- /dev/null +++ b/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/commands.ts @@ -0,0 +1,179 @@ +import * as path from 'path'; +import { copySync, readFileSync, writeFileSync } from 'fs-extra'; +import { getScriptRunnerPath, nspawn as spawn, getCommandPath } from '@aws-amplify/amplify-codegen-e2e-core'; +import { spawnSync } from 'child_process'; + +/** + * Retrieve the path to the `npx` executable for interacting with the amplify gen2 cli. + * @returns the local `npx` executable path. + */ +const getNpxPath = (): string => (process.platform === 'win32' ? getScriptRunnerPath().replace('node.exe', 'npx.cmd') : 'npx'); +/** + * Retrieve the path to the `ampx` executable for interacting with the amplify gen2 cli. + * @param cwd current working directory + * @returns the local `ampx` executable path + */ +const getAmpxPath = (cwd: string): string => + spawnSync(getNpxPath(), ['which', 'ampx'], { cwd, env: process.env, stdio: 'pipe' }).stdout.toString().trim(); + +const codegenPackagesInGen2 = [ + '@aws-amplify/graphql-generator', + '@aws-amplify/graphql-types-generator' +]; +const apiPackagesInGen2 = [ + '@aws-amplify/data-construct' +]; + +type CodegenPackage = 'GraphqlGenerator' | 'TypeGen'; + +const codegenPackageDirectoryMap: Record = { + GraphqlGenerator: path.join(__dirname, '..', '..', '..', 'graphql-generator'), + TypeGen: path.join(__dirname, '..', '..', '..', 'graphql-types-generator'), +}; + +/** + * Copy the backend data snapshot into the generated app location. + */ +const copyTemplateDirectory = (projectPath: string, templatePath: string): void => { + const amplifyDataDir = path.join(projectPath, 'amplify', 'data'); + copySync(templatePath, amplifyDataDir, { overwrite: true }); +}; + +/** + * Initialize a Amplify Gen2 project in the cwd using a reference backend `app.ts` file, and optional cdkVersion specified. + * @param cwd the directory to initialize the CDK project in + * @param templatePath path to the project to overwrite the cdk sample code with + * @param props additional properties to configure the test app setup. + * @returns a promise which resolves to the stack name + */ +export const initGen2Project = async (cwd: string, templatePath: string, props: Gen2DeployProps = {}): Promise => { + const commandOptions = { + cwd, + stripColors: true, + }; + const npmPath = getCommandPath('npm') + await spawn(npmPath, ['create', 'amplify@latest', '-y'], commandOptions).runAsync(); + + overrideWithLocalCodegenPackages(cwd); + + await spawn(npmPath, ['install'], commandOptions).runAsync(); + + // Get root level packages info + await spawn(npmPath, ['list'], commandOptions).runAsync(); + // Get codegen packages info + await spawn(npmPath, ['list', ...codegenPackagesInGen2], commandOptions).runAsync(); + // Get API packages info + await spawn(npmPath, ['list', ...apiPackagesInGen2], commandOptions).runAsync(); + + copyTemplateDirectory(cwd, templatePath); + + return JSON.parse(readFileSync(path.join(cwd, 'package.json'), 'utf8')).name.replace(/_/g, '-'); +}; + +export type Gen2DeployProps = { + timeoutMs?: number; +}; + +const overrideWithLocalCodegenPackages = (cwd: string): void => { + const packageJsonObj = JSON.parse(readFileSync(path.join(cwd, 'package.json'), 'utf8')); + packageJsonObj.overrides = { + '@aws-amplify/graphql-generator': codegenPackageDirectoryMap['GraphqlGenerator'], + '@aws-amplify/graphql-types-generator': codegenPackageDirectoryMap['TypeGen'], + }; + writeFileSync(path.join(cwd, 'package.json'), JSON.stringify(packageJsonObj)); +}; + +export const sandboxDeploy = async (cwd: string, props: Gen2DeployProps = {}): Promise => { + const noOutputTimeout = props?.timeoutMs ?? 10 * 60 * 1000; + const commandOptions = { + cwd, + stripColors: true, + noOutputTimeout, + }; + + // Run sandbox deployment + + /** + * For sandbox deployment, the nested ampx binary is retrieved instead of using npx + * On windows, the Ctrl-C signal is not returned correctly from npx binary, whose code is 1 and will fail nexpect check + * Therefore, the ampx binary is used for sandbox deployment instead of npx + */ + const ampxCli = getAmpxPath(cwd) + await + spawn(ampxCli, ['sandbox'], commandOptions) + .wait('Watching for file changes...') + .sendCtrlC() + .wait('Would you like to delete all the resources in your sandbox environment') + .sendLine('N') + .runAsync(); +}; + +export const deleteSandbox = async (cwd: string): Promise => { + await + spawn(getNpxPath(), ['ampx', 'sandbox', 'delete'], { cwd, stripColors: true }) + .wait('Are you sure you want to delete all the resources in your sandbox environment') + .sendLine('Y') + .runAsync(); +}; + +/** + * Commands for ampx generate + */ +export type ClientCodegenConfigBase = { + format: string + outDir: string +} + +export type IntrospectionCodegenConfig = ClientCodegenConfigBase & { + format: 'introspection' +} +export type ModelgenConfig = ClientCodegenConfigBase & { + format: 'modelgen' + modelTarget: string +} +export type GraphqlCodegenConfig = ClientCodegenConfigBase & { + format: 'graphql-codegen' + typeTarget: string + statementTarget: string +} +export type ClientCodegenConfig = IntrospectionCodegenConfig | ModelgenConfig | GraphqlCodegenConfig + +const getClientCodegenParams = (props: ClientCodegenConfig): string[] => { + const params = [ '--out', props.outDir, '--format', props.format ] + switch (props.format) { + case 'modelgen': + return [ ...params, '--model-target', props.modelTarget]; + case 'graphql-codegen': + return [ ...params, '--type-target', props.typeTarget, '--statement-target', props.statementTarget] + case 'introspection': + default: + return params; + } +}; + +export const generateGraphqlClientCode = async (cwd: string, props: ClientCodegenConfig): Promise => { + await + spawn( + getNpxPath(), + ['ampx', 'generate', 'graphql-client-code', ...getClientCodegenParams(props)], + { cwd, stripColors: true }, + ).runAsync(); +}; + +export const generateForms = async (cwd: string, props: any = {}): Promise => { + await + spawn( + getNpxPath(), + ['ampx', 'generate', 'forms'], + { cwd, stripColors: true }, + ).runAsync(); +}; + +export const generateOutputs = async (cwd: string, props: any = {}): Promise => { + await + spawn( + getNpxPath(), + ['ampx', 'generate', 'outputs'], + { cwd, stripColors: true }, + ).runAsync(); +}; diff --git a/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/index.ts b/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/index.ts new file mode 100644 index 000000000..688138afb --- /dev/null +++ b/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/index.ts @@ -0,0 +1,2 @@ +export * from './commands'; +export * from './test-graphql-client-codegen'; diff --git a/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/test-graphql-client-codegen.ts b/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/test-graphql-client-codegen.ts new file mode 100644 index 000000000..0ad0209a2 --- /dev/null +++ b/packages/amplify-codegen-e2e-tests/src/gen2-codegen-tests-base/test-graphql-client-codegen.ts @@ -0,0 +1,15 @@ +import path from 'path'; +import { isNotEmptyDir } from "../utils"; +import { ClientCodegenConfig, generateGraphqlClientCode } from "./commands"; +import { existsSync } from 'fs-extra'; +import { deleteProjectDir } from '@aws-amplify/amplify-codegen-e2e-core'; + +export const testGraphqlClientCodegen = async (projectRoot: string, config: ClientCodegenConfig) => { + const outputPath = path.join(projectRoot, config.outDir) + if (existsSync(outputPath)) { + deleteProjectDir(outputPath); + } + await expect(generateGraphqlClientCode(projectRoot, config)).resolves.not.toThrow(); + + expect(isNotEmptyDir(outputPath)).toBe(true); +}; diff --git a/scripts/cloud-utils.sh b/scripts/cloud-utils.sh index e47ddc690..88a0488da 100644 --- a/scripts/cloud-utils.sh +++ b/scripts/cloud-utils.sh @@ -111,7 +111,12 @@ function cloudE2EDebug { echo "Please provide the batch build id of codebuild" exit 1 fi - generatedDebugSpecForFailedTests $1 + if [ "$1" == "--use-existing-debug-spec" ]; then + echo "Using existing debug spec" + else + echo "Generating debug spec for provided batch build id" + generatedDebugSpecForFailedTests $1 + fi echo Running Prod E2E Test Suite E2E_ROLE_NAME=CodebuildDeveloper E2E_PROFILE_NAME=AmplifyAPIE2EProd diff --git a/scripts/split-e2e-tests.ts b/scripts/split-e2e-tests.ts index f8ddd0ea0..d8f07370b 100644 --- a/scripts/split-e2e-tests.ts +++ b/scripts/split-e2e-tests.ts @@ -27,6 +27,7 @@ const EXCLUDE_TESTS = [ 'src/__tests__/build-app-swift.test.ts', 'src/__tests__/build-app-android.test.ts', 'src/__tests__/codegen-matrix.test.ts', + 'src/__tests__/graphql-generator-gen2.test.ts' ]; const DEBUG_FLAG = '--debug'; diff --git a/shared-scripts.sh b/shared-scripts.sh index 023f85377..cf98dd1cb 100644 --- a/shared-scripts.sh +++ b/shared-scripts.sh @@ -264,6 +264,22 @@ function _setupE2ETestsWindows { _setShell } +function _setupGen2E2ETestsLinux { + echo "Setup Gen2 E2E Tests Linux" + loadCacheFromLinuxBuildJob + loadCache verdaccio-cache $CODEBUILD_SRC_DIR/../verdaccio-cache + _loadTestAccountCredentials + _setShell +} + +function _setupGen2E2ETestsWindows { + echo "Setup Gen2 E2E Tests Windows" + loadCacheFromWindowsBuildJob + loadCache verdaccio-cache $CODEBUILD_SRC_DIR/../verdaccio-cache windows + _loadTestAccountCredentials + _setShell +} + function _runE2ETestsLinux { echo "RUN E2E Tests Linux" @@ -275,6 +291,16 @@ function _runE2ETestsWindows { retry runE2eTest } +function _runGen2E2ETestsLinux { + echo "RUN Gen2 E2E Tests Linux" + retry runGen2E2eTest +} + +function _runGen2E2ETestsWindows { + echo "RUN Gen2 E2E Tests Windows" + retry runGen2E2eTest +} + function _scanArtifacts { if ! npx ts-node .codebuild/scripts/scan_artifacts.ts; then echo "Cleaning the repository" @@ -413,6 +439,22 @@ function runE2eTest { fi } +function runGen2E2eTest { + FAILED_TEST_REGEX_FILE="./amplify-e2e-reports/amplify-e2e-failed-test.txt" + + if [ -z "$FIRST_RUN" ] || [ "$FIRST_RUN" == "true" ]; then + cd $(pwd)/packages/amplify-codegen-e2e-tests + fi + + if [ -f $FAILED_TEST_REGEX_FILE ]; then + # read the content of failed tests + failedTests=$(<$FAILED_TEST_REGEX_FILE) + npm run e2e-gen2 --maxWorkers=4 $TEST_SUITE -t "$failedTests" + else + npm run e2e-gen2 --maxWorkers=4 $TEST_SUITE + fi +} + function _deploy { _setShell echo "Deploy" diff --git a/yarn.lock b/yarn.lock index f35f46faa..1ef51a59e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -159,6 +159,16 @@ "@aws-amplify/api-rest" "3.5.7" tslib "^1.8.0" +"@aws-amplify/auth-construct@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/auth-construct/-/auth-construct-1.0.0.tgz#30415f4f3a35b956ac9736d7e5165274f575aceb" + integrity sha512-Ub/gCT+blTmP5zqjICV32nPCHjZ5UDAySBjNW5Rc78jiF50h/oT4al6WXZ22Qfe09Ub7sUgbrffnOLBk6bwgbw== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/backend-output-storage" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + "@aws-sdk/util-arn-parser" "^3.465.0" + "@aws-amplify/auth@5.6.7": version "5.6.7" resolved "https://registry.npmjs.org/@aws-amplify/auth/-/auth-5.6.7.tgz#9e64806d602c0272b9cc00287035a70a9fe2dba1" @@ -170,6 +180,104 @@ tslib "^1.8.0" url "0.11.0" +"@aws-amplify/backend-auth@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend-auth/-/backend-auth-1.0.0.tgz#ee566c22be110b884133227b9dfb2334fa89f1ef" + integrity sha512-SVisgT7IR7Ixl28EyEBW5KednA41b2lkV7YDcdlShq2Af62gWn3iNnOJAdIlC7NSvr8lmo6pCETjrQy/+lg6zw== + dependencies: + "@aws-amplify/auth-construct" "^1.0.0" + "@aws-amplify/backend-output-storage" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + +"@aws-amplify/backend-data@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend-data/-/backend-data-1.0.0.tgz#fb8b3620ca6716e74d8e4d31def96078967ad9d4" + integrity sha512-LVeGNYsx0X5GePQZN2wlMFEz/H52kYdFauj27dvQ4sUdDf9k0uu5xAf2LI5U6d4AD+JRPlxBeDw5OjIajfYo+A== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/backend-output-storage" "^1.0.0" + "@aws-amplify/data-construct" "^1.8.0" + "@aws-amplify/data-schema-types" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + +"@aws-amplify/backend-function@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend-function/-/backend-function-1.0.0.tgz#0bc129c55284b00eb861a99c5d28704aea1a4bea" + integrity sha512-yjgLWoiWRyrGp4hCd4LNR+2YffV0EuSLQOId6ps3oxEBIpzEKzFW438U3dMYSJ1fNjkgrgIsBld12I1Qmdcgwg== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/backend-output-storage" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + execa "^8.0.1" + +"@aws-amplify/backend-output-schemas@^0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-0.4.0.tgz#835af830e1642d07c8f19bb3d96a76571606bf9a" + integrity sha512-/gxeCtjvbKW+OYP1CUv1dZy2tW3dxagNRGBJWrzaZgqqmQ6zTmyboOxgFdC2KO1WKLddsv+z/gciZNs46m3gBQ== + +"@aws-amplify/backend-output-schemas@^0.5.2": + version "0.5.2" + resolved "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-0.5.2.tgz#00d6c0d241195b0ed7fd99d1efd66b3af6e73a66" + integrity sha512-F9i33hvykFVda8W7FD/A+DlmJbvEzDyZ4+mY379RQyDD/aqG3pEKvzgFu0cZWDgj8ioXcgL5ARldlAvd6vUVDA== + +"@aws-amplify/backend-output-schemas@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend-output-schemas/-/backend-output-schemas-1.0.0.tgz#fd1a52fc0f2a284ac1e26a49dd1818a2c26e8335" + integrity sha512-NjJY+jUXWF4Eo5ZcwjCAcYvLKHrW2qW4QIMnUG2H/zWhdIAUXwpv9DjIz63ygXj2eGt43u+meFoDzAruWIfSBg== + +"@aws-amplify/backend-output-storage@^0.2.2": + version "0.2.11" + resolved "https://registry.npmjs.org/@aws-amplify/backend-output-storage/-/backend-output-storage-0.2.11.tgz#a61cada821a26edd867f63741ac4bf83c1fc9b39" + integrity sha512-+Hb/fluc2E1AGqzi+PH6JJEG0WGY0amZd4dIAbPPR4rsUWPZAPxlBTd2vR8gltuVyeemKGXMK2wqEWw2CLLP7w== + dependencies: + "@aws-amplify/backend-output-schemas" "^0.5.2" + "@aws-amplify/platform-core" "^0.4.3" + +"@aws-amplify/backend-output-storage@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend-output-storage/-/backend-output-storage-1.0.0.tgz#871af4dab20390f31add05b28f2ce0ec31db7320" + integrity sha512-PuqXI2EmzW/rYrSubCvQ+hVdkzf7rZIsCuFxnZD2i9zDcq99mzJVpiLpinsX7rWZXtnsIFb3M/87CFpVzPREZw== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/platform-core" "^1.0.0" + +"@aws-amplify/backend-secret@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend-secret/-/backend-secret-1.0.0.tgz#c1ac0d12fe22c57d829f4169124fff536abfaaae" + integrity sha512-0FrhjAK5eCrybBi9XCxxz+JxWbqJtgzz44tkVvS8Dmt9Eh1qOtw1XUMuZ7M50oqs5ZNRb/dBLgmWUzlv5oWa4g== + dependencies: + "@aws-amplify/platform-core" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + "@aws-sdk/client-ssm" "^3.465.0" + +"@aws-amplify/backend-storage@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend-storage/-/backend-storage-1.0.0.tgz#af118fe10e9da432dc658d90d64ab8800602acce" + integrity sha512-BayhXFF3YVj1LOoLTRJYco87GXGFIJ+TVjio0lHWKlOWcr5H/+VCgvgSIpJwtqUkMLbmBZfXF6g6tm1fK3dyfQ== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/backend-output-storage" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + +"@aws-amplify/backend@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/backend/-/backend-1.0.0.tgz#da74d13159db782191684964dd3e9b3ddb958714" + integrity sha512-QKLdTFtXnff4VUHmZBs+XK3xeXe0TZAZkR4Ke2kwWo6engaYahZ3UQO7Ndkt1D/xcq08e4QayGgRB+XGr7B8Wg== + dependencies: + "@aws-amplify/backend-auth" "^1.0.0" + "@aws-amplify/backend-data" "^1.0.0" + "@aws-amplify/backend-function" "^1.0.0" + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/backend-output-storage" "^1.0.0" + "@aws-amplify/backend-secret" "^1.0.0" + "@aws-amplify/backend-storage" "^1.0.0" + "@aws-amplify/client-config" "^1.0.0" + "@aws-amplify/data-schema" "^1.0.0" + "@aws-amplify/platform-core" "^1.0.0" + "@aws-amplify/plugin-types" "^1.0.0" + "@aws-sdk/client-amplify" "^3.465.0" + lodash.snakecase "^4.1.1" + "@aws-amplify/cache@5.1.13": version "5.1.13" resolved "https://registry.npmjs.org/@aws-amplify/cache/-/cache-5.1.13.tgz#f4e2d1a656882da9bea9bf395181c638caa2a06b" @@ -178,6 +286,17 @@ "@aws-amplify/core" "5.8.7" tslib "^1.8.0" +"@aws-amplify/client-config@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/client-config/-/client-config-1.0.0.tgz#59ca71d4ac5dcad8f3fee83a55ec78cf3476703f" + integrity sha512-ffeZ8V2Nq59jjT0aGFV8AaIRsVdStccGV6BmOmuD4HSMG8oBLCS0dBPSuVxRgVhXRABqRN+bFMQnHVfnuHZw9Q== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/deployed-backend-client" "^1.0.0" + "@aws-amplify/model-generator" "^1.0.0" + "@aws-amplify/platform-core" "^1.0.0" + zod "^3.22.2" + "@aws-amplify/core@5.8.7": version "5.8.7" resolved "https://registry.npmjs.org/@aws-amplify/core/-/core-5.8.7.tgz#24d4671f3c90a29501c041b738d6a5a053e82334" @@ -194,6 +313,68 @@ universal-cookie "^4.0.4" zen-observable-ts "0.8.19" +"@aws-amplify/data-construct@^1.8.0": + version "1.8.1" + resolved "https://registry.npmjs.org/@aws-amplify/data-construct/-/data-construct-1.8.1.tgz#d9a0df757402a89188002bb2f5f05f903357f7bd" + integrity sha512-u1Vh3AWmPtuYBJ0la2xWhLR1WIS/66nGdYO6enShyIJiN2c9R+RFbjaz8/ol9eWETRdXJ1OcawgKf3E1HiNf5Q== + dependencies: + "@aws-amplify/backend-output-schemas" "^0.4.0" + "@aws-amplify/backend-output-storage" "^0.2.2" + "@aws-amplify/graphql-api-construct" "1.9.1" + "@aws-amplify/graphql-auth-transformer" "3.5.1" + "@aws-amplify/graphql-default-value-transformer" "2.3.5" + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-function-transformer" "2.1.21" + "@aws-amplify/graphql-http-transformer" "2.1.21" + "@aws-amplify/graphql-index-transformer" "2.4.1" + "@aws-amplify/graphql-maps-to-transformer" "3.4.13" + "@aws-amplify/graphql-model-transformer" "2.9.1" + "@aws-amplify/graphql-predictions-transformer" "2.1.21" + "@aws-amplify/graphql-relational-transformer" "2.5.1" + "@aws-amplify/graphql-searchable-transformer" "2.7.1" + "@aws-amplify/graphql-sql-transformer" "0.3.1" + "@aws-amplify/graphql-transformer" "1.5.3" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + "@aws-amplify/platform-core" "^0.2.0" + "@aws-amplify/plugin-types" "^0.4.1" + charenc "^0.0.2" + crypt "^0.0.2" + fs-extra "^8.1.0" + graceful-fs "^4.2.11" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + hjson "^3.2.2" + immer "^9.0.12" + is-buffer "^2.0.5" + jsonfile "^6.1.0" + libphonenumber-js "1.9.47" + lodash "^4.17.21" + md5 "^2.3.0" + object-hash "^3.0.0" + pluralize "^8.0.0" + ts-dedent "^2.0.0" + universalify "^2.0.0" + zod "^3.22.3" + +"@aws-amplify/data-schema-types@*", "@aws-amplify/data-schema-types@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/data-schema-types/-/data-schema-types-1.0.0.tgz#d2e577cf17b7f6a7462aecf9519548a5c658c4b4" + integrity sha512-sjw68YTpGNSDoNI1WBAgFWaUFpmmwFtkZQE/r+P9jWrVZPyBlfDeRIc3RhPgUrtW91hLCm4WA8TzYf1eZzJstg== + dependencies: + graphql "15.8.0" + rxjs "^7.8.1" + +"@aws-amplify/data-schema@^1.0.0": + version "1.1.3" + resolved "https://registry.npmjs.org/@aws-amplify/data-schema/-/data-schema-1.1.3.tgz#75ff50610b11217489de1889651e1d065bc8fc3e" + integrity sha512-STfK2/vVK4bLaUFC6HSMMCGe9f0qNPW8RpB8NZkQ6Msqq7gfkxaA9PV9r5WyknPPCx7TbS1OeUi1fHPYbNcMAg== + dependencies: + "@aws-amplify/data-schema-types" "*" + "@types/aws-lambda" "^8.10.134" + rxjs "^7.8.1" + "@aws-amplify/datastore@4.7.7": version "4.7.7" resolved "https://registry.npmjs.org/@aws-amplify/datastore/-/datastore-4.7.7.tgz#c173746f5a4ceea01f110a03aed2b4b796fd6954" @@ -212,6 +393,15 @@ zen-observable-ts "0.8.19" zen-push "0.2.1" +"@aws-amplify/deployed-backend-client@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/deployed-backend-client/-/deployed-backend-client-1.0.0.tgz#15259e84d55552d0f00a665d1ac9deba53954f0b" + integrity sha512-duam2zAzkIHURcfAmQpRf6Wk6PRzEIl4fJ5kv5k4GX9WJvp+S/Xk9lw+AAU5PP4d/XQB0PoxnaXy6yE4f878mg== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/platform-core" "^1.0.0" + zod "^3.22.2" + "@aws-amplify/geo@2.3.7": version "2.3.7" resolved "https://registry.npmjs.org/@aws-amplify/geo/-/geo-2.3.7.tgz#66d4bc39f831468fd7be4988636545977f07aac3" @@ -223,16 +413,231 @@ camelcase-keys "6.2.2" tslib "^1.8.0" +"@aws-amplify/graphql-api-construct@1.9.1": + version "1.9.1" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-api-construct/-/graphql-api-construct-1.9.1.tgz#0737d54b0ed944182e3f9a038e0daed3686cab3b" + integrity sha512-rAlPSPKvPEBSxGLwrMYsi9Ytlxf1JwnDSR3Ph7bg+RrdIKiDPRkzb/MdH4lkgQ6mYr3WJXqI5qYhM02bWKIRtQ== + dependencies: + "@aws-amplify/backend-output-schemas" "^0.4.0" + "@aws-amplify/backend-output-storage" "^0.2.2" + "@aws-amplify/graphql-auth-transformer" "3.5.1" + "@aws-amplify/graphql-default-value-transformer" "2.3.5" + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-function-transformer" "2.1.21" + "@aws-amplify/graphql-http-transformer" "2.1.21" + "@aws-amplify/graphql-index-transformer" "2.4.1" + "@aws-amplify/graphql-maps-to-transformer" "3.4.13" + "@aws-amplify/graphql-model-transformer" "2.9.1" + "@aws-amplify/graphql-predictions-transformer" "2.1.21" + "@aws-amplify/graphql-relational-transformer" "2.5.1" + "@aws-amplify/graphql-searchable-transformer" "2.7.1" + "@aws-amplify/graphql-sql-transformer" "0.3.1" + "@aws-amplify/graphql-transformer" "1.5.3" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + "@aws-amplify/platform-core" "^0.2.0" + "@aws-amplify/plugin-types" "^0.4.1" + charenc "^0.0.2" + crypt "^0.0.2" + fs-extra "^8.1.0" + graceful-fs "^4.2.11" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + hjson "^3.2.2" + immer "^9.0.12" + is-buffer "^2.0.5" + jsonfile "^6.1.0" + libphonenumber-js "1.9.47" + lodash "^4.17.21" + md5 "^2.3.0" + object-hash "^3.0.0" + pluralize "^8.0.0" + ts-dedent "^2.0.0" + universalify "^2.0.0" + zod "^3.22.3" + +"@aws-amplify/graphql-auth-transformer@3.5.1": + version "3.5.1" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-auth-transformer/-/graphql-auth-transformer-3.5.1.tgz#7a5138ce3b8489e44da15278edecf53b94363ef2" + integrity sha512-iLYqUaeAOZWMjGX+BLD8qvBxBBYZPXgxUVzCz6vYyoIF8CypIYdxA79YTkepy/3eGLQQMqUfKLH2n5yO2eaBjw== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-model-transformer" "2.9.1" + "@aws-amplify/graphql-relational-transformer" "2.5.1" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + lodash "^4.17.21" + md5 "^2.3.0" + +"@aws-amplify/graphql-default-value-transformer@2.3.5": + version "2.3.5" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-default-value-transformer/-/graphql-default-value-transformer-2.3.5.tgz#00b0422c82d5272be56113cd52abe813857b8b20" + integrity sha512-2N5Bq977bNntC59VEYysT1Ic8fjJS84Wzwh+CAg992X0lCT4Zjb5Roja7Tnz3psHo4I8xuR8sHnxgAwxM3Z3Kg== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + libphonenumber-js "1.9.47" + +"@aws-amplify/graphql-directives@1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-directives/-/graphql-directives-1.1.0.tgz#bc861ad1ddb9f7d0ee4694fe6c68734b912015f9" + integrity sha512-rcGfm8DsnD7Em1wYgNoq7yO+cE22mM0ssFYRWnHGsZOMX9Lh25HP1Ympt633V+raaTK3ND0gAlbVLxXzCN8XOg== + "@aws-amplify/graphql-directives@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@aws-amplify/graphql-directives/-/graphql-directives-1.0.1.tgz#8e78a7e6c4d936e80a7d1f6f2c9665d0b7b1552c" integrity sha512-oUUQJU1syzUfU4P4z+fLDLklU9wmEZokgQOAKHBN5Szest/mDkjZEbG9VVBiMaQbq1Rw0jkRJmVU9WA1vxjT2A== +"@aws-amplify/graphql-function-transformer@2.1.21": + version "2.1.21" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-function-transformer/-/graphql-function-transformer-2.1.21.tgz#ac8751b496a8967af9b9fbd58a27fe4e084ead9e" + integrity sha512-CKCGUjTgOFCEhsru9eig9epw88Cvss+aiMgogDVuBGzmnra1YVv+XSGYXEOQNzVGWhXjk2/fl0+kJZ8ba8OXTA== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + +"@aws-amplify/graphql-http-transformer@2.1.21": + version "2.1.21" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-http-transformer/-/graphql-http-transformer-2.1.21.tgz#a2bf8cbfa83961babbf77b7173460d720f531dc6" + integrity sha512-ya5BeFoJ6WCyMQn1nx7RHQsF8qY+N2adnSp5LQTeSkjaMk0XOB5BgZFVHlbdnUdntqFL9CJcOf3CSjE+SgHa6g== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + +"@aws-amplify/graphql-index-transformer@2.4.1": + version "2.4.1" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-index-transformer/-/graphql-index-transformer-2.4.1.tgz#82b0f9731612b1606567b4278671c7ef554789b0" + integrity sha512-WsomTmpsKPCiHrxGFgkq2VZeBE4VHOYKBPFK07vVjTVUxg0ANa6bL29B7IGQxI3jCTypNbg6F1+lL1MaqU7MyA== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-model-transformer" "2.9.1" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + +"@aws-amplify/graphql-maps-to-transformer@3.4.13": + version "3.4.13" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-maps-to-transformer/-/graphql-maps-to-transformer-3.4.13.tgz#257a32e7a0f11cf6a37ecda18b84d28802873d40" + integrity sha512-cj04lMFfUeiWjdYiiHyv/cxjr61n5QJAqAgSTXofyxtsfTZhH1hl044ALLz/64BtHh/I9nHlYakeVhkIG7HGrw== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + +"@aws-amplify/graphql-model-transformer@2.9.1": + version "2.9.1" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-model-transformer/-/graphql-model-transformer-2.9.1.tgz#cc984411fb74898029ef940c618c3b19aa149a85" + integrity sha512-GXthU4t7sJqvasqYlyVhykJweWOk59mTv58ztbiOPFImlHJxBDZU/qlXLyAyNOaf5HTUwW3NjDk8gWMmgqwR4A== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + +"@aws-amplify/graphql-predictions-transformer@2.1.21": + version "2.1.21" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-predictions-transformer/-/graphql-predictions-transformer-2.1.21.tgz#2effd94b1cb1b2eaaae090b5387acb7ca85db5d2" + integrity sha512-16sbdTY6onkQe7reXB6cjsFUjJEccnImNUuNxIpXvcT0tUp/RRSoEqpGYcPGlLIXRIvcWsYZ/Tlj9tzxQB4hkA== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + +"@aws-amplify/graphql-relational-transformer@2.5.1": + version "2.5.1" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-relational-transformer/-/graphql-relational-transformer-2.5.1.tgz#3369e7131e875ac7dc320a598e7f2cccdcf6635f" + integrity sha512-RcUV/gnj7xYJUJzmAk7vLyqoE2uEfDixJeJdTLyCDrr9APr14kpAfA1sZD0sDJXG0V3uS8H6Nz9fTIYvW7xKgw== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-index-transformer" "2.4.1" + "@aws-amplify/graphql-model-transformer" "2.9.1" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + immer "^9.0.12" + "@aws-amplify/graphql-schema-test-library@^1.1.18": version "1.1.27" resolved "https://registry.npmjs.org/@aws-amplify/graphql-schema-test-library/-/graphql-schema-test-library-1.1.27.tgz#30f5a732ce65031169907c386777f0bc0adfa0c2" integrity sha512-ay27o/ZWR/wsYflQJOWrPT5j71Iklo1JkDkOU5BGzRk61QCV631i1o4R7N0TuDAIPTDewDf4Hvgy97y6n1jk3A== +"@aws-amplify/graphql-searchable-transformer@2.7.1": + version "2.7.1" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-searchable-transformer/-/graphql-searchable-transformer-2.7.1.tgz#2c7d51ab12a2bc4053dc1bf79db967030346d28d" + integrity sha512-oXcMNWPGgfnUeZXUs1h97eaUNOWei9WkgzkZarWjnWAuaFDW5Tz/u20uIhndavWtfdH8XGRbqxPIwrBW/wUP8w== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-model-transformer" "2.9.1" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + +"@aws-amplify/graphql-sql-transformer@0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-sql-transformer/-/graphql-sql-transformer-0.3.1.tgz#0384edf19c861159fd9faf162c0dc3c25b9cd7a9" + integrity sha512-jwCcECq71GimtQ5nYrs11QzcAbYwJE9jtBrqEpjMVzeHu+Kx8HUAG0v0y4EX4hRLwJOgUfIov/uYfZzdSy6eAg== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-model-transformer" "2.9.1" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + +"@aws-amplify/graphql-transformer-core@2.7.0": + version "2.7.0" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-core/-/graphql-transformer-core-2.7.0.tgz#2c6b6ff67f91e9209cbcf18b8a8e76f4cc65150d" + integrity sha512-JDt/rjWEFimcrVNtc2e1pYmr08D5nUO1UIBGU+frSrhI452TSTSCREsZfquleNPD89dmLb5hjVP7smK3brw+cw== + dependencies: + "@aws-amplify/graphql-directives" "1.1.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + fs-extra "^8.1.0" + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + graphql-transformer-common "4.30.1" + hjson "^3.2.2" + lodash "^4.17.21" + md5 "^2.3.0" + object-hash "^3.0.0" + ts-dedent "^2.0.0" + +"@aws-amplify/graphql-transformer-interfaces@3.7.0": + version "3.7.0" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-interfaces/-/graphql-transformer-interfaces-3.7.0.tgz#841cf2a8847ea4066584f85bcbe1c8da78371c65" + integrity sha512-fHGc8D78C3sIBNqKbS5KjGu2xDACSFdyS0YdwZiQu+MMMs7IWGnip8aogSFFgeCQ3kSHqrMUd+1CdI7Zh015Rg== + dependencies: + graphql "^15.5.0" + "@aws-amplify/graphql-transformer-interfaces@^2.3.0": version "2.3.0" resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer-interfaces/-/graphql-transformer-interfaces-2.3.0.tgz#fee01fbbcb0572201e1e3553503db9f706fc01dd" @@ -240,6 +645,25 @@ dependencies: graphql "^15.5.0" +"@aws-amplify/graphql-transformer@1.5.3": + version "1.5.3" + resolved "https://registry.npmjs.org/@aws-amplify/graphql-transformer/-/graphql-transformer-1.5.3.tgz#36d0d21e16d06ec24a65bf7d557b9dd911cf96bb" + integrity sha512-q9J9bs8JFFztYf647DBXWuPUTFPU0WP+GTZl27bZsIHcrbQkLGjuuhcvjhcffiagomtn8gn0Fc0H1D5OhmvM4w== + dependencies: + "@aws-amplify/graphql-auth-transformer" "3.5.1" + "@aws-amplify/graphql-default-value-transformer" "2.3.5" + "@aws-amplify/graphql-function-transformer" "2.1.21" + "@aws-amplify/graphql-http-transformer" "2.1.21" + "@aws-amplify/graphql-index-transformer" "2.4.1" + "@aws-amplify/graphql-maps-to-transformer" "3.4.13" + "@aws-amplify/graphql-model-transformer" "2.9.1" + "@aws-amplify/graphql-predictions-transformer" "2.1.21" + "@aws-amplify/graphql-relational-transformer" "2.5.1" + "@aws-amplify/graphql-searchable-transformer" "2.7.1" + "@aws-amplify/graphql-sql-transformer" "0.3.1" + "@aws-amplify/graphql-transformer-core" "2.7.0" + "@aws-amplify/graphql-transformer-interfaces" "3.7.0" + "@aws-amplify/interactions@5.2.13": version "5.2.13" resolved "https://registry.npmjs.org/@aws-amplify/interactions/-/interactions-5.2.13.tgz#6112103d2f64926a1a39d505c72b0b1418a12c9f" @@ -253,6 +677,22 @@ pako "2.0.4" tslib "^1.8.0" +"@aws-amplify/model-generator@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/model-generator/-/model-generator-1.0.0.tgz#e12376c6cf94da9297460930de9ecbcedaab647a" + integrity sha512-qDX4+yUsyGCpUyzlTxl6fmn1bNFSRcabD3X4PijG7Q3beTiUE43wdRTom9gGmTsRnMdqaMZNh67ptdqx4a43qQ== + dependencies: + "@aws-amplify/backend-output-schemas" "^1.0.0" + "@aws-amplify/deployed-backend-client" "^1.0.0" + "@aws-amplify/graphql-generator" "^0.4.0" + "@aws-amplify/graphql-types-generator" "^3.6.0" + "@aws-amplify/platform-core" "^1.0.0" + "@aws-sdk/client-appsync" "^3.465.0" + "@aws-sdk/client-s3" "^3.465.0" + "@aws-sdk/credential-providers" "^3.465.0" + "@aws-sdk/types" "^3.465.0" + graphql "^15.8.0" + "@aws-amplify/notifications@1.6.7": version "1.6.7" resolved "https://registry.npmjs.org/@aws-amplify/notifications/-/notifications-1.6.7.tgz#7b671cda2c6a1d3d74ff4bf7c398ef8928a5e2f1" @@ -264,6 +704,56 @@ lodash "^4.17.21" uuid "^3.2.1" +"@aws-amplify/platform-core@^0.2.0": + version "0.2.2" + resolved "https://registry.npmjs.org/@aws-amplify/platform-core/-/platform-core-0.2.2.tgz#d4e5d0c9680956d768a77fc690e95c94399e170b" + integrity sha512-STqVi20FJAJoii7H3LGM/KDMuesPrDTI1sO7aj+MmUNzIWLaE9SSDkFpuFKHt7zDdMvX33xW6qB4rcRUOAUxCw== + dependencies: + "@aws-amplify/plugin-types" "^0.4.0" + "@aws-sdk/client-sts" "3.445.0" + is-ci "^3.0.1" + uuid "9.0.1" + zod "^3.21.4" + +"@aws-amplify/platform-core@^0.4.3": + version "0.4.4" + resolved "https://registry.npmjs.org/@aws-amplify/platform-core/-/platform-core-0.4.4.tgz#dcd1063e926aa76d5019b6d087913c2cd5882cf0" + integrity sha512-FQb4nScw+30e2G44Fl1SMqe3yGWMtds02Drnpkh+egM3Ofd0//bDRD2uKqDPckVPulyX+g4pAuAq4Z30hwjQCQ== + dependencies: + "@aws-amplify/plugin-types" "^0.8.0" + "@aws-sdk/client-sts" "3.445.0" + is-ci "^3.0.1" + lodash.mergewith "^4.6.2" + uuid "^9.0.1" + zod "^3.22.2" + +"@aws-amplify/platform-core@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/platform-core/-/platform-core-1.0.0.tgz#5e2ea21f8d4198f03ebc5c840d84b98579c67d4a" + integrity sha512-mF2SsosiMSWVpizc8f9z/H6Seq5RpqrIkyg+r0tlIp4hGWQZzW2WjmuDKNrXKLjvCpOl+6SYYkiz68iRCIe4Sw== + dependencies: + "@aws-amplify/plugin-types" "^1.0.0" + "@aws-sdk/client-sts" "^3.465.0" + is-ci "^3.0.1" + lodash.mergewith "^4.6.2" + uuid "^9.0.1" + zod "^3.22.2" + +"@aws-amplify/plugin-types@^0.4.0", "@aws-amplify/plugin-types@^0.4.1": + version "0.4.2" + resolved "https://registry.npmjs.org/@aws-amplify/plugin-types/-/plugin-types-0.4.2.tgz#b7bc3dd066bfb8635b97cf8e93a3e9192d11556b" + integrity sha512-zJPNzo/hLZ3qnFwOrPk0sQoyIkPlYf0yTvBFvQGsPrramQhFkEsSjcDtr+Pvxp4LYThFCDqZ9ynAdXa/FJkVgg== + +"@aws-amplify/plugin-types@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@aws-amplify/plugin-types/-/plugin-types-0.8.0.tgz#7ab3ca9af4dd51cd489c9a172bc7325db3bf4478" + integrity sha512-38w0dV2dS40uZB4gYa7sc+YnoLtRKdfhHDKpCqSx5ml/rq1PvzEcExiSfrPddC7/ZBLr0IUZH74evVCHzOcPDg== + +"@aws-amplify/plugin-types@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@aws-amplify/plugin-types/-/plugin-types-1.0.0.tgz#7325f95c4aa879e232fe5e670c1f3976e679bada" + integrity sha512-r+20BiiC4PRybb9vlTZwvlTuLD5b2ieGhPXkr4wMhOoun7auDqyMrLnadRDnne8L8pPRqCYTuWC1o66YiBx9bA== + "@aws-amplify/predictions@5.5.7": version "5.5.7" resolved "https://registry.npmjs.org/@aws-amplify/predictions/-/predictions-5.5.7.tgz#a67eb5549ad9a9b996341dfbcd18a32bded1a0e2" @@ -551,6 +1041,97 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" +"@aws-sdk/client-amplify@^3.465.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-amplify/-/client-amplify-3.568.0.tgz#a4cc53c54265fd39958d4b7e08fd5c2c4dbd4ae1" + integrity sha512-3SPbWamUCEt31QnsvszApSBX4SbPxnCOpu/3AjOQJLvlLcwA8ZlqMfc/QD6BwhBpU6CuMi2T+Gu7wgy9vnZBlA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.567.0" + "@aws-sdk/credential-provider-node" "3.568.0" + "@aws-sdk/middleware-host-header" "3.567.0" + "@aws-sdk/middleware-logger" "3.568.0" + "@aws-sdk/middleware-recursion-detection" "3.567.0" + "@aws-sdk/middleware-user-agent" "3.567.0" + "@aws-sdk/region-config-resolver" "3.567.0" + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-endpoints" "3.567.0" + "@aws-sdk/util-user-agent-browser" "3.567.0" + "@aws-sdk/util-user-agent-node" "3.568.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@aws-sdk/client-appsync@^3.465.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-appsync/-/client-appsync-3.568.0.tgz#5c58261b2bf54ce63e199a86de868b517be78d28" + integrity sha512-zgVrMpsSUvcc8qdysgjnPHvQ4ysAuLJ5P2B8YOPpTuohOE3IcWvmu4+g59yBQyZa9Gsr3E787DVnBZs6WIrglw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.567.0" + "@aws-sdk/credential-provider-node" "3.568.0" + "@aws-sdk/middleware-host-header" "3.567.0" + "@aws-sdk/middleware-logger" "3.568.0" + "@aws-sdk/middleware-recursion-detection" "3.567.0" + "@aws-sdk/middleware-user-agent" "3.567.0" + "@aws-sdk/region-config-resolver" "3.567.0" + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-endpoints" "3.567.0" + "@aws-sdk/util-user-agent-browser" "3.567.0" + "@aws-sdk/util-user-agent-node" "3.568.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-stream" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + "@aws-sdk/client-cloudwatch-logs@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.6.1.tgz#5e8dba495a2ba9a901b0a1a2d53edef8bd452398" @@ -588,6 +1169,51 @@ "@aws-sdk/util-utf8-node" "3.6.1" tslib "^2.0.0" +"@aws-sdk/client-cognito-identity@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.568.0.tgz#15cc44220b184154b3e5e2ec02bab32b8db2b938" + integrity sha512-qZyPpvtjEj8Tv7Xkp4CfF10SqyjamfzY8VWHKVBYMLRgxlRRKQsuTlsP+MSsUA32mU9Gid021aR8WWl4bdo8OQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.567.0" + "@aws-sdk/credential-provider-node" "3.568.0" + "@aws-sdk/middleware-host-header" "3.567.0" + "@aws-sdk/middleware-logger" "3.568.0" + "@aws-sdk/middleware-recursion-detection" "3.567.0" + "@aws-sdk/middleware-user-agent" "3.567.0" + "@aws-sdk/region-config-resolver" "3.567.0" + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-endpoints" "3.567.0" + "@aws-sdk/util-user-agent-browser" "3.567.0" + "@aws-sdk/util-user-agent-node" "3.568.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + "@aws-sdk/client-comprehend@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/client-comprehend/-/client-comprehend-3.6.1.tgz#d640d510b49feafa94ac252cdd7942cbe5537249" @@ -1004,6 +1630,115 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" +"@aws-sdk/client-s3@^3.465.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.568.0.tgz#9eb25b2220058c6779fb4d19378db72e3b9e53f6" + integrity sha512-j7PHocXtqVcMRV78lBtS0bcseuvfa5FmWoRy8QYzDfB64xG7MEM7v9ML3kw16f1UwDeTmmu0EYmz2tUjsgsw9g== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.567.0" + "@aws-sdk/credential-provider-node" "3.568.0" + "@aws-sdk/middleware-bucket-endpoint" "3.568.0" + "@aws-sdk/middleware-expect-continue" "3.567.0" + "@aws-sdk/middleware-flexible-checksums" "3.567.0" + "@aws-sdk/middleware-host-header" "3.567.0" + "@aws-sdk/middleware-location-constraint" "3.567.0" + "@aws-sdk/middleware-logger" "3.568.0" + "@aws-sdk/middleware-recursion-detection" "3.567.0" + "@aws-sdk/middleware-sdk-s3" "3.568.0" + "@aws-sdk/middleware-signing" "3.567.0" + "@aws-sdk/middleware-ssec" "3.567.0" + "@aws-sdk/middleware-user-agent" "3.567.0" + "@aws-sdk/region-config-resolver" "3.567.0" + "@aws-sdk/signature-v4-multi-region" "3.568.0" + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-endpoints" "3.567.0" + "@aws-sdk/util-user-agent-browser" "3.567.0" + "@aws-sdk/util-user-agent-node" "3.568.0" + "@aws-sdk/xml-builder" "3.567.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/eventstream-serde-browser" "^2.2.0" + "@smithy/eventstream-serde-config-resolver" "^2.2.0" + "@smithy/eventstream-serde-node" "^2.2.0" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-blob-browser" "^2.2.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/hash-stream-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/md5-js" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-stream" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + "@smithy/util-waiter" "^2.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-ssm@^3.465.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.568.0.tgz#5b68025b00ec8fdcbd4c853b93cff2b0d08f3716" + integrity sha512-tLuTsRRcM7pQ147Ms0e8asBvcBmAajZeMl2iUT3caGqwUHKsk4wlGYqWQ1/tx4FAgHAATdnq+3dJORi8sCsWZA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.567.0" + "@aws-sdk/credential-provider-node" "3.568.0" + "@aws-sdk/middleware-host-header" "3.567.0" + "@aws-sdk/middleware-logger" "3.568.0" + "@aws-sdk/middleware-recursion-detection" "3.567.0" + "@aws-sdk/middleware-user-agent" "3.567.0" + "@aws-sdk/region-config-resolver" "3.567.0" + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-endpoints" "3.567.0" + "@aws-sdk/util-user-agent-browser" "3.567.0" + "@aws-sdk/util-user-agent-node" "3.568.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + "@smithy/util-waiter" "^2.2.0" + tslib "^2.6.2" + uuid "^9.0.1" + "@aws-sdk/client-sso@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.186.0.tgz#233bdd1312dbf88ef9452f8a62c3c3f1ac580330" @@ -1041,6 +1776,48 @@ "@aws-sdk/util-utf8-node" "3.186.0" tslib "^2.3.1" +"@aws-sdk/client-sso@3.445.0": + version "3.445.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.445.0.tgz#6ab3aeeb75046c94646a0f242d0e0676bd7f6cce" + integrity sha512-me4LvqNnu6kxi+sW7t0AgMv1Yi64ikas0x2+5jv23o6Csg32w0S0xOjCTKQYahOA5CMFunWvlkFIfxbqs+Uo7w== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.445.0" + "@aws-sdk/middleware-host-header" "3.433.0" + "@aws-sdk/middleware-logger" "3.433.0" + "@aws-sdk/middleware-recursion-detection" "3.433.0" + "@aws-sdk/middleware-user-agent" "3.438.0" + "@aws-sdk/region-config-resolver" "3.433.0" + "@aws-sdk/types" "3.433.0" + "@aws-sdk/util-endpoints" "3.438.0" + "@aws-sdk/util-user-agent-browser" "3.433.0" + "@aws-sdk/util-user-agent-node" "3.437.0" + "@smithy/config-resolver" "^2.0.16" + "@smithy/fetch-http-handler" "^2.2.4" + "@smithy/hash-node" "^2.0.12" + "@smithy/invalid-dependency" "^2.0.12" + "@smithy/middleware-content-length" "^2.0.14" + "@smithy/middleware-endpoint" "^2.1.3" + "@smithy/middleware-retry" "^2.0.18" + "@smithy/middleware-serde" "^2.0.12" + "@smithy/middleware-stack" "^2.0.6" + "@smithy/node-config-provider" "^2.1.3" + "@smithy/node-http-handler" "^2.1.8" + "@smithy/protocol-http" "^3.0.8" + "@smithy/smithy-client" "^2.1.12" + "@smithy/types" "^2.4.0" + "@smithy/url-parser" "^2.0.12" + "@smithy/util-base64" "^2.0.0" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.16" + "@smithy/util-defaults-mode-node" "^2.0.21" + "@smithy/util-endpoints" "^1.0.2" + "@smithy/util-retry" "^2.0.5" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.5.0" + "@aws-sdk/client-sso@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.468.0.tgz#41e6eed063e7642560408bc9deecf6f89d426e1f" @@ -1083,6 +1860,50 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@aws-sdk/client-sso@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.568.0.tgz#4e06fa9c052931641921a0a723f58f81513c673c" + integrity sha512-LSD7k0ZBQNWouTN5dYpUkeestoQ+r5u6cp6o+FATKeiFQET85RNA3xJ4WPnOI5rBC1PETKhQXvF44863P3hCaQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.567.0" + "@aws-sdk/middleware-host-header" "3.567.0" + "@aws-sdk/middleware-logger" "3.568.0" + "@aws-sdk/middleware-recursion-detection" "3.567.0" + "@aws-sdk/middleware-user-agent" "3.567.0" + "@aws-sdk/region-config-resolver" "3.567.0" + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-endpoints" "3.567.0" + "@aws-sdk/util-user-agent-browser" "3.567.0" + "@aws-sdk/util-user-agent-node" "3.568.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + "@aws-sdk/client-sts@3.186.3": version "3.186.3" resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.186.3.tgz#1c12355cb9d3cadc64ab74c91c3d57515680dfbd" @@ -1125,6 +1946,52 @@ fast-xml-parser "4.2.5" tslib "^2.3.1" +"@aws-sdk/client-sts@3.445.0": + version "3.445.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.445.0.tgz#1286ba3702997ae00cb28eca890116c63a451526" + integrity sha512-ogbdqrS8x9O5BTot826iLnTQ6i4/F5BSi/74gycneCxYmAnYnyUBNOWVnynv6XZiEWyDJQCU2UtMd52aNGW1GA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.445.0" + "@aws-sdk/credential-provider-node" "3.445.0" + "@aws-sdk/middleware-host-header" "3.433.0" + "@aws-sdk/middleware-logger" "3.433.0" + "@aws-sdk/middleware-recursion-detection" "3.433.0" + "@aws-sdk/middleware-sdk-sts" "3.433.0" + "@aws-sdk/middleware-signing" "3.433.0" + "@aws-sdk/middleware-user-agent" "3.438.0" + "@aws-sdk/region-config-resolver" "3.433.0" + "@aws-sdk/types" "3.433.0" + "@aws-sdk/util-endpoints" "3.438.0" + "@aws-sdk/util-user-agent-browser" "3.433.0" + "@aws-sdk/util-user-agent-node" "3.437.0" + "@smithy/config-resolver" "^2.0.16" + "@smithy/fetch-http-handler" "^2.2.4" + "@smithy/hash-node" "^2.0.12" + "@smithy/invalid-dependency" "^2.0.12" + "@smithy/middleware-content-length" "^2.0.14" + "@smithy/middleware-endpoint" "^2.1.3" + "@smithy/middleware-retry" "^2.0.18" + "@smithy/middleware-serde" "^2.0.12" + "@smithy/middleware-stack" "^2.0.6" + "@smithy/node-config-provider" "^2.1.3" + "@smithy/node-http-handler" "^2.1.8" + "@smithy/protocol-http" "^3.0.8" + "@smithy/smithy-client" "^2.1.12" + "@smithy/types" "^2.4.0" + "@smithy/url-parser" "^2.0.12" + "@smithy/util-base64" "^2.0.0" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.16" + "@smithy/util-defaults-mode-node" "^2.0.21" + "@smithy/util-endpoints" "^1.0.2" + "@smithy/util-retry" "^2.0.5" + "@smithy/util-utf8" "^2.0.0" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + "@aws-sdk/client-sts@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.468.0.tgz#92158629bd1ffcb60d3bed30e9d6cee9b14e0761" @@ -1171,6 +2038,51 @@ fast-xml-parser "4.2.5" tslib "^2.5.0" +"@aws-sdk/client-sts@3.568.0", "@aws-sdk/client-sts@^3.465.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.568.0.tgz#40aad1a22bf8fcb2399e4c177f7bfca878ecbccd" + integrity sha512-eDO0S1YYi8eCDcwH5TvJuzJ+Irsx/W6bsQ8fL7rF3aPmsoYQvZh2arpysTUWa4SHpSOkiQFHnii0FqFpw34wyA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.567.0" + "@aws-sdk/credential-provider-node" "3.568.0" + "@aws-sdk/middleware-host-header" "3.567.0" + "@aws-sdk/middleware-logger" "3.568.0" + "@aws-sdk/middleware-recursion-detection" "3.567.0" + "@aws-sdk/middleware-user-agent" "3.567.0" + "@aws-sdk/region-config-resolver" "3.567.0" + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-endpoints" "3.567.0" + "@aws-sdk/util-user-agent-browser" "3.567.0" + "@aws-sdk/util-user-agent-node" "3.568.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + "@aws-sdk/client-textract@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/client-textract/-/client-textract-3.6.1.tgz#b8972f53f0353222b4c052adc784291e602be6aa" @@ -1266,6 +2178,14 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" +"@aws-sdk/core@3.445.0": + version "3.445.0" + resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.445.0.tgz#1df472d976a02533784b6fe606f1cc4d524cbb29" + integrity sha512-6GYLElUG1QTOdmXG8zXa+Ull9IUeSeItKDYHKzHYfIkbsagMfYlf7wm9XIYlatjtgodNfZ3gPHAJfRyPmwKrsg== + dependencies: + "@smithy/smithy-client" "^2.1.12" + tslib "^2.5.0" + "@aws-sdk/core@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.468.0.tgz#1f356adedd63ef77042a3de10fc4c1fdcce4ad42" @@ -1274,6 +2194,30 @@ "@smithy/smithy-client" "^2.1.18" tslib "^2.5.0" +"@aws-sdk/core@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.567.0.tgz#f0b93ba1541dcc179438fb8d80b2a80ec865b623" + integrity sha512-zUDEQhC7blOx6sxhHdT75x98+SXQVdUIMu8z8AjqMWiYK2v4WkOS8i6dOS4E5OjL5J1Ac+ruy8op/Bk4AFqSIw== + dependencies: + "@smithy/core" "^1.4.2" + "@smithy/protocol-http" "^3.3.0" + "@smithy/signature-v4" "^2.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + fast-xml-parser "4.2.5" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-cognito-identity@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.568.0.tgz#de90542cbd01957b233f7aeafa6b226a5697d575" + integrity sha512-FoQZVeRDvM7s2dpsiXaU7zIukY1ojwofqRU4k7VXU4cpsDZV29JscrAkmKMCbQqujIWA/EwxhiYNgdbo1CiRLQ== + dependencies: + "@aws-sdk/client-cognito-identity" "3.568.0" + "@aws-sdk/types" "3.567.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-env@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.186.0.tgz#55dec9c4c29ebbdff4f3bce72de9e98f7a1f92e1" @@ -1283,6 +2227,16 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/credential-provider-env@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.433.0.tgz#7cceca1002ba2e79e10a9dfb119442bea7b88e7c" + integrity sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-env@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.468.0.tgz#4196d717d3f5485af863bd1fd84374ea3dcd6210" @@ -1293,6 +2247,16 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-env@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.568.0.tgz#fc7fda0bc48bbc75065a9084e41d429037e0e1c5" + integrity sha512-MVTQoZwPnP1Ev5A7LG+KzeU6sCB8BcGkZeDT1z1V5Wt7GPq0MgFQTSSjhImnB9jqRSZkl1079Bt3PbO6lfIS8g== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-env@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.6.1.tgz#d8b2dd36836432a9b8ec05a5cf9fe428b04c9964" @@ -1302,6 +2266,21 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" +"@aws-sdk/credential-provider-http@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.568.0.tgz#7f7239bed7c23db7356ebeae5f3b3bda9f751b08" + integrity sha512-gL0NlyI2eW17hnCrh45hZV+qjtBquB+Bckiip9R6DIVRKqYcoILyiFhuOgf2bXeF23gVh6j18pvUvIoTaFWs5w== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-stream" "^2.2.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-imds@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.186.0.tgz#73e0f62832726c7734b4f6c50a02ab0d869c00e1" @@ -1336,6 +2315,22 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/credential-provider-ini@3.445.0": + version "3.445.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.445.0.tgz#103f4ac144b0b93fc42827093a2654cdd179b925" + integrity sha512-R7IYSGjNZ5KKJwQJ2HNPemjpAMWvdce91i8w+/aHfqeGfTXrmYJu99PeGRyyBTKEumBaojyjTRvmO8HzS+/l7g== + dependencies: + "@aws-sdk/credential-provider-env" "3.433.0" + "@aws-sdk/credential-provider-process" "3.433.0" + "@aws-sdk/credential-provider-sso" "3.445.0" + "@aws-sdk/credential-provider-web-identity" "3.433.0" + "@aws-sdk/types" "3.433.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-ini@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.468.0.tgz#0d6783fe85e81f4142b9b8e28bb96e13399bb4c1" @@ -1352,6 +2347,22 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-ini@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.568.0.tgz#3ed29a48fb2f9f44f614d268f3f5a70daf22ba85" + integrity sha512-m5DUN9mpto5DhEvo6w3+8SS6q932ja37rTNvpPqWJIaWhj7OorAwVirSaJQAQB/M8+XCUIrUonxytphZB28qGQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.568.0" + "@aws-sdk/credential-provider-process" "3.568.0" + "@aws-sdk/credential-provider-sso" "3.568.0" + "@aws-sdk/credential-provider-web-identity" "3.568.0" + "@aws-sdk/types" "3.567.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-ini@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.6.1.tgz#0da6d9341e621f8e0815814ed017b88e268fbc3d" @@ -1378,6 +2389,23 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/credential-provider-node@3.445.0": + version "3.445.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.445.0.tgz#570d0a66c175c2719c417a75fdca4939b7123a4a" + integrity sha512-zI4k4foSjQRKNEsouculRcz7IbLfuqdFxypDLYwn+qPNMqJwWJ7VxOOeBSPUpHFcd7CLSfbHN2JAhQ7M02gPTA== + dependencies: + "@aws-sdk/credential-provider-env" "3.433.0" + "@aws-sdk/credential-provider-ini" "3.445.0" + "@aws-sdk/credential-provider-process" "3.433.0" + "@aws-sdk/credential-provider-sso" "3.445.0" + "@aws-sdk/credential-provider-web-identity" "3.433.0" + "@aws-sdk/types" "3.433.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-node@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.468.0.tgz#aa020ec3bd7a5b576b35bdc20fae72e670dd4897" @@ -1395,6 +2423,24 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-node@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.568.0.tgz#4ad56ba496a537dd589e2b1d10264cbc51c93f39" + integrity sha512-gGvBHzVAwDPMwgiAOkigm6eKg0EHIStpwDW4z4XRoSJCcSTyBQ8qqUkoJY7b5Hoju25zBsrB8PvQnZgJU/NYmA== + dependencies: + "@aws-sdk/credential-provider-env" "3.568.0" + "@aws-sdk/credential-provider-http" "3.568.0" + "@aws-sdk/credential-provider-ini" "3.568.0" + "@aws-sdk/credential-provider-process" "3.568.0" + "@aws-sdk/credential-provider-sso" "3.568.0" + "@aws-sdk/credential-provider-web-identity" "3.568.0" + "@aws-sdk/types" "3.567.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-node@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.6.1.tgz#0055292a4f0f49d053e8dfcc9174d8d2cf6862bb" @@ -1419,6 +2465,17 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/credential-provider-process@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.433.0.tgz#dd51c92480ed620e4c3f989852ee408ab1209d59" + integrity sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-process@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.468.0.tgz#770ed72db036c5d011445e5abf4a4bcc4424c486" @@ -1430,6 +2487,17 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-process@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.568.0.tgz#9c6202d64bd9bead77dc10fb6b61b2a64c819749" + integrity sha512-r01zbXbanP17D+bQUb7mD8Iu2SuayrrYZ0Slgvx32qgz47msocV9EPCSwI4Hkw2ZtEPCeLQR4XCqFJB1D9P50w== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-process@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.6.1.tgz#5bf851f3ee232c565b8c82608926df0ad28c1958" @@ -1452,6 +2520,19 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/credential-provider-sso@3.445.0": + version "3.445.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.445.0.tgz#1ca6a0ec43b766039d78e5ac91e80fad226b5288" + integrity sha512-gJz7kAiDecdhtApgXnxfZsXKsww8BnifDF9MAx9Dr4X6no47qYsCCS3XPuEyRiF9VebXvHOH0H260Zp3bVyniQ== + dependencies: + "@aws-sdk/client-sso" "3.445.0" + "@aws-sdk/token-providers" "3.438.0" + "@aws-sdk/types" "3.433.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-sso@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.468.0.tgz#b0fe84941c996898a6fbf58b642f49114850264b" @@ -1465,6 +2546,19 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-sso@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.568.0.tgz#7120d27181daeb7a2ca809e7f2c86b71a0595ed2" + integrity sha512-+TA77NWOEXMUcfLoOuim6xiyXFg1GqHj55ggI1goTKGVvdHYZ+rhxZbwjI29+ewzPt/qcItDJcvhrjOrg9lCag== + dependencies: + "@aws-sdk/client-sso" "3.568.0" + "@aws-sdk/token-providers" "3.568.0" + "@aws-sdk/types" "3.567.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-web-identity@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.186.0.tgz#db43f37f7827b553490dd865dbaa9a2c45f95494" @@ -1474,6 +2568,16 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/credential-provider-web-identity@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.433.0.tgz#32403ba9cc47d3c46500f3c8e5e0041d20e4dbe8" + integrity sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/credential-provider-web-identity@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.468.0.tgz#5befcb593d99a84e16af9e9f285f0d59ed42771f" @@ -1484,6 +2588,38 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/credential-provider-web-identity@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.568.0.tgz#b4e7958dc92a6cbbf5e9fd065cecd76573d4b70f" + integrity sha512-ZJSmTmoIdg6WqAULjYzaJ3XcbgBzVy36lir6Y0UBMRGaxDgos1AARuX6EcYzXOl+ksLvxt/xMQ+3aYh1LWfKSw== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-providers@^3.465.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.568.0.tgz#7f24748300c27676d0dcafd43ef456b59077e8ec" + integrity sha512-V2x+35XzRphs9bpussynNu1Eme/4qFjF9KoSOvFvSqBHRt8hf7+C21pzYeHgrbsXowv5plON0sldyqOqpMhPmg== + dependencies: + "@aws-sdk/client-cognito-identity" "3.568.0" + "@aws-sdk/client-sso" "3.568.0" + "@aws-sdk/client-sts" "3.568.0" + "@aws-sdk/credential-provider-cognito-identity" "3.568.0" + "@aws-sdk/credential-provider-env" "3.568.0" + "@aws-sdk/credential-provider-http" "3.568.0" + "@aws-sdk/credential-provider-ini" "3.568.0" + "@aws-sdk/credential-provider-node" "3.568.0" + "@aws-sdk/credential-provider-process" "3.568.0" + "@aws-sdk/credential-provider-sso" "3.568.0" + "@aws-sdk/credential-provider-web-identity" "3.568.0" + "@aws-sdk/types" "3.567.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/eventstream-codec@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.186.0.tgz#9da9608866b38179edf72987f2bc3b865d11db13" @@ -1698,6 +2834,19 @@ "@smithy/util-config-provider" "^2.0.0" tslib "^2.5.0" +"@aws-sdk/middleware-bucket-endpoint@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.568.0.tgz#790c0943cc097d3a83665131bc9e0743598cc6ca" + integrity sha512-uc/nbSpXv64ct/wV3Ksz0/bXAsEtXuoZu5J9FTcFnM7c2MSofa0YQrtrJ8cG65uGbdeiFoJwPA048BTG/ilhCA== + dependencies: + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-arn-parser" "3.568.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-config-provider" "^2.3.0" + tslib "^2.6.2" + "@aws-sdk/middleware-content-length@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.186.0.tgz#8cc7aeec527738c46fdaf4a48b17c5cbfdc7ce58" @@ -1735,6 +2884,16 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/middleware-expect-continue@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.567.0.tgz#b79ac3f7015ddc1c7971330ed52fefa4a3447d6c" + integrity sha512-diFpWk0HEkzWMc5+PanwlwiCp8iy9INc2ID/dS0jSQQVH3vIj2F129oX5spRVmCk+N5Dt2zRlVmyrPRYbPWnoA== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/middleware-flexible-checksums@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.468.0.tgz#96e26042e61724a4981edb3ba3fd2af280df57b6" @@ -1749,6 +2908,20 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@aws-sdk/middleware-flexible-checksums@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.567.0.tgz#573eeda14bdc2a49309beeedeb9eb83d5158eed7" + integrity sha512-HwDONfEbfOgaB7TAKMr194mLyott4djz4QKEGtcR2qUduV5D9yzsDGzth14fyFRVZvdtpeixsXOcQTyqQpRLhA== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/types" "3.567.0" + "@smithy/is-array-buffer" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + "@aws-sdk/middleware-host-header@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.186.0.tgz#fce4f1219ce1835e2348c787d8341080b0024e34" @@ -1758,6 +2931,16 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/middleware-host-header@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.433.0.tgz#3b6687ee4021c2b56c96cff61b45a33fb762b1c7" + integrity sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/protocol-http" "^3.0.8" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/middleware-host-header@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.468.0.tgz#6da7b19032e9afccea54fbf8aa10cccd2f817bcf" @@ -1768,6 +2951,16 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/middleware-host-header@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.567.0.tgz#52f278234458ec3035e9534fee582c95a8fec4f7" + integrity sha512-zQHHj2N3in9duKghH7AuRNrOMLnKhW6lnmb7dznou068DJtDr76w475sHp2TF0XELsOGENbbBsOlN/S5QBFBVQ== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/middleware-host-header@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.6.1.tgz#6e1b4b95c5bfea5a4416fa32f11d8fa2e6edaeff" @@ -1786,6 +2979,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/middleware-location-constraint@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.567.0.tgz#c469e745a3fa146dd29d0024a9f4d2a498985822" + integrity sha512-XiGTH4VxrJ5fj6zeF6UL5U5EuJwLqj9bHW5pB+EKfw0pmbnyqfRdYNt46v4GsQql2iVOq1Z/Fiv754nIItBI/A== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/middleware-logger@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.186.0.tgz#8a027fbbb1b8098ccc888bce51f34b000c0a0550" @@ -1794,6 +2996,15 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/middleware-logger@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.433.0.tgz#fcd4e31a8f134861cd519477b959c218a3600186" + integrity sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/middleware-logger@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.468.0.tgz#a1883fb7ad8e156444d30689de4ab897357ef1d8" @@ -1803,6 +3014,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/middleware-logger@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.568.0.tgz#aeb85cc8f7da431442d0f5914f3a3e262eb55a09" + integrity sha512-BinH72RG7K3DHHC1/tCulocFv+ZlQ9SrPF9zYT0T1OT95JXuHhB7fH8gEABrc6DAtOdJJh2fgxQjPy5tzPtsrA== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/middleware-logger@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.6.1.tgz#78b3732cf188d5e4df13488db6418f7f98a77d6d" @@ -1820,6 +3040,16 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/middleware-recursion-detection@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.433.0.tgz#5b4b7878ea46c70f507c9ea7c30ad0e5ee4ae6bf" + integrity sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/protocol-http" "^3.0.8" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/middleware-recursion-detection@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.468.0.tgz#85b05636a5c2638bf9e15c8b6be17654757e1bf4" @@ -1830,6 +3060,16 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/middleware-recursion-detection@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.567.0.tgz#95d91f071b57fb5245d522db70df1652275f06ac" + integrity sha512-rFk3QhdT4IL6O/UWHmNdjJiURutBCy+ogGqaNHf/RELxgXH3KmYorLwCe0eFb5hq8f6vr3zl4/iH7YtsUOuo1w== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/middleware-retry@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.186.0.tgz#0ff9af58d73855863683991a809b40b93c753ad1" @@ -1869,6 +3109,21 @@ "@smithy/util-config-provider" "^2.0.0" tslib "^2.5.0" +"@aws-sdk/middleware-sdk-s3@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.568.0.tgz#a121837bc05a1a316c6074616424f59506da51ce" + integrity sha512-7NBsLEBu31Se8m3uzSkhRqWBKiqU4Mg7YkgUppWvumZahVw2Spuly8lZ3bhHF0c9he7NmZyJqhrHd772hdTXAQ== + dependencies: + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-arn-parser" "3.568.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/signature-v4" "^2.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-config-provider" "^2.3.0" + tslib "^2.6.2" + "@aws-sdk/middleware-sdk-sts@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.186.0.tgz#18f3d6b7b42c1345b5733ac3e3119d370a403e94" @@ -1881,6 +3136,16 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/middleware-sdk-sts@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.433.0.tgz#9b30f17a922ecc5fd46b93f1edcd20d7146b814f" + integrity sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA== + dependencies: + "@aws-sdk/middleware-signing" "3.433.0" + "@aws-sdk/types" "3.433.0" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/middleware-sdk-sts@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.468.0.tgz#773ed9f7087b184461c9cda0b442e58cb15c6a5b" @@ -1919,6 +3184,19 @@ "@aws-sdk/util-middleware" "3.186.0" tslib "^2.3.1" +"@aws-sdk/middleware-signing@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.433.0.tgz#670557ace5b97729dbabb6a991815e44eb0ef03b" + integrity sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.8" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.4.0" + "@smithy/util-middleware" "^2.0.5" + tslib "^2.5.0" + "@aws-sdk/middleware-signing@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.468.0.tgz#d1b5a92c395f55063cfa72ee95e4921b16f4c515" @@ -1932,6 +3210,19 @@ "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" +"@aws-sdk/middleware-signing@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.567.0.tgz#4462904e0ddc188ed2dfc0c179d6a3e4eab691b7" + integrity sha512-aE4/ysosM01di2sGs0q7UfhZ4EXMhEfOKrgQhi6b3h4BuClDdsP7bo3bkHEkx7aCKD6mb5/q4qlbph9FRQeTFg== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/signature-v4" "^2.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + "@aws-sdk/middleware-signing@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.6.1.tgz#e70a2f35d85d70e33c9fddfb54b9520f6382db16" @@ -1951,6 +3242,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/middleware-ssec@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.567.0.tgz#0a425182d940f963b34146b22dc2872cb21c41e4" + integrity sha512-lhpBwFi3Tcw+jlOdaCsg3lCAg4oOSJB00bW/aLTFeZWutwi9VexMmsddZllx99lN+LDeCjryNyVd2TCRCKwYhQ== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/middleware-stack@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.186.0.tgz#da3445fe74b867ee6d7eec4f0dde28aaca1125d6" @@ -1974,6 +3274,17 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/middleware-user-agent@3.438.0": + version "3.438.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.438.0.tgz#a1165134d5b95e1fbeb841740084b3a43dead18a" + integrity sha512-a+xHT1wOxT6EA6YyLmrfaroKWOkwwyiktUfXKM0FsUutGzNi4fKhb5NZ2al58NsXzHgHFrasSDp+Lqbd/X2cEw== + dependencies: + "@aws-sdk/types" "3.433.0" + "@aws-sdk/util-endpoints" "3.438.0" + "@smithy/protocol-http" "^3.0.8" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/middleware-user-agent@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.468.0.tgz#72a293666466c608d46f2a42e25cab0fc2cc2ff1" @@ -1985,6 +3296,17 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/middleware-user-agent@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.567.0.tgz#0dbedb18b33a7f490948f8b153301bd4bc7e825d" + integrity sha512-a7DBGMRBLWJU3BqrQjOtKS4/RcCh/BhhKqwjCE0FEhhm6A/GGuAs/DcBGOl6Y8Wfsby3vejSlppTLH/qtV1E9w== + dependencies: + "@aws-sdk/types" "3.567.0" + "@aws-sdk/util-endpoints" "3.567.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/middleware-user-agent@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.6.1.tgz#6845dfb3bc6187897f348c2c87dec833e6a65c99" @@ -2102,6 +3424,17 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" +"@aws-sdk/region-config-resolver@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.433.0.tgz#37eb5f40db8af7ba9361aeb28c62b45421e780f0" + integrity sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg== + dependencies: + "@smithy/node-config-provider" "^2.1.3" + "@smithy/types" "^2.4.0" + "@smithy/util-config-provider" "^2.0.0" + "@smithy/util-middleware" "^2.0.5" + tslib "^2.5.0" + "@aws-sdk/region-config-resolver@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.468.0.tgz#77dfdf517fdfc40d7452a957c3eb4a1f3d69ddcd" @@ -2113,6 +3446,18 @@ "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" +"@aws-sdk/region-config-resolver@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.567.0.tgz#c3ad943d3debcfb0c50ce3556ed183195f8590f9" + integrity sha512-VMDyYi5Dh2NydDiIARZ19DwMfbyq0llS736cp47qopmO6wzdeul7WRTx8NKfEYN0/AwEaqmTW0ohx58jSB1lYg== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-config-provider" "^2.3.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + "@aws-sdk/service-error-classification@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.186.0.tgz#6e4e1d4b53d68bd28c28d9cf0b3b4cb6a6a59dbb" @@ -2150,6 +3495,18 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/signature-v4-multi-region@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.568.0.tgz#42426441ad725fc919158f29ff226ad6c884087b" + integrity sha512-KV/M50gicTHytx2Q0y1eHQX4OlRaj2Kcs24AjCrM4KqB1sTXXBr53OgSORvL+iikHZbyAvE5GK19lK30GiuItQ== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.568.0" + "@aws-sdk/types" "3.567.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/signature-v4" "^2.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/signature-v4@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.186.0.tgz#bbd56e71af95548abaeec6307ea1dfe7bd26b4e4" @@ -2191,6 +3548,49 @@ "@aws-sdk/types" "3.6.1" tslib "^1.8.0" +"@aws-sdk/token-providers@3.438.0": + version "3.438.0" + resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.438.0.tgz#e91baa37c9c78cb5b21cae96a12e7e1705c931d3" + integrity sha512-G2fUfTtU6/1ayYRMu0Pd9Ln4qYSvwJOWCqJMdkDgvXSwdgcOSOLsnAIk1AHGJDAvgLikdCzuyOsdJiexr9Vnww== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/middleware-host-header" "3.433.0" + "@aws-sdk/middleware-logger" "3.433.0" + "@aws-sdk/middleware-recursion-detection" "3.433.0" + "@aws-sdk/middleware-user-agent" "3.438.0" + "@aws-sdk/region-config-resolver" "3.433.0" + "@aws-sdk/types" "3.433.0" + "@aws-sdk/util-endpoints" "3.438.0" + "@aws-sdk/util-user-agent-browser" "3.433.0" + "@aws-sdk/util-user-agent-node" "3.437.0" + "@smithy/config-resolver" "^2.0.16" + "@smithy/fetch-http-handler" "^2.2.4" + "@smithy/hash-node" "^2.0.12" + "@smithy/invalid-dependency" "^2.0.12" + "@smithy/middleware-content-length" "^2.0.14" + "@smithy/middleware-endpoint" "^2.1.3" + "@smithy/middleware-retry" "^2.0.18" + "@smithy/middleware-serde" "^2.0.12" + "@smithy/middleware-stack" "^2.0.6" + "@smithy/node-config-provider" "^2.1.3" + "@smithy/node-http-handler" "^2.1.8" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.8" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/smithy-client" "^2.1.12" + "@smithy/types" "^2.4.0" + "@smithy/url-parser" "^2.0.12" + "@smithy/util-base64" "^2.0.0" + "@smithy/util-body-length-browser" "^2.0.0" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.16" + "@smithy/util-defaults-mode-node" "^2.0.21" + "@smithy/util-endpoints" "^1.0.2" + "@smithy/util-retry" "^2.0.5" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.5.0" + "@aws-sdk/token-providers@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.468.0.tgz#eb90d391cdbbdb1b38a97b4c9e6df93ef34a07f8" @@ -2234,11 +3634,30 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@aws-sdk/token-providers@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.568.0.tgz#8efe5a3d97e5346dd8cb473accdcbfec466f9cba" + integrity sha512-mCQElYzY5N2JlXB7LyjOoLvRN/JiSV+E9szLwhYN3dleTUCMbGqWb7RiAR2V3fO+mz8f9kR7DThTExKJbKogKw== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/types@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.186.0.tgz#f6fb6997b6a364f399288bfd5cd494bc680ac922" integrity sha512-NatmSU37U+XauMFJCdFI6nougC20JUFZar+ump5wVv0i54H+2Refg1YbFDxSs0FY28TSB9jfhWIpfFBmXgL5MQ== +"@aws-sdk/types@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.433.0.tgz#0f94eae2a4a3525ca872c9ab04e143c01806d755" + integrity sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA== + dependencies: + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/types@3.468.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0", "@aws-sdk/types@^3.222.0", "@aws-sdk/types@^3.25.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.468.0.tgz#f97b34fc92a800d1d8b866f47693ae8f3d46517b" @@ -2247,6 +3666,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/types@3.567.0", "@aws-sdk/types@^3.465.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.567.0.tgz#b2dc88e154140b1ff87e94f63c97447bdb1c1738" + integrity sha512-JBznu45cdgQb8+T/Zab7WpBmfEAh77gsk99xuF4biIb2Sw1mdseONdoGDjEJX57a25TzIv/WUJ2oABWumckz1A== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/types@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.6.1.tgz#00686db69e998b521fcd4a5f81ef0960980f80c4" @@ -2287,6 +3714,13 @@ dependencies: tslib "^2.5.0" +"@aws-sdk/util-arn-parser@3.568.0", "@aws-sdk/util-arn-parser@^3.465.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" + integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== + dependencies: + tslib "^2.6.2" + "@aws-sdk/util-base64-browser@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.186.0.tgz#0310482752163fa819718ce9ea9250836b20346d" @@ -2390,6 +3824,15 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/util-endpoints@3.438.0": + version "3.438.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.438.0.tgz#fe79a0ad87fc201c8ecb422f6f040bd300c98df9" + integrity sha512-6VyPTq1kN3GWxwFt5DdZfOsr6cJZPLjWh0troY/0uUv3hK74C9o3Y0Xf/z8UAUvQFkVqZse12O0/BgPVMImvfA== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/util-endpoints" "^1.0.2" + tslib "^2.5.0" + "@aws-sdk/util-endpoints@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.468.0.tgz#4bb83c89029606db11f561dde64e6fd9e9fa243d" @@ -2399,6 +3842,16 @@ "@smithy/util-endpoints" "^1.0.6" tslib "^2.5.0" +"@aws-sdk/util-endpoints@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.567.0.tgz#c536ad8b9acf99ad762ab949fe0fed943c6f5a12" + integrity sha512-WVhot3qmi0BKL9ZKnUqsvCd++4RF2DsJIG32NlRaml1FT9KaqSzNv0RXeA6k/kYwiiNT7y3YWu3Lbzy7c6vG9g== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/types" "^2.12.0" + "@smithy/util-endpoints" "^1.2.0" + tslib "^2.6.2" + "@aws-sdk/util-hex-encoding@3.186.0": version "3.186.0" resolved "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.186.0.tgz#7ed58b923997c6265f4dce60c8704237edb98895" @@ -2458,6 +3911,16 @@ bowser "^2.11.0" tslib "^2.3.1" +"@aws-sdk/util-user-agent-browser@3.433.0": + version "3.433.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.433.0.tgz#b5ed0c0cca0db34a2c1c2ffc1b65e7cdd8dc88ff" + integrity sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/types" "^2.4.0" + bowser "^2.11.0" + tslib "^2.5.0" + "@aws-sdk/util-user-agent-browser@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.468.0.tgz#095caecb3fd75104ee38ae81ed78821de0f58e28" @@ -2468,6 +3931,16 @@ bowser "^2.11.0" tslib "^2.5.0" +"@aws-sdk/util-user-agent-browser@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.567.0.tgz#1ef37a87b28155274d62e31c1ac5c1c043dcd0b3" + integrity sha512-cqP0uXtZ7m7hRysf3fRyJwcY1jCgQTpJy7BHB5VpsE7DXlXHD5+Ur5L42CY7UrRPrB6lc6YGFqaAOs5ghMcLyA== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/types" "^2.12.0" + bowser "^2.11.0" + tslib "^2.6.2" + "@aws-sdk/util-user-agent-browser@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.6.1.tgz#11b9cc8743392761adb304460f4b54ec8acc2ee6" @@ -2486,6 +3959,16 @@ "@aws-sdk/types" "3.186.0" tslib "^2.3.1" +"@aws-sdk/util-user-agent-node@3.437.0": + version "3.437.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.437.0.tgz#f77729854ddf049ccaba8bae3d8fa279812b4716" + integrity sha512-JVEcvWaniamtYVPem4UthtCNoTBCfFTwYj7Y3CrWZ2Qic4TqrwLkAfaBGtI2TGrhIClVr77uzLI6exqMTN7orA== + dependencies: + "@aws-sdk/types" "3.433.0" + "@smithy/node-config-provider" "^2.1.3" + "@smithy/types" "^2.4.0" + tslib "^2.5.0" + "@aws-sdk/util-user-agent-node@3.468.0": version "3.468.0" resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.468.0.tgz#78e7845bc4a9caa3e99aebed00647dc21d463a8d" @@ -2496,6 +3979,16 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@aws-sdk/util-user-agent-node@3.568.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.568.0.tgz#8bfb81b23d4947462f1e49c70187b85e7cd3837a" + integrity sha512-NVoZoLnKF+eXPBvXg+KqixgJkPSrerR6Gqmbjwqbv14Ini+0KNKB0/MXas1mDGvvEgtNkHI/Cb9zlJ3KXpti2A== + dependencies: + "@aws-sdk/types" "3.567.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@aws-sdk/util-user-agent-node@3.6.1": version "3.6.1" resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.6.1.tgz#98384095fa67d098ae7dd26f3ccaad028e8aebb6" @@ -2558,6 +4051,14 @@ dependencies: tslib "^2.5.0" +"@aws-sdk/xml-builder@3.567.0": + version "3.567.0" + resolved "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.567.0.tgz#8dad7461955a8f8458593973b31b3457ea5ad887" + integrity sha512-Db25jK9sZdGa7PEQTdm60YauUVbeYGsSEMQOHGP6ifbXfCknqgkPgWV16DqAKJUsbII0xgkJ9LpppkmYal3K/g== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": version "7.23.5" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" @@ -5031,6 +6532,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/abort-controller@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35" + integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/chunked-blob-reader-native@^2.0.1": version "2.0.1" resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.0.1.tgz#0599eaed8c2cd15c7ab43a1838cef1258ff27133" @@ -5039,6 +6548,14 @@ "@smithy/util-base64" "^2.0.1" tslib "^2.5.0" +"@smithy/chunked-blob-reader-native@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.2.0.tgz#aff8bddf9fdc1052f885e1b15aa81e4d274e541e" + integrity sha512-VNB5+1oCgX3Fzs072yuRsUoC2N4Zg/LJ11DTxX3+Qu+Paa6AmbIF0E9sc2wthz9Psrk/zcOlTCyuposlIhPjZQ== + dependencies: + "@smithy/util-base64" "^2.3.0" + tslib "^2.6.2" + "@smithy/chunked-blob-reader@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.0.0.tgz#c44fe2c780eaf77f9e5381d982ac99a880cce51b" @@ -5046,6 +6563,24 @@ dependencies: tslib "^2.5.0" +"@smithy/chunked-blob-reader@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.2.0.tgz#192c1787bf3f4f87e2763803425f418e6e613e09" + integrity sha512-3GJNvRwXBGdkDZZOGiziVYzDpn4j6zfyULHMDKAGIUo72yHALpE9CbhfQp/XcLNVoc1byfMpn6uW5H2BqPjgaQ== + dependencies: + tslib "^2.6.2" + +"@smithy/config-resolver@^2.0.16", "@smithy/config-resolver@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757" + integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-config-provider" "^2.3.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + "@smithy/config-resolver@^2.0.20", "@smithy/config-resolver@^2.0.21": version "2.0.21" resolved "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.21.tgz#97cb1c71f3c8c453fb01169545f98414b3414d7f" @@ -5057,6 +6592,20 @@ "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" +"@smithy/core@^1.4.2": + version "1.4.2" + resolved "https://registry.npmjs.org/@smithy/core/-/core-1.4.2.tgz#1c3ed886d403041ce5bd2d816448420c57baa19c" + integrity sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA== + dependencies: + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + "@smithy/credential-provider-imds@^2.0.0", "@smithy/credential-provider-imds@^2.1.4": version "2.1.4" resolved "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.4.tgz#126adf69eac333f23f8683edbfabdc2b3b2deb15" @@ -5068,6 +6617,17 @@ "@smithy/url-parser" "^2.0.15" tslib "^2.5.0" +"@smithy/credential-provider-imds@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166" + integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + tslib "^2.6.2" + "@smithy/eventstream-codec@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.15.tgz#733e638fd38e7e264bc0429dbda139bab950bd25" @@ -5078,6 +6638,16 @@ "@smithy/util-hex-encoding" "^2.0.0" tslib "^2.5.0" +"@smithy/eventstream-codec@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz#63d74fa817188995eb55e792a38060b0ede98dc4" + integrity sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^2.12.0" + "@smithy/util-hex-encoding" "^2.2.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-browser@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.15.tgz#f62c891e6f8ad59f552a92d8aa14eb6b4541d418" @@ -5087,6 +6657,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/eventstream-serde-browser@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.2.0.tgz#69c93cc0210f04caeb0770856ef88c9a82564e11" + integrity sha512-UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw== + dependencies: + "@smithy/eventstream-serde-universal" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-config-resolver@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.15.tgz#50e98c59aeb31a0702bad5dfab4009a15fc8b3bf" @@ -5095,6 +6674,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/eventstream-serde-config-resolver@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.2.0.tgz#23c8698ce594a128bcc556153efb7fecf6d04f87" + integrity sha512-RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-node@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.15.tgz#8be1bd024048adcff4ccbb723c55fc42ce582d33" @@ -5104,6 +6691,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/eventstream-serde-node@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.2.0.tgz#b82870a838b1bd32ad6e0cf33a520191a325508e" + integrity sha512-zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA== + dependencies: + "@smithy/eventstream-serde-universal" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-universal@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.15.tgz#85cdff39abc630cb18b4d333913b7120651771ca" @@ -5113,6 +6709,26 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/eventstream-serde-universal@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.2.0.tgz#a75e330040d5e2ca2ac0d8bccde3e390ac5afd38" + integrity sha512-pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA== + dependencies: + "@smithy/eventstream-codec" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/fetch-http-handler@^2.2.4", "@smithy/fetch-http-handler@^2.5.0": + version "2.5.0" + resolved "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac" + integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw== + dependencies: + "@smithy/protocol-http" "^3.3.0" + "@smithy/querystring-builder" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/util-base64" "^2.3.0" + tslib "^2.6.2" + "@smithy/fetch-http-handler@^2.3.1": version "2.3.1" resolved "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.3.1.tgz#aa055db5bf4d78acec97abe6ef24283fa2c18430" @@ -5134,6 +6750,16 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/hash-blob-browser@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.2.0.tgz#d26db0e88b8fc4b59ee487bd026363ea9b48cf3a" + integrity sha512-SGPoVH8mdXBqrkVCJ1Hd1X7vh1zDXojNN1yZyZTZsCno99hVue9+IYzWDjq/EQDDXxmITB0gBmuyPh8oAZSTcg== + dependencies: + "@smithy/chunked-blob-reader" "^2.2.0" + "@smithy/chunked-blob-reader-native" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/hash-node@^1.0.1": version "1.1.0" resolved "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-1.1.0.tgz#a8da64fa4b2e2c64185df92897165c8113b499b2" @@ -5144,6 +6770,16 @@ "@smithy/util-utf8" "^1.1.0" tslib "^2.5.0" +"@smithy/hash-node@^2.0.12", "@smithy/hash-node@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc" + integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + "@smithy/hash-node@^2.0.17": version "2.0.17" resolved "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.17.tgz#9ce5e3f137143e3658759d31a16e068ef94a14fc" @@ -5163,6 +6799,23 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@smithy/hash-stream-node@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.2.0.tgz#7b341fdc89851af6b98d8c01e47185caf0a4b2d9" + integrity sha512-aT+HCATOSRMGpPI7bi7NSsTNVZE/La9IaxLXWoVAYMxHT5hGO3ZOGEMZQg8A6nNL+pdFGtZQtND1eoY084HgHQ== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/invalid-dependency@^2.0.12", "@smithy/invalid-dependency@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0" + integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/invalid-dependency@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.15.tgz#7653490047bf0ab6042fb812adfbcce857aa2d06" @@ -5185,6 +6838,13 @@ dependencies: tslib "^2.5.0" +"@smithy/is-array-buffer@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" + integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== + dependencies: + tslib "^2.6.2" + "@smithy/md5-js@^2.0.17": version "2.0.17" resolved "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.0.17.tgz#784c02da6cee539f5af0e45b1eaf9beb10ed8ad6" @@ -5194,6 +6854,24 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@smithy/md5-js@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.2.0.tgz#033c4c89fe0cbb3f7e99cca3b7b63a2824c98c6d" + integrity sha512-M26XTtt9IIusVMOWEAhIvFIr9jYj4ISPPGJROqw6vXngO3IYJCnVVSMFn4Tx1rUTG5BiKJNg9u2nxmBiZC5IlQ== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/middleware-content-length@^2.0.14", "@smithy/middleware-content-length@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a" + integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ== + dependencies: + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/middleware-content-length@^2.0.17": version "2.0.17" resolved "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.17.tgz#13479173a15d1cd4224e3e21071a27c66a74b653" @@ -5203,6 +6881,19 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/middleware-endpoint@^2.1.3", "@smithy/middleware-endpoint@^2.5.1": + version "2.5.1" + resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz#1333c58304aff4d843e8ef4b85c8cb88975dd5ad" + integrity sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ== + dependencies: + "@smithy/middleware-serde" "^2.3.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + "@smithy/middleware-endpoint@^2.2.2": version "2.2.3" resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.2.3.tgz#4069ab6e8d1b485bc0d2384b30f7b37096111ec2" @@ -5216,6 +6907,21 @@ "@smithy/util-middleware" "^2.0.8" tslib "^2.5.0" +"@smithy/middleware-retry@^2.0.18", "@smithy/middleware-retry@^2.3.1": + version "2.3.1" + resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz#d6fdce94f2f826642c01b4448e97a509c4556ede" + integrity sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/service-error-classification" "^2.1.5" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + tslib "^2.6.2" + uuid "^9.0.1" + "@smithy/middleware-retry@^2.0.23": version "2.0.24" resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.24.tgz#556a39e7d2be32cc61862e020409d3f93e2c5be1" @@ -5231,6 +6937,14 @@ tslib "^2.5.0" uuid "^8.3.2" +"@smithy/middleware-serde@^2.0.12", "@smithy/middleware-serde@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13" + integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/middleware-serde@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.15.tgz#9deac4daad1f2a60d5c4e7097658f9ae2eb0a33f" @@ -5239,6 +6953,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/middleware-stack@^2.0.6", "@smithy/middleware-stack@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f" + integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/middleware-stack@^2.0.9": version "2.0.9" resolved "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.9.tgz#60e51697c74258fac087bc739d940f524921a15f" @@ -5247,6 +6969,16 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/node-config-provider@^2.1.3", "@smithy/node-config-provider@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922" + integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg== + dependencies: + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/node-config-provider@^2.1.7", "@smithy/node-config-provider@^2.1.8": version "2.1.8" resolved "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.8.tgz#8cab8f1172c8cd1146e7997292786909abcae763" @@ -5257,6 +6989,17 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/node-http-handler@^2.1.8", "@smithy/node-http-handler@^2.5.0": + version "2.5.0" + resolved "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de" + integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA== + dependencies: + "@smithy/abort-controller" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/querystring-builder" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/node-http-handler@^2.2.1": version "2.2.1" resolved "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.2.1.tgz#23f6540e565edcae8c558a854fffde3d003451c0" @@ -5276,6 +7019,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/property-provider@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz#37e3525a3fa3e11749f86a4f89f0fd7765a6edb0" + integrity sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/protocol-http@^3.0.11": version "3.0.11" resolved "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.11.tgz#a9ea712fe7cc3375378ac68d9168a7b6cd0b6f65" @@ -5284,6 +7035,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/protocol-http@^3.0.8", "@smithy/protocol-http@^3.3.0": + version "3.3.0" + resolved "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090" + integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/querystring-builder@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.15.tgz#aa8c889bcaef274b8345be4ddabae3bfedf2cf33" @@ -5293,6 +7052,15 @@ "@smithy/util-uri-escape" "^2.0.0" tslib "^2.5.0" +"@smithy/querystring-builder@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef" + integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/util-uri-escape" "^2.2.0" + tslib "^2.6.2" + "@smithy/querystring-parser@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.15.tgz#46c8806a145f46636e4aee2a5d79e7ba68161a4c" @@ -5301,6 +7069,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/querystring-parser@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79" + integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/service-error-classification@^2.0.8": version "2.0.8" resolved "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.8.tgz#c9e421312a2def84da025c5efe6de06679c5be95" @@ -5308,6 +7084,13 @@ dependencies: "@smithy/types" "^2.7.0" +"@smithy/service-error-classification@^2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz#0568a977cc0db36299d8703a5d8609c1f600c005" + integrity sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/shared-ini-file-loader@^2.0.6", "@smithy/shared-ini-file-loader@^2.2.7": version "2.2.7" resolved "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.7.tgz#4a3bd469703d02c3cc8e36dcba2238c06efa12cb" @@ -5316,6 +7099,14 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/shared-ini-file-loader@^2.4.0": + version "2.4.0" + resolved "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947" + integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/signature-v4@^2.0.0": version "2.0.17" resolved "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.17.tgz#3ce17d8143f18670ca9bd5f99738dfadb3a7f3fc" @@ -5330,6 +7121,31 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@smithy/signature-v4@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.3.0.tgz#c30dd4028ae50c607db99459981cce8cdab7a3fd" + integrity sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/util-hex-encoding" "^2.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-uri-escape" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^2.1.12", "@smithy/smithy-client@^2.5.1": + version "2.5.1" + resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.1.tgz#0fd2efff09dc65500d260e590f7541f8a387eae3" + integrity sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ== + dependencies: + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-stream" "^2.2.0" + tslib "^2.6.2" + "@smithy/smithy-client@^2.1.18": version "2.1.18" resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.18.tgz#f8ce2c0e9614f207256ddcd992403aff40750546" @@ -5347,6 +7163,13 @@ dependencies: tslib "^2.5.0" +"@smithy/types@^2.12.0", "@smithy/types@^2.4.0": + version "2.12.0" + resolved "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz#c44845f8ba07e5e8c88eda5aed7e6a0c462da041" + integrity sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw== + dependencies: + tslib "^2.6.2" + "@smithy/types@^2.7.0": version "2.7.0" resolved "https://registry.npmjs.org/@smithy/types/-/types-2.7.0.tgz#6ed9ba5bff7c4d28c980cff967e6d8456840a4f3" @@ -5354,6 +7177,15 @@ dependencies: tslib "^2.5.0" +"@smithy/url-parser@^2.0.12", "@smithy/url-parser@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0" + integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ== + dependencies: + "@smithy/querystring-parser" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/url-parser@^2.0.15": version "2.0.15" resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.15.tgz#878d9b61f9eac8834cb611cf1a8a0e5d9a48038c" @@ -5363,6 +7195,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/util-base64@^2.0.0", "@smithy/util-base64@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2" + integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + "@smithy/util-base64@^2.0.1": version "2.0.1" resolved "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.0.1.tgz#57f782dafc187eddea7c8a1ff2a7c188ed1a02c4" @@ -5371,6 +7212,13 @@ "@smithy/util-buffer-from" "^2.0.0" tslib "^2.5.0" +"@smithy/util-body-length-browser@^2.0.0", "@smithy/util-body-length-browser@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz#25620645c6b62b42594ef4a93b66e6ab70e27d2c" + integrity sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w== + dependencies: + tslib "^2.6.2" + "@smithy/util-body-length-browser@^2.0.1": version "2.0.1" resolved "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.1.tgz#424485cc81c640d18c17c683e0e6edb57e8e2ab9" @@ -5385,6 +7233,13 @@ dependencies: tslib "^2.5.0" +"@smithy/util-body-length-node@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz#d065a9b5e305ff899536777bbfe075cdc980136f" + integrity sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw== + dependencies: + tslib "^2.6.2" + "@smithy/util-buffer-from@^1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-1.1.0.tgz#a000bd9f95c0e8d5b0edb0112f2a586daa5bed49" @@ -5401,6 +7256,14 @@ "@smithy/is-array-buffer" "^2.0.0" tslib "^2.5.0" +"@smithy/util-buffer-from@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" + integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + tslib "^2.6.2" + "@smithy/util-config-provider@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz#4dd6a793605559d94267312fd06d0f58784b4c38" @@ -5408,6 +7271,24 @@ dependencies: tslib "^2.5.0" +"@smithy/util-config-provider@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943" + integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^2.0.16", "@smithy/util-defaults-mode-browser@^2.2.1": + version "2.2.1" + resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz#9db31416daf575d2963c502e0528cfe8055f0c4e" + integrity sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw== + dependencies: + "@smithy/property-provider" "^2.2.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + bowser "^2.11.0" + tslib "^2.6.2" + "@smithy/util-defaults-mode-browser@^2.0.22": version "2.0.22" resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.22.tgz#8ef8c36b8c3c2f98f7a62278c3c684d659134269" @@ -5419,6 +7300,19 @@ bowser "^2.11.0" tslib "^2.5.0" +"@smithy/util-defaults-mode-node@^2.0.21", "@smithy/util-defaults-mode-node@^2.3.1": + version "2.3.1" + resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz#4613210a3d107aadb3f85bd80cb71c796dd8bf0a" + integrity sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA== + dependencies: + "@smithy/config-resolver" "^2.2.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/util-defaults-mode-node@^2.0.28": version "2.0.29" resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.29.tgz#6b210aede145a6bf4bd83d9f465948fb300ca577" @@ -5432,6 +7326,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/util-endpoints@^1.0.2", "@smithy/util-endpoints@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d" + integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/util-endpoints@^1.0.6": version "1.0.7" resolved "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.7.tgz#5a258ac7838dea085660060b515cd2d19f19a4bc" @@ -5455,6 +7358,21 @@ dependencies: tslib "^2.5.0" +"@smithy/util-hex-encoding@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085" + integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-middleware@^2.0.5", "@smithy/util-middleware@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006" + integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/util-middleware@^2.0.8": version "2.0.8" resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.8.tgz#2ec1da1190d09b69512ce0248ebd5e819e3c8a92" @@ -5463,6 +7381,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/util-retry@^2.0.5", "@smithy/util-retry@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.2.0.tgz#e8e019537ab47ba6b2e87e723ec51ee223422d85" + integrity sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g== + dependencies: + "@smithy/service-error-classification" "^2.1.5" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@smithy/util-retry@^2.0.8": version "2.0.8" resolved "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.8.tgz#61f8db11e4fe60975cb9fb2eada173f5024a06f3" @@ -5486,6 +7413,20 @@ "@smithy/util-utf8" "^2.0.2" tslib "^2.5.0" +"@smithy/util-stream@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370" + integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA== + dependencies: + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-hex-encoding" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + "@smithy/util-uri-escape@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz#19955b1a0f517a87ae77ac729e0e411963dfda95" @@ -5493,6 +7434,13 @@ dependencies: tslib "^2.5.0" +"@smithy/util-uri-escape@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406" + integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA== + dependencies: + tslib "^2.6.2" + "@smithy/util-utf8@^1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-1.1.0.tgz#b791ab1e3f694374edfe22811e39dd8424a1be69" @@ -5501,6 +7449,14 @@ "@smithy/util-buffer-from" "^1.1.0" tslib "^2.5.0" +"@smithy/util-utf8@^2.0.0", "@smithy/util-utf8@^2.3.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" + integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + tslib "^2.6.2" + "@smithy/util-utf8@^2.0.2": version "2.0.2" resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.0.2.tgz#626b3e173ad137208e27ed329d6bea70f4a1a7f7" @@ -5518,6 +7474,15 @@ "@smithy/types" "^2.7.0" tslib "^2.5.0" +"@smithy/util-waiter@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.2.0.tgz#d11baf50637bfaadb9641d6ca1619da413dd2612" + integrity sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA== + dependencies: + "@smithy/abort-controller" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -5583,6 +7548,11 @@ resolved "https://registry.npmjs.org/@types/async/-/async-2.0.50.tgz#117540e026d64e1846093abbd5adc7e27fda7bcb" integrity sha512-VMhZMMQgV1zsR+lX/0IBfAk+8Eb7dPVMWiQGFAt3qjo5x7Ml6b77jUo0e1C3ToD+XRDXqtrfw+6AB0uUsPEr3Q== +"@types/aws-lambda@^8.10.134": + version "8.10.137" + resolved "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.137.tgz#c9998a944541afdd6df0d159e9ec9c23dfe5fb40" + integrity sha512-YNFwzVarXAOXkjuFxONyDw1vgRNzyH8AuyN19s0bM+ChSu/bzxb5XPxYFLXoqoM+tvgzwR3k7fXcEOW125yJxg== + "@types/babel-generator@^6.25.0": version "6.25.8" resolved "https://registry.npmjs.org/@types/babel-generator/-/babel-generator-6.25.8.tgz#44b37bcbcd4b1e24c4e5975fa6d7b72b8c9a456b" @@ -7175,7 +9145,7 @@ chardet@^0.7.0: resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -charenc@0.0.2: +charenc@0.0.2, charenc@^0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== @@ -7735,7 +9705,7 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypt@0.0.2: +crypt@0.0.2, crypt@^0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== @@ -8588,6 +10558,21 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -9048,6 +11033,11 @@ get-stream@^6.0.0: resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -9229,7 +11219,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -9263,6 +11253,11 @@ graphql-mapping-template@4.20.13: resolved "https://registry.npmjs.org/graphql-mapping-template/-/graphql-mapping-template-4.20.13.tgz#900534e1e058acc7d410b46eeb9b556793cf6f6a" integrity sha512-7NDgVI5ePkO5zVVUE8lSm5zwypryVOBS6v14mMrP0A4KWuIvu7DRX4kaqOluYpGRTwtM11FFF1SBCpCqCpIang== +graphql-mapping-template@4.20.16: + version "4.20.16" + resolved "https://registry.npmjs.org/graphql-mapping-template/-/graphql-mapping-template-4.20.16.tgz#10e4f1164e09160862bffcb6292df428ba6c0545" + integrity sha512-J+shdngmnAxBM4mS4ga2RGusbPRMMO/TfRiNuHNKHxEU8O85us9zC6l7kSQ9hkWQDrKISJfDaesNKO3Jo5GerA== + graphql-request@^1.5.0: version "1.8.2" resolved "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe" @@ -9287,6 +11282,16 @@ graphql-transformer-common@4.27.0, graphql-transformer-common@^4.25.1: md5 "^2.2.1" pluralize "8.0.0" +graphql-transformer-common@4.30.1: + version "4.30.1" + resolved "https://registry.npmjs.org/graphql-transformer-common/-/graphql-transformer-common-4.30.1.tgz#f36a2f9a07828b26b0202bc6b116097f48263db1" + integrity sha512-SPitc4dEtWdyy+xe3FJSsvqw64ScMkl5mBpHK+P/iEMJEp9YE6H+s+9GAcewBhDSTDZibDHE+dT04a91FYN27w== + dependencies: + graphql "^15.5.0" + graphql-mapping-template "4.20.16" + md5 "^2.2.1" + pluralize "8.0.0" + graphql-transformer-core@^8.0.0: version "8.2.3" resolved "https://registry.npmjs.org/graphql-transformer-core/-/graphql-transformer-core-8.2.3.tgz#30b29ba6f823a26c540eb78b8a03d84c1c677240" @@ -9393,7 +11398,7 @@ header-case@^2.0.4: capital-case "^1.0.4" tslib "^2.0.3" -hjson@^3.2.1: +hjson@^3.2.1, hjson@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/hjson/-/hjson-3.2.2.tgz#a5a81138f4c0bb427e4b2ac917fafd4b454436cf" integrity sha512-MkUeB0cTIlppeSsndgESkfFD21T2nXPRaBStLtf3cAYA2bVEFdXlodZB0TukwZiobPD1Ksax5DK4RTZeaXCI3Q== @@ -9500,6 +11505,11 @@ human-signals@^2.1.0: resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -9587,6 +11597,11 @@ immer@9.0.6: resolved "https://registry.npmjs.org/immer/-/immer-9.0.6.tgz#7a96bf2674d06c8143e327cbf73539388ddf1a73" integrity sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ== +immer@^9.0.12: + version "9.0.21" + resolved "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + immutable-tuple@^0.4.9: version "0.4.10" resolved "https://registry.npmjs.org/immutable-tuple/-/immutable-tuple-0.4.10.tgz#e0b1625384f514084a7a84b749a3bb26e9179929" @@ -9831,6 +11846,11 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-buffer@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-buffer@~1.1.6: version "1.1.6" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -9848,6 +11868,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + is-core-module@^2.1.0, is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.13.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" @@ -10033,6 +12060,11 @@ is-stream@^2.0.0: resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -10829,7 +12861,7 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonfile@^6.0.1: +jsonfile@^6.0.1, jsonfile@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== @@ -10958,6 +12990,11 @@ libnpmpublish@^6.0.4: semver "^7.3.7" ssri "^9.0.0" +libphonenumber-js@1.9.47: + version "1.9.47" + resolved "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.47.tgz#0cb3d6a3dd8d917d364da48a5355bc3b1d145f5b" + integrity sha512-FIWFLJ2jUJi8SCztgd2k/isQHZedh7xuxOVifqFLwG/ogZtdH9TXFK92w/KWFj1lwoadqVedtLO3Jqp0q67PZw== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -11258,7 +13295,7 @@ map-obj@^4.0.0: resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== -md5@^2.2.1: +md5@^2.2.1, md5@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== @@ -11324,6 +13361,11 @@ mimic-fn@^2.1.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -11767,6 +13809,13 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + npmlog@^6.0.0, npmlog@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" @@ -11848,6 +13897,11 @@ object-hash@^2.0.1: resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + object-inspect@^1.13.1, object-inspect@^1.9.0: version "1.13.1" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" @@ -11934,6 +13988,13 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + open@^8.4.0: version "8.4.2" resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" @@ -12273,6 +14334,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -12944,7 +15010,7 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -rxjs@^7.5.5: +rxjs@^7.5.5, rxjs@^7.8.1: version "7.8.1" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -13112,6 +15178,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + signedsource@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" @@ -13445,6 +15516,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -13739,6 +15815,11 @@ ts-dedent@^1.1.0: resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-1.2.0.tgz#6aa2229d837159bb6d635b6b233002423b91e0b0" integrity sha512-6zSJp23uQI+Txyz5LlXMXAHpUhY4Hi0oluXny0OgIR7g/Cromq4vDBnhtbBdyIV34g0pgwxUvnvg+jLJe4c1NA== +ts-dedent@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + ts-invariant@^0.4.0: version "0.4.4" resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" @@ -13826,7 +15907,7 @@ tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1 resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -14190,6 +16271,11 @@ uuid@8.0.0: resolved "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== +uuid@9.0.1, uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -14784,3 +16870,8 @@ zen-push@0.2.1: integrity sha512-Qv4qvc8ZIue51B/0zmeIMxpIGDVhz4GhJALBvnKs/FRa2T7jy4Ori9wFwaHVt0zWV7MIFglKAHbgnVxVTw7U1w== dependencies: zen-observable "^0.7.0" + +zod@^3.21.4, zod@^3.22.2, zod@^3.22.3: + version "3.23.5" + resolved "https://registry.npmjs.org/zod/-/zod-3.23.5.tgz#c7b7617d017d4a2f21852f533258d26a9a5ae09f" + integrity sha512-fkwiq0VIQTksNNA131rDOsVJcns0pfVUjHzLrNBiF/O/Xxb5lQyEXkhZWcJ7npWsYlvs+h0jFWXXy4X46Em1JA== From cfd4c2b4ad0fd8a3b74896c849da90cbd45fe8f4 Mon Sep 17 00:00:00 2001 From: Dane Pilcher Date: Mon, 6 May 2024 15:55:59 -0600 Subject: [PATCH 4/4] fix: add missing closing parens on swift hasMany (#835) --- .../__snapshots__/appsync-swift-visitor.test.ts.snap | 6 +++--- .../src/visitors/appsync-swift-visitor.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-swift-visitor.test.ts.snap b/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-swift-visitor.test.ts.snap index 0dd1c07ed..9d94969ad 100644 --- a/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-swift-visitor.test.ts.snap +++ b/packages/appsync-modelgen-plugin/src/__tests__/visitors/__snapshots__/appsync-swift-visitor.test.ts.snap @@ -1634,7 +1634,7 @@ extension Primary { .field(primary.instanceId, is: .required, ofType: .string), .field(primary.recordId, is: .required, ofType: .string), .field(primary.content, is: .optional, ofType: .string), - .hasMany(primary.related, is: .optional, ofType: Related.self, associatedFields: [Related.keys.primary], + .hasMany(primary.related, is: .optional, ofType: Related.self, associatedFields: [Related.keys.primary]), .field(primary.createdAt, is: .optional, isReadOnly: true, ofType: .dateTime), .field(primary.updatedAt, is: .optional, isReadOnly: true, ofType: .dateTime) ) @@ -2150,7 +2150,7 @@ extension SqlPrimary { model.fields( .field(sqlPrimary.id, is: .required, ofType: .int), .field(sqlPrimary.content, is: .optional, ofType: .string), - .hasMany(sqlPrimary.related, is: .optional, ofType: SqlRelated.self, associatedFields: [SqlRelated.keys.primary], + .hasMany(sqlPrimary.related, is: .optional, ofType: SqlRelated.self, associatedFields: [SqlRelated.keys.primary]), .field(sqlPrimary.createdAt, is: .optional, isReadOnly: true, ofType: .dateTime), .field(sqlPrimary.updatedAt, is: .optional, isReadOnly: true, ofType: .dateTime) ) @@ -2398,7 +2398,7 @@ extension Primary { model.fields( .field(primary.id, is: .required, ofType: .string), - .hasMany(primary.relatedMany, is: .optional, ofType: RelatedMany.self, associatedFields: [RelatedMany.keys.primary], + .hasMany(primary.relatedMany, is: .optional, ofType: RelatedMany.self, associatedFields: [RelatedMany.keys.primary]), .hasOne(primary.relatedOne, is: .optional, ofType: RelatedOne.self, associatedFields: [RelatedOne.keys.primary]), .field(primary.createdAt, is: .optional, isReadOnly: true, ofType: .dateTime), .field(primary.updatedAt, is: .optional, isReadOnly: true, ofType: .dateTime) diff --git a/packages/appsync-modelgen-plugin/src/visitors/appsync-swift-visitor.ts b/packages/appsync-modelgen-plugin/src/visitors/appsync-swift-visitor.ts index 4ea2085fb..4fc429ff8 100644 --- a/packages/appsync-modelgen-plugin/src/visitors/appsync-swift-visitor.ts +++ b/packages/appsync-modelgen-plugin/src/visitors/appsync-swift-visitor.ts @@ -622,11 +622,11 @@ export class AppSyncSwiftVisitor< if (connectionInfo.kind === CodeGenConnectionType.HAS_MANY) { let association = `associatedWith: ${this.getModelName( connectionInfo.connectedModel, - )}.keys.${this.getFieldName(connectionInfo.associatedWith)})`; + )}.keys.${this.getFieldName(connectionInfo.associatedWith)}`; if (connectionInfo.associatedWithNativeReferences) { association = `associatedFields: [${this.getCodingKey(connectionInfo.connectedModel, connectionInfo.associatedWithNativeReferences)}]` } - return `.hasMany(${name}, is: ${isRequired}, ofType: ${typeName}, ${association}`; + return `.hasMany(${name}, is: ${isRequired}, ofType: ${typeName}, ${association})`; } if (connectionInfo.kind === CodeGenConnectionType.HAS_ONE) { let association = `associatedWith: ${this.getModelName(