Amplify add env returns "Cannot read property 'serviceType' of undefined"

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

How did you install the Amplify CLI?
npm -g
If applicable, what version of Node.js are you using?
14.18.1
Amplify CLI Version
7.5.2
What operating system are you using?
OSX 12.0.1
Amplify Categories
Not applicable
Amplify Commands
env
Describe the bug
I've been prompted to upgrade my GraphQL API during a recent api update, and to test it by adding an environment.
Running amplify env add errors out with Cannot read property 'serviceType' of undefined as does amplify status
❯ amplify env add
Note: It is recommended to run this command from the root of your app directory
? Enter a name for the environment test
Using default provider  awscloudformation
? Select the authentication method you want to use: AWS profile

For more information on AWS Profiles, see:
https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

? Please choose the profile you want to use default
Adding backend environment test to AWS Amplify app: {amplifyAppId}
⠧ Initializing project in the cloud...

CREATE_IN_PROGRESS amplify-{project}-test-{accountId} AWS::CloudFormation::Stack Thu Nov 25 2021 23:20:41 GMT+0000 (Greenwich Mean Time) User Initiated
CREATE_IN_PROGRESS DeploymentBucket             AWS::S3::Bucket            Thu Nov 25 2021 23:20:45 GMT+0000 (Greenwich Mean Time)
CREATE_IN_PROGRESS AuthRole                     AWS::IAM::Role             Thu Nov 25 2021 23:20:45 GMT+0000 (Greenwich Mean Time)
CREATE_IN_PROGRESS UnauthRole                   AWS::IAM::Role             Thu Nov 25 2021 23:20:45 GMT+0000 (Greenwich Mean Time)
CREATE_IN_PROGRESS UnauthRole                   AWS::IAM::Role             Thu Nov 25 2021 23:20:46 GMT+0000 (Greenwich Mean Time) Resource creation Initiated
CREATE_IN_PROGRESS AuthRole                     AWS::IAM::Role             Thu Nov 25 2021 23:20:46 GMT+0000 (Greenwich Mean Time) Resource creation Initiated
⠇ Initializing project in the cloud...

CREATE_IN_PROGRESS DeploymentBucket AWS::S3::Bucket Thu Nov 25 2021 23:20:47 GMT+0000 (Greenwich Mean Time) Resource creation Initiated
⠸ Initializing project in the cloud...

CREATE_COMPLETE UnauthRole AWS::IAM::Role Thu Nov 25 2021 23:21:00 GMT+0000 (Greenwich Mean Time)
CREATE_COMPLETE AuthRole   AWS::IAM::Role Thu Nov 25 2021 23:21:00 GMT+0000 (Greenwich Mean Time)
⠧ Initializing project in the cloud...

CREATE_COMPLETE DeploymentBucket             AWS::S3::Bucket            Thu Nov 25 2021 23:21:08 GMT+0000 (Greenwich Mean Time)
CREATE_COMPLETE amplify-{project}-test-{accountId} AWS::CloudFormation::Stack Thu Nov 25 2021 23:21:10 GMT+0000 (Greenwich Mean Time)
✔ Successfully created initial AWS cloud resources for deployments.
✔ Initialized provider successfully.
✖ There was an error initializing your environment.
TypeError: Cannot read property 'serviceType' of undefined
    at getResourcesToBeCreated (/Users/alex/.nvm/versions/node/v14.18.1/lib/node_modules/@aws-amplify/cli/src/extensions/amplify-helpers/resource-status-data.ts:220:65)
    at AmplifyToolkit.getResourceStatus [as _getResourceStatus] (/Users/alex/.nvm/versions/node/v14.18.1/lib/node_modules/@aws-amplify/cli/src/extensions/amplify-helpers/resource-status-data.ts:117:35)
    at initEnv (/Users/alex/.nvm/versions/node/v14.18.1/lib/node_modules/@aws-amplify/cli/node_modules/amplify-category-function/src/index.ts:118:108)
    at /Users/alex/.nvm/versions/node/v14.18.1/lib/node_modules/@aws-amplify/cli/src/initialize-env.ts:45:52
    at /Users/alex/.nvm/versions/node/v14.18.1/lib/node_modules/@aws-amplify/cli/node_modules/promise-sequential/index.js:16:18
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

Expected behavior
An additional environment should be added
Reproduction steps
I've not yet found a way to reproduce this despite spending a few hours on it.
The only possibility I can think of (given it's been prompted by a GraphQL upgrade) is to create a v1 GraphQL, then create a new environment perhaps? But I'm not sure how best to accomplish that.
GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line
2021-11-25T23:41:38.012Z|info : amplify env core add
2021-11-25T23:41:43.000Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileConfig(["default"])
2021-11-25T23:41:43.001Z|info : amplify-provider-awscloudformation.system-config-manager.getProfiledAwsConfig.profileConfig([{"region":"eu-west-1","output":"table","s3":"","max_concurrent_requests":"20","max_queue_size":"10000","multipart_threshold":"64MB","multipart_chunksize":"16MB","signature_version":"s3v4"}])
2021-11-25T23:41:43.001Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileCredentials(["default"])
2021-11-25T23:41:57.897Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileConfig(["default"])
2021-11-25T23:41:57.898Z|info : amplify-provider-awscloudformation.system-config-manager.getProfiledAwsConfig.profileConfig([{"region":"eu-west-1","output":"table","s3":"","max_concurrent_requests":"20","max_queue_size":"10000","multipart_threshold":"64MB","multipart_chunksize":"16MB","signature_version":"s3v4"}])
2021-11-25T23:41:57.898Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileCredentials(["default"])
2021-11-25T23:41:57.903Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileConfig(["default"])
2021-11-25T23:41:57.903Z|info : amplify-provider-awscloudformation.system-config-manager.getProfiledAwsConfig.profileConfig([{"region":"eu-west-1","output":"table","s3":"","max_concurrent_requests":"20","max_queue_size":"10000","multipart_threshold":"64MB","multipart_chunksize":"16MB","signature_version":"s3v4"}])
2021-11-25T23:41:57.903Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileCredentials(["default"])
2021-11-25T23:41:57.909Z|info : amplify-provider-awscloudformation.amplify-service-permission-check.checkAmplifyServiceIAMPermission.amplifyClient.listApps([])
2021-11-25T23:41:58.212Z|info : amplify-provider-awscloudformation.amplify-service-manager.init.amplifyClient.listApps([{"maxResults":25}])
2021-11-25T23:41:58.339Z|info : amplify-provider-awscloudformation.amplify-service-manager.init.amplifyClient.getBackendEnvironment([{"appId":"[***]","environmentName":"[***]upg"}])
2021-11-25T23:41:58.446Z|error : amplify-provider-awscloudformation.amplify-service-manager.init.amplifyClient.getBackendEnvironment([{"appId":"[***]","environmentName":"[***]upg"}])
NotFoundException: BackendEnvironment testupg does not exist.
2021-11-25T23:41:58.447Z|info : amplify-provider-awscloudformation.amplify-service-manager.init.amplifyClient.getBackendEnvironment([{"appId":"[***]","environmentName":"[***]upg","stackName":"[***]ify-[***]-[***]upg-[***]","deploymentArtifacts":"amplify-[***]-testupg-[***]-deployment"}])
2021-11-25T23:41:58.568Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileConfig(["default"])
2021-11-25T23:41:58.568Z|info : amplify-provider-awscloudformation.system-config-manager.getProfiledAwsConfig.profileConfig([{"region":"eu-west-1","output":"table","s3":"","max_concurrent_requests":"20","max_queue_size":"10000","multipart_threshold":"64MB","multipart_chunksize":"16MB","signature_version":"s3v4"}])
2021-11-25T23:41:58.568Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileCredentials(["default"])
2021-11-25T23:41:58.575Z|info : amplify-provider-awscloudformation.aws-cfn.cfnModel.createStack([{"StackName":"[***]ify-[***]-[***]upg-[***]","Capabilities":["CAPABILITY_NAMED_IAM","CAPABILITY_AUTO_EXPAND"],"TemplateBody":"{\"AWSTemplateFormatVersion\":\"2010-09-09\",\"Description\":\"{\\\"createdOn\\\":\\\"Mac\\\",\\\"createdBy\\\":\\\"Amplify\\\",\\\"createdWith\\\":\\\"7.5.2\\\",\\\"stackType\\\":\\\"root\\\",\\\"metadata\\\":{}}\",\"Parameters\":{\"[***]cketName\":{\"Description\":\"Name of the common deployment bucket provided by the parent stack\",\"Type\":\"String\",\"Default\":\"DeploymentBucket\"},\"[***]eName\":{\"Type\":\"String\",\"Default\":\"AuthRoleName\"},\"[***]leName\":{\"Type\":\"String\",\"Default\":\"UnauthRoleName\"}},\"Resources\":{\"DeploymentBucket\":{\"Type\":\"AWS::S3::Bucket\",\"DeletionPolicy\":\"Retain\",\"Properties\":{\"BucketName\":{\"Ref\":\"DeploymentBucketName\"},\"BucketEncryption\":{\"ServerSideEncryptionConfiguration\":[{\"ServerSideEncryptionByDefault\":{\"SSEAlgorithm\":\"AES256\"}}]}}},\"AuthRole\":{\"Type\":\"AWS::IAM::Role\",\"Properties\":{\"RoleName\":{\"Ref\":\"AuthRoleName\"},\"AssumeRolePolicyDocument\":{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":{\"Federated\":\"cognito-identity.amazonaws.com\"},\"Action\":\"sts:AssumeRoleWithWebIdentity\"}]}}},\"UnauthRole\":{\"Type\":\"AWS::IAM::Role\",\"Properties\":{\"RoleName\":{\"Ref\":\"UnauthRoleName\"},\"AssumeRolePolicyDocument\":{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":{\"Federated\":\"cognito-identity.amazonaws.com\"},\"Action\":\"sts:AssumeRoleWithWebIdentity\"}]}}}},\"Outputs\":{\"Region\":{\"Description\":\"CloudFormation provider root stack Region\",\"Value\":{\"Ref\":\"AWS::Region\"},\"Export\":{\"Name\":{\"Fn::Sub\":\"${AWS::StackName}-Region\"}}},\"StackName\":{\"Description\":\"CloudFormation provider root stack ID\",\"Value\":{\"Ref\":\"AWS::StackName\"},\"Export\":{\"Name\":{\"Fn::Sub\":\"${AWS::StackName}-StackName\"}}},\"StackId\":{\"Description\":\"CloudFormation provider root stack name\",\"Value\":{\"Ref\":\"AWS::StackId\"},\"Export\":{\"Name\":{\"Fn::Sub\":\"${AWS::StackName}-StackId\"}}},\"DeploymentBucketName\":{\"Description\":\"CloudFormation provider root stack deployment bucket name\",\"Value\":{\"Ref\":\"DeploymentBucketName\"},\"Export\":{\"Name\":{\"Fn::Sub\":\"${AWS::StackName}-DeploymentBucketName\"}}},\"AuthRoleArn\":{\"Value\":{\"Fn::GetAtt\":[\"AuthRole\",\"Arn\"]}},\"UnauthRoleArn\":{\"Value\":{\"Fn::GetAtt\":[\"UnauthRole\",\"Arn\"]}},\"AuthRoleName\":{\"Value\":{\"Ref\":\"AuthRole\"}},\"UnauthRoleName\":{\"Value\":{\"Ref\":\"UnauthRole\"}}}}","Parameters":[{"ParameterKey":"DeploymentBucketName","ParameterValue":"amplify-[***]-testupg-[***]-deployment"},{"ParameterKey":"AuthRoleName","ParameterValue":"amplify-[***]-testupg-[***]-authRole"},{"ParameterKey":"UnauthRoleName","ParameterValue":"amplify-[***]-testupg-[***]-unauthRole"}],"Tags":[{"Key":"[***]tack","Value":"prod"},{"Key":"[***]ication","Value":"[***]"}]}])
2021-11-25T23:41:58.834Z|info : amplify-provider-awscloudformation.aws-cfn.cfnModel.createStack([{"StackName":"[***]ify-[***]-[***]upg-[***]","Capabilities":["CAPABILITY_NAMED_IAM","CAPABILITY_AUTO_EXPAND"],"TemplateBody":"{\"AWSTemplateFormatVersion\":\"2010-09-09\",\"Description\":\"{\\\"createdOn\\\":\\\"Mac\\\",\\\"createdBy\\\":\\\"Amplify\\\",\\\"createdWith\\\":\\\"7.5.2\\\",\\\"stackType\\\":\\\"root\\\",\\\"metadata\\\":{}}\",\"Parameters\":{\"[***]cketName\":{\"Description\":\"Name of the common deployment bucket provided by the parent stack\",\"Type\":\"String\",\"Default\":\"DeploymentBucket\"},\"[***]eName\":{\"Type\":\"String\",\"Default\":\"AuthRoleName\"},\"[***]leName\":{\"Type\":\"String\",\"Default\":\"UnauthRoleName\"}},\"Resources\":{\"DeploymentBucket\":{\"Type\":\"AWS::S3::Bucket\",\"DeletionPolicy\":\"Retain\",\"Properties\":{\"BucketName\":{\"Ref\":\"DeploymentBucketName\"},\"BucketEncryption\":{\"ServerSideEncryptionConfiguration\":[{\"ServerSideEncryptionByDefault\":{\"SSEAlgorithm\":\"AES256\"}}]}}},\"AuthRole\":{\"Type\":\"AWS::IAM::Role\",\"Properties\":{\"RoleName\":{\"Ref\":\"AuthRoleName\"},\"AssumeRolePolicyDocument\":{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":{\"Federated\":\"cognito-identity.amazonaws.com\"},\"Action\":\"sts:AssumeRoleWithWebIdentity\"}]}}},\"UnauthRole\":{\"Type\":\"AWS::IAM::Role\",\"Properties\":{\"RoleName\":{\"Ref\":\"UnauthRoleName\"},\"AssumeRolePolicyDocument\":{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":{\"Federated\":\"cognito-identity.amazonaws.com\"},\"Action\":\"sts:AssumeRoleWithWebIdentity\"}]}}}},\"Outputs\":{\"Region\":{\"Description\":\"CloudFormation provider root stack Region\",\"Value\":{\"Ref\":\"AWS::Region\"},\"Export\":{\"Name\":{\"Fn::Sub\":\"${AWS::StackName}-Region\"}}},\"StackName\":{\"Description\":\"CloudFormation provider root stack ID\",\"Value\":{\"Ref\":\"AWS::StackName\"},\"Export\":{\"Name\":{\"Fn::Sub\":\"${AWS::StackName}-StackName\"}}},\"StackId\":{\"Description\":\"CloudFormation provider root stack name\",\"Value\":{\"Ref\":\"AWS::StackId\"},\"Export\":{\"Name\":{\"Fn::Sub\":\"${AWS::StackName}-StackId\"}}},\"DeploymentBucketName\":{\"Description\":\"CloudFormation provider root stack deployment bucket name\",\"Value\":{\"Ref\":\"DeploymentBucketName\"},\"Export\":{\"Name\":{\"Fn::Sub\":\"${AWS::StackName}-DeploymentBucketName\"}}},\"AuthRoleArn\":{\"Value\":{\"Fn::GetAtt\":[\"AuthRole\",\"Arn\"]}},\"UnauthRoleArn\":{\"Value\":{\"Fn::GetAtt\":[\"UnauthRole\",\"Arn\"]}},\"AuthRoleName\":{\"Value\":{\"Ref\":\"AuthRole\"}},\"UnauthRoleName\":{\"Value\":{\"Ref\":\"UnauthRole\"}}}}","Parameters":[{"ParameterKey":"DeploymentBucketName","ParameterValue":"amplify-[***]-testupg-[***]-deployment"},{"ParameterKey":"AuthRoleName","ParameterValue":"amplify-[***]-testupg-[***]-authRole"},{"ParameterKey":"UnauthRoleName","ParameterValue":"amplify-[***]-testupg-[***]-unauthRole"}],"Tags":[{"Key":"[***]tack","Value":"prod"},{"Key":"[***]ication","Value":"[***]"}]}])
2021-11-25T23:42:03.843Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]ify-[***]-[***]upg-[***]"}])
2021-11-25T23:42:03.996Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]rmation:eu-[***]st-[***]53:stack/[***]ify-[***]-[***]upg-[***]/[***]2d50-[***]49-[***]ec-[***]4c-[***]025b7"}])
2021-11-25T23:42:08.839Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]ify-[***]-[***]upg-[***]"}])
2021-11-25T23:42:08.988Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]rmation:eu-[***]st-[***]53:stack/[***]ify-[***]-[***]upg-[***]/[***]2d50-[***]49-[***]ec-[***]4c-[***]025b7"}])
2021-11-25T23:42:13.841Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]ify-[***]-[***]upg-[***]"}])
2021-11-25T23:42:14.008Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]rmation:eu-[***]st-[***]53:stack/[***]ify-[***]-[***]upg-[***]/[***]2d50-[***]49-[***]ec-[***]4c-[***]025b7"}])
2021-11-25T23:42:18.841Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]ify-[***]-[***]upg-[***]"}])
2021-11-25T23:42:18.999Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]rmation:eu-[***]st-[***]53:stack/[***]ify-[***]-[***]upg-[***]/[***]2d50-[***]49-[***]ec-[***]4c-[***]025b7"}])
2021-11-25T23:42:23.840Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]ify-[***]-[***]upg-[***]"}])
2021-11-25T23:42:23.993Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]rmation:eu-[***]st-[***]53:stack/[***]ify-[***]-[***]upg-[***]/[***]2d50-[***]49-[***]ec-[***]4c-[***]025b7"}])
2021-11-25T23:42:28.842Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]ify-[***]-[***]upg-[***]"}])
2021-11-25T23:42:28.999Z|info : amplify-provider-awscloudformation.aws-cfn.getStackEvents.cfnModel.describeStackEvents([{"StackName":"[***]rmation:eu-[***]st-[***]53:stack/[***]ify-[***]-[***]upg-[***]/[***]2d50-[***]49-[***]ec-[***]4c-[***]025b7"}])
2021-11-25T23:42:38.435Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileConfig(["default"])
2021-11-25T23:42:38.436Z|info : amplify-provider-awscloudformation.system-config-manager.getProfiledAwsConfig.profileConfig([{"region":"eu-west-1","output":"table","s3":"","max_concurrent_requests":"20","max_queue_size":"10000","multipart_threshold":"64MB","multipart_chunksize":"16MB","signature_version":"s3v4"}])
2021-11-25T23:42:38.437Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileCredentials(["default"])
2021-11-25T23:42:38.448Z|info : amplify-provider-awscloudformation.attach-backend.storeCurrentCloudBackend.s3.uploadFile([{"Key":"[***]rent-[***]ud-[***]d.zip"}])
2021-11-25T23:42:38.455Z|info : amplify-provider-awscloudformation.aws-s3.uploadFile.s3.upload([{"Key":"[***]rent-[***]ud-[***]d.zip","Bucket":"[***]ify-[***]-[***]upg-[***]-[***]ment"}])
2021-11-25T23:42:58.295Z|info : amplify-provider-awscloudformation.attach-backend.uploadFile.s3.uploadFile([{"Key":"[***]ify-[***]json"}])
2021-11-25T23:42:58.299Z|info : amplify-provider-awscloudformation.aws-s3.uploadFile.s3.putObject([{"Key":"[***]ify-[***]json","Bucket":"[***]ify-[***]-[***]upg-[***]-[***]ment"}])
2021-11-25T23:42:58.468Z|info : amplify-provider-awscloudformation.attach-backend.uploadFile.s3.uploadFile([{"Key":"[***]end-[***].json"}])
2021-11-25T23:42:58.469Z|info : amplify-provider-awscloudformation.aws-s3.uploadFile.s3.putObject([{"Key":"[***]end-[***].json","Bucket":"[***]ify-[***]-[***]upg-[***]-[***]ment"}])
2021-11-25T23:42:58.667Z|info : amplify-provider-awscloudformation.aws-s3.deleteDirectory.s3.getAllObjectVersions([{"BucketName":"[***]ify-[***]-[***]upg-[***]-[***]ment"}])
2021-11-25T23:42:58.668Z|info : amplify-provider-awscloudformation.aws-s3.getAllObjectKey.s3.listObjectVersions([{"Bucket":"[***]ify-[***]-[***]upg-[***]-[***]ment","Prefix":"hooks/"}])

Additional information
I'm currently a bit stuck as I can't create a new environment to check if the GraphQL upgrade breaks anything!
Attempts to re-add the environment after the first add results in:
❯ amplify env add
Note: It is recommended to run this command from the root of your app directory
? Enter a name for the environment testupg
Using default provider  awscloudformation
⠸ Initializing your environment: testupgCould not initialize 'testupg': Cannot read property 'serviceType' of undefined

(this was run from the git root)
Attempted reverting all the way back to CLI 7.3.0 but hitting exactly the same error. Couldn't go to <7 due to cli.json blocks.

hi @alexhouse - can you try the instructions that @kaustavghosh06 provided here: https://github.com/aws-amplify/amplify-cli/issues/9025 the error seems to be very similar.

hi @alexhouse - can you try the instructions that @kaustavghosh06 provided here: #9025 the error seems to be very similar.

You genius. I spent about two hours yesterday just trying different CLI versions & constantly googling different phrases to try and find anyone with the same issue. Apparently I didn't use exactly the right phrases!
Took me another half hour combing through my backend-config.json thinking there was nothing wrong until I decided I couldn't trust my manual process so came up with this stupid script that immediately found the issue:
config = require('./backend-config.json');
for (category in config) {
  console.debug(`Checking ${category}...`);
  for (mod in config[category]) {
    if ('dependsOn' in config[category][mod]) {
      for (dependency of config[category][mod].dependsOn) {
        console.debug(`-> ${mod} depends on ${dependency.category}/${dependency.resourceName}`, dependency.resourceName in config[dependency.category]);
      }
    }
  }
}

Turns out that indeed one of my functions depended on a lambda layer that had been deleted long ago. Removed that, tidied up some duplicate GraphQL dependencies (with very slightly different attributes) and bingo bango, you've solved my soon-to-be-baldness.
Thanks @renebrandel!


Generic HPACK 5.14 and 5.15 tests are wrong

As per the http2 spec section 4.3.1 the only way to resize a dynamic table is using the SETTINGS_HEADER_TABLE_SIZE setting. But the HPACK 5.14, and 5.15 tests arbitrarily resize their encoder, resulting in a decoder resize at the peer side. This does not seem to be allowed/mentioned as a way to resize the encoder/decoder in the spec.

I could be wrong, since there's always an initial settings frame + ACK, it would make sense the peer is allowed to change the encoder size to a value lower than the default size.
The server connection preface consists of a potentially empty [SETTINGS](https://datatracker.ietf.org/doc/html/rfc9113#SETTINGS) frame ([Section 6.5](https://datatracker.ietf.org/doc/html/rfc9113#SETTINGS)) that MUST be the first frame the server sends in the HTTP/2 connection.


docs: deno fmt list of files & how they are matched

This would describe to users at a glance what file types are supported and how the formatter matches those file types.
I do not know if this list is correct, but I came to this page expecting this information to be shared.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I performed this update from the GitHub UI and haven't touched the files triggering the fmt --check errors. Is it okay to be merged by an admin or do I need to pull everything locally and merge main in?


UI breaks with nginx reverse proxy

Using apollo-server 0.3.3 with an Nginx reverse proxy I get the following behaviour when I access the UI by the reverse proxy (direct access works fine, the reverse proxy is also working):
"\r\n<title>405 Not Allowed</title>\r\n\r\n
405 Not Allowed
\r\n
nginx/1.11.13\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"

I am using graphiql-express like the following:
const { apolloExpress, graphiqlExpress } = require('apollo-server')
// ...
const app = express()

app.use(cors({origin: true, credentials: true}))
app.use('/graphql',
  bodyParser.json(),
  apolloExpress({
    schema,
    context: {}
  })
)
app.use('/graphiql', graphiqlExpress({
  endpointURL: '/graphql'
}))

Is there anything on the graphiqlExpress configuration that  I need to pass for it to accept the proxy?

sounds like the requests are forwared as GET and not POST.
anyway, apollo-server 0.3.3 is pretty old now, you should really upgrade to graphql-server-express

Yeah I just realized that today . Will migrate and check it . Thanks for the response

@DxCx  I updated, it is not a Method missdirection but maybe something else, anyway thanks for the input!


Bender generated schema does not contain the "id" field when not imported.

When built manually, bender generated schema does not contain the "id" field and therefore web form and table does not work.

Fixed in 'tiz-small-fixes` branch


Az scan set kv access policy

@cjfarrelly @rootik

@VaclavK let's park this for today, I will address Colin's valid concerns - got a plan for it :)
I will commit some code to the module today to deal with that in a very clean way, then you can refactor your function.

@djfr @rootik @cjfarrelly should we finalize/sign off the approach here?

@djfr
@cjfarrelly  and @rootik , considering the PROD level KV access policy discussed yesterday, gentle ping re this

We have two options here:

Just complete this PR, and tag this as technical debt
Do the work required to start tagging the subscriptions with meta tags so we do discovery there first, and then do this: However this requires the work to tag the subscriptions to be done now and be #1 priority, we are waiting on the configuration management roll out to do the DNS test (once we can update the tool to write IP URIs, everything is just easy)

@cjfarrelly pick one and let's put this in place.

We have too much in the air this week to change priority, I would get this guy closed and pick it up again next week when we should be in a better place.

Folks, we made a decision to go down the meta RG for storing this type of information, so I'm closing down this PR.


fix: Use raw media type for octokit client to avoid 1MB content size limit

Fix for issue https://github.com/safedep/vet-action/issues/37


Paste / type your private key on view wallet and send transaction not working

button missing to submit

@thegarn What browser are you using?

tried it on firefox and chrome. The button just isnt there but was a
couple of days ago.
regards
Anthony
On 16/03/2016 10:06 a.m., Taylor Van Orden wrote:

@thegarn https://github.com/thegarn What browser are you using?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/kvhnuke/etherwallet/issues/28#issuecomment-197019135

also just tried on IE - same result: no decrypt button
On 16/03/2016 10:06 a.m., Taylor Van Orden wrote:

@thegarn https://github.com/thegarn What browser are you using?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/kvhnuke/etherwallet/issues/28#issuecomment-197019135

If the decrypt button isn't appearing then you aren't entering a private key. Be certain that whatever you are pasting matches one of these lengths:
encrypted: U2FsdGVkX18Wi8eFCEOYOth9feZiVsUsjUZvBe353zlgS0vrv71khVdW8mBy1XPnj7E6q7FMaYlDB4WLs4YJIAlrrWDydgMWWySx//4A4wV7Ucy3Aq1PkPkOwaWpIB/9eda5
unencrypted: c66b5346d5cf8c68c382a1abd5f71adc7b6db2abe6d86b05b171c724997f5bdc
See if using one of the above shows the decrypt button as well.

Sorry schoolboy error! was using my public key. Panic over!
Thanks for your help.
regards
Anthony
On 16/03/2016 3:53 p.m., Taylor Van Orden wrote:

If the decrypt button isn't appearing then you aren't entering a
private key. Be certain that whatever you are pasting matches one of
these lengths:
encrypted:
|U2FsdGVkX18Wi8eFCEOYOth9feZiVsUsjUZvBe353zlgS0vrv71khVdW8mBy1XPnj7E6q7FMaYlDB4WLs4YJIAlrrWDydgMWWySx//4A4wV7Ucy3Aq1PkPkOwaWpIB/9eda5|
unencrypted:
|c66b5346d5cf8c68c382a1abd5f71adc7b6db2abe6d86b05b171c724997f5bdc|
See if using one of the above shows the decrypt button as well.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/kvhnuke/etherwallet/issues/28#issuecomment-197127324


Correction for raw affiliation Haihe Laboratory of Sustainable Chemical Transformations, Tianjin 300192

Correction needed for raw affiliation Haihe Laboratory of Sustainable Chemical Transformations, Tianjin 300192
raw_affiliation_name: Haihe Laboratory of Sustainable Chemical Transformations, Tianjin 300192
new_rors:
previous_rors: 03q99v794
works_examples: W4320725493;W4379137441
contact: cc70071bfc0d15e75a8a3e8a2542c9e8:7f3574c22be94af07aa4067de65e @ univ-lille.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


Backport: Do not touch module with #![rustfmt::skip] (4297)

Closes #5065
Fixes #5033
Although the implementation is slightly different than the original PR,
the general idea is the same. After collecting all modules we want to
exclude formatting those that contain the #![rustfmt::skip] attribute.

Thanks! Code changes look fine, though I have two asks:

Could you explain the purpose of the empty src/macros_ast.rs file, or remove it if it's not necessary?
Could you extend/modify the tests to cover more than just a single entry point, notably, let's be sure to have a test for imported out of line mods that are discovered and would normally be formatted (non direct/entry point files provided to rustfmt explicitly)

On the testing front, I'd advise utilizing the model I've started adding for module resolution related testing (see https://github.com/rust-lang/rustfmt/blob/master/src/test/mod_resolver.rs) for more targeted and explicit validation. One of the challenges we saw historically with trying to use the system/idempotence based checks is that it was far too easy for the absence of a failure to be specious and our tests weren't catching mod resolution/skipping issues, especially with imported/nested files. That happened typically because the out of line file(s) had to be explicitly added to the skip list used for the system/idempotence tests, and there was no way of differentiating between the testing skip list vs. the ignore behavior.

Could you explain the purpose of the empty src/macros_ast.rs file, or remove it if it's not necessary?

whoops that definitely shouldn't have been included. will remove right away!

Could you extend/modify the tests to cover more than just a single entry point, notably, let's be sure to have a test for imported out of line mods that are discovered and would normally be formatted (non direct/entry point files provided to rustfmt explicitly)

Sure! I can definitely add some additional test, and thanks for explaining all the nuance of properly testing skipping. I'll let you know if I have any questions.

I've pulled out all the filtering logic into its own function should_skip_module

When I was adding one additional tests something struck me as odd and I wanted to get your input. When adding
the #![rustfmt::skip] attribute to tests/mod-resolver/skip-files-issue-5065/foo.rs tests/mod-resolver/skip-files-  issue-5065/foo/bar/baz.rs never gets found.
I found this strange because when I add the #![rustfmt::skip] attribute to tests/mod-resolver/skip-files-issue  5065/main.rs we're still able to find tests/mod-resolver/skip-files-issue-5065/foo.rs and tests/mod-  resolver/skip-files-issue-5065/one.rs
I guess my expectation would be that we'd skip formatting tests/mod-resolver/skip-files-issue-5065/foo.rs, but
we'd still format tests/mod-resolver/skip-files-issue-5065/bar/baz.rs, but if this is the right behavior, please let me
know.

When I was adding one additional tests something struck me as odd and I wanted to get your input

I suspect this is due to the attribute placed on the main input file which gets handled a bit differently. One of the things on my todo list is to enhance the resolution process to take more "ignore" type information into account up front, but there's still some pending discussion to be had around whether ignore means "parse and discover, but don't format" or "completely ignore me altogether and don't even attempt to parse me"

Nicely done, thank you!


"identityPool" authorization for custom mutation

Amplify CLI Version
12.12.2
Question
how can i add "identityPool" in authorization for custom mutation.
 Mutation:

    CreatingUserProfile: a
      .mutation()
      .arguments({
        owner: a.string().required(),
        firstName: a.string().required(),
        lastName: a.string().required(),
        email: a.email().required(),
        birthdate: a.datetime().required(),
        location: a.string(),
      })
      .returns(a.ref('UserProfile'))
      .handler([
        a.handler.custom({
          entry: './userProfile/createUserProfile.js',
          dataSource: a.ref('UserProfile'),
        }),
      ])
      .authorization((allow) => [allow.authenticated('identityPool')]),

It shows the error:
identityPool-based auth (allow.guest() and allow.authenticated('identityPool')) is not supported with a.handler.custom
Caused By: identityPool-based auth (allow.guest() and allow.authenticated('identityPool')) is not supported with a.handler.custom

Resolution: Check your data schema definition for syntax and type errors.

Hi @jewells07 thanks for raising this issue 👋
I was able to reproduce the error with the following schema:
UserProfile: a
    .model({
      owner: a.string().required(),
      firstName: a.string().required(),
      lastName: a.string().required(),
      email: a.email().required(),
      birthdate: a.datetime().required(),
      location: a.string(),
    })
    .authorization((allow) => [allow.authenticated("identityPool")]),
  CreatingUserProfile: a
    .mutation()
    .arguments({
      owner: a.string().required(),
      firstName: a.string().required(),
      lastName: a.string().required(),
      email: a.email().required(),
      birthdate: a.datetime().required(),
      location: a.string(),
    })
    .returns(a.ref("UserProfile"))
    .handler([
      a.handler.custom({
        entry: "./userProfile/createUserProfile.js",
        dataSource: a.ref("UserProfile"),
      }),
    ])
    .authorization((allow) => [allow.authenticated("identityPool")]),

Error

This seems to be expected behavior according to the error message but I will reach out to the team to confirm.
In the meantime, can you please clarify your use case and how you intend to use identityPool as an auth rule?

I was trying to hit this mutation from the function when the user signed up successfully. and I don't want any user to use this mutation. even i'm not able to do this .authorization((allow) => [allow.authenticated().to(['create'])]) .

I also encountered this issue with the same use case. I have a custom mutation that I don't want to be accessible except by a lambda function that I want to authorize with IAM.

After reaching out to the team, it was confirmed that this is expected behavior. It's currently not possible to create a custom resolver when using IAM as the default auth mode. It's also not possible to specifically allow iam.
I think you need to grant the lambda access to mutations using allow.resource on the schema like so:
const schema = a
  .schema({
    // ...
  })
  .authorization((allow) => allow.resource(postConfirmationTriggerLambda));

Or from the backend.ts file:
import { defineBackend } from "@aws-amplify/backend";
import { auth } from "./auth/resource";
import { data } from "./data/resource";
import { postConfirmationTriggerLambda } from "./auth/triggers/post-confirmation/resource";

const backend = defineBackend({
  auth,
  data,
  postConfirmationTriggerLambda,
});

backend.data.resources.graphqlApi.grantMutation(
  backend.postConfirmationTriggerLambda.resources.lambda
);

I'll close this issue as this is not a bug but still please let us know if you run into issues authorizing the lambda

After reaching out to the team, it was confirmed that this is expected behavior. It's currently not possible to create a custom
I'll close this issue as this is not a bug but still please let us know if you run into issues authorizing the lambda

Can you elaborate why this is expected?

need to grant the lambda access to mutations using allow.resource

Mutations with custom handlers do not work with Lambda functions (or event bridge). This grant doesn't change behavior of appsync.
Only front-end authenticated users can use these mutations, with authorization set to allow.authenticated()

So this error comes from @aws-amplify/data-schema packages which is from https://github.com/aws-amplify/amplify-api-next repository - that that repo is private for some reason
I think there is an easy workaround
validateCustomHandlerAuthRule function throw this error. It has a condition which doesn't make sense, it prevents iam auth on custom resolvers. Looking at the commented code, again the question to Amplify team what it means, "not supported"?
To fix it, monkey patch SchemaProcessor.js and comment out exception. The IAM auth then works just fine. the graphql schema gets generated with correct auth method
type Mutation {
  publishChatMsg(threadId: ID!, status: String!, message: String!, owner: String!): MessageStatusChange @aws_iam

<EMAIL_ADDRESS>function validateCustomHandlerAuthRule(rule: AuthRule) {
  if (rule.groups && rule.provider === 'oidc') {
    throw new Error('OIDC group auth is not supported with a.handler.custom');
  }

  // not currently supported with handler.custom (JS Resolvers), but will be in the future
  if (rule.provider === 'identityPool' || (rule.provider as string) === 'iam') {
    console.debug("Silly amplify can not figure out provider:", rule.provider)
    throw new Error(
      "identityPool-based auth (allow.guest() and allow.authenticated('identityPool')) is not supported with a.handler.custom",
    );
  }
}

After reaching out to the team, it was confirmed that this is expected behavior. It's currently not possible to create a custom resolver when using IAM as the default auth mode. It's also not possible to specifically allow iam.
I think you need to grant the lambda access to mutations using allow.resource on the schema like so:
const schema = a
  .schema({
    // ...
  })
  .authorization((allow) => allow.resource(postConfirmationTriggerLambda));

Or from the backend.ts file:
import { defineBackend } from "@aws-amplify/backend";
import { auth } from "./auth/resource";
import { data } from "./data/resource";
import { postConfirmationTriggerLambda } from "./auth/triggers/post-confirmation/resource";

const backend = defineBackend({
  auth,
  data,
  postConfirmationTriggerLambda,
});

backend.data.resources.graphqlApi.grantMutation(
  backend.postConfirmationTriggerLambda.resources.lambda
);

I'll close this issue as this is not a bug but still please let us know if you run into issues authorizing the lambda

I tried and both solutions don't work. Lambda got unauthenticated error when executing the graphql custom mutation.

This is a must-have for environments that want to add a Javascript Resolver that uses the Aurora Data API.


URL with visualstudio.com

Hi team,
I've found that the provided queries in this page do not work because of the old scheme URL with visualstudio.com.
I managed to solve the issue by using the format https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}
Michele

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 37158821-909f-e3a0-8be3-7a57c99fa769
Version Independent ID: fbe40e6a-b511-609b-27dc-51843a331cee
Content: Apply a team filter to a Power BI report - Azure DevOps
Content Source: docs/report/powerbi/create-team-filter.md
Product: devops
Technology: devops-analytics
GitHub Login: @mijacobs
Microsoft Alias: kaelli

@phenixita - Thank you for this feedback and apologies for the delay in response. I'm updating the article now and closing this issue.


level=error err="no such file or directory" when trying to add config files to /fluent-bit/etc

Hey,
I am using the following image kubespheredev/fluent-bit:v1.8.11 and trying to create /etc/fluent-bit/config directory to store config files i gather through sidecar in there (tried creating config files that are not fluent-bit.conf or parsers.conf in there and it doesn't work either)
and use via @INCLUDE method in main fluent-bit config since its not possible to include files that aren't in fluent-bit/etc directory.
Is there something i am missing? how can i add config files that will reload dynamically in kubespheredev/fluent-bit:v1.8.11 image?

By default, adding config files that are not fluent-bit.conf or parsers.conf is not supported.
https://github.com/fluent/fluentbit-operator/blob/master/conf/fluent-bit.conf#L1
If you want to do this, you can modify the fluent-bit.conf file and build a new image
https://github.com/fluent/fluentbit-operator/blob/master/Makefile#L81


The Subset class imported from torch.utils.data isn't Configurable

In patch.py, we manually modify all datasets in the torch.utils.data.dataset to make it configurable. However, the line below only sets the attributes of torch.utils.data.dataset not torch.utils.data, which leaves all Dataset imported from the latter unchanged. There is a similar problem for torch.optim.lr_scheduler.
https://github.com/DeepGraphLearning/torchdrug/blob/119002a43b67d142b2206f809724dbf25677b95b/torchdrug/patch.py#L156

Fixed in f29dc55


Allow value updates if slidingIndex === -1

Currently:

slidingIndex is initialized as null
When a handle is dragged, slidingIndex is set to the index of the
handle being dragged
endSlide sets slidingIndex to -1 before removing event listeners and
firing the change event.
An onClick handler on the parent div resets slidingIndex to null

The problem is that if the user drags the handle off the parent div
(e.g. resetting to the min value by dragging far to the left), the
onClick handler will not fire, and this leaves the component with
slidingIndex set to -1 indefinitely.
In this state, updateNewValues() will return, so updates to values from
the parent component (e.g. cancelling filters) will not update the
slider.
One solution would be to change onClick to onDragEnd, but drag events
are handled by child elements which call stopPropagation.
This solution simply allows updates if the component is in the state
where slidingIndex === -1.

I don't have enough context on this code to know if this is the right choice or not, but it would be great to include a test for this change. Will you please add one?

@lencioni amended. This test is a bit low-level and not particularly semantic, but I am not sure having sliderIndex set to -1 for an indefinite period of time is really a desired state.
I pinged @goatslacker about the particulars. Happy to adjust as folks see fit.

I'd rather not have two different states where sliding is allowed. Let's make sure the sliderIndex is reset to null always since that is the "no slider index" value.
I believe -1 was added so that we know when we're coming off of a slide so we don't handle the slide's ending twice. There is probably a better way to do this.

What we can do is in case there is a difference in values in props (not state) then set this.state.slidingIndex to null. I hope this PR gets merged soon.

@goatslacker i just revised this down to eliminate the -1 state. PTAL?


support for bridgy_omit_link=maybe

interpret bridgy_omit_link=maybe as "include link iff the content is
shortened".
(my 2-line-fix ended up being more like 300 lines across 11 files ... nice estimation abilities, me)
fixes #561

Not quite ready yet...

OK now I'm done, and it's live on https://bridgy-kwm.appspot.com/
(CI checks are failing because this depends on snarfed/granary#86)

lgtm yay! especially if you've tested manually that interactive still works w/o js as well as with. :P thanks again!

well I just met you
and this is crazy
but here's my number
bridgy_omit_link=maybe

@snarfed it acts weird with the cached bridgy.js -- do you do any kind of ?version=2016-04-24 thing to bust it?

sadly no, but its expiration is only 1h.


Update common.sh

Fixed Url

Summary
SUMMARY_GOES_HERE
Full changelog

[Implement ...]
[Add related tests]
...

Issues resolved
Fix #XXX

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @AlphaQx, thanks for the PR, but the old URL is the correct one. Closing this.


"Please copy/symlink the 'missing image'..." exception when MEDIA_ROOT folders are not created

I get the exception
Please copy/symlink the 'missing image' image at ... into your MEDIA_ROOT at .... This exception was raised because Oscar was unable to symlink it for you."
whenever I create a fresh environment.
When I just create folders structure of my MEDIA_ROOT the symlink is created.
Possible solution - add folder creation code before symlink creation.

The missing image is always creating issues, we should do better. Ideas and/or PR's welcome

Why don't we just link to django-oscar/src/oscar/static/oscar/img/image_not_found.jpg directly instead of attempting (and often failing!) to copy it into the media root? If projects want to customise/change the image they they can just provide their own image at the same path with higher priority, or set OSCAR_MISSING_IMAGE_URL.

Yeah agreed. I'm not sure why was chosen for the current solution, but going the proper Django way sounds like a good plan

Will do a PR

This is why it was done that way: https://github.com/django-oscar/django-oscar/pull/734 . The image has to be inside MEDIA_ROOT for sorl-thumbnail to work on it. Any other ideas?

Ah yeah, had to be a good reason for this. Perhaps a management command which does this automatically? Like ./manage.py oscar_init_media ?


Allow users to annotate functions without body with contracts

Requested feature: Allow users to annotate external "C" functions and intrinsics with contracts.
Use case: Adding safety contracts to std intrinsics and extern "C" functions.
Link to relevant documentation (Rust reference, Nomicon, RFC):
Test case:
    /// The size of the referenced value in bytes.
    ///
    /// The stabilized version of this intrinsic is [`crate::mem::size_of_val`].
    #[rustc_const_unstable(feature = "const_size_of_val", issue = "46571")]
    #[rustc_nounwind]
    #[requires(matches!(
        <T as Pointee>::Metadata::map_dyn(crate::ptr::metadata(_val)::metadata(), |dyn_meta| {
    ub_checks::can_dereference(dyn_meta)}), None | Some(true)))]
    pub fn size_of_val<T: ?Sized>(_val: *const T) -> usize;

Fails with the following compilation error:
error: expected curly braces
    --> /verify-std/library/core/src/intrinsics.rs:1070:59
     |
1070 |     pub fn size_of_val<T: ?Sized>(_val: *const T) -> usize;

In order to do this, I believe we will need to apply the same logic as stubbing external functions where we replace the method calls instead of replacing the function body.

(this is probably obvious from context, but the test case in the description needs to be wrapped in extern "rust-intrinsic" { ... })


Added new local module to extract only relevant annotation statistics

PR checklist

[ ] This comment contains a description of changes (with reason).
[ ] If you've fixed a bug or added code that should be tested, add tests!
[ ] Make sure your code lints (nf-core lint).
[ ] Ensure the test suite passes (nextflow run . -profile test,docker --outdir <OUTDIR>).

Hi @BethYates and @tkchafin  kindly help me run this code your end and see if its running using
nextflow run main.nf -profile test,singularity --workflow ANNOTATION_STATS
Thank you

I'm getting this error, is that what you are getting now as well:
ERROR ~ Error executing process > 'SANGERTOL_GENOMENOTE:GENOMENOTE:ANNOTATION_STATS:EXTRACT_ANNOTATION_STATISTICS_INFO (1)'

Caused by:
  Process `SANGERTOL_GENOMENOTE:GENOMENOTE:ANNOTATION_STATS:EXTRACT_ANNOTATION_STATISTICS_INFO` input file name collision -- There are multiple input files for each of the following file names: GCF_949628265.1_ieCloDipt1.1_genomic.gff3.stats.txt

I'll take a look 👍


Host with port

Hi!
Could you help me please? Your solution is amazing, but I need not the only IP, I need to specify some port as well. So I want to change file ~/.hosts like this:
<IP_ADDRESS>:8080  www.my-domain.com

As I understand it's impossible for now. But can you give me some advices how it can be implemented?

Hi Denis,
I don't think the approach I taken will work here, as I guess it won't be easy to directly correlate connect() calls (in which the port number is used for outgoing connections) with gethostbyname & friends to make it work in all cases (if you are fine with this working most of the time you could have some state in the preloaded library so that next call to connect() after gethostbyname() will result in a substitution of the port number).
I'm not sure what exactly you want to achieve but if you want to route HTTP connections only you may want to add aliases (e.g. www.my-domain.com from your example) to some single host and run a redirection service on it which would understand Host: HTTP header and redirect the requests by using that value. Browsers put hostnames to Host: headers as typed by the user.
I think you could actually configure Apache's httpd to do that (mod_rewrite comes to my mind).

Ok, thanks.


TBChi: Networking.Server

Add Networking namespace in extensibility.
Networking.Network  will launch a Local Network Peer Server.
Determine if Server is remote (even if on the same machine) through Network.IsPublic property which inquires Server?.IsPublic ?? true. If the Server is null, then the Client is configured to a remote Server.

Complete


test blockquote style

👷 Deploy Preview for fancy-puffpuff-df775f processing.

Name
Link

🔨 Latest commit
ea0682e10dc1c62a54616390ad7c545371732ddb

🔍 Latest deploy log
https://app.netlify.com/sites/fancy-puffpuff-df775f/deploys/64dabf371b974b00087d311c


Creating a patch messes up local branches and remote tracking

Steps:

create new branch from main
make some changes
create a new patch

Now the local branch does not have any remote branch tracked, though there exists a remote one with same name in rad.
I would expect it to track the patch branch (something like rad/patches/xxxx).
Also (and that is the worse), my main branch now tracks the rad patch branch!

I cant reproduce this. Maybe we already fixed it


"TypeError: Cannot read property 'replace' of undefined" when docusaurus build

🐛 Bug Report
I am using Docusaurus 2.
I get this error when I run docusaurus build,
Creating an optimized production build...

✔ Client
  Compiled successfully in 1.21m

✖ Server
  Compiled with some errors in 1.35m

TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)TypeError: Cannot read property 'replace' of undefined
    at String.replace (<anonymous>)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
(undefined) TypeError: Cannot read property 'replace' of undefined
    at Object.options.minifyJS (main:18886:28)
    at Object.chars (main:19374:24)
    at main:48346:19
    at String.replace (<anonymous>)
    at new HTMLParser (main:48338:19)
    at minify (main:19160:3)
    at module.exports.exports.minify (main:19521:16)
    at serverEntry_render (main:88195:38)
Error: Failed to compile with errors.
    at /Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/@docusaurus/core/lib/webpack/utils.js:164:24
    at finalCallback (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/MultiCompiler.js:254:12)
    at /Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/MultiCompiler.js:277:6
    at done (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/neo-async/async.js:2931:13)
    at runCompilers (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/MultiCompiler.js:181:48)
    at /Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/MultiCompiler.js:188:7
    at /Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/MultiCompiler.js:270:7
    at finalCallback (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/Compiler.js:257:39)
    at /Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/Compiler.js:273:13
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:42:1)
    at AsyncSeriesHook.lazyCompileHook (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/tapable/lib/Hook.js:154:20)
    at onCompiled (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/Compiler.js:271:21)
    at /Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/Compiler.js:681:15
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (/Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/tapable/lib/Hook.js:154:20)
    at /Users/kumarabhirup/Documents/Repositories/propagateAt/node_modules/webpack/lib/Compiler.js:678:31
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Have you read the Contributing Guidelines on issues?
Yes
To Reproduce

Use the following docusaurus.config.js

module.exports = {
  title: 'propagate.at',
  tagline: 'Email, WhatsApp and SMS Marketing for Online Creators',
  url: 'https://kb.propagate.at',
  baseUrl: '/',
  onBrokenLinks: 'throw',
  favicon: 'img/favicon.ico',
  organizationName: 'propagate-at', // Usually your GitHub org/user name.
  projectName: 'propagateAt', // Usually your repo name.
  themeConfig: {
    colorMode: {
      disableSwitch: true,
    },
    navbar: {
      // title: 'propagate.at',
      logo: {
        alt: 'PropagateAt Logo',
        src: 'img/PropagateAt Logo Light.svg'
      },
      items: [
        {
          to: 'docs/',
          activeBasePath: 'docs',
          label: 'Docs',
          position: 'left',
        },
        {to: 'blog', label: 'Press', position: 'left'},
        {
          href: 'https://github.com/propagate-at',
          label: 'GitHub',
          position: 'right',
        },
        {
          href: 'https://propagate.at/dashboard',
          label: 'Dashboard',
          position: 'right',
        },
      ],
    },
    footer: {
      style: 'light',
      logo: {
        alt: 'PropagateAt Logo',
        src: 'img/PropagateAt Logo Light.svg',
      },
      links: [
        {
          title: 'Docs',
          items: [
            {
              label: 'Developer API',
              to: 'docs/api/',
            },
            {
              label: 'Guides',
              to: 'docs/guides/',
            },
          ],
        },
        {
          title: 'Community',
          items: [
            {
              label: 'Discord',
              href: 'https://discord.gg/RHZMhgF',
            },
            {
              label: 'Twitter',
              href: 'https://twitter.com/propagateHQ',
            },
          ],
        },
        {
          title: 'Social',
          items: [
            // {
            //   label: 'Twitter',
            //   href: 'https://twitter.com/propagateHQ',
            // },
            {
              label: 'Facebook',
              href: 'https://fb.com/propagate.at',
            },
            {
              label: 'Instagram',
              href: 'https://www.instagram.com/propagate.at/',
            }
          ],
        },
        {
          title: 'More',
          items: [
            {
              label: 'Press',
              to: 'blog',
            },
            {
              label: 'GitHub',
              href: 'https://github.com/propagate-at',
            },
            {
              label: 'LinkedIn',
              href: 'https://www.linkedin.com/company/propagateAt',
            }
          ],
        },
      ],
      copyright: `Copyright © ${new Date().getFullYear()} PropagateAt, Inc. Built with ❤ for creators.`,
    },
  },
  presets: [
    [
      '@docusaurus/preset-classic',
      {
        docs: {
          sidebarPath: require.resolve('./sidebars.js'),
          // Please change this to your repo.
          // editUrl:
          //   'https://github.com/facebook/docusaurus/edit/master/website/',
        },
        blog: {
          showReadingTime: true,
          // Please change this to your repo.
          // editUrl:
          //   'https://github.com/facebook/docusaurus/edit/master/website/blog/',
        },
        theme: {
          customCss: require.resolve('./src/css/custom.css'),
        },
      },
    ],
  ],
};

Run docusaurus build.

Behavior
docusaurus start works perfectly fine for development purposes. After I got the expected result on dev stage, I ran docusaurus build. Then I got that error.
Btw, I am new to Docusaurus.
Your Environment

Docusaurus version used:

"@docusaurus/core": "2.0.0-alpha.66",
"@docusaurus/preset-classic": "2.0.0-alpha.66"

Environment name and version (e.g. Chrome 78.0.3904.108, Node.js 10.17.0): Chrome 86 | Node.js v15.0.1
Operating system and version (desktop or mobile): MacOS Mojave

Reproducible Demo
I will soon create a Demo Repo exclusively for this issue. Would like to get some time.

hi
this is a known issue affecting yarn workspace / monorepos
you'll find workarounds here: https://github.com/facebook/docusaurus/issues/3515


Error: nextSibling of null

There is a wired bug in latest vue. Everything is OK when clicking on tabs slowly. Keep switching between tags, if clicking too fast without the previous transition finished there will be a redirect loop.
Here is the sample code:
https://github.com/xueenda/vue-redirect-loop
It's better to test on phone with both fingers tabbing fast on the footer tab.
Here is the screenshot of the error:
https://raw.githubusercontent.com/xueenda/vue-redirect-loop/master/page1.pic.jpg
https://raw.githubusercontent.com/xueenda/vue-redirect-loop/master/error.pic_hd.jpg

Please move this to vue-router's repo instead.


Improve simulation of bulk-indexing conflicts

With this commit we introduce a new property conflict-probability for
the bulk-indexing parameter source. Previously we had a hard-codded
probability of 25% but now the user can control it.
We also use update now as bulk-indexing action when simulating a
conflict (previously the action was always index).
Closes #422

@dliappis I pushed another commit since your LGTM which adds a new parameter "on-conflict" that lets the user decide whether to use update or index in the action and meta-data line. The reason for this parameter is that we'd otherwise change the entire approach of handling id conflicts which leads to completely different results.
Can you please review that commit as well?

Thanks for the review @dliappis!


Run Rack test suite in tests for mruby-rack

Rack's tests depend only on Ruby Core and bacon. Bacon is a 350-line RSpec clone with no dependencies.
Running Rack's tests will ensure we have ported it (there are some patches we'll need to write to get it to parse) to mruby correctly.

This is blocked on (at least) GH-8, GH-4, and GH-28.


What is the meaning/use of spi_miso_pin_number?

I am trying to connect a Pico W with a Pico RGB Matrix P3 64x32 from Waveshare.
The setup is almost identical to yours, apart from the pin connections to the PCB (I think)
In my specific PCB, they are documented here: https://www.waveshare.com/wiki/Pico-RGB-Matrix-P3-64x32#User_Guides_for_Pico
But I have issues trying to map, what in your config structure you are calling spi_miso_pin_number with a comment of "# not connected".
It seems the value of spi_miso_pin_number is INDEED used in the configuration when you set the rgbX_spi vars
Which pin is that and what should I use for my case?
As is, with the default value of 13, I only get a blank screen and sometimes (which is very weird) I get some a blue rectangle (or two) showing when I run the basic demo that displays the python logo.
I'm kinda stuck and I can find no documentation that talks about that pin.
Thanks and sorry for the bother!

The spi_miso_pin_number is truly not used. The only reason it is in the code is because the SoftSPI library requires a pin to be assigned to MISO (Master In, Slave Out). However, there is no data coming in so that pin is not used and doesn't actually need to be connected to anything.
It looks like with the Pico RGB Matrix, pin 13 is also used for output enable. So you are probably getting a conflict with that pin being used for both roles. Try assigning spi_miso_pin_number to an unused pin like 14 or 15.
I hope that is helpful. Let me know how it goes. I'm curious to know how well this can work on a Pico.

I'm going to go ahead & close this. If you have any follow up questions feel free to start a discussion.


file

Output of docker version:
(paste your output here)

Output of docker info:
(paste your output here)

Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:

Accidental open (isn't there a delete? :/)


Really weird behaviour when parent is flex

[x] bug

[ ] enhancement

[ ] feature-discussion (RFC)

Swiper Version: 4.5.0

Platform/Target and Browser Versions: Any

Codepen: https://codepen.io/obendev/pen/wbzXEa

What you did
Hey! Today I tried out this slider and discovered a weird behaviour if an element above the slider is flexbox. The slider just doesnt count in the max-width.
In the codepen example https://codepen.io/obendev/pen/wbzXEa I tried showing it to you as best as possible.
When using spaceBetween it does fit in the given size, although than I can't slide properly anymore.
Here are 2 screenshots as well:
When visiting the site:

After page resize:

Expected Behavior
I expected the slider to take the full width inside the max-width, but not upon that.
Actual Behavior
It stretches all over the site.
I'm not sure if this is a bug or if I'm doing something wrong, at least it feels wrong.

Okay so there are different solutions.
You can use slidesPerView: 'auto' on the JS or give the parent of swiper-wrapper CSS min-width: 0
I still think that this is weird but it fixed it.


knife ssh and knife bootstrap should have option to disregard ~/.ssh/config settings

Users are still asking for the ability to have knife ssh and knife bootstrap disregard their ~/.ssh/config file.
An attempt at providing an option to disable the use of ~/.ssh/config was submitted in the following PR but no action was taken on it.
https://github.com/chef/chef/pull/1003

I think #3857 solves most of the reasons people want to do this? If that's not the case, it would be great to have some use cases.


Consolidate binary protocol field type constants

We previously defined nearly identical sets of constants representing
the binary protocol's field types as attributes in each module that
required them. This duplication isn't great for long-term maintenance.
This approach defines a single set of type constants as macros in a
new Thrift.Protocol.Binary.Type module. Using macros lets us preserve
all of the compile-time benefits we were getting from the previous
approach while still supporting code sharing.

I think this is the best approach, but please offer alternates if you have them.
Also, I went back and forth on whether the namespace should be named Type, Types, TType (per the Thrift C++ source code), or TypeID. They all seem fine to me, so if you have a strong opinion, I'm happy to rename it.


Allow "major" as a value for assemblyVersion.precision

Addresses #96. In addition to the items listed there, I also had to replace two instances of default(VersionPrecision) with VersionPrecision.Minor.

My bad, will fix. I'm having some problems getting your toolchain installed per instructions.

Ugh. The problem is that inserting Major as the first member of the enum, where it belongs, screws up all kinds of default handling (since Major is now the default instead of Minor).
I can fix this with a bunch of small changes, or I can fix it by making Major the last member in the enum (not intuitive, but less intrusive). What do you think?

Sorry, I'm not having success with this -- I'm getting errors installing your toolchain, which means I can't build and run tests locally, which makes it hard to see what I'm missing. I'll close this pull request for now and come back to it when I can

I don't think anything needs to be installed besides vs2015 for your work. What are you struggling with?
Regarding Major, I suspect the right thing is to insert it at top, and fix up defaults.

init.ps1 complains that it can't find the specified version of NuProj, and build.ps1 throws a whole bunch of compilation errors in the Tests project. (Type or namespace does not exist, type or namespace does not exit.)
In VS 2015 Pro Update 3, I don't have the node.js or NuProj tools installed, so those projects don't load, but I see the same compilation errors in the Tests project

The errors in build are probably because init.ps1 doesn't finish. Can you please copy in the exact error output of that script?

PS> .\init.ps1
Restoring NuGet packages...
Unable to find version '0.10.30-beta-gcbd7693f91' of package 'NuProj'.
Restoring NPM packages...
Restoring Typings...
typings WARN deprecated 4/28/2016: "registry:dt/camel-case#0.0.0+20160316155526" is deprecated (updated, replaced or rem
oved)
typings WARN deprecated 11/21/2016: "registry:dt/node#6.0.0+20160915134512" is deprecated (updated, replaced or removed)

+-- del
| `-- pinkie-promise
|   `-- es6-promise
+--<EMAIL_ADDRESS>| +-- form-data
| `-- tough-cookie
+-- camel-case (global)
`-- node (global)

P:\visual studio\nerdbank.gitversioning
PS>

Thanks. That should be working. The package it can't find is in one of the nuget sources: https://www.myget.org/feed/aarnott/package/nuget/NuProj/0.10.30-beta-gcbd7693f91
Very strange. I'll look into this. Can you file a new issue with this init.ps1 output to track?

Now that I'm past that, I'm getting this from both build.ps1 and VS:
BuildIntegrationTests.cs(854,107): error CS0122: 'ThisAssembly' is inaccessible due to its protection level [P:\visual studio\nerdbank.gitversioning\src\NerdBank.GitVersioning.Tests\NerdBank.GitVersioning.Tests.csproj]

It looks like no xxx.Version.cs file is being generated for the Tests project, so it's trying to read the (internal) class from the main project.

It seems like you may be using a version of NuGet.exe other than the one init.ps1 downloads.
How did you get past the NuProj restore failure?

Thanks for the NuGet fix. I'm now able to build and debug, and I see where tests are failing.
In VersionOracle.GetAssemblyVersion(), can you tell me why you set assemblyVersion to one value, and then immediately set it to a different value? It looks to me like that first line can just be ignored. I need to tweak this function, and I want to make sure I understand what you've got there.
It looks to me like that first line can just be ignored.


Keep Alive Websocket Connection

Hi @bennyn I found your library very interesting and I am trying to use it. However, the documentation says that connections to websocket feed are rate-limited to 1 per 4 seconds per IP. This is not related to the real-time feed data as far as you are connected right? I just want to know how does your lib handle this issue? or I have to manually reconnect?

Hi @baloian, as I can see you did find out how to retrieve data for a different product (like ['LTC-USD'])?
Regarding the listed WebSocket rate limiting: It seems like the initial connections are rate-limited (i.e. subscribing to a channel) but the data streams are not. You only have to reconnect when there is a WebSocket error. Does this answer you question?

Hi @bennyn thanks for the update.
Yes, I was able to figure out how to retrieve data for a different product that was my bad.
Here is the way how I handle the reconnection (this is usually pretty standard way), but it looks like the server sends to much closing signals and I am trying to figure out how I can handle it. I looked at source code and it looked like the library does not provide a method to check a websocket status right?
  async ListenWebsocket() {
    await this.init();

    this.client.ws.on(WebSocketEvent.ON_MESSAGE_TICKER, (ws_data) => {
      // Use data here
    });

    this.client.ws.on(WebSocketEvent.ON_ERROR, (error) => {
      Debug(error);
    });

    this.client.ws.on(WebSocketEvent.ON_CLOSE, () => {
        this.client.ws.disconnect();
        setTimeout(() => { this.ListenWebsocket() }, this.reconnect_interval_sec);
    });
  }

Thanks for providing your code sample.
Can you please test again with coinbase-pro-node v1.5.0 (I just published it!). When do the closing signals appear? After some minutes or after some seconds?
The WebSocket should automatically reconnect when it loses connection: https://github.com/bennyn/coinbase-pro-node/blob/v1.5.0/src/client/WebSocketClient.ts#L206-L214

Okay, let me test and let you know.
The closing signals appear after a couple of minutes.

I started getting following warnings
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 WebSocketEvent.ON_MESSAGE_TICKER listeners added to [WebSocketClient]. Use emitter.setMaxListeners() to increase limit
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 WebSocketEvent.ON_ERROR listeners added to [WebSocketClient]. Use emitter.setMaxListeners() to increase limit
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 WebSocketEvent.ON_CLOSE listeners added to [WebSocketClient]. Use emitter.setMaxListeners() to increase limit

I do get following socket error on ERROR, let's say sequentially.
[2020-03-27T23:28:13.134Z] Coinbase Pro websocket error: ErrorEvent {
  target: ReconnectingWebSocket {
    _listeners: { error: [], message: [], open: [], close: [] },
    _retryCount: 0,
    _shouldReconnect: true,
    _connectLock: false,
    _binaryType: 'blob',
    _closeCalled: false,
    _messageQueue: [],
    onclose: [Function],
    onerror: [Function],
    onmessage: [Function],
    onopen: [Function],
    _handleOpen: [Function],
    _handleMessage: [Function],
    _handleError: [Function],
    _handleClose: [Function],
    _url: 'wss://ws-feed.pro.coinbase.com',
    _protocols: [],
    _options: {
      WebSocket: [Function],
      connectionTimeout: 4000,
      debug: false,
      maxReconnectionDelay: 10000,
      maxRetries: Infinity,
      minReconnectionDelay: 4000,
      reconnectionDelayGrowFactor: 1.3
    },
    _ws: WebSocket {
      _events: [Object: null prototype] {},
      _eventsCount: 0,
      _maxListeners: undefined,
      readyState: 2,
      protocol: '',
      _binaryType: 'nodebuffer',
      _closeFrameReceived: false,
      _closeFrameSent: false,
      _closeMessage: '',
      _closeTimer: null,
      _closeCode: 1006,
      _extensions: {},
      _receiver: null,
      _sender: null,
      _socket: null,
      _bufferedAmount: 0,
      _isServer: false,
      _redirects: 0,
      url: 'wss://ws-feed.pro.coinbase.com',
      _req: [ClientRequest]
    },
    _connectTimeout: Timeout {
      _idleTimeout: -1,
      _idlePrev: null,
      _idleNext: null,
      _idleStart: 261986,
      _onTimeout: null,
      _timerArgs: undefined,
      _repeat: null,
      _destroyed: true,
      [Symbol(refed)]: null,
      [Symbol(asyncId)]: 619231,
      [Symbol(triggerId)]: 0
    }
  },
  type: 'error',
  message: 'TIMEOUT',
  error: Error: TIMEOUT
      at ReconnectingWebSocket._handleTimeout (/var/www/cetracker/node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs.js:529:42)
      at Timeout.<anonymous> (/var/www/cetracker/node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs.js:524:75)
      at listOnTimeout (internal/timers.js:531:17)
      at processTimers (internal/timers.js:475:7)
}

and after a bunch of that error I get this one
[2020-03-27T23:36:32.540Z] Error: socket hang up
    at connResetException (internal/errors.js:570:14)
    at TLSSocket.socketOnEnd (_http_client.js:440:23)
    at TLSSocket.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1184:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  code: 'ECONNRESET'
}

Looks like the error doesn't stop websocket, though it appears a lot, but just reporting you.

BTW, I am using your lib in one of my projects (cetracker) which is an open source. Just in case you can test it and see. Again, may be I am doing something wrong not sure

Hey @baloian,
I am worried about these lines:
this.client.ws.disconnect();
setTimeout(() => { this.ListenWebsocket() }, this.reconnect_interval_sec);

WebSocket reconnection is built in the library so you don't have to do it.
I cannot reproduce the "EventEmitter memory leak" problem in my demo snippet. Does the following script shows you the same errors?
const {CoinbasePro, WebSocketEvent, WebSocketChannelName} = require('coinbase-pro-node');

const client = new CoinbasePro({
  apiKey: '',
  apiSecret: '',
  passphrase: '',
  useSandbox: false,
});

const channel = {
  name: WebSocketChannelName.TICKER,
  product_ids: ['BTC-USD', 'ETH-EUR', 'LTC-USD'],
};

client.ws.on(WebSocketEvent.ON_MESSAGE_TICKER, message => {
  console.log(`Received message of type "${message.type}".`, message);
});

client.ws.on(WebSocketEvent.ON_ERROR, (errorEvent) => {
  console.error(`There seems to be an error: ${errorEvent.message}`, errorEvent);
});

client.ws.on(WebSocketEvent.ON_CLOSE, () => {
  console.log('Do I have to reconnect or will it be done automatically?');
});

client.ws.on(WebSocketEvent.ON_OPEN, () => {
  console.log('Established connection!');
});

(async () => {
  await client.ws.connect();
  client.ws.subscribe([channel]);
})();

Hi @bennyn I removed that lines before my last comment (see git history), and I have to admit that it was a memory leak problem as I reconnect already reconnected socket. I have been running for more than 12 hours and so far no errors at all.
Thank you very much and I am closing the issue.

I am very happy that we could solve your problem.


examples

When writing the documentation I added a examples page, but without the examples. Since it seems to be one of the most frequently visited pages of the documentation, adding some code to demonstrate the library in action is particularly important. I can always create synthetic datasets, but if someone has domain specific example datasets it would be cool to use those instead (maybe by adding them to xarray-data).
Edit: related to or a duplicate of #2

duplicate of #2


readme: Add block_device_mappings example

what

Provide a basic example of var.block_device_mappings provided by @kskewes

why

It's not clear how to use var.block_device_mappings and this should clear it up

references

Should close https://github.com/cloudposse/terraform-aws-ec2-autoscale-group/issues/18

/test all

/test all

/test all

/test readme

/rebuild-readme

/test all

/test all


Write Playwright tests for Pension Subcategory Module

e2e test file name should be sub-category.spec.ts


Update of dependencies and introduction of metric namespace

Pushed the dependencies to mitigate CVEs.

I also added a feature to make the namespace of the metrics configureable.
For details take a look in both of my local prs:

https://github.com/elonmir/filestat_exporter/pull/2
https://github.com/elonmir/filestat_exporter/pull/1

Hello,
What do you call namespace ?

Per default, every metric is written into file_state_XXX. In the original code, that was put in the variablee namespace, hence I made that part configureable. So if you want to group metrics by namespaces, so to speak, you would be able to do that.

Added additional optional label tree in #42.
This allows an additional dimension to file stats metrics and, as an added feature, opens the possibility to work on different root path.
Changing the namespace is actually changes the metric name and it is very hard to work with in prometheus.
The job label is rather used when wanting to scope metric collections. If a metric name change is desirable, you can always relabel them at ingestion time.
I'll close the PR.


Enable exporting sprites for compression

Enable exporting sprites to .png without duplicates for compression

This was fixed.


Add this as environment variable

https://github.com/Lambda-School-Labs/djhelper-fe/blob/637415f953f5132c86a7b377226d82f3c6eeb7f0/src/actions/action.js#L43
Also, evaluate whether the environment is production or development to determine which URL to use

Yes, lines 42-43 should be taken out, now that we have our axiosWithAuth function using the environmental variable, I believe. And, yes, we should implement a check for the current environment in the axiosWithAuth function.

Backend url is now specified using an environmental variable.


Interval on ngOnInit

I tried to set an interval on the app component's ngOnInit,  I have checked isPlatformBrowser. It can redner the first login screen and the interval is working, but all the script seem not working.
I also tried to disable SSR, I can see that the interval is running but the app can not be rendered and stay on "loading..." screen.

@AndyTang0123
I have had this issue when trying to use setInterval and to solve the problem I needed to tell angular to ignore setInterval as the code example below:
code: import { isPlatformBrowser } from '@angular/common'; import { PLATFORM_ID, NgZone } from '@angular/core'; ... constructor(@Inject(PLATFORM_ID) private platformId, private zone: NgZone) {     this.isBrowser = isPlatformBrowser(platformId); } ... ngOnInit() {     if (this.isBrowser) {         this.zone.runOutsideAngular(() => {           NgZone.assertNotInAngularZone();           setInterval(() =>  {            ...           }, interval);         });     } } ...
I hope this helps.

Thank you!


2i2c-aws-us, cosmicds: disable microsoft/google auth

This PR resolve this comment for 2i2c-aws-us/cosmicds hub:
          # Temporarily enable Google & Microsoft accounts again
          # Disable again first week of november

This still doesn't resolve https://github.com/2i2c-org/meta/issues/681 though.

@yuvipanda do you think this should be merged, the fixme note removed, or something else?

@consideRatio i think we should wait for the first week of November to finish first, then let them know, and then we can merge it.

Now the first week of november is finished, so next step is to let them know - I'll go on vacation this week though.

sounds good, I'll reach out to them and deal with it as appropriate.

@consideRatio, @yuvipanda, we got approval to move forward with this one https://2i2c.freshdesk.com/a/tickets/1042 so I'll reopen the PR 🚀

Thank you @yuvipanda and @GeorgianaElena for following up on this!!


perlPackages.JSON: 2.90 -> 2.97001

Motivation for this change
update to match JSON::PP version

@GrahamcOfBorg build perlPackages.JSON

Success on x86_64-linux (full log)
Attempted: perlPackages.JSON
Partial log (click to expand)
strip is /nix/store/21ymadblbmsbb2bk4q7gl4kjasp8zmgd-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/a2w4lipqc253pbv977fksszwmwbwjp8r-perl-JSON-2.97001/lib
patching script interpreter paths in /nix/store/a2w4lipqc253pbv977fksszwmwbwjp8r-perl-JSON-2.97001
checking for references to /build in /nix/store/a2w4lipqc253pbv977fksszwmwbwjp8r-perl-JSON-2.97001...
shrinking RPATHs of ELF executables and libraries in /nix/store/saf8d92sw2rwcnai0rqhvmah2q5hildy-perl-JSON-2.97001-devdoc
gzipping man pages under /nix/store/saf8d92sw2rwcnai0rqhvmah2q5hildy-perl-JSON-2.97001-devdoc/share/man/
strip is /nix/store/21ymadblbmsbb2bk4q7gl4kjasp8zmgd-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/saf8d92sw2rwcnai0rqhvmah2q5hildy-perl-JSON-2.97001-devdoc
checking for references to /build in /nix/store/saf8d92sw2rwcnai0rqhvmah2q5hildy-perl-JSON-2.97001-devdoc...
/nix/store/a2w4lipqc253pbv977fksszwmwbwjp8r-perl-JSON-2.97001

Success on aarch64-linux (full log)
Attempted: perlPackages.JSON
Partial log (click to expand)
strip is /nix/store/qg2agrqkf240s656d207zqhipl0bc2id-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/83vwjk8nbzfsa3bgzq3injiyjnwn3n1v-perl-JSON-2.97001/lib
patching script interpreter paths in /nix/store/83vwjk8nbzfsa3bgzq3injiyjnwn3n1v-perl-JSON-2.97001
checking for references to /build in /nix/store/83vwjk8nbzfsa3bgzq3injiyjnwn3n1v-perl-JSON-2.97001...
shrinking RPATHs of ELF executables and libraries in /nix/store/n26bvv16w6cmj1z47hy19nkslpyfn238-perl-JSON-2.97001-devdoc
gzipping man pages under /nix/store/n26bvv16w6cmj1z47hy19nkslpyfn238-perl-JSON-2.97001-devdoc/share/man/
strip is /nix/store/qg2agrqkf240s656d207zqhipl0bc2id-binutils-2.30/bin/strip
patching script interpreter paths in /nix/store/n26bvv16w6cmj1z47hy19nkslpyfn238-perl-JSON-2.97001-devdoc
checking for references to /build in /nix/store/n26bvv16w6cmj1z47hy19nkslpyfn238-perl-JSON-2.97001-devdoc...
/nix/store/83vwjk8nbzfsa3bgzq3injiyjnwn3n1v-perl-JSON-2.97001

This version fails to cross compile due to some compile time eval, it seems. I don't think we should hold back on old versions of packages just because of cross compilation, especially not with perl, but this does mean NixOS can't be cross compiled.

@ElvishJerricco Any little testcase to reproduce? (I suspect it might just fail the tests and doCheck = some-condition would help)

The issue is that eval requires some kind of dynamic linking, which the cross compiling perl doesn't support.
let
  src = builtins.fetchTarball https://github.com/NixOS/nixpkgs/archive/master.tar.gz;
  pkgs = import src {
    crossSystem = (import ("${src}/lib")).systems.examples.aarch64-multiplatform;
  };
in pkgs.perlPackages.JSON

@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
unpacking source archive /nix/store/hylqw5v5fy5l5avhhaxf806mmm4nmajg-JSON-2.97001.tar.gz-aarch64-unknown-linux-gnu
source root is JSON-2.97001
setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file JSON-2.97001/MANIFEST
@nix { "action": "setPhase", "phase": "patchPhase" }
patching sources
@nix { "action": "setPhase", "phase": "configurePhase" }
configuring
Loading lib/JSON.pm failed. No B module?
perl says : Can't load module B, dynamic loading not available in this perl.
  (You may need to build a new perl executable which either supports
  dynamic loading or has the B module statically linked into it.)
 at /nix/store/2kbg8imhilg82zd4ybk2x67zc55fpr2z-perl-5.24.3-aarch64-unknown-linux-gnu/lib/perl5/5.24.3/aarch64-linux/B.pm line 28.
BEGIN failed--compilation aborted at /nix/store/2kbg8imhilg82zd4ybk2x67zc55fpr2z-perl-5.24.3-aarch64-unknown-linux-gnu/lib/perl5/5.24.3/aarch64-linux/B.pm line 28.
Compilation failed in require at lib/JSON/backportPP.pm line 1364.
BEGIN failed--compilation aborted at lib/JSON/backportPP.pm line 1404.
Compilation failed in require at (eval 8) line 1.
BEGIN failed--compilation aborted at (eval 8) line 1.
 at (eval 7) line 2.
Compilation failed in require at (eval 7) line 2.
Setting environmental variable 'PERL_DL_NONLAZY' to 0 may help.
  Stop.

The preConfigure and postConfigure options you removed in this PR fixes this particular package.

The preConfigure and postConfigure options you removed in this PR fixes this particular package.

Reverting them breaks build on x86_64-linux.
I will try to debug up to the root cause, otherwise we will have to revert the whole PR

It seems that better to undo.
the newer JSON breaks CPAN::Meta (by not providing JSON->new when JSON::PP backend is using, while the older JSON-2.90 forces to use JSON::XS backend if JSON->new  is called)

Loading lib/JSON.pm failed is not needed, they just do it for testing.
The problem with cross-compilation is: all the backends (JSON::PP or JSON::XS) end up in loading native modules, aarch64 modules into x86_64 perl


Refresh emotes with F5

It would be really useful to refresh emotes (subs + channel) with a keybinding. Usally refreshing in browsers is F5 so F5 could make sense here aswell.

I got it working with a F6, but not with F5
6c30be9a3d4e44b9996c8bd8b73e56a24bb7b85f
F5 seems to be bound by another parent control, so it never triggers my shortcut. Maybe someone with a little more QT-Experience can help me?

it's bound here https://github.com/fourtf/chatterino2/blob/master/src/widgets/Window.cpp#L254
feel free to change that F5 to something else

Thanks pajlada, seems I was tired yesterday and didn't saw that.
It's now working - I've created the PR.


Error

Spigot version: 1.14.4 (git-Paper-167)
md5-commons version: 0.1.0 (latest)
Error: https://paste.ubuntu.com/p/ms3bBj8zKv/
Plugins: https://paste.ubuntu.com/p/mDKmwyd9Q2/
When this error happened just 1 player was online and was AFK.

Was my waypoints plugin installed previously?
I am 99,9% sure it was and it looks like you now have removed it.
Either delete the player store or reinstall waypoints


Adding tests for old Win10 OS SKUs

@jasonsandlin,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Fix Optional/Cancel Download test to surface true errors

Browser was pointing to same private key as hub
Puppeteer crashed strangely (error was Object) waiting for something that didn't exist
Test passed despite the actual condition failing (channel don't close)

Tests fail now waiting for channels to close, which seems to not work. One tab gets stuck at Closing... and the other does not seem to even begin to close.

So, I'm going to sleep. I've been tinkering with this branch, @kerzhner feel free to take over:

So, I made sure that the channel is closing both by resolving the closeChannel promise only on close and by not nullifying the channelId used for comparison, only when the channel is already closed.
taking a look into the last (failed) test, I found a couple of interesting things:
By adding a console log into the channelUpdate listener (instead of a pino log which for some reason print JSHandle@object everywhere, I've been able to find between the logs  the following lines:

Browser 0 logged 0xb53f208ab5929a48d7e5f7285d8ae6f58a7cf8d21aa6162ac9398036fb5c8fea status closed
Browser 1 logged 0xb53f208ab5929a48d7e5f7285d8ae6f58a7cf8d21aa6162ac9398036fb5c8fea status closed

I've also made the channelList show the ACTUAL channel status, which in the screenshots shows as:

Which points to the seeder for some reason not updating the UI for some reason? I'm not sure I understand what's going on. The logs show me that both browsers got the update, why does the seeder doesn't update it's UI? I'm.... confused


Add optional directory syntax in file icon themes

This PR fixes #136656.

@aeschli's comment on the selector priority vs the cascade origin isn't implemented yet - https://github.com/microsoft/vscode/issues/136656#issuecomment-970137624

Looks like the CI workflow has been broken by the merge commit 🤔

How would you feel about using paths.posix to resolve https://github.com/microsoft/vscode/pull/137402/files/879d74e6d7cdb3df6c756d83575e8293544b1ecd#r752136442 ?

I am working on using a regex, but this code is clearly shared between vs/editor/common/services/getIconClasses and vs/workbench/services/themes/browser/fileIconThemeData. Should I extract that to vs/base/common library and if so what should I call it?

@SNDST00M Just keep it duplicated for now and I can see if it's something for common. We should maybe add something like vs/platform/theme/common/fileIcons

Right have at it :)

Any thoughts on this before December endgame?

The next endgame in end of January, so still time.

#140079


Question: Is columnar extension enabling all hydra capability on a new db inside the docker ?

I am running latest docker for PG 14.
I would like to create a new hydra db inside the docker beside the default postgres db
to be able to test different schemas and as best practices states to have another db beside postgres.
I can enable columnar on the new db by
CREATE EXTENSION IF NOT EXISTS columnar;
Is this enough for all hydra capability/features ?
Is either template0 or template1 better/recommended ?

Correct, creating the columnar extension is the only action which is done for you because we add this file to the image:
https://github.com/hydradatabase/hydra/blob/main/files/postgres/docker-entrypoint-initdb.d/columnar.sql
Hydra adds other extensions, but these extensions need to be explicitly installed with CREATE EXTENSION. You can see these being added to the image here:
https://github.com/hydradatabase/hydra/blob/main/Dockerfile#L24-L44
template0 and template1 are built into Postgres and are not modified by Hydra; the default template is template1. There's no need to specify the source template when using CREATE DATABASE unless you are modifying these templates for your own purposes.
https://www.postgresql.org/docs/current/manage-ag-templatedbs.html

Thank you for the swift response but if you indulge me I still have some follow-up questions regarding:

Hydra adds other extensions, but these extensions need to be explicitly installed with CREATE EXTENSION. You can see these being added to the image here: https://github.com/hydradatabase/hydra/blob/main/Dockerfile#L24-L44

So a new db I create with CREATE EXTENSION IF NOT EXISTS columnar; has the columnar equivalent capability
but doesnt have hydra full functionality as it doesnt have all the other extensions enabled?
Can/should I enable them to make it full feature ? so I can run lets say accurate benchmarks of performance.
If indeed default postgres db has other extensions enabled, why does running
SELECT * FROM pg_extension; on postgres db only shows 2: "plpgsql" & "columnar" ?
Being such a popular extension/motive to use postgres, can I make a Github Issue to request inclusion of postgis in the list of extension you add to the docker /extensions folder ?

Extensions can be "installed" into a database using CREATE EXTENSION as needed, but are otherwise "available" (i.e. installed into the image). You can see all extensions using SELECT * FROM pg_available_extensions. The other extensions are foreign data wrappers; they are there if you need them, and there's no reason to install them if you are intending to test columnar.
You are welcome to create an issue for Postgis and we can use that to discuss and judge interest. However, as the image is open source and available, adding additional items to the image is left to you to customize to your needs, but this requires familiarity with Docker.
Postgis is already available in Hydra's cloud product.

Thank you for the answers.
I made this issue: https://github.com/hydradatabase/hydra/issues/60


Does not properly support -ss, -to or -t ffmpeg options

Progress bar does not work as expected if only portion of input file is used because of -ss and -to or -t options.

To add on (not different enough to warrant its own issue):
It will break when using a filter like: ffmpeg -i input.mkv -c:v libx264 -crf 0 -filter_complex "[0:v]setpts=4.0*PTS[v];[0:a]atempo=0.5,atempo=0.5[a]".
When the bar goes past the number of estimated frames, it will just disappear. (Eg. if ffpb guesses the output will have 600 frames and it goes to 660, then the output will look like this: input.mkv: 780 frames [05:48,  2.17 frames/s]


clojure: <IP_ADDRESS>3 -> <IP_ADDRESS>9

See: https://github.com/NixOS/nixpkgs/issues/35136#issuecomment-366565402
@bendlas: thank you for helping me with debugging this issue!

Failure on aarch64-linux (full log)
Partial log (click to expand)
error: while evaluating the attribute 'installPhase' of the derivation 'clojure-<IP_ADDRESS>9' at /var/lib/gc-of-borg/nix-test-rs-3/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-3/pkgs/stdenv/generic/make-derivation.nix:148:11:
while evaluating the attribute 'buildInputs' of the derivation 'openjdk-8u172b02' at /var/lib/gc-of-borg/nix-test-rs-3/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-3/pkgs/stdenv/generic/make-derivation.nix:148:11:
while evaluating the attribute 'buildCommand' of the derivation 'openjdk-bootstrap' at /var/lib/gc-of-borg/nix-test-rs-3/repo/38dca4e3aa6bca43ea96d2fcc04e8229/builder/grahamc-aarch64-community-3/pkgs/stdenv/generic/make-derivation.nix:148:11:
No bootstrap for system

Success on x86_64-darwin (full log)
Partial log (click to expand)
post-installation fixup
strip is /nix/store/v8ifq0hapblpr2z0hx4wvwg02w4aczqy-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/v2sbfr9rcb8kz2avlvj6n81rb65v43ii-clojure-<IP_ADDRESS>9/bin
patching script interpreter paths in /nix/store/v2sbfr9rcb8kz2avlvj6n81rb65v43ii-clojure-<IP_ADDRESS>9
/nix/store/v2sbfr9rcb8kz2avlvj6n81rb65v43ii-clojure-<IP_ADDRESS>9/bin/.clj-wrapped: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/19cc89zq5n68ibr53izy4zgcr5qg2rza-bash-4.4-p12/bin/bash"
/nix/store/v2sbfr9rcb8kz2avlvj6n81rb65v43ii-clojure-<IP_ADDRESS>9/bin/.clojure-wrapped: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/19cc89zq5n68ibr53izy4zgcr5qg2rza-bash-4.4-p12/bin/bash"
strip is /nix/store/v8ifq0hapblpr2z0hx4wvwg02w4aczqy-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/dqwv8cxy8vh8h7wixqkyy6hm1g16666w-clojure-<IP_ADDRESS>9-prefix/libexec
patching script interpreter paths in /nix/store/dqwv8cxy8vh8h7wixqkyy6hm1g16666w-clojure-<IP_ADDRESS>9-prefix
/nix/store/v2sbfr9rcb8kz2avlvj6n81rb65v43ii-clojure-<IP_ADDRESS>9

Success on x86_64-linux (full log)
Partial log (click to expand)
patching script interpreter paths in /nix/store/6xq1b74kd0hgx7c6rrp1valsph592im4-clojure-<IP_ADDRESS>9
/nix/store/6xq1b74kd0hgx7c6rrp1valsph592im4-clojure-<IP_ADDRESS>9/bin/.clj-wrapped: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/fcxliihmhm2ak9z4890gk0qw63zsbrcx-bash-4.4-p12/bin/bash"
/nix/store/6xq1b74kd0hgx7c6rrp1valsph592im4-clojure-<IP_ADDRESS>9/bin/.clojure-wrapped: interpreter directive changed from "/usr/bin/env bash" to "/nix/store/fcxliihmhm2ak9z4890gk0qw63zsbrcx-bash-4.4-p12/bin/bash"
checking for references to /build in /nix/store/6xq1b74kd0hgx7c6rrp1valsph592im4-clojure-<IP_ADDRESS>9...
shrinking RPATHs of ELF executables and libraries in /nix/store/j7npzbfwxny6bbk9rpx84wki3jc88f3n-clojure-<IP_ADDRESS>9-prefix
strip is /nix/store/adidfx4pa7vmvby0gjqqmiwg2x49yr27-binutils-2.28.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/j7npzbfwxny6bbk9rpx84wki3jc88f3n-clojure-<IP_ADDRESS>9-prefix/libexec
patching script interpreter paths in /nix/store/j7npzbfwxny6bbk9rpx84wki3jc88f3n-clojure-<IP_ADDRESS>9-prefix
checking for references to /build in /nix/store/j7npzbfwxny6bbk9rpx84wki3jc88f3n-clojure-<IP_ADDRESS>9-prefix...
/nix/store/6xq1b74kd0hgx7c6rrp1valsph592im4-clojure-<IP_ADDRESS>9


Provides documentation about the APIs

With the vscode plug-in developed by a third party, users no need to open the browser to create code snippets.
And this project will become a very competitive Gist alternative.

I'm slowly re-factoring a lot of Drift, but this is definitely planned


feat: add custom css prop

This feature request makes it possible to pass custom styles to overwrite native H5P-styles. I ran into a problem when trying to hide/show the fullscreen button which is shown even when the fullscreen prop is set to false.
With this prop styles like the background-color, hide/show certain elements, width & height etc. can be adjusted or even bound to variables.

I added a prop integration to pass custom values to the H5PIntegration object. This can be used to completely disable H5P's fullscreen like this:
<h5p
  :integration="{ fullscreenDisabled: true }"
  ... />