Skip to content

Latest commit

 

History

History
296 lines (157 loc) · 19.4 KB

CHANGELOG.md

File metadata and controls

296 lines (157 loc) · 19.4 KB

1.0.0-beta.14 (2021-04-22)

Features

  • platform: pass intent with resolved capability to intent interceptors (b51959d), closes #72

1.0.0-beta.13 (2021-04-12)

Bug Fixes

  • platform: allow context key names containing forward slashes or starting with a colon (5637832), closes #49
  • platform: remove ES2015 import cycles (5dfc7f6), closes #42

Features

  • platform: add wildcard support for unregistering capabilities and intentions (4d22403), closes #61

BREAKING CHANGES

  • platform: Allowing context key names containing forward slashes or starting with a colon introduced a breaking change in the host/client communication protocol.

    The messaging protocol between host and client HAS CHANGED for context value lookup using the ContextService. Therefore, you must update the host and affected clients to the new version together. The API has not changed; the breaking change only applies to the @scion/microfrontend-platform version.

    To migrate:

  • platform: Adding wildcard support for unregistering capabilities and intentions introduced a breaking change.

    To migrate:

    • upgrade host and client apps to use @scion/[email protected]
    • When searching for capabilities with a qualifier filter that contains scalar qualifier values, only capabilities with exactly those values are now returned. This is different from previous versions where a qualifier filter like {entity: 'person', id: '5'} matched capabilities with exactly that qualifier, as well as capabilities containing a wildcard (* or ?) in the qualifier, such as {entity: 'person', id: '*'} or {entity: 'person', id: '?'}. To keep the old lookup behavior, do not pass a qualifier filter and filter the capabilities yourself, e.g. by using the QualifierMatcher, as follows:
        Beans.get(ManifestService).lookupCapabilities$({type: 'view'})
        .pipe(filterArray(capability => new QualifierMatcher(capability.qualifier, {evalOptional: true, evalAsterisk: true}).matches({entity: 'person', id: '5'})))

1.0.0-beta.12 (2021-02-22)

Bug Fixes

  • platform: allow preventing default action of registered keystrokes (8ae8595), closes #32
  • platform: propagate topic subscription errors in context service (08bbaf7)

chore

  • migrate Vercel deployments to the updated Vercel URL format (f31fe5d), closes #56

Features

  • platform: allow collecting values on contextual data lookup (2e87b51)

BREAKING CHANGES

1.0.0-beta.11 (2021-02-03)

Features

  • platform: add convenience API to reduce code required to respond to requests (d0eeaf5), closes #43
  • platform: allow to specify a generic when registering a capability to increase type safety (4af9433), closes #60
  • platform: let the message/intent replier control the lifecycle of the requestor’s Observable (77a4dd9)

BREAKING CHANGES

  • platform: Adding the convenience API for responding to requests introduced the following breaking change for Angular projects.

    Note: The messaging protocol between the host and client HAS NOT CHANGED. Thus, you can upgrade the host and clients to the new version independently.

    To migrate:

  • platform: Enabling the message/intent replier to control the requestor’s Observable lifecycle introduced a breaking change in the host/client communication protocol.

    Note: The messaging protocol between host and client HAS CHANGED for registering/unregistering capabilities/intentions using the ManifestService. Therefore, you must update the host and affected clients to the new version together. The API has not changed; the breaking change only applies to the @scion/microfrontend-platform version.

    To migrate:

    • Upgrade host and clients (which use the ManifestService) to @scion/[email protected].
    • Remove the throwOnErrorStatus SCION RxJS operator when using IntentClient#request$ or MessageClient#request$ as already installed by the platform.

1.0.0-beta.10 (2021-01-25)

Bug Fixes

  • start platform outside angular zone in testing app and devtools (f017422), closes #53

1.0.0-beta.9 (2021-01-18)

Bug Fixes

  • devtools: perform scope check when computing dependencies between micro applications (5e43bc3)
  • platform: resolve host startup promise only once applications and properties are available (f4067c2)

Features

  • platform: allow monitoring sci-router-outlet whether embedded content has gained or lost focus (14fb178)
  • platform: allow passing params in an intent (b82b343), closes #44
  • platform: open shadow DOM of the router outlet (cb10c32)

1.0.0-beta.8 (2020-12-18)

Bug Fixes

  • platform: allow empty path as url for outlet navigation (8a0a70b)
  • platform: ensure trailing slash in application base URLs (62a7a92)
  • platform: make platform startup more robust (0d30b72), closes #40 #41

Features

  • devtools: add devtools micro application (19db8bf), closes #4
  • platform: provide a static list of installed applications in the manifest service (b60015f)

BREAKING CHANGES

  • platform: The HostPlatformState bean has been removed as no longer necessary, because activator microfrontends are now installed after completing host platform startup, and because the startup Promise waits until connected to the host.

To migrate: Instead of listening for the host platform to enter the 'started' state, wait for the startup Promise to resolve. Note: You can independently upgrade host and clients to the new version because the platform was not using the platform status at all.

1.0.0-beta.7 (2020-11-05)

Code Refactoring

  • platform: move bean manager to @scion/toolkit (aa00b7e), closes #33

BREAKING CHANGES

  • platform: The bean manager was moved from @scion/microfrontend-platform to @scion/toolkit NPM module.

Note: The messaging protocol between host and client HAS NOT CHANGED. You can therefore independently upgrade host and clients to the new version.

To migrate:

  • Update @scion/toolkit to version 10.0.0-beta.3.
  • Import following symbols from @scion/toolkit/bean-manager instead of from @scion/microfrontend-platform: BeanManager, Beans, Initializer, InitializerFn, BeanDecorator, PreDestroy, BeanInstanceConstructInstructions, Type, AbstractType.
  • Replace InstanceConstructInstructions with BeanInstanceConstructInstructions.
  • Use static methods of the MicrofrontendPlatform class to interact with states of the platform lifecycle (formerly via PlatformState bean), e.g., to wait for the platform to enter a specific state. In this change, we changed the bean PlatformState to an enum to represent platform states (formerly PlatformStates). Migrate as follows:
    • Beans.get(PlatformState).whenState -> MicrofrontendPlatform.whenState, e.g., Beans.get(PlatformState).whenState(PlatformStates.Starting) -> MicrofrontendPlatform.whenState(PlatformStates.Starting)
    • Beans.get(PlatformState).state -> MicrofrontendPlatform.state
    • Beans.get(PlatformState).state$ -> MicrofrontendPlatform.state$
  • Replace occurrences of PlatformStates with PlatformState.
  • Control bean destruction order by setting its destroyOrder in the options object when registering the bean (formerly by setting the destroy phase). Beans with a lower destroy order are destroyed before beans with a higher destroy order. Beans of the same destroy order are destroyed in reverse construction order. By default, the destroy order is 0.
  • Registering a bean now returns a handle to unregister the bean (formerly void). If registering a bean inside a void expression, register it inside a void operator, as follows: void (Beans.register(Bean))

1.0.0-beta.6 (2020-09-30)

Bug Fixes

  • platform: substitute falsy values in named parameters of URL (96c84db), closes #24

Features

  • platform: allow registering beans under a symbol (98bf890), closes #28
  • platform: separate message and intent communication APIs (7610eb0)

BREAKING CHANGES

  • platform: Use MessageClient for topic-based messaging, and IntentClient for intent-based messaging

Note: The messaging protocol between host and client HAS NOT CHANGED. You can therefore independently upgrade host and clients to the new version.

Breaking changes in MessageClient

Moved or renamed the following methods:

  • MessageClient#onMessage$ -> MessageClient.observe$
  • MessageClient#issueIntent -> IntentClient.publish
  • MessageClient#requestByIntent$ -> IntentClient.request$
  • MessageClient#onIntent$ -> IntentClient.observe$
  • MessageClient#isConnected -> MicrofrontendPlatform.isConnectedToHost

Renamed options object of the following methods:

  • MessageClient#request$: MessageOptions -> RequestOptions
  • IntentClient#publish: MessageOptions -> IntentOptions
  • IntentClient#request$: MessageOptions -> IntentOptions

Breaking change for decorating MessageClient and IntentClient bean

For Angular developers, see Preparing the MessageClient and IntentClient for use with Angular how to decorate the MessageClient and IntentClient for making Observables to emit inside the Angular zone.

Breaking change for disabling messaging in tests

Messaging can now be deactivated via options object when starting the platform. Previously you had to register a NullMessageClient bean. MicrofrontendPlatform.connectToHost({messaging: {enabled: false}}

1.0.0-beta.5 (2020-07-17)

chore

  • update project workspace to Angular 10 (20a3266), closes #19

BREAKING CHANGES

  • esm5 and fesm5 format is no longer distributed in @scion/microfrontend-platform’s NPM package

We no longer include the distributions for esm5 and fesm5 in the @scion/microfrontend-platform’s NPM package. Only the formats for esm2015, fesm2015, and UMD are distributed. Consequently, the module field in package.json now points to the fesm2015 distribution.

To migrate:

  • If requiring esm5 or fesm5, you will need to downlevel to ES5 yourself. If using Angular, the Angular CLI will automatically downlevel the code to ES5 if differential loading is enabled in the Angular project, so no action is required from Angular CLI users.

1.0.0-beta.4 (2020-07-14)

Bug Fixes

  • testapp: do not render the application shell in activator microfrontends (2180257)

Features

  • platform: enable activators to signal their readiness (5beb278), closes #6

1.0.0-beta.3 (2020-06-30)

1.0.0-beta.2 (2020-06-29)

1.0.0-beta.1 (2020-06-21)

Features

  • platform: move SCION Microfrontend Platform to a separate Git repository (b191ccd)
  • platform: provide services to manage and query capabilities and intentions (3923331)