diff --git a/.changeset/busy-hounds-take.md b/.changeset/busy-hounds-take.md deleted file mode 100644 index de47cd29fd..0000000000 --- a/.changeset/busy-hounds-take.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@lynx-js/web-mainthread-apis": patch -"@lynx-js/web-worker-runtime": patch -"@lynx-js/web-core": patch ---- - -feat: allow lynx code to get JS engine provided properties on globalThis - -``` -globalThis.Reflect; // this will be the Reflect Object -``` - -Note that `assigning to the globalThis` is still not allowed. diff --git a/.changeset/calm-grass-grow.md b/.changeset/calm-grass-grow.md deleted file mode 100644 index d6e35ce40c..0000000000 --- a/.changeset/calm-grass-grow.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lynx-js/web-core-server": patch ---- - -perf: use v8 hint for generated javascript file - -https://v8.dev/blog/explicit-compile-hints diff --git a/.changeset/calm-plants-grow.md b/.changeset/calm-plants-grow.md deleted file mode 100644 index 5160e1028a..0000000000 --- a/.changeset/calm-plants-grow.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lynx-js/web-core": patch ---- - -perf: use v8 hint for generated javascript file - -https://v8.dev/blog/explicit-compile-hints diff --git a/.changeset/chubby-hounds-hug.md b/.changeset/chubby-hounds-hug.md deleted file mode 100644 index 853d812bb3..0000000000 --- a/.changeset/chubby-hounds-hug.md +++ /dev/null @@ -1,3 +0,0 @@ ---- - ---- diff --git a/.changeset/cold-terms-battle.md b/.changeset/cold-terms-battle.md deleted file mode 100644 index 7341cece72..0000000000 --- a/.changeset/cold-terms-battle.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -"@lynx-js/rspeedy": patch ---- - -Support `source.preEntry`. - -Add a script before the entry file of each page. This script will be executed before the page code. -It can be used to execute global logics, such as injecting polyfills, setting global styles, etc. - -example: - -```js -import { defineConfig } from '@lynx-js/rspeedy'; -export default defineConfig({ - source: { - preEntry: './src/polyfill.ts', - }, -}); -``` diff --git a/.changeset/common-games-hope.md b/.changeset/common-games-hope.md deleted file mode 100644 index 1d8e3875a7..0000000000 --- a/.changeset/common-games-hope.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@lynx-js/webpack-dev-transport": patch ---- - -Fix live-reload not working on Lynx 3.3 diff --git a/.changeset/five-boats-fix.md b/.changeset/five-boats-fix.md deleted file mode 100644 index 43c647dd80..0000000000 --- a/.changeset/five-boats-fix.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@lynx-js/template-webpack-plugin": patch -"@lynx-js/web-webpack-plugin": patch ---- - -Be compatible with rspack-manifest-plugin. - -Now only the `[name].lynx.bundle` and `[name].web.bundle` would exist in `manifest.json`. - -See [lynx-family/lynx-stack#763](https://github.com/lynx-family/lynx-stack/issues/763) for details. diff --git a/.changeset/flat-poets-build.md b/.changeset/flat-poets-build.md deleted file mode 100644 index 2568dc013b..0000000000 --- a/.changeset/flat-poets-build.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -"@lynx-js/web-elements": patch -"@lynx-js/web-elements-template": patch ---- - -refactor: split shadowroot templates into a package - -We're going to implement Lynx Web Platform's SSR based on the `shadowrootmode`. - -`https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootMode` - -(chrome 111, firefox 123, safari 16.4) - -This means those modern browsers are able to show the correct layout before the web components are defined. - -To make this work, we have to split the shadowroot template string into a new package `@lynx-js/web-elements-template`. - -No features affected. diff --git a/.changeset/gold-chefs-obey.md b/.changeset/gold-chefs-obey.md deleted file mode 100644 index 7d2b2ed8a2..0000000000 --- a/.changeset/gold-chefs-obey.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@lynx-js/web-core": patch ---- - -feat: add new property `inject-style-rules` for LynxView - -This property allows developer to inject some style rules into the shadowroot. - -It's a wrapper of https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule diff --git a/.changeset/heavy-pigs-wave.md b/.changeset/heavy-pigs-wave.md deleted file mode 100644 index cf6ef47ac2..0000000000 --- a/.changeset/heavy-pigs-wave.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@lynx-js/web-worker-runtime": patch ---- - -feat: return the offscreenDocument instance for startMainThread() diff --git a/.changeset/late-lies-bow.md b/.changeset/late-lies-bow.md deleted file mode 100644 index 34a837a346..0000000000 --- a/.changeset/late-lies-bow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@lynx-js/rspeedy": patch ---- - -Bump Rsbuild v1.3.20 with Rspack v1.3.10. diff --git a/.changeset/little-candies-carry.md b/.changeset/little-candies-carry.md deleted file mode 100644 index 7ca9f0c3aa..0000000000 --- a/.changeset/little-candies-carry.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -"@lynx-js/rspeedy": patch ---- - -Add `callerName` option to `createRspeedy`. - -It can be accessed by Rsbuild plugins through [`api.context.callerName`](https://rsbuild.dev/api/javascript-api/instance#contextcallername), and execute different logic based on this identifier. - -```js -export const myPlugin = { - name: 'my-plugin', - setup(api) { - const { callerName } = api.context; - - if (callerName === 'rslib') { - // ... - } else if (callerName === 'rspeedy') { - // ... - } - }, -}; -``` diff --git a/.changeset/long-cameras-refuse.md b/.changeset/long-cameras-refuse.md deleted file mode 100644 index a38cb16074..0000000000 --- a/.changeset/long-cameras-refuse.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@lynx-js/web-explorer": patch ---- - -chore: import qr-scanner from unpkg diff --git a/.changeset/lucky-socks-play.md b/.changeset/lucky-socks-play.md deleted file mode 100644 index 790859dabe..0000000000 --- a/.changeset/lucky-socks-play.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@lynx-js/rspeedy": patch ---- - -Support `performance.buildCache`. diff --git a/.changeset/quick-taxes-ring.md b/.changeset/quick-taxes-ring.md deleted file mode 100644 index 5de596b2ee..0000000000 --- a/.changeset/quick-taxes-ring.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@lynx-js/template-webpack-plugin": patch ---- - -Avoid CSS encode crash on Web platform. diff --git a/.changeset/silly-pumas-float.md b/.changeset/silly-pumas-float.md deleted file mode 100644 index 619457db72..0000000000 --- a/.changeset/silly-pumas-float.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@lynx-js/web-mainthread-apis": patch -"@lynx-js/web-constants": patch -"@lynx-js/web-core": patch -"@lynx-js/web-core-server": patch ---- - -fix: corrupt mainthread module cache diff --git a/.changeset/smart-drinks-attend.md b/.changeset/smart-drinks-attend.md deleted file mode 100644 index c381e263c6..0000000000 --- a/.changeset/smart-drinks-attend.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@lynx-js/offscreen-document": patch ---- - -feat: support OffscreenDocument.innerHTML diff --git a/.changeset/sweet-tires-flash.md b/.changeset/sweet-tires-flash.md deleted file mode 100644 index c7693144c9..0000000000 --- a/.changeset/sweet-tires-flash.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lynx-js/runtime-wrapper-webpack-plugin": minor ---- - -Add parameter forwarding for Browser Object Model (BOM) APIs. - -This allows direct access to APIs like `fetch`, `requestAnimationFrame`. diff --git a/.changeset/tired-lands-drop.md b/.changeset/tired-lands-drop.md deleted file mode 100644 index 4373e43a9b..0000000000 --- a/.changeset/tired-lands-drop.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@lynx-js/web-core-server": patch ---- - -feat: improve template js loading - -now we will create temp js file based on the new `templateName` argument. diff --git a/.changeset/violet-banks-cheer.md b/.changeset/violet-banks-cheer.md deleted file mode 100644 index c343fe3382..0000000000 --- a/.changeset/violet-banks-cheer.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@lynx-js/web-elements-reactive": patch ---- - -feat: do not create shadowroot if there already have one - -the shadowroot may already be created by - -https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootMode diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 6281f255b6..2689d02173 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,11 @@ # @lynx-js/react +## 0.108.1 + +### Patch Changes + +- Bump swc_core v23.2.0. ([#827](https://github.com/lynx-family/lynx-stack/pull/827)) + ## 0.108.0 ### Minor Changes diff --git a/packages/react/package.json b/packages/react/package.json index 5d3a4ee005..2242df7a6a 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/react", - "version": "0.108.0", + "version": "0.108.1", "description": "ReactLynx is a framework for developing Lynx applications with familiar React.", "repository": { "type": "git", diff --git a/packages/react/runtime/src/snapshot/workletRef.ts b/packages/react/runtime/src/snapshot/workletRef.ts index c900edc136..78be4ee4bb 100644 --- a/packages/react/runtime/src/snapshot/workletRef.ts +++ b/packages/react/runtime/src/snapshot/workletRef.ts @@ -2,12 +2,12 @@ // Licensed under the Apache License Version 2.0 that can be found in the // LICENSE file in the root directory of this source tree. import { runWorkletCtx, updateWorkletRef as update } from '@lynx-js/react/worklet-runtime/bindings'; -import type { Element, Worklet, WorkletRefImpl } from '@lynx-js/react/worklet-runtime/bindings'; +import type { Element, Worklet, WorkletRefId, WorkletRefImpl } from '@lynx-js/react/worklet-runtime/bindings'; import type { SnapshotInstance } from '../snapshot.js'; function workletUnRef(value: Worklet | WorkletRefImpl): void { - if ('_wvid' in value) { + if ('_wvid' in value && (value._wvid as WorkletRefId) > 0) { update(value as WorkletRefImpl, null); } else if ('_wkltId' in value) { if (typeof value._unmount == 'function') { @@ -38,7 +38,9 @@ function updateWorkletRef( if (value === null || value === undefined) { // do nothing } else if (value._wvid) { - update(value as WorkletRefImpl, snapshot.__elements[elementIndex]!); + if ((value._wvid as WorkletRefId) > 0) { + update(value as WorkletRefImpl, snapshot.__elements[elementIndex]!); + } } else if ((value as Worklet)._wkltId) { (value as Worklet)._unmount = runWorkletCtx(value as Worklet, [{ elementRefptr: (snapshot.__elements[elementIndex]!) as any, diff --git a/packages/react/runtime/src/worklet/workletRef.ts b/packages/react/runtime/src/worklet/workletRef.ts index 5693d23f0b..9956c09950 100644 --- a/packages/react/runtime/src/worklet/workletRef.ts +++ b/packages/react/runtime/src/worklet/workletRef.ts @@ -9,17 +9,19 @@ import { WorkletEvents } from '@lynx-js/react/worklet-runtime/bindings'; import { addWorkletRefInitValue } from './workletRefPool.js'; import { useMemo } from '../hooks/react.js'; -let lastId = 0; +// Split into two variables for testing purposes +let lastIdBG = 0; +let lastIdMT = 0; export function clearWorkletRefLastIdForTesting(): void { - lastId = 0; + lastIdBG = lastIdMT = 0; } abstract class WorkletRef { /** * @internal */ - protected _id: number; + protected _wvid: number; /** * @internal */ @@ -37,16 +39,13 @@ abstract class WorkletRef { * @internal */ protected constructor(initValue: T, type: string) { + this._initValue = initValue; + this._type = type; if (__JS__) { - this._id = ++lastId; - this._initValue = initValue; - this._type = type; - addWorkletRefInitValue(this._id, initValue); + this._wvid = ++lastIdBG; + addWorkletRefInitValue(this._wvid, initValue); } else { - // Out of the js thread, the `WorkletRef` class here is just a placeholder and should not be accessed directly. - // The real WorkletRef will be generated by the worklet runtime. - this._id = -1; - this._type = '__LEPUS__'; + this._wvid = --lastIdMT; } } @@ -76,7 +75,7 @@ abstract class WorkletRef { */ toJSON(): { _wvid: WorkletRefImpl['_wvid'] } { return { - _wvid: this._id, + _wvid: this._wvid, }; } } @@ -92,7 +91,7 @@ export class MainThreadRef extends WorkletRef { constructor(initValue: T) { super(initValue, 'main-thread'); if (__JS__) { - const id = this._id; + const id = this._wvid; this._lifecycleObserver = lynx.getNativeApp().createJSObjectDestructionObserver?.(() => { lynx.getCoreContext?.().dispatchEvent({ type: WorkletEvents.releaseWorkletRef, diff --git a/packages/react/worklet-runtime/__test__/workletRuntime.test.js b/packages/react/worklet-runtime/__test__/workletRuntime.test.js index 9afb532df3..e294e92b23 100644 --- a/packages/react/worklet-runtime/__test__/workletRuntime.test.js +++ b/packages/react/worklet-runtime/__test__/workletRuntime.test.js @@ -4,6 +4,7 @@ import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { initApiEnv } from '../src/api/lynxApi'; +import { currentCtx } from '../src/ctxTrace'; import { updateWorkletRefInitValueChanges } from '../src/workletRef'; import { initWorklet } from '../src/workletRuntime'; @@ -154,6 +155,21 @@ describe('Worklet', () => { expect(fn).toHaveBeenLastCalledWith(4); }); + it('should track current worklet ctx', async () => { + initWorklet(); + + const fn = vi.fn(() => { + expect(currentCtx.ctx._wkltId).toEqual('1'); + }); + registerWorklet('main-thread', '1', fn); + let worklet = { + _wkltId: '1', + }; + runWorklet(worklet); + expect(fn).toBeCalled(); + expect(currentCtx).toBeUndefined(); + }); + it('value of a workletRef should be preserved between calls', async () => { initWorklet(); diff --git a/packages/react/worklet-runtime/src/ctxTrace.ts b/packages/react/worklet-runtime/src/ctxTrace.ts new file mode 100644 index 0000000000..c7c4843282 --- /dev/null +++ b/packages/react/worklet-runtime/src/ctxTrace.ts @@ -0,0 +1,21 @@ +// Copyright 2024 The Lynx Authors. All rights reserved. +// Licensed under the Apache License Version 2.0 that can be found in the +// LICENSE file in the root directory of this source tree. + +import type { ClosureValueType, Worklet } from './bindings/types.js'; + +interface CtxTrace { + ctx: Worklet; +} + +export let currentCtx: CtxTrace | undefined; + +export function traceCtxCall(ctx: Worklet, _params: ClosureValueType[]): void { + currentCtx = { + ctx, + }; +} + +export function clearCurrentCtx(): void { + currentCtx = undefined; +} diff --git a/packages/react/worklet-runtime/src/workletRuntime.ts b/packages/react/worklet-runtime/src/workletRuntime.ts index 6ecaf15fb2..5d2af97178 100644 --- a/packages/react/worklet-runtime/src/workletRuntime.ts +++ b/packages/react/worklet-runtime/src/workletRuntime.ts @@ -3,8 +3,9 @@ // LICENSE file in the root directory of this source tree. import { Element } from './api/element.js'; import type { ClosureValueType, Worklet, WorkletRefImpl } from './bindings/types.js'; +import { clearCurrentCtx, traceCtxCall } from './ctxTrace.js'; import { delayExecUntilJsReady, initEventDelay } from './delayWorkletEvent.js'; -import { isRunOnBackgroundEnabled, JsFunctionLifecycleManager } from './jsFunctionLifecycle.js'; +import { JsFunctionLifecycleManager, isRunOnBackgroundEnabled } from './jsFunctionLifecycle.js'; import { profile } from './utils/profile.js'; import { getFromWorkletRefMap, initWorkletRef } from './workletRef.js'; @@ -54,20 +55,20 @@ function runWorklet(ctx: Worklet, params: ClosureValueType[]): unknown { } function runWorkletImpl(ctx: Worklet, params: ClosureValueType[]): unknown { - const worklet: Function = profile( - 'transformWorkletCtx ' + ctx._wkltId, - () => transformWorklet(ctx, true), - ); - const params_: ClosureValueType[] = profile( - 'transformWorkletParams', - () => transformWorklet(params || [], false), - ); - - let result; - profile('runWorklet', () => { - result = worklet(...params_); - }); - return result; + traceCtxCall(ctx, params); + try { + const worklet: (...args: any[]) => unknown = profile( + 'transformWorkletCtx ' + ctx._wkltId, + () => transformWorklet(ctx, true), + ); + const params_: ClosureValueType[] = profile( + 'transformWorkletParams', + () => transformWorklet(params || [], false), + ); + return profile('runWorklet', () => worklet(...params_)); + } finally { + clearCurrentCtx(); + } } function validateWorklet(ctx: unknown): ctx is Worklet { diff --git a/packages/rspeedy/core/CHANGELOG.md b/packages/rspeedy/core/CHANGELOG.md index 8f8bfc98af..2b72ccb49e 100644 --- a/packages/rspeedy/core/CHANGELOG.md +++ b/packages/rspeedy/core/CHANGELOG.md @@ -1,5 +1,51 @@ # @lynx-js/rspeedy +## 0.9.5 + +### Patch Changes + +- Support `source.preEntry`. ([#750](https://github.com/lynx-family/lynx-stack/pull/750)) + + Add a script before the entry file of each page. This script will be executed before the page code. + It can be used to execute global logics, such as injecting polyfills, setting global styles, etc. + + example: + + ```js + import { defineConfig } from '@lynx-js/rspeedy' + export default defineConfig({ + source: { + preEntry: './src/polyfill.ts', + }, + }) + ``` + +- Bump Rsbuild v1.3.20 with Rspack v1.3.10. ([#799](https://github.com/lynx-family/lynx-stack/pull/799)) + +- Add `callerName` option to `createRspeedy`. ([#757](https://github.com/lynx-family/lynx-stack/pull/757)) + + It can be accessed by Rsbuild plugins through [`api.context.callerName`](https://rsbuild.dev/api/javascript-api/instance#contextcallername), and execute different logic based on this identifier. + + ```js + export const myPlugin = { + name: 'my-plugin', + setup(api) { + const { callerName } = api.context + + if (callerName === 'rslib') { + // ... + } else if (callerName === 'rspeedy') { + // ... + } + }, + } + ``` + +- Support `performance.buildCache`. ([#766](https://github.com/lynx-family/lynx-stack/pull/766)) + +- Updated dependencies [[`fbc4fbb`](https://github.com/lynx-family/lynx-stack/commit/fbc4fbbdb572ad7128a33dc06e8d8a026d18e388)]: + - @lynx-js/webpack-dev-transport@0.1.3 + ## 0.9.4 ### Patch Changes diff --git a/packages/rspeedy/core/package.json b/packages/rspeedy/core/package.json index 31ef26cb85..9e4e6fe916 100644 --- a/packages/rspeedy/core/package.json +++ b/packages/rspeedy/core/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/rspeedy", - "version": "0.9.4", + "version": "0.9.5", "description": "A webpack/rspack-based frontend toolchain for Lynx", "keywords": [ "webpack", diff --git a/packages/rspeedy/create-rspeedy/CHANGELOG.md b/packages/rspeedy/create-rspeedy/CHANGELOG.md index 50ba0c4967..abb0a1472b 100644 --- a/packages/rspeedy/create-rspeedy/CHANGELOG.md +++ b/packages/rspeedy/create-rspeedy/CHANGELOG.md @@ -1,5 +1,7 @@ # create-rspeedy +## 0.9.5 + ## 0.9.4 ## 0.9.3 diff --git a/packages/rspeedy/create-rspeedy/package.json b/packages/rspeedy/create-rspeedy/package.json index 03b8906771..12fea7800c 100644 --- a/packages/rspeedy/create-rspeedy/package.json +++ b/packages/rspeedy/create-rspeedy/package.json @@ -1,6 +1,6 @@ { "name": "create-rspeedy", - "version": "0.9.4", + "version": "0.9.5", "description": "Create Rspeedy-powered ReactLynx apps with one command", "keywords": [ "webpack", diff --git a/packages/rspeedy/plugin-react-alias/CHANGELOG.md b/packages/rspeedy/plugin-react-alias/CHANGELOG.md index 7f613300c7..baa85461c2 100644 --- a/packages/rspeedy/plugin-react-alias/CHANGELOG.md +++ b/packages/rspeedy/plugin-react-alias/CHANGELOG.md @@ -1,5 +1,7 @@ # @lynx-js/react-alias-rsbuild-plugin +## 0.9.10 + ## 0.9.9 ## 0.9.8 diff --git a/packages/rspeedy/plugin-react-alias/package.json b/packages/rspeedy/plugin-react-alias/package.json index b3efda1dba..ab5145f96f 100644 --- a/packages/rspeedy/plugin-react-alias/package.json +++ b/packages/rspeedy/plugin-react-alias/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/react-alias-rsbuild-plugin", - "version": "0.9.9", + "version": "0.9.10", "description": "A rsbuild plugin for making alias in ReactLynx", "keywords": [ "rsbuild", diff --git a/packages/rspeedy/plugin-react/CHANGELOG.md b/packages/rspeedy/plugin-react/CHANGELOG.md index 952df4e5d1..1feba89f0e 100644 --- a/packages/rspeedy/plugin-react/CHANGELOG.md +++ b/packages/rspeedy/plugin-react/CHANGELOG.md @@ -1,5 +1,18 @@ # @lynx-js/react-rsbuild-plugin +## 0.9.10 + +### Patch Changes + +- Updated dependencies [[`e599635`](https://github.com/lynx-family/lynx-stack/commit/e599635a667c2d98271e0d54b7f6d49dadbfbdba), [`c38c737`](https://github.com/lynx-family/lynx-stack/commit/c38c737096697781a154219d6b1e3b4ffbf6512f), [`d16522e`](https://github.com/lynx-family/lynx-stack/commit/d16522eee0db3cd1a6ec20fb5832fd79f89a2264)]: + - @lynx-js/template-webpack-plugin@0.6.11 + - @lynx-js/web-webpack-plugin@0.6.7 + - @lynx-js/runtime-wrapper-webpack-plugin@0.1.0 + - @lynx-js/react-alias-rsbuild-plugin@0.9.10 + - @lynx-js/react-refresh-webpack-plugin@0.3.2 + - @lynx-js/react-webpack-plugin@0.6.13 + - @lynx-js/css-extract-webpack-plugin@0.5.3 + ## 0.9.9 ### Patch Changes diff --git a/packages/rspeedy/plugin-react/package.json b/packages/rspeedy/plugin-react/package.json index ab3914efb3..2d9dc659e6 100644 --- a/packages/rspeedy/plugin-react/package.json +++ b/packages/rspeedy/plugin-react/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/react-rsbuild-plugin", - "version": "0.9.9", + "version": "0.9.10", "description": "A rsbuild plugin for ReactLynx", "keywords": [ "rsbuild", diff --git a/packages/rspeedy/upgrade-rspeedy/CHANGELOG.md b/packages/rspeedy/upgrade-rspeedy/CHANGELOG.md index 3e186efa16..ab6558146e 100644 --- a/packages/rspeedy/upgrade-rspeedy/CHANGELOG.md +++ b/packages/rspeedy/upgrade-rspeedy/CHANGELOG.md @@ -1,5 +1,7 @@ # upgrade-rspeedy +## 0.9.5 + ## 0.9.4 ## 0.9.3 diff --git a/packages/rspeedy/upgrade-rspeedy/package.json b/packages/rspeedy/upgrade-rspeedy/package.json index 595813f875..b121bc4087 100644 --- a/packages/rspeedy/upgrade-rspeedy/package.json +++ b/packages/rspeedy/upgrade-rspeedy/package.json @@ -1,6 +1,6 @@ { "name": "upgrade-rspeedy", - "version": "0.9.4", + "version": "0.9.5", "description": "Upgrade Rspeedy-related packages", "keywords": [ "webpack", diff --git a/packages/web-platform/offscreen-document/CHANGELOG.md b/packages/web-platform/offscreen-document/CHANGELOG.md index a2ce95a646..df4cbe486a 100644 --- a/packages/web-platform/offscreen-document/CHANGELOG.md +++ b/packages/web-platform/offscreen-document/CHANGELOG.md @@ -1,5 +1,11 @@ # @lynx-js/offscreen-document +## 0.0.3 + +### Patch Changes + +- feat: support OffscreenDocument.innerHTML ([#772](https://github.com/lynx-family/lynx-stack/pull/772)) + ## 0.0.2 ### Patch Changes diff --git a/packages/web-platform/offscreen-document/package.json b/packages/web-platform/offscreen-document/package.json index 5b20b3af96..8e722c5072 100644 --- a/packages/web-platform/offscreen-document/package.json +++ b/packages/web-platform/offscreen-document/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/offscreen-document", - "version": "0.0.2", + "version": "0.0.3", "private": false, "description": "Offscreen Document allows developers to use partical DOM in WebWorker", "keywords": [ diff --git a/packages/web-platform/web-constants/CHANGELOG.md b/packages/web-platform/web-constants/CHANGELOG.md index 7665a272e6..563cd5817d 100644 --- a/packages/web-platform/web-constants/CHANGELOG.md +++ b/packages/web-platform/web-constants/CHANGELOG.md @@ -1,5 +1,14 @@ # @lynx-js/web-constants +## 0.13.2 + +### Patch Changes + +- fix: corrupt mainthread module cache ([#806](https://github.com/lynx-family/lynx-stack/pull/806)) + +- Updated dependencies []: + - @lynx-js/web-worker-rpc@0.13.2 + ## 0.13.1 ### Patch Changes diff --git a/packages/web-platform/web-constants/package.json b/packages/web-platform/web-constants/package.json index d0e005463c..b539cd3d75 100644 --- a/packages/web-platform/web-constants/package.json +++ b/packages/web-platform/web-constants/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-constants", - "version": "0.13.1", + "version": "0.13.2", "private": false, "description": "", "keywords": [], diff --git a/packages/web-platform/web-core-server/CHANGELOG.md b/packages/web-platform/web-core-server/CHANGELOG.md new file mode 100644 index 0000000000..224ff9b4ee --- /dev/null +++ b/packages/web-platform/web-core-server/CHANGELOG.md @@ -0,0 +1,15 @@ +# @lynx-js/web-core-server + +## 0.13.2 + +### Patch Changes + +- perf: use v8 hint for generated javascript file ([#807](https://github.com/lynx-family/lynx-stack/pull/807)) + + https://v8.dev/blog/explicit-compile-hints + +- fix: corrupt mainthread module cache ([#806](https://github.com/lynx-family/lynx-stack/pull/806)) + +- feat: improve template js loading ([#807](https://github.com/lynx-family/lynx-stack/pull/807)) + + now we will create temp js file based on the new `templateName` argument. diff --git a/packages/web-platform/web-core-server/package.json b/packages/web-platform/web-core-server/package.json index 861a3c58ab..2cbcd617c6 100644 --- a/packages/web-platform/web-core-server/package.json +++ b/packages/web-platform/web-core-server/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-core-server", - "version": "0.12.0", + "version": "0.13.2", "private": false, "description": "", "keywords": [], diff --git a/packages/web-platform/web-core/CHANGELOG.md b/packages/web-platform/web-core/CHANGELOG.md index eba4ae127a..18f67132dc 100644 --- a/packages/web-platform/web-core/CHANGELOG.md +++ b/packages/web-platform/web-core/CHANGELOG.md @@ -1,5 +1,36 @@ # @lynx-js/web-core +## 0.13.2 + +### Patch Changes + +- feat: allow lynx code to get JS engine provided properties on globalThis ([#786](https://github.com/lynx-family/lynx-stack/pull/786)) + + ``` + globalThis.Reflect; // this will be the Reflect Object + ``` + + Note that `assigning to the globalThis` is still not allowed. + +- perf: use v8 hint for generated javascript file ([#807](https://github.com/lynx-family/lynx-stack/pull/807)) + + https://v8.dev/blog/explicit-compile-hints + +- feat: add new property `inject-style-rules` for LynxView ([#785](https://github.com/lynx-family/lynx-stack/pull/785)) + + This property allows developer to inject some style rules into the shadowroot. + + It's a wrapper of https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule + +- fix: corrupt mainthread module cache ([#806](https://github.com/lynx-family/lynx-stack/pull/806)) + +- Updated dependencies [[`03a5f64`](https://github.com/lynx-family/lynx-stack/commit/03a5f64d7d09e38903f5d1c022f36f6e68b6432d), [`6d3d852`](https://github.com/lynx-family/lynx-stack/commit/6d3d8529d0d528419920102ca52da279bbe0f1e0), [`8cdd288`](https://github.com/lynx-family/lynx-stack/commit/8cdd28884288b9456aee3a919d6edbf72da1c67b), [`6d3d852`](https://github.com/lynx-family/lynx-stack/commit/6d3d8529d0d528419920102ca52da279bbe0f1e0)]: + - @lynx-js/web-mainthread-apis@0.13.2 + - @lynx-js/web-worker-runtime@0.13.2 + - @lynx-js/web-constants@0.13.2 + - @lynx-js/offscreen-document@0.0.3 + - @lynx-js/web-worker-rpc@0.13.2 + ## 0.13.1 ### Patch Changes diff --git a/packages/web-platform/web-core/package.json b/packages/web-platform/web-core/package.json index c86a2784a7..e6c3bd66c3 100644 --- a/packages/web-platform/web-core/package.json +++ b/packages/web-platform/web-core/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-core", - "version": "0.13.1", + "version": "0.13.2", "private": false, "description": "", "keywords": [], diff --git a/packages/web-platform/web-elements-reactive/CHANGELOG.md b/packages/web-platform/web-elements-reactive/CHANGELOG.md index 92d90d3678..0daf544d37 100644 --- a/packages/web-platform/web-elements-reactive/CHANGELOG.md +++ b/packages/web-platform/web-elements-reactive/CHANGELOG.md @@ -1,5 +1,15 @@ # @lynx-js/web-elements-reactive +## 0.2.2 + +### Patch Changes + +- feat: do not create shadowroot if there already have one ([#811](https://github.com/lynx-family/lynx-stack/pull/811)) + + the shadowroot may already be created by + + https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootMode + ## 0.2.1 ### Patch Changes diff --git a/packages/web-platform/web-elements-reactive/package.json b/packages/web-platform/web-elements-reactive/package.json index 2ecfeaaf2a..6cffcfb74e 100644 --- a/packages/web-platform/web-elements-reactive/package.json +++ b/packages/web-platform/web-elements-reactive/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-elements-reactive", - "version": "0.2.1", + "version": "0.2.2", "private": false, "repository": { "type": "git", diff --git a/packages/web-platform/web-elements-template/CHANGELOG.md b/packages/web-platform/web-elements-template/CHANGELOG.md index c4c8373801..6b61f32cef 100644 --- a/packages/web-platform/web-elements-template/CHANGELOG.md +++ b/packages/web-platform/web-elements-template/CHANGELOG.md @@ -1 +1,19 @@ # @lynx-js/web-elements-template + +## 0.7.2 + +### Patch Changes + +- refactor: split shadowroot templates into a package ([#811](https://github.com/lynx-family/lynx-stack/pull/811)) + + We're going to implement Lynx Web Platform's SSR based on the `shadowrootmode`. + + `https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootMode` + + (chrome 111, firefox 123, safari 16.4) + + This means those modern browsers are able to show the correct layout before the web components are defined. + + To make this work, we have to split the shadowroot template string into a new package `@lynx-js/web-elements-template`. + + No features affected. diff --git a/packages/web-platform/web-elements-template/package.json b/packages/web-platform/web-elements-template/package.json index c82f2d191d..71ae4b7f42 100644 --- a/packages/web-platform/web-elements-template/package.json +++ b/packages/web-platform/web-elements-template/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-elements-template", - "version": "0.7.1", + "version": "0.7.2", "private": false, "repository": { "type": "git", diff --git a/packages/web-platform/web-elements/CHANGELOG.md b/packages/web-platform/web-elements/CHANGELOG.md index fc25bf2a9c..e9d9fef791 100644 --- a/packages/web-platform/web-elements/CHANGELOG.md +++ b/packages/web-platform/web-elements/CHANGELOG.md @@ -1,5 +1,27 @@ # @lynx-js/web-elements +## 0.7.2 + +### Patch Changes + +- refactor: split shadowroot templates into a package ([#811](https://github.com/lynx-family/lynx-stack/pull/811)) + + We're going to implement Lynx Web Platform's SSR based on the `shadowrootmode`. + + `https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/shadowRootMode` + + (chrome 111, firefox 123, safari 16.4) + + This means those modern browsers are able to show the correct layout before the web components are defined. + + To make this work, we have to split the shadowroot template string into a new package `@lynx-js/web-elements-template`. + + No features affected. + +- Updated dependencies [[`ae9652a`](https://github.com/lynx-family/lynx-stack/commit/ae9652a7a1d6247959bb41e7d76793300eddb741), [`ae9652a`](https://github.com/lynx-family/lynx-stack/commit/ae9652a7a1d6247959bb41e7d76793300eddb741)]: + - @lynx-js/web-elements-template@0.7.2 + - @lynx-js/web-elements-reactive@0.2.2 + ## 0.7.1 ### Patch Changes diff --git a/packages/web-platform/web-elements/package.json b/packages/web-platform/web-elements/package.json index 2a0f20289f..0ac2e898e3 100644 --- a/packages/web-platform/web-elements/package.json +++ b/packages/web-platform/web-elements/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-elements", - "version": "0.7.1", + "version": "0.7.2", "private": false, "repository": { "type": "git", diff --git a/packages/web-platform/web-explorer/CHANGELOG.md b/packages/web-platform/web-explorer/CHANGELOG.md index e70de1e06d..645cce0ec3 100644 --- a/packages/web-platform/web-explorer/CHANGELOG.md +++ b/packages/web-platform/web-explorer/CHANGELOG.md @@ -1,5 +1,11 @@ # @lynx-js/web-explorer +## 0.0.8 + +### Patch Changes + +- chore: import qr-scanner from unpkg ([#815](https://github.com/lynx-family/lynx-stack/pull/815)) + ## 0.0.7 ### Patch Changes diff --git a/packages/web-platform/web-explorer/package.json b/packages/web-platform/web-explorer/package.json index 2992c49332..e282922a01 100644 --- a/packages/web-platform/web-explorer/package.json +++ b/packages/web-platform/web-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-explorer", - "version": "0.0.7", + "version": "0.0.8", "private": false, "repository": { "type": "git", diff --git a/packages/web-platform/web-mainthread-apis/CHANGELOG.md b/packages/web-platform/web-mainthread-apis/CHANGELOG.md index d7427224dc..d99af3a61d 100644 --- a/packages/web-platform/web-mainthread-apis/CHANGELOG.md +++ b/packages/web-platform/web-mainthread-apis/CHANGELOG.md @@ -1,5 +1,22 @@ # @lynx-js/web-mainthread-apis +## 0.13.2 + +### Patch Changes + +- feat: allow lynx code to get JS engine provided properties on globalThis ([#786](https://github.com/lynx-family/lynx-stack/pull/786)) + + ``` + globalThis.Reflect; // this will be the Reflect Object + ``` + + Note that `assigning to the globalThis` is still not allowed. + +- fix: corrupt mainthread module cache ([#806](https://github.com/lynx-family/lynx-stack/pull/806)) + +- Updated dependencies [[`8cdd288`](https://github.com/lynx-family/lynx-stack/commit/8cdd28884288b9456aee3a919d6edbf72da1c67b)]: + - @lynx-js/web-constants@0.13.2 + ## 0.13.1 ### Patch Changes diff --git a/packages/web-platform/web-mainthread-apis/package.json b/packages/web-platform/web-mainthread-apis/package.json index 60a5aa2b9a..d0f4498b1e 100644 --- a/packages/web-platform/web-mainthread-apis/package.json +++ b/packages/web-platform/web-mainthread-apis/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-mainthread-apis", - "version": "0.13.1", + "version": "0.13.2", "private": false, "description": "", "keywords": [], diff --git a/packages/web-platform/web-worker-rpc/CHANGELOG.md b/packages/web-platform/web-worker-rpc/CHANGELOG.md index 67ea1664bb..67dd956b5e 100644 --- a/packages/web-platform/web-worker-rpc/CHANGELOG.md +++ b/packages/web-platform/web-worker-rpc/CHANGELOG.md @@ -1,5 +1,7 @@ # @lynx-js/web-worker-rpc +## 0.13.2 + ## 0.13.1 ## 0.13.0 diff --git a/packages/web-platform/web-worker-rpc/package.json b/packages/web-platform/web-worker-rpc/package.json index 165c7b1cea..e779dbf0b6 100644 --- a/packages/web-platform/web-worker-rpc/package.json +++ b/packages/web-platform/web-worker-rpc/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-worker-rpc", - "version": "0.13.1", + "version": "0.13.2", "private": false, "description": "", "keywords": [], diff --git a/packages/web-platform/web-worker-runtime/CHANGELOG.md b/packages/web-platform/web-worker-runtime/CHANGELOG.md index e758d2bcbc..35bd3494ee 100644 --- a/packages/web-platform/web-worker-runtime/CHANGELOG.md +++ b/packages/web-platform/web-worker-runtime/CHANGELOG.md @@ -1,5 +1,25 @@ # @lynx-js/web-worker-runtime +## 0.13.2 + +### Patch Changes + +- feat: allow lynx code to get JS engine provided properties on globalThis ([#786](https://github.com/lynx-family/lynx-stack/pull/786)) + + ``` + globalThis.Reflect; // this will be the Reflect Object + ``` + + Note that `assigning to the globalThis` is still not allowed. + +- feat: return the offscreenDocument instance for startMainThread() ([#772](https://github.com/lynx-family/lynx-stack/pull/772)) + +- Updated dependencies [[`03a5f64`](https://github.com/lynx-family/lynx-stack/commit/03a5f64d7d09e38903f5d1c022f36f6e68b6432d), [`8cdd288`](https://github.com/lynx-family/lynx-stack/commit/8cdd28884288b9456aee3a919d6edbf72da1c67b), [`6d3d852`](https://github.com/lynx-family/lynx-stack/commit/6d3d8529d0d528419920102ca52da279bbe0f1e0)]: + - @lynx-js/web-mainthread-apis@0.13.2 + - @lynx-js/web-constants@0.13.2 + - @lynx-js/offscreen-document@0.0.3 + - @lynx-js/web-worker-rpc@0.13.2 + ## 0.13.1 ### Patch Changes diff --git a/packages/web-platform/web-worker-runtime/package.json b/packages/web-platform/web-worker-runtime/package.json index 45b86fac90..e33502303d 100644 --- a/packages/web-platform/web-worker-runtime/package.json +++ b/packages/web-platform/web-worker-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-worker-runtime", - "version": "0.13.1", + "version": "0.13.2", "private": false, "description": "", "keywords": [], diff --git a/packages/webpack/runtime-wrapper-webpack-plugin/CHANGELOG.md b/packages/webpack/runtime-wrapper-webpack-plugin/CHANGELOG.md index 9cb4b414b1..59cabf9aa8 100644 --- a/packages/webpack/runtime-wrapper-webpack-plugin/CHANGELOG.md +++ b/packages/webpack/runtime-wrapper-webpack-plugin/CHANGELOG.md @@ -1,5 +1,13 @@ # @lynx-js/runtime-wrapper-webpack-plugin +## 0.1.0 + +### Minor Changes + +- Add parameter forwarding for Browser Object Model (BOM) APIs. ([#787](https://github.com/lynx-family/lynx-stack/pull/787)) + + This allows direct access to APIs like `fetch`, `requestAnimationFrame`. + ## 0.0.10 ### Patch Changes diff --git a/packages/webpack/runtime-wrapper-webpack-plugin/package.json b/packages/webpack/runtime-wrapper-webpack-plugin/package.json index 6773dd8e9b..2fb1a4df7b 100644 --- a/packages/webpack/runtime-wrapper-webpack-plugin/package.json +++ b/packages/webpack/runtime-wrapper-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/runtime-wrapper-webpack-plugin", - "version": "0.0.10", + "version": "0.1.0", "description": "Use runtime wrapper which allow JavaScript to be load by Lynx.", "keywords": [ "webpack", diff --git a/packages/webpack/template-webpack-plugin/CHANGELOG.md b/packages/webpack/template-webpack-plugin/CHANGELOG.md index 2dc815d846..ca01a215ec 100644 --- a/packages/webpack/template-webpack-plugin/CHANGELOG.md +++ b/packages/webpack/template-webpack-plugin/CHANGELOG.md @@ -1,5 +1,17 @@ # @lynx-js/template-webpack-plugin +## 0.6.11 + +### Patch Changes + +- Be compatible with rspack-manifest-plugin. ([#812](https://github.com/lynx-family/lynx-stack/pull/812)) + + Now only the `[name].lynx.bundle` and `[name].web.bundle` would exist in `manifest.json`. + + See [lynx-family/lynx-stack#763](https://github.com/lynx-family/lynx-stack/issues/763) for details. + +- Avoid CSS encode crash on Web platform. ([#814](https://github.com/lynx-family/lynx-stack/pull/814)) + ## 0.6.10 ### Patch Changes diff --git a/packages/webpack/template-webpack-plugin/package.json b/packages/webpack/template-webpack-plugin/package.json index 3768a75079..473b0eade2 100644 --- a/packages/webpack/template-webpack-plugin/package.json +++ b/packages/webpack/template-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/template-webpack-plugin", - "version": "0.6.10", + "version": "0.6.11", "description": "Simplifies creation of Lynx template files to serve your webpack bundles", "keywords": [ "webpack", diff --git a/packages/webpack/web-webpack-plugin/CHANGELOG.md b/packages/webpack/web-webpack-plugin/CHANGELOG.md index 1cef97cc7d..2ff2107e2d 100644 --- a/packages/webpack/web-webpack-plugin/CHANGELOG.md +++ b/packages/webpack/web-webpack-plugin/CHANGELOG.md @@ -1,5 +1,15 @@ # @lynx-js/web-webpack-plugin +## 0.6.7 + +### Patch Changes + +- Be compatible with rspack-manifest-plugin. ([#812](https://github.com/lynx-family/lynx-stack/pull/812)) + + Now only the `[name].lynx.bundle` and `[name].web.bundle` would exist in `manifest.json`. + + See [lynx-family/lynx-stack#763](https://github.com/lynx-family/lynx-stack/issues/763) for details. + ## 0.6.6 ### Patch Changes diff --git a/packages/webpack/web-webpack-plugin/package.json b/packages/webpack/web-webpack-plugin/package.json index c5c8497075..9e45eb1c6e 100644 --- a/packages/webpack/web-webpack-plugin/package.json +++ b/packages/webpack/web-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/web-webpack-plugin", - "version": "0.6.6", + "version": "0.6.7", "private": false, "description": "TBD", "keywords": [], diff --git a/packages/webpack/webpack-dev-transport/CHANGELOG.md b/packages/webpack/webpack-dev-transport/CHANGELOG.md index ff2b7d7307..1c1d097f06 100644 --- a/packages/webpack/webpack-dev-transport/CHANGELOG.md +++ b/packages/webpack/webpack-dev-transport/CHANGELOG.md @@ -1,5 +1,11 @@ # @lynx-js/webpack-dev-transport +## 0.1.3 + +### Patch Changes + +- Fix live-reload not working on Lynx 3.3 ([#795](https://github.com/lynx-family/lynx-stack/pull/795)) + ## 0.1.2 ### Patch Changes diff --git a/packages/webpack/webpack-dev-transport/package.json b/packages/webpack/webpack-dev-transport/package.json index f033a296d7..4c4ff52a9e 100644 --- a/packages/webpack/webpack-dev-transport/package.json +++ b/packages/webpack/webpack-dev-transport/package.json @@ -1,6 +1,6 @@ { "name": "@lynx-js/webpack-dev-transport", - "version": "0.1.2", + "version": "0.1.3", "description": "A webpack dev-server transport implementation for Lynx", "keywords": [ "webpack",