mike-north / ember-monaco

Monaco editor for Ember.js apps
BSD 2-Clause "Simplified" License
18 stars 15 forks source link

fix(deps): penpal #319

Open renovate[bot] opened 3 years ago

renovate[bot] commented 3 years ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
penpal ^3.0.7 -> ^6.0.0 age adoption passing confidence

Release Notes

Aaronius/penpal ### [`v6.2.2`](https://togithub.com/Aaronius/penpal/releases/tag/v6.2.2) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v6.2.1...v6.2.2) Fixes [#​85](https://togithub.com/Aaronius/penpal/issues/85) which is an issue where an error would occur under specific timing scenarios when the child iframe is removed from the DOM at about the same time it sends a SYN message. The error didn't cause operational issues, but would still be an uncaught error. ### [`v6.2.1`](https://togithub.com/Aaronius/penpal/releases/tag/v6.2.1) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v6.2.0...v6.2.1) Added some documentation to the readme regarding TypeScript usage. ### [`v6.2.0`](https://togithub.com/Aaronius/penpal/releases/tag/v6.2.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v6.1.0...v6.2.0) Added support for a wildcard as a value for `childOrigin`. This allows the parent to communicate within any child origin. Thanks [@​KutnerUri](https://togithub.com/KutnerUri) for the [contribution](https://togithub.com/Aaronius/penpal/pull/74)! ### [`v6.1.0`](https://togithub.com/Aaronius/penpal/releases/tag/v6.1.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v6.0.1...v6.1.0) The `methods` object passed to `connectToParent` or `connectToChild` can now contain nested objects with function values. See [https://github.com/Aaronius/penpal/pull/71](https://togithub.com/Aaronius/penpal/pull/71) for more information. ### [`v6.0.1`](https://togithub.com/Aaronius/penpal/compare/v6.0.0...v6.0.1) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v6.0.0...v6.0.1) ### [`v6.0.0`](https://togithub.com/Aaronius/penpal/releases/tag/v6.0.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v5.3.0...v6.0.0) With a major release comes breaking changes. Here's what you need to know: #### NotInIframe error removed ##### What The `NotInIframe` error, which was thrown if `connectToParent` was called from outside of an iframe, has been removed. Fixes [#​61](https://togithub.com/Aaronius/penpal/issues/61). ##### Why Previously, if a call was made to `connectToParent` from outside of an iframe, Penpal would throw an error with the `NotInIframe` error code. While this was a nice idea, it didn't play well with [Cypress](https://docs.cypress.io/). Cypress by default attempts to "modify obstructive code". In other words, if any JavaScript attempts to perform framebusting, [Cypress tries to modify the code since such techniques prevent Cypress from working properly](https://docs.cypress.io/guides/references/configuration.html#modifyObstructiveCode). As it turns out, Penpal's check to see if it was running inside of an iframe was **not** performing framebusting, but Cypress would see it as obstructive code anyway and attempt to modify it, which would actually break testing with Cypress + Penpal entirely. The workaround wasn't great and, given that Penpal's check wasn't providing a lot of value, I decided it would be in consumers' interest to remove the check. #### ConnectionDestroyed error reduced in scope ##### What Previously, Penpal would reject the connection promise with an error containing the `ConnectionDestroyed` error code if the consumer called `connection.destroy` before a connection was made. Fixes [#​51](https://togithub.com/Aaronius/penpal/issues/51). ##### Why When a consumer calls `destroy`, they are intentionally destroying the connection and shouldn't be forced to handle a rejected promise as a consequence. It's not an *exceptional* use case, so it does not merit a rejection. This change should lower development burden, as described in [#​51](https://togithub.com/Aaronius/penpal/issues/51). The `ConnectionDestroyed` error is still thrown if a child or parent method is called after a connection has been destroyed. #### Exported types ##### What This is not a breaking change. The following TypeScript types are now exported as named exports: `Connection`, `AsyncMethodReturns`, `CallSender`, `Methods`, and `PenpalError` types. Fixes [#​67](https://togithub.com/Aaronius/penpal/issues/67). ##### Why TypeScript types could previously (and still can) be imported through a child path as follows: ```js import { Connection } from 'penpal/lib/types'; ``` but that made them less discoverable and the fact that they could be relied on was only implicit. They are now named exports on the top-level module, so they can now be imported as follows: ```js import { Connection } from 'penpal'; ``` ### [`v5.3.0`](https://togithub.com/Aaronius/penpal/releases/tag/v5.3.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v5.2.1...v5.3.0) - Exposed `connection` TypeScript type. - Fixed issue where connection would be automatically closed by Penpal if the iframe was located in a web component's shadow DOM. Big thanks to [@​lpellegr](https://togithub.com/lpellegr) for his work on these issues! ### [`v5.2.1`](https://togithub.com/Aaronius/penpal/releases/tag/v5.2.1) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v5.2.0...v5.2.1) Rather than creating copies of the typescript declarations for es5, I switched to leveraging the `types` field in `package.json` to point to the typings that were generated when the typescript files were compiled to es6. Besides reducing the need for duplicate declarations, it's also [advised by the TypeScript documentation](https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html). ### [`v5.2.0`](https://togithub.com/Aaronius/penpal/releases/tag/v5.2.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v5.1.1...v5.2.0) Now publishing TypeScript typings alongside ES5-generated code. ### [`v5.1.1`](https://togithub.com/Aaronius/penpal/releases/tag/v5.1.1) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v5.1.0...v5.1.1) Removed add-module-exports babel plugin since it's unnecessary. This shouldn't have any effect on consumers. ### [`v5.1.0`](https://togithub.com/Aaronius/penpal/releases/tag/v5.1.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v5.0.2...v5.1.0) Prior to v5.0.0, I had transpiled Penpal code to es5 before packaging for npm. Starting with v5.0.0, I decided to only bundle for es6 with the hope that bundler support for es6 would be strong enough that packaging es5 would be unnecessary and consumers could configure their bundler to transpile penpal back to es5 if necessary. Due to [popular demand](https://togithub.com/Aaronius/penpal/pull/48) and because bundlers can be a pain to configure to transpile penpal to es5, I added back transpilation to es5. The npm package now includes both es6 and es5 code. If the consumer's bundler is capable of bundling es6 code, it should use the es6 code automatically. If it's not capable of bundling es6 code, then Penpal's es5 code will be used automatically instead. This should not affect the runtime behavior of Penpal in any way. ### [`v5.0.2`](https://togithub.com/Aaronius/penpal/releases/tag/v5.0.2) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v5.0.1...v5.0.2) Fixes typescript generics to be correct for the returned proxy object ([https://github.com/Aaronius/penpal/pull/50](https://togithub.com/Aaronius/penpal/pull/50)). ### [`v5.0.1`](https://togithub.com/Aaronius/penpal/releases/tag/v5.0.1) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v5.0.0...v5.0.1) - Allows call sender (`child` or `parent`) to be more strongly typed via TypeScript. ([https://github.com/Aaronius/penpal/issues/47](https://togithub.com/Aaronius/penpal/issues/47)) ### [`v5.0.0`](https://togithub.com/Aaronius/penpal/releases/tag/v5.0.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v4.1.1...v5.0.0) With a major release comes breaking changes. Here's what you need to know: #### Importing ##### What When using a bundler, import `connectToChild` as follow: import { connectToChild } from 'penpal'; and import `connectToParent` as follows: import { connectToParent } from 'penpal'; If you're importing error codes, import them as follows: import { ErrorCode } from 'penpal'; // Reference individual error codes as follows: // ErrorCode.ConnectionDestroyed // ErrorCode.ConnectionTimeout // ErrorCode.NotInIframe // ErrorCode.NoIframeSrc ##### Why Penpal no longer ships with ES5. The ES6 code is set up in such a way that your bundler of choice should properly [tree shake](https://developer.mozilla.org/en-US/docs/Glossary/Tree_shaking) unused code. Your bundler, when properly configured, should also perform any transpilation necessary for your browser targets. **EDIT July 8, 2020: As of v5.1.0, ES5 is again included in the npm package, alongside ES6. Bundlers should automatically use the appropriate version.** #### Regex Support for `parentOrigin` ##### What When using `connectToParent`, you can now specify a regular expression for `parentOrigin`. By providing a regular expression, you can now load the iframe onto multiple, different domains while ensuring that communication is secured to those domains only. ##### Why This need has been raised several times in the past and was a fairly common use case. While this was not a breaking change, it did require significant changes to the handshake process as described in [https://github.com/Aaronius/penpal/pull/32#issuecomment-613198637](https://togithub.com/Aaronius/penpal/pull/32#issuecomment-613198637) and due to the higher risk of the change I decided to include it with other breaking changes in v5 rather than adding it to v4. #### TypeScript ##### What Penpal is now built using TypeScript, so if you're using TypeScript, you now get types for free! ##### Why Consumers wanted TypeScript typings and I thought the positive qualities of TypeScript would enhance the Penpal development process. ### [`v4.1.1`](https://togithub.com/Aaronius/penpal/releases/tag/v4.1.1) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v4.1.0...v4.1.1) Fixed a small typo in the readme related to the new `childOrigin` option. ### [`v4.1.0`](https://togithub.com/Aaronius/penpal/releases/tag/v4.1.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/v4.0.0...v4.1.0) Added an optional `childOrigin` option to `connectToChild` to handle cases where the child origin can't correctly be resolved automatically. ### [`v4.0.0`](https://togithub.com/Aaronius/penpal/releases/tag/v4.0.0) [Compare Source](https://togithub.com/Aaronius/penpal/compare/093e30919d4f174c5608965e41e9250f38b04924...v4.0.0) With a major release comes breaking changes. Here's what you need to know: #### Browser Support ##### What Internet Explorer support has been dropped. As such, support for providing a promise implementation by setting `Penpal.Promise` has been removed. ##### Why Internet Explorer browser share worldwide is ~2.5%. Because Penpal was being transpiled for Internet Explorer, the lowest common denominator, all consumers had to pay the penalty through larger bundle sizes. I also needed to save my sanity while debugging. If you're one of the unlucky souls that still needs to support Internet Explorer, you should feel confident continuing to use version 3.x of Penpal. #### Importing ##### What When using a bundler, import `connectToChild` as follow: import connectToChild from 'penpal/lib/connectToChild'; and import `connectToParent` as follows: import connectToParent from 'penpal/lib/connectToParent'; If you're importing error codes, import them as follows: import { ERR_CONNECTION_DESTROYED, ERR_CONNECTION_TIMEOUT, ERR_NOT_IN_IFRAME, ERR_NO_IFRAME_SRC } from 'penpal/lib/errorCodes'; ##### Why By only importing the functionality you need, you can keep your builds slimmer. #### Iframe Creation ##### What Previously, Penpal would typically create the iframe, set the `src` property, and add the iframe to the document on your behalf. This is no longer the case. You will need to create the iframe, set the `src` property, and add the iframe to the document. Then, pass the iframe to Penpal. Consequently, the `url` and `appendTo` options have been removed from `connectToChild` while the `iframe` option is now required. The `connection` object returned from `connectToChild` no longer contains an `iframe` property since you already have direct access to the iframe you created. ##### Why The `connectToParent` API had become increasingly complex and was becoming even more complex with newly added support (new in v4!) for the iframe `srcdoc` property. Having Penpal create the iframe wasn't providing sufficient value to overcome the additional complexity required to support it. #### Debugging ##### What Rather than setting `Penpal.debug`, you can enable debugging by passing a `debug` option to `connectToChild` or `connectToParent`. ##### Why Since you're now importing `connectToParent` and `connectToChild` directly when using a bundler, there is no `Penpal` object. #### Error Codes ##### What The `ERR_IFRAME_ALREADY_ATTACHED_TO_DOM` error code has been removed. A new error code, `ERR_NO_IFRAME_SRC`, has been added. It will be thrown if the iframe provided to Penpal does not already have its `src` or `srcdoc` property set. ##### Why Penpal is no longer responsible for appending the iframe to the document. You may append the iframe to the document before or after `connectToChild` has been called. The only requirement is that `connectToChild` is called from the parent before `connectToParent` is called from the child. #### TypeScript Declarations ##### What TypeScript declarations have been removed from the project. ##### Why As outlined in the [TypeScript documentation](https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html), when a project is not written using TypeScript, it is preferred to publish TypeScript declarations to the [@​types organization](https://www.npmjs.com/~types) on npm instead of bundling them with the library. Another reason is that I don't use TypeScript generally, making it difficult to update the declarations accurately as changes are made in the library. If you liked the declarations that were available, I would encourage and appreciate it if you would add them to the [@​types](https://togithub.com/types) npm org. #### Support for `srcdoc` and data URIs. ##### What You don't actually have to change anything here, because neither of these things were previously supported. I just wanted to make you aware that, if it applies to you, you can now set the `src` property of the iframe using a [data URI](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) or leverage the iframe's `srcdoc` property instead. ##### Why These use cases were becoming more common.

Configuration

📅 Schedule: Branch creation - "after 3am,before 9am" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.

renovate[bot] commented 1 year ago

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.