profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/cjihrig/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Colin Ihrig cjihrig Pittsburgh, PA in a past life i have done things with node.js, libuv, hapi.js, wasm/wasi, and grpc

autopilotpattern/postgres 14

Implementation of the Autopilot Pattern for Postgres

cjihrig/bcrypt.wasm 12

bcrypt in WebAssembly

cjihrig/artificial 9

Inject fake HTTP request/response into an Express server

cjihrig/belly-button 9

The best source for lint

cjihrig/augmented-interval-tree 2

Augmented interval tree implementation with no dependencies

autopilotpattern/ghost 1

Implementation of the Autopilot Pattern for Ghost

cjihrig/borland 1

hapi plugin for working with toolbag

cjihrig/625 0

Babel 6 convenience wrapper

cjihrig/accept 0

HTTP Accept-* headers parsing

cjihrig/address 0

Validate email addresses

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentaws-amplify/amplify-cli

fix(amplify-cli-core): add service mapping FFs

@jhockett rebased. Docs PR at https://github.com/aws-amplify/docs/pull/3596

cjihrig

comment created time in a day

PR opened aws-amplify/docs

Add region mapping feature flags

Issue #, if available: https://github.com/aws-amplify/amplify-cli/pull/7024

Description of changes: This commit documents a new set of feature flags related to region mapping.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

+126 -1

0 comment

1 changed file

pr created time in a day

create barnchcjihrig/docs

branch : mapping

created branch time in a day

push eventcjihrig/amplify-cli

Colin Ihrig

commit sha 3b00f568800cd942a076176cee9a402dc75dcbb1

fix(cli): add --no-verify-access to lerna publish (#7038) Refs: https://github.com/lerna/lerna/issues/2788 Co-authored-by: Colin Ihrig <colihrig@amazon.com>

view details

Ghosh

commit sha 0057b8ac85821ef0a13dcb58bdb314783a6432f8

chore: manually bump up minor versions to avoid git tag conflicts

view details

Ghosh

commit sha 1bb30e8ad183e011afa96a1379ad3e48b973d63a

chore: manually bumpup minor versions to avoid git tag conflicts

view details

aws-amplify-bot

commit sha 270df23a63dca6fe11422383db3d72d7f0b99fea

chore(release): Publish [ci skip] - amplify-app@2.23.0 - amplify-appsync-simulator@1.26.1 - amplify-category-analytics@2.21.1 - amplify-category-api@2.31.1 - amplify-category-auth@2.30.1 - amplify-category-function@2.31.1 - amplify-category-hosting@2.7.1 - amplify-category-notifications@2.19.1 - amplify-category-predictions@2.8.1 - amplify-category-storage@2.11.1 - amplify-category-xr@2.8.1 - amplify-cli-core@1.19.1 - @aws-amplify/cli@4.47.1 - amplify-console-hosting@1.8.1 - amplify-console-integration-tests@1.5.1 - amplify-container-hosting@1.3.1 - amplify-dotnet-function-template-provider@1.5.1 - amplify-dynamodb-simulator@1.18.1 - amplify-e2e-core@1.17.1 - amplify-e2e-tests@2.38.1 - amplify-frontend-android@2.15.1 - amplify-frontend-flutter@0.4.1 - amplify-frontend-ios@2.19.1 - amplify-frontend-javascript@2.21.1 - amplify-go-function-runtime-provider@1.7.1 - amplify-graphql-types-generator@2.8.1 - amplify-java-function-runtime-provider@1.7.1 - amplify-migration-tests@2.21.1 - amplify-nodejs-function-template-provider@1.6.1 - amplify-provider-awscloudformation@4.42.0 - amplify-python-function-runtime-provider@1.7.1 - amplify-util-import@1.4.1 - amplify-util-mock@3.30.1 - graphql-auth-transformer@6.24.1 - graphql-connection-transformer@4.21.1 - graphql-dynamodb-transformer@6.22.1 - graphql-elasticsearch-transformer@4.11.1 - graphql-function-transformer@2.5.1 - graphql-http-transformer@4.17.1 - graphql-key-transformer@2.23.1 - graphql-predictions-transformer@2.5.1 - graphql-relational-schema-transformer@2.17.1 - graphql-transformer-core@6.28.1 - graphql-transformers-e2e-tests@6.23.1 - graphql-versioned-transformer@4.17.1

view details

siegerts

commit sha eda0a3ad8bf5312df55e3c645253f5d844791ca0

chore(issue forms): update for deprecated fields and all textareas now being rich text editor-enabled (#7043)

view details

Kaustav Ghosh

commit sha 56907eb09a5c3ac464545ac437c2b738a4c004b4

feat: differ metric agent for admin generated stacks (#6978)

view details

Colin Ihrig

commit sha 08750a6f7f9e9326a81b5d45a7ef31bd9f30595f

fix(amplify-appsync-simulator): parse AWSTimestamp literals as Ints (#6979)

view details

siegerts

commit sha ee68b9606ff7a7f7f43ec47570a6370241a4d2e5

chore: Add GitHub Action to update issues/PRs referenced in published releases (#7000)

view details

Ammar

commit sha 139f44d3ecc3bbb5d4f25d24e8d2782a34eae281

fix: assign group env from source (#7006)

view details

Colin Ihrig

commit sha bb8f8e6c03baa99748d1b594fea4d18a947cac5c

fix(amplify-e2e-core): update source of truth for supported regions (#6988)

view details

Colin Ihrig

commit sha 3e88993a4a91794690099205580cf0ae935eff40

fix(cli): display gql schema errors on failed push (#7001)

view details

akshbhu

commit sha 7d26e2905d94cdfd5ae7bf641b032440366b1816

fix: adding resourceName to lambda trigger policy (#6980)

view details

Aditya Sharma

commit sha 2c972a94eb468c191e4b67f1f425e356ab33094c

fix(graphql-key-transformer): optional id field if id not primary key (#7005)

view details

Ammar

commit sha dc1d256edecec2009ca6649da0995be571886b03

feat: added new fields to usage data (#6911)

view details

John Hockett

commit sha ebdaa5981004b86e2f84b94d25fc84b25325ee18

fix(amplify-provider-awscloudformation): throw helpful error if profile is missing keys (#7017) Co-authored-by: nikhname

view details

Raj Rajhans

commit sha 07525b3b4361f5af673687bc265e97ceba359a13

fix(amplify-provider-awscloudformation): fix tests failing due to system-config-manager.js (#7053)

view details

akshbhu

commit sha 18c9a310fd6fbc25c01df40dfd7d0ad731da17d1

fix: fixes e2e bug (#7067) * fix: fixes e2e bug * fix: address comments

view details

akshbhu

commit sha bdf252b9453906b5075f2592159e026b498a3c48

fix: added project to angular (#7069)

view details

SwaySway

commit sha 2f4df389a6728f011652beb735f405bb69d68ff3

test(amplify-e2e-core): increase timeout for storage add increase timeout for addDDBWithGSIWithSettings

view details

SwaySway

commit sha efc35cd047dd8d938be3d26ae4860eaef0585879

test(amplify-e2e-core): remove timeout setting for storage add

view details

push time in a day

Pull request review commentaws-amplify/amplify-cli

fix(amplify-category-auth): update front end config on pull

 export const getPostUpdateAuthMetaUpdater = (context: any) => async (resourceNam   return resourceName; }; -function getFrontendConfig(authParameters: AuthParameters) {-  const loginMechanisms = (authParameters?.aliasAttributes || []).map((att: string) => att.toUpperCase());+export function getFrontendConfig(authParameters: AuthParameters) {   const verificationMechanisms = (authParameters?.autoVerifiedAttributes || []).map((att: string) => att.toUpperCase());+  const loginMechanisms: Set<string> = new Set<string>();+  (authParameters?.aliasAttributes ?? []).forEach(it => loginMechanisms.add(it.toUpperCase()));++  // backwards compatibility+  if (authParameters?.usernameAttributes && authParameters?.usernameAttributes.length > 0) {+    authParameters.usernameAttributes[0].split(',').forEach(it => loginMechanisms.add(it.trim().toUpperCase()));+  }    if (authParameters.authProviders) {     authParameters.authProviders.forEach((provider: string) => {       let name = authProviderList.find(it => it.value === provider)?.name;        if (name) {-        loginMechanisms.push(name.toUpperCase());+        loginMechanisms.add(name.toUpperCase());       }     });   } +  if (loginMechanisms.size == 0) {
  if (loginMechanisms.size === 0) {
lazpavel

comment created time in a day

Pull request review commentaws-amplify/amplify-cli

fix(amplify-category-auth): update front end config on pull

 export const getPostUpdateAuthMetaUpdater = (context: any) => async (resourceNam   return resourceName; }; -function getFrontendConfig(authParameters: AuthParameters) {-  const loginMechanisms = (authParameters?.aliasAttributes || []).map((att: string) => att.toUpperCase());+export function getFrontendConfig(authParameters: AuthParameters) {   const verificationMechanisms = (authParameters?.autoVerifiedAttributes || []).map((att: string) => att.toUpperCase());+  const loginMechanisms: Set<string> = new Set<string>();+  (authParameters?.aliasAttributes ?? []).forEach(it => loginMechanisms.add(it.toUpperCase()));++  // backwards compatibility+  if (authParameters?.usernameAttributes && authParameters?.usernameAttributes.length > 0) {
  if (authParameters?.usernameAttributes && authParameters.usernameAttributes.length > 0) {
lazpavel

comment created time in a day

Pull request review commentaws-amplify/amplify-cli

fix(amplify-category-auth): update front end config on pull

 function attachContextExtensions(context, packageLocation) {     }   } }++// projects created before 5.2.0 didn't populate frontend config in amplify-meta.json+// this method ensures frontend config settings are added to amplify meta on pull as they exist in parameters.json+// https://app.asana.com/0/1200585422384147/1200740448709567/f+export function ensureAmplifyMetaFrontendConfig(amplifyMeta?) {+  if (!amplifyMeta) {+    amplifyMeta = stateManager.getMeta();+  }++  if (!amplifyMeta.auth) return;++  const authResourceName = Object.keys(amplifyMeta.auth).find((key: any) => {+    return amplifyMeta.auth[key].service === 'Cognito';+  });++  if (!authResourceName) return;++  const authParameters: AuthParameters = stateManager.getResourceParametersJson(undefined, 'auth', authResourceName);+  const frontendAuthConfig = getFrontendConfig(authParameters);++  amplifyMeta.auth[authResourceName].frontendAuthConfig = amplifyMeta.auth[authResourceName].frontendAuthConfig ?? {};
  amplifyMeta.auth[authResourceName].frontendAuthConfig ??= {};
lazpavel

comment created time in a day

Pull request review commentaws-amplify/amplify-cli

fix(amplify-category-auth): update front end config on pull

 import * as path from 'path'; import { getResourceOutputs } from './get-resource-outputs'; import sequential from 'promise-sequential'; import { stateManager } from 'amplify-cli-core';+import { AuthParameters } from 'amplify-category-auth';+import { getFrontendConfig } from 'amplify-category-auth';

These two imports can be combined.

lazpavel

comment created time in 5 days

Pull request review commentaws-amplify/amplify-cli

fix(amplify-category-auth): update front end config on pull

 export const getPostUpdateAuthMetaUpdater = (context: any) => async (resourceNam   return resourceName; }; -function getFrontendConfig(authParameters: AuthParameters) {-  const loginMechanisms = (authParameters?.aliasAttributes || []).map((att: string) => att.toUpperCase());+export function getFrontendConfig(authParameters: AuthParameters) {   const verificationMechanisms = (authParameters?.autoVerifiedAttributes || []).map((att: string) => att.toUpperCase());+  const loginMechanisms: Set<string> = new Set<string>();

Not a big deal, but you don't need Set<string> on both sides of the assignment. I would make this:

const loginMechanisms = new Set<string>();
lazpavel

comment created time in a day

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

create barnchcjihrig/webserial

branch : bindings

created branch time in 5 days

Pull request review commentaws-amplify/amplify-cli

feat: add @manytomany directive

+import { DirectiveWrapper, InvalidDirectiveError, TransformerPluginBase } from '@aws-amplify/graphql-transformer-core';+import {+  TransformerContextProvider,+  TransformerPrepareStepContextProvider,+  TransformerSchemaVisitStepContextProvider,+  TransformerTransformSchemaStepContextProvider,+  TransformerValidationStepContextProvider,+} from '@aws-amplify/graphql-transformer-interfaces';+import { DirectiveNode, FieldDefinitionNode, InterfaceTypeDefinitionNode, ObjectTypeDefinitionNode } from 'graphql';+import {+  blankObject,+  getBaseType,+  graphqlName,+  isListType,+  makeArgument,+  makeDirective,+  makeField,+  makeNamedType,+  makeValueNode,+  toUpper,+  wrapNonNull,+} from 'graphql-transformer-common';+import { ManyToManyDirectiveConfiguration, ManyToManyRelation } from './types';+import { validateModelDirective } from './utils';+import { makeQueryConnectionWithKeyResolver, updateTableForConnection } from './resolvers';+import { ensureHasManyConnectionField, extendTypeWithConnection, getPartitionKeyField } from './schema';+import { ModelTransformer } from '@aws-amplify/graphql-model-transformer';+import { IndexTransformer } from '@aws-amplify/graphql-index-transformer';+import { HasOneTransformer } from './graphql-has-one-transformer';++const directiveName = 'manyToMany';+const defaultLimit = 100;+const directiveDefinition = `+  directive @${directiveName}(relationName: String!, limit: Int = ${defaultLimit}) on FIELD_DEFINITION+`;++export class ManyToManyTransformer extends TransformerPluginBase {+  private relationMap = new Map<string, ManyToManyRelation>();+  private directiveList: ManyToManyDirectiveConfiguration[] = [];+  private modelTransformer: ModelTransformer;+  private indexTransformer: IndexTransformer;+  private hasOneTransformer: HasOneTransformer;++  constructor(modelTransformer: ModelTransformer, indexTransformer: IndexTransformer, hasOneTransformer: HasOneTransformer) {+    super('amplify-many-to-many-transformer', directiveDefinition);+    this.modelTransformer = modelTransformer;+    this.indexTransformer = indexTransformer;+    this.hasOneTransformer = hasOneTransformer;+  }++  field = (+    parent: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode,+    definition: FieldDefinitionNode,+    directive: DirectiveNode,+    context: TransformerSchemaVisitStepContextProvider,+  ): void => {+    const directiveWrapped = new DirectiveWrapper(directive);+    const args = directiveWrapped.getArguments({+      directiveName,+      object: parent as ObjectTypeDefinitionNode,+      field: definition,+      directive,+      limit: defaultLimit,+    } as ManyToManyDirectiveConfiguration);++    validateModelDirective(args);+    args.connectionFields = [];++    if (!isListType(definition.type)) {+      throw new InvalidDirectiveError(`@${directiveName} must be used with a list.`);+    }++    addDirectiveToRelationMap(this.relationMap, args);

No strong reason it couldn't be one, but my reasoning was:

  1. It makes code easier to move around if it's not an instance method.
  2. I didn't want to make it part of the public API. Our transpilation process doesn't actually make private things private as far as I can tell.
cjihrig

comment created time in 5 days

PullRequestReviewEvent
PullRequestReviewEvent
PullRequestReviewEvent

push eventcjihrig/amplify-cli

Colin Ihrig

commit sha 20b404c7fd59bef81d50c5384fcead4391f6b80f

feat: add @manyToMany directive

view details

push time in 5 days

PR opened aws-amplify/amplify-cli

Reviewers
feat: add @manytomany directive

Description of changes

This PR adds a new @manyToMany directive.

Note to simplify reviewing this, the first six of the seven commits are #8035, so only the last commit needs reviewed here.

Issue #, if available

Description of how you validated changes

Manual, unit, and E2E testing.

Checklist

  • [x] PR description included
  • [x] yarn test passes
  • [x] Tests are changed or added
  • [ ] Relevant documentation is changed or added (and PR referenced)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

+12194 -342

0 comment

39 changed files

pr created time in 5 days

push eventcjihrig/amplify-cli

John Hockett

commit sha 50f07efcf7c5663b6fd123d300ec473377d03abe

Revert "feat(amplify-category-auth): add auth verification mechanisms to frontend config (#8037) (#8093)" (#8158) This reverts commit b8949b2b519f6b6a26bcab3596c051acec51e077.

view details

Josue Ruiz

commit sha d43836fba872e741d0cbf621115f3849cd6cd6de

Revert "test: fix version gating e2e test deletion (#8156)" (#8169) This reverts commit c032a88bacc024a7bcd4fbb3d88bc0559188a144.

view details

Josue Ruiz

commit sha f5a92e3fcd288ba8f5eb48db62ccf02f6bb7d03d

Revert "feat: version blocking for CLI (#7834)" (#8170) This reverts commit 045ef3b83598c287b7e34bb5d1487bbe026026af.

view details

aws-amplify-bot

commit sha 2eeb994768671090801c28c07f744d9082810cf0

chore(release): Publish [ci skip] - amplify-app@3.0.11 - amplify-category-analytics@2.21.20 - amplify-category-api@2.31.22 - amplify-category-auth@2.37.0 - amplify-category-function@2.34.6 - amplify-category-hosting@2.7.20 - amplify-category-interactions@2.6.4 - amplify-category-predictions@2.9.11 - amplify-category-storage@2.12.8 - amplify-category-xr@2.8.20 - amplify-cli-core@1.28.0 - @aws-amplify/cli@5.6.0 - amplify-console-hosting@1.9.11 - amplify-console-integration-tests@1.8.8 - amplify-container-hosting@1.3.22 - amplify-dotnet-function-template-provider@1.5.20 - amplify-dynamodb-simulator@1.19.11 - amplify-e2e-core@1.26.0 - amplify-e2e-tests@2.49.0 - amplify-frontend-ios@2.20.13 - amplify-frontend-javascript@2.24.0 - amplify-go-function-runtime-provider@1.9.3 - @aws-amplify/graphql-index-transformer@0.3.2 - @aws-amplify/graphql-model-transformer@0.6.2 - @aws-amplify/graphql-relational-transformer@0.2.1 - @aws-amplify/graphql-searchable-transformer@0.6.0 - amplify-java-function-runtime-provider@1.8.13 - amplify-migration-tests@3.1.8 - amplify-nodejs-function-runtime-provider@1.6.10 - amplify-nodejs-function-template-provider@1.6.20 - amplify-provider-awscloudformation@4.60.0 - amplify-python-function-runtime-provider@1.9.10 - amplify-util-headless-input@1.5.4 - amplify-util-import@1.5.11 - amplify-util-mock@3.34.4 - graphql-auth-transformer@6.24.21 - graphql-connection-transformer@4.21.21 - graphql-dynamodb-transformer@6.22.21 - graphql-elasticsearch-transformer@4.12.0 - graphql-function-transformer@2.5.20 - graphql-http-transformer@4.18.8 - graphql-key-transformer@2.23.21 - graphql-predictions-transformer@2.5.20 - graphql-transformer-core@6.29.6 - graphql-transformers-e2e-tests@6.26.2 - graphql-versioned-transformer@4.17.21

view details

Yathi

commit sha 856b029d69edb54825b5b548210feaa0a8a922da

build: update proxy agent (#8187) update proxy-agent to 5.0.0

view details

John Corser

commit sha f3044eeff21fa900da5aac613db87502526bc165

feat(amplify-category-auth): use usernameAttributes by default, FF for aliasAttributes (#8188) * feat(amplify-category-auth): use usernameAttributes by default, FF for aliasAttributes * feat(amplify-category-auth): use usernameAttributes by default, FF for aliasAttributes * chore(amplify-category-auth): improve code style * chore: use dynamic banner message * chore: remove unused import * feat(amplify-category-auth): add warning banner to amplify remove auth

view details

lazpavel

commit sha 326fc5386d87542081ac70cbfa821bf98e501090

fix(graphql-model-transformer): @model conflict resolution

view details

lazpavel

commit sha 32bf76d70306ecb685c73f2a33a7bb496275b632

Update packages/amplify-graphql-model-transformer/package.json Co-authored-by: Colin Ihrig <cjihrig@gmail.com>

view details

lazpavel

commit sha 98686161b787b61e7c2042fbc4de3ef7599f4f76

Update packages/amplify-graphql-model-transformer/src/graphql-model-transformer.ts Co-authored-by: Colin Ihrig <cjihrig@gmail.com>

view details

lazpavel

commit sha bd81e74e32dfa6b6b033816071a878093c995cfb

chore(graphql-model-transformer): addressed PR feedback

view details

lazpavel

commit sha 9c56edbb534549089d32cd77018b328581d24204

chore(graphql-model-transformer): addressed PR feedback

view details

lazpavel

commit sha c1bc4f2398ac3f790980501026611038a0fbd40b

chore(graphql-model-transformer): check added to avoid warning logs

view details

Colin Ihrig

commit sha c37f0bab1ba31e1532f7b87358ee3d270215b251

feat: add @manyToMany directive

view details

push time in 5 days

PublicEvent

release cjihrig/webserial

v0.2.0

released time in 6 days

created tagcjihrig/webserial

tagv0.2.0

Web Serial API for Node.js

created time in 6 days