@powerlines/plugin-react 0.1.342 → 0.1.344

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -14,7 +14,7 @@ let __vitejs_plugin_react = require("@vitejs/plugin-react");
14
14
  __vitejs_plugin_react = require_rolldown_runtime.__toESM(__vitejs_plugin_react);
15
15
  let defu = require("defu");
16
16
  defu = require_rolldown_runtime.__toESM(defu);
17
- let powerlines_lib_typescript_tsconfig = require("powerlines/lib/typescript/tsconfig");
17
+ let powerlines_typescript_tsconfig = require("powerlines/typescript/tsconfig");
18
18
 
19
19
  //#region src/index.tsx
20
20
  /**
@@ -50,9 +50,9 @@ const plugin = (options = {}) => {
50
50
  this.devDependencies["@types/react"] = "^19.2.3";
51
51
  this.devDependencies["@types/react-dom"] = "^19.2.3";
52
52
  if (this.config.react.compiler !== false) {
53
- this.config.transform.babel ??= {};
54
- this.config.transform.babel.plugins ??= [];
55
- this.config.transform.babel.plugins.push(["babel-plugin-react-compiler", this.config.react.compiler]);
53
+ this.config.babel ??= {};
54
+ this.config.babel.plugins ??= [];
55
+ this.config.babel.plugins.push(["babel-plugin-react-compiler", this.config.react.compiler]);
56
56
  }
57
57
  this.tsconfig.tsconfigJson.compilerOptions ??= {};
58
58
  this.tsconfig.tsconfigJson.compilerOptions.lib ??= [];
@@ -61,20 +61,20 @@ const plugin = (options = {}) => {
61
61
  if (this.tsconfig.options.jsxImportSource === "react") this.tsconfig.tsconfigJson.compilerOptions.jsx ??= "react-jsx";
62
62
  else this.tsconfig.tsconfigJson.compilerOptions.jsx ??= "preserve";
63
63
  if (this.environment.consumer === "client") {
64
- if (!(0, powerlines_lib_typescript_tsconfig.isMatchFound)("dom", this.tsconfig.tsconfigJson.compilerOptions.lib)) this.tsconfig.tsconfigJson.compilerOptions.lib.push("DOM");
65
- if (!(0, powerlines_lib_typescript_tsconfig.isMatchFound)("dom.iterable", this.tsconfig.tsconfigJson.compilerOptions.lib)) this.tsconfig.tsconfigJson.compilerOptions.lib.push("DOM.Iterable");
64
+ if (!(0, powerlines_typescript_tsconfig.isMatchFound)("dom", this.tsconfig.tsconfigJson.compilerOptions.lib)) this.tsconfig.tsconfigJson.compilerOptions.lib.push("DOM");
65
+ if (!(0, powerlines_typescript_tsconfig.isMatchFound)("dom.iterable", this.tsconfig.tsconfigJson.compilerOptions.lib)) this.tsconfig.tsconfigJson.compilerOptions.lib.push("DOM.Iterable");
66
66
  }
67
- if (!(0, powerlines_lib_typescript_tsconfig.isMatchFound)("esnext", this.tsconfig.tsconfigJson.compilerOptions.lib)) this.tsconfig.tsconfigJson.compilerOptions.lib.push("ESNext");
67
+ if (!(0, powerlines_typescript_tsconfig.isMatchFound)("esnext", this.tsconfig.tsconfigJson.compilerOptions.lib)) this.tsconfig.tsconfigJson.compilerOptions.lib.push("ESNext");
68
68
  if (this.tsconfig.options.resolveJsonModule !== true) this.tsconfig.tsconfigJson.compilerOptions.resolveJsonModule = true;
69
- if (this.config.build.variant === "vite") {
69
+ if (this.config.vite) {
70
70
  this.tsconfig.tsconfigJson.compilerOptions.types ??= [];
71
- if (!(0, powerlines_lib_typescript_tsconfig.isMatchFound)("vite/client", this.tsconfig.tsconfigJson.compilerOptions.types)) this.tsconfig.tsconfigJson.compilerOptions.types.push("vite/client");
72
- const viteBuildConfig = this.config.build;
71
+ if (!(0, powerlines_typescript_tsconfig.isMatchFound)("vite/client", this.tsconfig.tsconfigJson.compilerOptions.types)) this.tsconfig.tsconfigJson.compilerOptions.types.push("vite/client");
72
+ const viteBuildConfig = this.config.vite;
73
73
  viteBuildConfig.build ??= {};
74
74
  viteBuildConfig.build.target = "chrome95";
75
75
  viteBuildConfig.plugins ??= [];
76
76
  viteBuildConfig.plugins.unshift((0, __vitejs_plugin_react.default)({
77
- babel: this.config.transform.babel,
77
+ babel: this.config.babel,
78
78
  jsxImportSource: this.config.react.jsxImportSource,
79
79
  jsxRuntime: this.config.react.jsxRuntime,
80
80
  reactRefreshHost: this.config.react.reactRefreshHost
package/dist/index.d.cts CHANGED
@@ -3,9 +3,14 @@ import "./components/index.cjs";
3
3
  import { ReactCompilerOptions, ReactPluginContext, ReactPluginOptions, ReactPluginResolvedConfig, ReactPluginUserConfig, __ΩReactCompilerOptions, __ΩReactPluginContext, __ΩReactPluginOptions, __ΩReactPluginResolvedConfig, __ΩReactPluginUserConfig } from "./types/plugin.cjs";
4
4
  import { ReactEnvInterface, __ΩReactEnvInterface } from "./types/runtime.cjs";
5
5
  import "./types/index.cjs";
6
- import { Plugin } from "powerlines/types/plugin";
6
+ import { Plugin } from "powerlines";
7
7
 
8
8
  //#region src/index.d.ts
9
+ declare module "powerlines" {
10
+ interface UserConfig {
11
+ react?: ReactPluginOptions;
12
+ }
13
+ }
9
14
  /**
10
15
  * A package containing a Powerlines plugin for building a React application.
11
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;;cA0Ca,0BACM,qBAAqB,8BAE7B,uBAkMJ,OAAO"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;YAwCY;;AAJY;;;;AAIM,cAOjB,MAPiB,EAAA,CAAA,iBAQX,kBARW,GAQU,kBARV,CAAA,CAAA,OAAA,CAAA,EAUnB,kBAVmB,EAAA,GA8MvB,MA9MuB,CA8MhB,QA9MgB,CAAA,EAAA"}
package/dist/index.d.mts CHANGED
@@ -3,9 +3,14 @@ import "./components/index.mjs";
3
3
  import { ReactCompilerOptions, ReactPluginContext, ReactPluginOptions, ReactPluginResolvedConfig, ReactPluginUserConfig, __ΩReactCompilerOptions, __ΩReactPluginContext, __ΩReactPluginOptions, __ΩReactPluginResolvedConfig, __ΩReactPluginUserConfig } from "./types/plugin.mjs";
4
4
  import { ReactEnvInterface, __ΩReactEnvInterface } from "./types/runtime.mjs";
5
5
  import "./types/index.mjs";
6
- import { Plugin } from "powerlines/types/plugin";
6
+ import { Plugin } from "powerlines";
7
7
 
8
8
  //#region src/index.d.ts
9
+ declare module "powerlines" {
10
+ interface UserConfig {
11
+ react?: ReactPluginOptions;
12
+ }
13
+ }
9
14
  /**
10
15
  * A package containing a Powerlines plugin for building a React application.
11
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;;cA0Ca,0BACM,qBAAqB,8BAE7B,uBAkMJ,OAAO"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;YAwCY;;AAJY;;;;AAIM,cAOjB,MAPiB,EAAA,CAAA,iBAQX,kBARW,GAQU,kBARV,CAAA,CAAA,OAAA,CAAA,EAUnB,kBAVmB,EAAA,GA8MvB,MA9MuB,CA8MhB,QA9MgB,CAAA,EAAA"}
package/dist/index.mjs CHANGED
@@ -8,7 +8,7 @@ import env from "@powerlines/plugin-env";
8
8
  import { LogLevelLabel } from "@storm-software/config-tools/types";
9
9
  import viteReactPlugin from "@vitejs/plugin-react";
10
10
  import defu from "defu";
11
- import { isMatchFound } from "powerlines/lib/typescript/tsconfig";
11
+ import { isMatchFound } from "powerlines/typescript/tsconfig";
12
12
 
13
13
  //#region src/index.tsx
14
14
  /**
@@ -44,9 +44,9 @@ const plugin = (options = {}) => {
44
44
  this.devDependencies["@types/react"] = "^19.2.3";
45
45
  this.devDependencies["@types/react-dom"] = "^19.2.3";
46
46
  if (this.config.react.compiler !== false) {
47
- this.config.transform.babel ??= {};
48
- this.config.transform.babel.plugins ??= [];
49
- this.config.transform.babel.plugins.push(["babel-plugin-react-compiler", this.config.react.compiler]);
47
+ this.config.babel ??= {};
48
+ this.config.babel.plugins ??= [];
49
+ this.config.babel.plugins.push(["babel-plugin-react-compiler", this.config.react.compiler]);
50
50
  }
51
51
  this.tsconfig.tsconfigJson.compilerOptions ??= {};
52
52
  this.tsconfig.tsconfigJson.compilerOptions.lib ??= [];
@@ -60,15 +60,15 @@ const plugin = (options = {}) => {
60
60
  }
61
61
  if (!isMatchFound("esnext", this.tsconfig.tsconfigJson.compilerOptions.lib)) this.tsconfig.tsconfigJson.compilerOptions.lib.push("ESNext");
62
62
  if (this.tsconfig.options.resolveJsonModule !== true) this.tsconfig.tsconfigJson.compilerOptions.resolveJsonModule = true;
63
- if (this.config.build.variant === "vite") {
63
+ if (this.config.vite) {
64
64
  this.tsconfig.tsconfigJson.compilerOptions.types ??= [];
65
65
  if (!isMatchFound("vite/client", this.tsconfig.tsconfigJson.compilerOptions.types)) this.tsconfig.tsconfigJson.compilerOptions.types.push("vite/client");
66
- const viteBuildConfig = this.config.build;
66
+ const viteBuildConfig = this.config.vite;
67
67
  viteBuildConfig.build ??= {};
68
68
  viteBuildConfig.build.target = "chrome95";
69
69
  viteBuildConfig.plugins ??= [];
70
70
  viteBuildConfig.plugins.unshift(viteReactPlugin({
71
- babel: this.config.transform.babel,
71
+ babel: this.config.babel,
72
72
  jsxImportSource: this.config.react.jsxImportSource,
73
73
  jsxRuntime: this.config.react.jsxRuntime,
74
74
  reactRefreshHost: this.config.react.reactRefreshHost
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["ReflectionKind","ReflectionVisibility","render","babel","env","LogLevelLabel","viteReactPlugin","defu","isMatchFound","ReactOptimizedBuiltin","plugin","options","name","config","react","jsxImportSource","tsconfig","tsconfigJson","compilerOptions","jsxRuntime","compiler","target","compilationMode","gating","source","framework","importSpecifierName","enableReanimatedCheck","logger","logEvent","filename","event","log","kind","SUCCESS","INFO","DEBUG","TRACE","ERROR","depArrayLoc","identifierName","decorations","filter","dec","map","join","reason","detail","category","description","measurement","entryType","duration","fnLoc","configResolved","dependencies","devDependencies","transform","plugins","push","lib","module","jsx","environment","consumer","resolveJsonModule","build","variant","types","viteBuildConfig","unshift","reactRefreshHost","hasProperty","addProperty","optional","readonly","visibility","public","type","boolean","default","prepare","_self$","_$createComponent","override","undefined"],"sources":["../src/index.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n ReflectionKind,\n ReflectionVisibility\n} from \"@powerlines/deepkit/vendor/type\";\nimport { render } from \"@powerlines/plugin-alloy/render\";\nimport babel from \"@powerlines/plugin-babel\";\nimport env from \"@powerlines/plugin-env\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport viteReactPlugin from \"@vitejs/plugin-react\";\nimport type { LoggerEvent } from \"babel-plugin-react-compiler\";\nimport defu from \"defu\";\nimport { isMatchFound } from \"powerlines/lib/typescript/tsconfig\";\nimport type { ViteResolvedBuildConfig } from \"powerlines/types/build\";\nimport { Plugin } from \"powerlines/types/plugin\";\nimport type { BabelResolvedConfig } from \"powerlines/types/resolved\";\nimport { ReactOptimizedBuiltin } from \"./components/react-optimized\";\nimport type { ReactPluginContext, ReactPluginOptions } from \"./types/plugin\";\n\nexport * from \"./components\";\nexport * from \"./types\";\n\n/**\n * A package containing a Powerlines plugin for building a React application.\n */\nexport const plugin = <\n TContext extends ReactPluginContext = ReactPluginContext\n>(\n options: ReactPluginOptions = {}\n) => {\n return [\n babel(options.babel),\n env(options.env),\n {\n name: \"react\",\n config() {\n return defu(\n {\n react: options\n },\n {\n react: {\n jsxImportSource: this.tsconfig.tsconfigJson.compilerOptions\n ?.jsxImportSource as string\n }\n },\n {\n react: {\n jsxRuntime: \"automatic\",\n jsxImportSource: \"react\",\n compiler: {\n target: \"19\",\n compilationMode: \"infer\",\n gating: {\n source: `${this.config.framework}:react/optimized`,\n importSpecifierName: \"isOptimizationEnabled\"\n },\n enableReanimatedCheck: true,\n logger: {\n logEvent: (filename: string | null, event: LoggerEvent) => {\n this.log(\n event.kind === \"CompileSuccess\"\n ? LogLevelLabel.SUCCESS\n : event.kind === \"AutoDepsEligible\" ||\n event.kind === \"AutoDepsDecorations\"\n ? LogLevelLabel.INFO\n : event.kind === \"CompileSkip\" ||\n event.kind === \"CompileDiagnostic\"\n ? LogLevelLabel.DEBUG\n : event.kind === \"Timing\"\n ? LogLevelLabel.TRACE\n : LogLevelLabel.ERROR,\n `(${filename}) ${\n event.kind === \"CompileSuccess\"\n ? `React Compiler Success`\n : event.kind === \"AutoDepsEligible\"\n ? `React AutoDeps Eligible - ${\n event.depArrayLoc.identifierName ||\n \"No identifier\"\n }`\n : event.kind === \"AutoDepsDecorations\"\n ? `React AutoDeps Decorations - ${event.decorations\n .filter(dec => dec.identifierName)\n .map(dec => dec.identifierName)\n .join(\", \")}`\n : event.kind === \"CompileSkip\"\n ? `React Compile Skip - ${event.reason}`\n : event.kind === \"CompileDiagnostic\"\n ? `React Compile Diagnostic - (Category: ${\n event.detail.category\n }) ${event.detail.reason}${\n event.detail.description\n ? `\\n${event.detail.description}`\n : \"\"\n }`\n : event.kind === \"Timing\"\n ? `React ${event.measurement.entryType} Timing (${event.measurement.name}) - ${event.measurement.duration}ms`\n : `React Compiler Error - ${event.fnLoc?.identifierName || \"unknown location\"}`\n }`\n );\n }\n }\n }\n } as ReactPluginOptions\n }\n );\n },\n configResolved() {\n this.dependencies.react = \"^19.2.3\";\n this.dependencies[\"react-dom\"] = \"^19.2.3\";\n\n this.devDependencies[\"@types/react\"] = \"^19.2.3\";\n this.devDependencies[\"@types/react-dom\"] = \"^19.2.3\";\n\n if (this.config.react.compiler !== false) {\n this.config.transform.babel ??= {} as BabelResolvedConfig;\n\n this.config.transform.babel.plugins ??= [];\n this.config.transform.babel.plugins.push([\n \"babel-plugin-react-compiler\",\n this.config.react.compiler\n ]);\n }\n\n this.tsconfig.tsconfigJson.compilerOptions ??= {};\n this.tsconfig.tsconfigJson.compilerOptions.lib ??= [];\n this.tsconfig.tsconfigJson.compilerOptions.module ??= \"esnext\";\n this.tsconfig.tsconfigJson.compilerOptions.jsxImportSource =\n this.config.react.jsxImportSource;\n\n if (this.tsconfig.options.jsxImportSource === \"react\") {\n this.tsconfig.tsconfigJson.compilerOptions.jsx ??= \"react-jsx\";\n } else {\n this.tsconfig.tsconfigJson.compilerOptions.jsx ??= \"preserve\";\n }\n\n // Client platform\n if (this.environment.consumer === \"client\") {\n if (\n !isMatchFound(\"dom\", this.tsconfig.tsconfigJson.compilerOptions.lib)\n ) {\n this.tsconfig.tsconfigJson.compilerOptions.lib.push(\"DOM\");\n }\n\n if (\n !isMatchFound(\n \"dom.iterable\",\n this.tsconfig.tsconfigJson.compilerOptions.lib\n )\n ) {\n this.tsconfig.tsconfigJson.compilerOptions.lib.push(\"DOM.Iterable\");\n }\n }\n\n if (\n !isMatchFound(\n \"esnext\",\n this.tsconfig.tsconfigJson.compilerOptions.lib\n )\n ) {\n this.tsconfig.tsconfigJson.compilerOptions.lib.push(\"ESNext\");\n }\n\n if (this.tsconfig.options.resolveJsonModule !== true) {\n this.tsconfig.tsconfigJson.compilerOptions.resolveJsonModule = true;\n }\n\n if (this.config.build.variant === \"vite\") {\n this.tsconfig.tsconfigJson.compilerOptions.types ??= [];\n\n if (\n !isMatchFound(\n \"vite/client\",\n this.tsconfig.tsconfigJson.compilerOptions.types\n )\n ) {\n this.tsconfig.tsconfigJson.compilerOptions.types.push(\n \"vite/client\"\n );\n }\n\n const viteBuildConfig = this.config.build as ViteResolvedBuildConfig;\n viteBuildConfig.build ??= {};\n viteBuildConfig.build.target = \"chrome95\";\n\n viteBuildConfig.plugins ??= [];\n viteBuildConfig.plugins.unshift(\n viteReactPlugin({\n babel: this.config.transform.babel,\n jsxImportSource: this.config.react.jsxImportSource,\n jsxRuntime: this.config.react.jsxRuntime,\n reactRefreshHost: this.config.react.reactRefreshHost\n })\n );\n }\n\n if (\n this.env?.types?.env &&\n !this.env.types.env.hasProperty(\"DISABLE_REACT_COMPILER\")\n ) {\n this.env.types.env.addProperty({\n name: \"DISABLE_REACT_COMPILER\",\n optional: true,\n readonly: true,\n description: \"Disables the React compiler optimizations.\",\n visibility: ReflectionVisibility.public,\n type: {\n kind: ReflectionKind.boolean\n },\n default: false\n });\n }\n },\n async prepare() {\n return render(\n this,\n <ReactOptimizedBuiltin\n override={this.config.react.compiler === false ? false : undefined}\n />\n );\n }\n }\n ] as Plugin<TContext>[];\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;;;;;;;;;;AA0CA,MAAaU,UAGXC,UAA8B,EAAE,KAC7B;AACH,QAAO;EACLR,MAAMQ,QAAQR,MAAM;EACpBC,IAAIO,QAAQP,IAAI;EAChB;GACEQ,MAAM;GACNC,SAAS;AACP,WAAON,KACL,EACEO,OAAOH,SACR,EACD,EACEG,OAAO,EACLC,iBAAiB,KAAKC,SAASC,aAAaC,iBACxCH,iBACN,EACD,EACD,EACED,OAAO;KACLK,YAAY;KACZJ,iBAAiB;KACjBK,UAAU;MACRC,QAAQ;MACRC,iBAAiB;MACjBC,QAAQ;OACNC,QAAQ,GAAG,KAAKX,OAAOY,UAAS;OAChCC,qBAAqB;OACtB;MACDC,uBAAuB;MACvBC,QAAQ,EACNC,WAAWC,UAAyBC,UAAuB;AACzD,YAAKC,IACHD,MAAME,SAAS,mBACX5B,cAAc6B,UACdH,MAAME,SAAS,sBACbF,MAAME,SAAS,wBACf5B,cAAc8B,OACdJ,MAAME,SAAS,iBACbF,MAAME,SAAS,sBACf5B,cAAc+B,QACdL,MAAME,SAAS,WACb5B,cAAcgC,QACdhC,cAAciC,OACxB,IAAIR,SAAQ,IACVC,MAAME,SAAS,mBACX,2BACAF,MAAME,SAAS,qBACb,6BACEF,MAAMQ,YAAYC,kBAClB,oBAEFT,MAAME,SAAS,wBACb,gCAAgCF,MAAMU,YACnCC,QAAOC,QAAOA,IAAIH,eAAe,CACjCI,KAAID,QAAOA,IAAIH,eAAe,CAC9BK,KAAK,KAAK,KACbd,MAAME,SAAS,gBACb,wBAAwBF,MAAMe,WAC9Bf,MAAME,SAAS,sBACb,yCACEF,MAAMgB,OAAOC,SAAQ,IAClBjB,MAAMgB,OAAOD,SAChBf,MAAMgB,OAAOE,cACT,KAAKlB,MAAMgB,OAAOE,gBAClB,OAENlB,MAAME,SAAS,WACb,SAASF,MAAMmB,YAAYC,UAAS,WAAYpB,MAAMmB,YAAYtC,KAAI,MAAOmB,MAAMmB,YAAYE,SAAQ,MACvG,0BAA0BrB,MAAMsB,OAAOb,kBAAkB,uBAE1E;SAEL;MACF;KACF,EAEJ,CAAC;;GAEHc,iBAAiB;AACf,SAAKC,aAAazC,QAAQ;AAC1B,SAAKyC,aAAa,eAAe;AAEjC,SAAKC,gBAAgB,kBAAkB;AACvC,SAAKA,gBAAgB,sBAAsB;AAE3C,QAAI,KAAK3C,OAAOC,MAAMM,aAAa,OAAO;AACxC,UAAKP,OAAO4C,UAAUtD,UAAU,EAAyB;AAEzD,UAAKU,OAAO4C,UAAUtD,MAAMuD,YAAY,EAAE;AAC1C,UAAK7C,OAAO4C,UAAUtD,MAAMuD,QAAQC,KAAK,CACvC,+BACA,KAAK9C,OAAOC,MAAMM,SACnB,CAAC;;AAGJ,SAAKJ,SAASC,aAAaC,oBAAoB,EAAE;AACjD,SAAKF,SAASC,aAAaC,gBAAgB0C,QAAQ,EAAE;AACrD,SAAK5C,SAASC,aAAaC,gBAAgB2C,WAAW;AACtD,SAAK7C,SAASC,aAAaC,gBAAgBH,kBACzC,KAAKF,OAAOC,MAAMC;AAEpB,QAAI,KAAKC,SAASL,QAAQI,oBAAoB,QAC5C,MAAKC,SAASC,aAAaC,gBAAgB4C,QAAQ;QAEnD,MAAK9C,SAASC,aAAaC,gBAAgB4C,QAAQ;AAIrD,QAAI,KAAKC,YAAYC,aAAa,UAAU;AAC1C,SACE,CAACxD,aAAa,OAAO,KAAKQ,SAASC,aAAaC,gBAAgB0C,IAAI,CAEpE,MAAK5C,SAASC,aAAaC,gBAAgB0C,IAAID,KAAK,MAAM;AAG5D,SACE,CAACnD,aACC,gBACA,KAAKQ,SAASC,aAAaC,gBAAgB0C,IAC5C,CAED,MAAK5C,SAASC,aAAaC,gBAAgB0C,IAAID,KAAK,eAAe;;AAIvE,QACE,CAACnD,aACC,UACA,KAAKQ,SAASC,aAAaC,gBAAgB0C,IAC5C,CAED,MAAK5C,SAASC,aAAaC,gBAAgB0C,IAAID,KAAK,SAAS;AAG/D,QAAI,KAAK3C,SAASL,QAAQsD,sBAAsB,KAC9C,MAAKjD,SAASC,aAAaC,gBAAgB+C,oBAAoB;AAGjE,QAAI,KAAKpD,OAAOqD,MAAMC,YAAY,QAAQ;AACxC,UAAKnD,SAASC,aAAaC,gBAAgBkD,UAAU,EAAE;AAEvD,SACE,CAAC5D,aACC,eACA,KAAKQ,SAASC,aAAaC,gBAAgBkD,MAC5C,CAED,MAAKpD,SAASC,aAAaC,gBAAgBkD,MAAMT,KAC/C,cACD;KAGH,MAAMU,kBAAkB,KAAKxD,OAAOqD;AACpCG,qBAAgBH,UAAU,EAAE;AAC5BG,qBAAgBH,MAAM7C,SAAS;AAE/BgD,qBAAgBX,YAAY,EAAE;AAC9BW,qBAAgBX,QAAQY,QACtBhE,gBAAgB;MACdH,OAAO,KAAKU,OAAO4C,UAAUtD;MAC7BY,iBAAiB,KAAKF,OAAOC,MAAMC;MACnCI,YAAY,KAAKN,OAAOC,MAAMK;MAC9BoD,kBAAkB,KAAK1D,OAAOC,MAAMyD;MACrC,CACH,CAAC;;AAGH,QACE,KAAKnE,KAAKgE,OAAOhE,OACjB,CAAC,KAAKA,IAAIgE,MAAMhE,IAAIoE,YAAY,yBAAyB,CAEzD,MAAKpE,IAAIgE,MAAMhE,IAAIqE,YAAY;KAC7B7D,MAAM;KACN8D,UAAU;KACVC,UAAU;KACV1B,aAAa;KACb2B,YAAY3E,qBAAqB4E;KACjCC,MAAM,EACJ7C,MAAMjC,eAAe+E,SACtB;KACDC,SAAS;KACV,CAAC;;GAGN,MAAMC,UAAU;IAAA,MAAAC,SAAA;AACd,WAAOhF,OACL,MAAIiF,gBACH1E,uBAAqB,EAAA,IACpB2E,WAAQ;AAAA,YAAEF,OAAKrE,OAAOC,MAAMM,aAAa,QAAQ,QAAQiE;OAAS,CAEtE,CAAC;;GAEJ;EACF;;AAGH,kBAAe3E"}
1
+ {"version":3,"file":"index.mjs","names":["ReflectionKind","ReflectionVisibility","render","babel","env","LogLevelLabel","viteReactPlugin","defu","isMatchFound","ReactOptimizedBuiltin","plugin","options","name","config","react","jsxImportSource","tsconfig","tsconfigJson","compilerOptions","jsxRuntime","compiler","target","compilationMode","gating","source","framework","importSpecifierName","enableReanimatedCheck","logger","logEvent","filename","event","log","kind","SUCCESS","INFO","DEBUG","TRACE","ERROR","depArrayLoc","identifierName","decorations","filter","dec","map","join","reason","detail","category","description","measurement","entryType","duration","fnLoc","configResolved","dependencies","devDependencies","plugins","push","lib","module","jsx","environment","consumer","resolveJsonModule","vite","types","viteBuildConfig","build","unshift","reactRefreshHost","hasProperty","addProperty","optional","readonly","visibility","public","type","boolean","default","prepare","_self$","_$createComponent","override","undefined"],"sources":["../src/index.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport {\n ReflectionKind,\n ReflectionVisibility\n} from \"@powerlines/deepkit/vendor/type\";\nimport { render } from \"@powerlines/plugin-alloy/render\";\nimport babel, { BabelPluginResolvedConfig } from \"@powerlines/plugin-babel\";\nimport env from \"@powerlines/plugin-env\";\nimport { VitePluginResolvedConfig } from \"@powerlines/plugin-vite/types/plugin\";\nimport { LogLevelLabel } from \"@storm-software/config-tools/types\";\nimport viteReactPlugin from \"@vitejs/plugin-react\";\nimport type { LoggerEvent } from \"babel-plugin-react-compiler\";\nimport defu from \"defu\";\nimport { Plugin } from \"powerlines\";\nimport { isMatchFound } from \"powerlines/typescript/tsconfig\";\nimport { ReactOptimizedBuiltin } from \"./components/react-optimized\";\nimport type { ReactPluginContext, ReactPluginOptions } from \"./types/plugin\";\n\nexport * from \"./components\";\nexport * from \"./types\";\n\ndeclare module \"powerlines\" {\n export interface UserConfig {\n react?: ReactPluginOptions;\n }\n}\n\n/**\n * A package containing a Powerlines plugin for building a React application.\n */\nexport const plugin = <\n TContext extends ReactPluginContext = ReactPluginContext\n>(\n options: ReactPluginOptions = {}\n) => {\n return [\n babel(options.babel),\n env(options.env),\n {\n name: \"react\",\n config() {\n return defu(\n {\n react: options\n },\n {\n react: {\n jsxImportSource: this.tsconfig.tsconfigJson.compilerOptions\n ?.jsxImportSource as string\n }\n },\n {\n react: {\n jsxRuntime: \"automatic\",\n jsxImportSource: \"react\",\n compiler: {\n target: \"19\",\n compilationMode: \"infer\",\n gating: {\n source: `${this.config.framework}:react/optimized`,\n importSpecifierName: \"isOptimizationEnabled\"\n },\n enableReanimatedCheck: true,\n logger: {\n logEvent: (filename: string | null, event: LoggerEvent) => {\n this.log(\n event.kind === \"CompileSuccess\"\n ? LogLevelLabel.SUCCESS\n : event.kind === \"AutoDepsEligible\" ||\n event.kind === \"AutoDepsDecorations\"\n ? LogLevelLabel.INFO\n : event.kind === \"CompileSkip\" ||\n event.kind === \"CompileDiagnostic\"\n ? LogLevelLabel.DEBUG\n : event.kind === \"Timing\"\n ? LogLevelLabel.TRACE\n : LogLevelLabel.ERROR,\n `(${filename}) ${\n event.kind === \"CompileSuccess\"\n ? `React Compiler Success`\n : event.kind === \"AutoDepsEligible\"\n ? `React AutoDeps Eligible - ${\n event.depArrayLoc.identifierName ||\n \"No identifier\"\n }`\n : event.kind === \"AutoDepsDecorations\"\n ? `React AutoDeps Decorations - ${event.decorations\n .filter(dec => dec.identifierName)\n .map(dec => dec.identifierName)\n .join(\", \")}`\n : event.kind === \"CompileSkip\"\n ? `React Compile Skip - ${event.reason}`\n : event.kind === \"CompileDiagnostic\"\n ? `React Compile Diagnostic - (Category: ${\n event.detail.category\n }) ${event.detail.reason}${\n event.detail.description\n ? `\\n${event.detail.description}`\n : \"\"\n }`\n : event.kind === \"Timing\"\n ? `React ${event.measurement.entryType} Timing (${event.measurement.name}) - ${event.measurement.duration}ms`\n : `React Compiler Error - ${event.fnLoc?.identifierName || \"unknown location\"}`\n }`\n );\n }\n }\n }\n } as ReactPluginOptions\n }\n );\n },\n configResolved() {\n this.dependencies.react = \"^19.2.3\";\n this.dependencies[\"react-dom\"] = \"^19.2.3\";\n\n this.devDependencies[\"@types/react\"] = \"^19.2.3\";\n this.devDependencies[\"@types/react-dom\"] = \"^19.2.3\";\n\n if (this.config.react.compiler !== false) {\n (this.config as BabelPluginResolvedConfig).babel ??=\n {} as BabelPluginResolvedConfig[\"babel\"];\n\n this.config.babel.plugins ??= [];\n this.config.babel.plugins.push([\n \"babel-plugin-react-compiler\",\n this.config.react.compiler\n ]);\n }\n\n this.tsconfig.tsconfigJson.compilerOptions ??= {};\n this.tsconfig.tsconfigJson.compilerOptions.lib ??= [];\n this.tsconfig.tsconfigJson.compilerOptions.module ??= \"esnext\";\n this.tsconfig.tsconfigJson.compilerOptions.jsxImportSource =\n this.config.react.jsxImportSource;\n\n if (this.tsconfig.options.jsxImportSource === \"react\") {\n this.tsconfig.tsconfigJson.compilerOptions.jsx ??= \"react-jsx\";\n } else {\n this.tsconfig.tsconfigJson.compilerOptions.jsx ??= \"preserve\";\n }\n\n // Client platform\n if (this.environment.consumer === \"client\") {\n if (\n !isMatchFound(\"dom\", this.tsconfig.tsconfigJson.compilerOptions.lib)\n ) {\n this.tsconfig.tsconfigJson.compilerOptions.lib.push(\"DOM\");\n }\n\n if (\n !isMatchFound(\n \"dom.iterable\",\n this.tsconfig.tsconfigJson.compilerOptions.lib\n )\n ) {\n this.tsconfig.tsconfigJson.compilerOptions.lib.push(\"DOM.Iterable\");\n }\n }\n\n if (\n !isMatchFound(\n \"esnext\",\n this.tsconfig.tsconfigJson.compilerOptions.lib\n )\n ) {\n this.tsconfig.tsconfigJson.compilerOptions.lib.push(\"ESNext\");\n }\n\n if (this.tsconfig.options.resolveJsonModule !== true) {\n this.tsconfig.tsconfigJson.compilerOptions.resolveJsonModule = true;\n }\n\n if ((this.config as VitePluginResolvedConfig).vite) {\n this.tsconfig.tsconfigJson.compilerOptions.types ??= [];\n\n if (\n !isMatchFound(\n \"vite/client\",\n this.tsconfig.tsconfigJson.compilerOptions.types\n )\n ) {\n this.tsconfig.tsconfigJson.compilerOptions.types.push(\n \"vite/client\"\n );\n }\n\n const viteBuildConfig = (this.config as VitePluginResolvedConfig)\n .vite;\n viteBuildConfig.build ??= {};\n viteBuildConfig.build.target = \"chrome95\";\n\n viteBuildConfig.plugins ??= [];\n viteBuildConfig.plugins.unshift(\n viteReactPlugin({\n babel: (this.config as BabelPluginResolvedConfig).babel,\n jsxImportSource: this.config.react.jsxImportSource,\n jsxRuntime: this.config.react.jsxRuntime,\n reactRefreshHost: this.config.react.reactRefreshHost\n })\n );\n }\n\n if (\n this.env?.types?.env &&\n !this.env.types.env.hasProperty(\"DISABLE_REACT_COMPILER\")\n ) {\n this.env.types.env.addProperty({\n name: \"DISABLE_REACT_COMPILER\",\n optional: true,\n readonly: true,\n description: \"Disables the React compiler optimizations.\",\n visibility: ReflectionVisibility.public,\n type: {\n kind: ReflectionKind.boolean\n },\n default: false\n });\n }\n },\n async prepare() {\n return render(\n this,\n <ReactOptimizedBuiltin\n override={this.config.react.compiler === false ? false : undefined}\n />\n );\n }\n }\n ] as Plugin<TContext>[];\n};\n\nexport default plugin;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerlines/plugin-react",
3
- "version": "0.1.342",
3
+ "version": "0.1.344",
4
4
  "type": "module",
5
5
  "description": "A package containing a Powerlines plugin for building a React application.",
6
6
  "repository": {
@@ -56,6 +56,7 @@
56
56
  "default": "./dist/index.mjs"
57
57
  }
58
58
  },
59
+ "./*": "./*",
59
60
  "./components": {
60
61
  "require": {
61
62
  "types": "./dist/components/index.d.cts",
@@ -84,7 +85,6 @@
84
85
  "default": "./dist/components/react-optimized.mjs"
85
86
  }
86
87
  },
87
- "./package.json": "./package.json",
88
88
  "./types": {
89
89
  "require": {
90
90
  "types": "./dist/types/index.d.cts",
@@ -141,10 +141,11 @@
141
141
  "@alloy-js/markdown": "0.23.0-dev.1",
142
142
  "@alloy-js/typescript": "0.23.0-dev.4",
143
143
  "@babel/core": "^7.29.0",
144
- "@powerlines/plugin-alloy": "^0.23.20",
145
- "@powerlines/plugin-babel": "^0.12.299",
146
- "@powerlines/plugin-env": "^0.16.7",
147
- "@storm-software/config-tools": "^1.189.9",
144
+ "@powerlines/plugin-vite": "^0.14.294",
145
+ "@powerlines/plugin-alloy": "^0.23.22",
146
+ "@powerlines/plugin-babel": "^0.12.301",
147
+ "@powerlines/plugin-env": "^0.16.9",
148
+ "@storm-software/config-tools": "^1.189.10",
148
149
  "@stryke/cli": "^0.13.15",
149
150
  "@stryke/convert": "^0.6.40",
150
151
  "@stryke/fs": "^0.33.43",
@@ -152,15 +153,15 @@
152
153
  "@vitejs/plugin-react": "^5.1.4",
153
154
  "babel-plugin-react-compiler": "^1.0.0",
154
155
  "defu": "^6.1.4",
155
- "powerlines": "^0.38.57"
156
+ "powerlines": "^0.39.1"
156
157
  },
157
158
  "devDependencies": {
158
- "@powerlines/plugin-plugin": "^0.12.241",
159
- "@types/node": "^25.3.1",
159
+ "@powerlines/plugin-plugin": "^0.12.243",
160
+ "@types/node": "^25.3.3",
160
161
  "@types/react": "^19.2.14",
161
162
  "@types/react-dom": "^19.2.3"
162
163
  },
163
164
  "publishConfig": { "access": "public" },
164
165
  "types": "./dist/index.d.cts",
165
- "gitHead": "eb3dbd19bd153aa5a988bce09a1cf05d985cb04b"
166
+ "gitHead": "30a096fed42d3462dbc028b16145250c373f3d99"
166
167
  }