@vertesia/create-plugin 0.59.0 → 0.61.0
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/lib/deps.js +1 -1
- package/lib/deps.js.map +1 -1
- package/lib/init.js +1 -1
- package/lib/init.js.map +1 -1
- package/package.json +2 -2
- package/templates/web/README.md +54 -0
- package/templates/web/eslint.config.js +28 -0
- package/templates/web/index.html.tmpl +26 -0
- package/templates/web/src/index.css +1 -0
- package/templates/web/src/index.tsx.tmpl +18 -0
- package/templates/web/src/main.tsx.tmpl +10 -0
- package/templates/web/src/pages.tsx +31 -0
- package/templates/web/src/routes.tsx +17 -0
- package/templates/web/src/vite-env.d.ts +1 -0
- package/templates/web/tsconfig.app.json +31 -0
- package/templates/web/tsconfig.json +7 -0
- package/templates/web/tsconfig.node.json +27 -0
- package/templates/web/vite.config.ts +47 -0
package/lib/deps.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { runCommand } from "./utils.js";
|
|
2
2
|
const DEV_DEPS = [
|
|
3
3
|
"@vertesia/plugin-builder",
|
|
4
|
-
"@vertesia/ui",
|
|
5
4
|
"@eslint/js",
|
|
6
5
|
"@tailwindcss/vite",
|
|
7
6
|
"@types/node",
|
|
@@ -21,6 +20,7 @@ const DEV_DEPS = [
|
|
|
21
20
|
"vite-plugin-dts",
|
|
22
21
|
];
|
|
23
22
|
const RUNTIME_DEPS = [
|
|
23
|
+
"@vertesia/common",
|
|
24
24
|
"@vertesia/ui",
|
|
25
25
|
];
|
|
26
26
|
function addDevDependencies(pm, deps) {
|
package/lib/deps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,QAAQ,GAAa;IACvB,0BAA0B;IAC1B,
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,QAAQ,GAAa;IACvB,0BAA0B;IAC1B,YAAY;IACZ,mBAAmB;IACnB,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,sBAAsB;IACtB,QAAQ;IACR,2BAA2B;IAC3B,6BAA6B;IAC7B,SAAS;IACT,OAAO;IACP,WAAW;IACX,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,MAAM;IACN,iBAAiB;CACpB,CAAC;AAEF,MAAM,YAAY,GAAa;IAC3B,kBAAkB;IAClB,cAAc;CACjB,CAAA;AAED,SAAS,kBAAkB,CAAC,EAAkB,EAAE,IAAc;IAC1D,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AACD,SAAS,sBAAsB,CAAC,EAAkB,EAAE,IAAc;IAC9D,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1C,CAAC;AACD,SAAS,gBAAgB,CAAC,EAAkB,EAAE,IAAc,EAAE,OAA0B,SAAS;IAC7F,MAAM,IAAI,GAAG;QACT,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KACpC,CAAC;IACF,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;IACD,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAkB;IAC1C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACjC,sBAAsB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AAC7C,CAAC"}
|
package/lib/init.js
CHANGED
package/lib/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAA4B;IAEnD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,CAAC;SAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,SAAS,GAAG,MAAM,CAAC;IACvB,CAAC;SAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,SAAS,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAQ,MAAM,MAAM,CAAC,CAAC;YAC9B,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;YAC/B,OAAO,EAAE,GAAG;SACf,EAAE;YACC,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,8CAA8C;YACvD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;SACzE,EAAE;YACC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC;SAC/E,EAAE;YACC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,qBAAqB;YAC9B,OAAO,EAAE,EAAE;SACd;QACG,MAAM;QACN,IAAI;QACJ,wBAAwB;QACxB,sBAAsB;QACtB,kCAAkC;QAClC,kBAAkB;QAClB,iBAAiB;QACjB,kDAAkD;QAClD,mDAAmD;QACnD,6DAA6D;QAC7D,QAAQ;QACR,KAAK;KACR,CAAC,CAAC;IAEH,kBAAkB;IACjB,MAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;IAEjC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;IAEtB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAA4B;IAEnD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,CAAC;SAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,SAAS,GAAG,MAAM,CAAC;IACvB,CAAC;SAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,SAAS,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAQ,MAAM,MAAM,CAAC,CAAC;YAC9B,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;YAC/B,OAAO,EAAE,GAAG;SACf,EAAE;YACC,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,8CAA8C;YACvD,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;SACzE,EAAE;YACC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC;SAC/E,EAAE;YACC,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,qBAAqB;YAC9B,OAAO,EAAE,EAAE;SACd;QACG,MAAM;QACN,IAAI;QACJ,wBAAwB;QACxB,sBAAsB;QACtB,kCAAkC;QAClC,kBAAkB;QAClB,iBAAiB;QACjB,kDAAkD;QAClD,mDAAmD;QACnD,6DAA6D;QAC7D,QAAQ;QACR,KAAK;KACR,CAAC,CAAC;IAEH,kBAAkB;IACjB,MAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;IAEjC,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;IAEtB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;QAC1B,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAQ,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEX,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,GAAG,QAAQ,CAAC;IACzD,MAAM,aAAa,GAAG;QAClB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE;YACL,YAAY,EAAE,UAAU,CAAC,KAAK;YAC9B,eAAe;SAClB;KACJ,CAAA;IACD,gEAAgE;IAChE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;IAExC,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;IAE5C,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,OAAO,EAAE,MAAM,CAAC,eAAe,IAAI,OAAO;QAC1C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ,MAAM,CAAC,WAAW,KAAK;QACrC,MAAM,EAAE,QAAQ,MAAM,CAAC,WAAW,KAAK;QACvC,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE;YACH,MAAM;SACT;QACD,OAAO,EAAE;YACL,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,cAAc;SAC5B;QACD,gBAAgB,EAAE;YACd,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,SAAS;SACzB;QACD,MAAM,EAAE;YACJ,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,SAAS,EAAE,UAAU,CAAC,KAAK,IAAI,UAAU;YACzC,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,MAAM;SACjB;KACJ,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC;IAElC,WAAW,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAGD,MAAM,UAAU;IAIO;IAHnB,KAAK,CAAU;IACf,IAAI,CAAS;IACb,MAAM,CAAU;IAChB,YAAmB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;QAC1B,CAAC;IACL,CAAC;IACD,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/create-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"description": "Initialize a Vertesia plugin package",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"types": "./lib/main.d.ts",
|
|
11
11
|
"files": [
|
|
12
12
|
"lib",
|
|
13
|
-
"
|
|
13
|
+
"templates",
|
|
14
14
|
"bin"
|
|
15
15
|
],
|
|
16
16
|
"license": "Apache-2.0",
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# React + TypeScript + Vite
|
|
2
|
+
|
|
3
|
+
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
|
4
|
+
|
|
5
|
+
Currently, two official plugins are available:
|
|
6
|
+
|
|
7
|
+
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
|
|
8
|
+
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
|
9
|
+
|
|
10
|
+
## Expanding the ESLint configuration
|
|
11
|
+
|
|
12
|
+
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
|
|
13
|
+
|
|
14
|
+
```js
|
|
15
|
+
export default tseslint.config({
|
|
16
|
+
extends: [
|
|
17
|
+
// Remove ...tseslint.configs.recommended and replace with this
|
|
18
|
+
...tseslint.configs.recommendedTypeChecked,
|
|
19
|
+
// Alternatively, use this for stricter rules
|
|
20
|
+
...tseslint.configs.strictTypeChecked,
|
|
21
|
+
// Optionally, add this for stylistic rules
|
|
22
|
+
...tseslint.configs.stylisticTypeChecked,
|
|
23
|
+
],
|
|
24
|
+
languageOptions: {
|
|
25
|
+
// other options...
|
|
26
|
+
parserOptions: {
|
|
27
|
+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
|
28
|
+
tsconfigRootDir: import.meta.dirname,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
})
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
// eslint.config.js
|
|
38
|
+
import reactX from 'eslint-plugin-react-x'
|
|
39
|
+
import reactDom from 'eslint-plugin-react-dom'
|
|
40
|
+
|
|
41
|
+
export default tseslint.config({
|
|
42
|
+
plugins: {
|
|
43
|
+
// Add the react-x and react-dom plugins
|
|
44
|
+
'react-x': reactX,
|
|
45
|
+
'react-dom': reactDom,
|
|
46
|
+
},
|
|
47
|
+
rules: {
|
|
48
|
+
// other rules...
|
|
49
|
+
// Enable its recommended typescript rules
|
|
50
|
+
...reactX.configs['recommended-typescript'].rules,
|
|
51
|
+
...reactDom.configs.recommended.rules,
|
|
52
|
+
},
|
|
53
|
+
})
|
|
54
|
+
```
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import js from '@eslint/js'
|
|
2
|
+
import globals from 'globals'
|
|
3
|
+
import reactHooks from 'eslint-plugin-react-hooks'
|
|
4
|
+
import reactRefresh from 'eslint-plugin-react-refresh'
|
|
5
|
+
import tseslint from 'typescript-eslint'
|
|
6
|
+
|
|
7
|
+
export default tseslint.config(
|
|
8
|
+
{ ignores: ['dist'] },
|
|
9
|
+
{
|
|
10
|
+
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
|
11
|
+
files: ['**/*.{ts,tsx}'],
|
|
12
|
+
languageOptions: {
|
|
13
|
+
ecmaVersion: 2020,
|
|
14
|
+
globals: globals.browser,
|
|
15
|
+
},
|
|
16
|
+
plugins: {
|
|
17
|
+
'react-hooks': reactHooks,
|
|
18
|
+
'react-refresh': reactRefresh,
|
|
19
|
+
},
|
|
20
|
+
rules: {
|
|
21
|
+
...reactHooks.configs.recommended.rules,
|
|
22
|
+
'react-refresh/only-export-components': [
|
|
23
|
+
'warn',
|
|
24
|
+
{ allowConstantExport: true },
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
+
<title>${plugin_title}</title>
|
|
9
|
+
<script type="importmap">
|
|
10
|
+
{
|
|
11
|
+
"imports": {
|
|
12
|
+
"react": "https://esm.sh/react@19.0.0",
|
|
13
|
+
"react-dom": "https://esm.sh/react-dom@19.0.0",
|
|
14
|
+
"react-dom/client": "https://esm.sh/react-dom@19.0.0/client",
|
|
15
|
+
"react/jsx-runtime": "https://esm.sh/react@19.0.0/jsx-runtime",
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
</script>
|
|
19
|
+
</head>
|
|
20
|
+
|
|
21
|
+
<body>
|
|
22
|
+
<div id="root"></div>
|
|
23
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
24
|
+
</body>
|
|
25
|
+
|
|
26
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NestedRouterProvider } from "@vertesia/ui/router";
|
|
2
|
+
import { routes } from "./routes";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Export the plugin component.
|
|
6
|
+
*/
|
|
7
|
+
export default function ${ PluginComponent } ({ slot }: { slot: string }) {
|
|
8
|
+
if (slot === "page") {
|
|
9
|
+
return (
|
|
10
|
+
<NestedRouterProvider
|
|
11
|
+
routes={routes}
|
|
12
|
+
index="/home" />
|
|
13
|
+
);
|
|
14
|
+
} else {
|
|
15
|
+
console.warn('No component found for slot', slot);
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { StrictMode } from 'react'
|
|
2
|
+
import { createRoot } from 'react-dom/client'
|
|
3
|
+
import ${ PluginComponent } from './index.tsx'
|
|
4
|
+
import './index.css'
|
|
5
|
+
|
|
6
|
+
createRoot(document.getElementById('root')!).render(
|
|
7
|
+
<StrictMode>
|
|
8
|
+
<${PluginComponent} slot="page" />
|
|
9
|
+
</StrictMode>,
|
|
10
|
+
)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useNavigate } from "@vertesia/ui/router";
|
|
2
|
+
import { useUserSession } from "@vertesia/ui/session";
|
|
3
|
+
import type { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
export function HomePage() {
|
|
6
|
+
const { user } = useUserSession();
|
|
7
|
+
return (
|
|
8
|
+
<div className='p-4'>
|
|
9
|
+
<h1 className='pb-4'>Hello {user?.email}!</h1>
|
|
10
|
+
<NavButton href='/next'>Go to next page</NavButton>
|
|
11
|
+
</div>
|
|
12
|
+
)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function NextPage() {
|
|
16
|
+
return (
|
|
17
|
+
<div className='p-4'>
|
|
18
|
+
<h1 className='pb-4'>Hello again!</h1>
|
|
19
|
+
<NavButton href='/home'>Go to previous page</NavButton>
|
|
20
|
+
</div>
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function NavButton({ href, children }: { href: string, children: ReactNode }) {
|
|
25
|
+
const navigate = useNavigate();
|
|
26
|
+
return (
|
|
27
|
+
<button className="bg-blue-500 text-white px-4 py-2 rounded cursor-pointer" onClick={() => navigate(href)}>
|
|
28
|
+
{children}
|
|
29
|
+
</button>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { HomePage, NextPage } from "./pages";
|
|
2
|
+
|
|
3
|
+
export const routes = [
|
|
4
|
+
{
|
|
5
|
+
path: '/home',
|
|
6
|
+
Component: HomePage,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
path: '/next',
|
|
10
|
+
Component: NextPage,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
path: '*',
|
|
14
|
+
Component: () => <div className="text-red-800 p-4">Not found</div>,
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
4
|
+
"target": "ES2020",
|
|
5
|
+
"useDefineForClassFields": true,
|
|
6
|
+
"lib": [
|
|
7
|
+
"ES2020",
|
|
8
|
+
"DOM",
|
|
9
|
+
"DOM.Iterable"
|
|
10
|
+
],
|
|
11
|
+
"module": "ESNext",
|
|
12
|
+
"skipLibCheck": true,
|
|
13
|
+
/* Bundler mode */
|
|
14
|
+
"moduleResolution": "bundler",
|
|
15
|
+
"allowImportingTsExtensions": true,
|
|
16
|
+
"verbatimModuleSyntax": true,
|
|
17
|
+
"moduleDetection": "force",
|
|
18
|
+
"noEmit": true,
|
|
19
|
+
"jsx": "react-jsx",
|
|
20
|
+
/* Linting */
|
|
21
|
+
"strict": true,
|
|
22
|
+
"noUnusedLocals": true,
|
|
23
|
+
"noUnusedParameters": true,
|
|
24
|
+
"erasableSyntaxOnly": false,
|
|
25
|
+
"noFallthroughCasesInSwitch": true,
|
|
26
|
+
"noUncheckedSideEffectImports": true
|
|
27
|
+
},
|
|
28
|
+
"include": [
|
|
29
|
+
"src"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
+
"target": "ES2022",
|
|
5
|
+
"lib": [
|
|
6
|
+
"ES2023"
|
|
7
|
+
],
|
|
8
|
+
"module": "ESNext",
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
/* Bundler mode */
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"allowImportingTsExtensions": true,
|
|
13
|
+
"verbatimModuleSyntax": true,
|
|
14
|
+
"moduleDetection": "force",
|
|
15
|
+
"noEmit": true,
|
|
16
|
+
/* Linting */
|
|
17
|
+
"strict": true,
|
|
18
|
+
"noUnusedLocals": true,
|
|
19
|
+
"noUnusedParameters": true,
|
|
20
|
+
"erasableSyntaxOnly": false,
|
|
21
|
+
"noFallthroughCasesInSwitch": true,
|
|
22
|
+
"noUncheckedSideEffectImports": true
|
|
23
|
+
},
|
|
24
|
+
"include": [
|
|
25
|
+
"vite.config.ts"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import tailwindcss from '@tailwindcss/vite';
|
|
2
|
+
import react from '@vitejs/plugin-react';
|
|
3
|
+
import { defineConfig } from 'vite';
|
|
4
|
+
import dts from 'vite-plugin-dts'; // Generates TypeScript declarations
|
|
5
|
+
import { vertesiaPluginBuilder } from '@vertesia/plugin-builder';
|
|
6
|
+
|
|
7
|
+
const EXTERNALS = [
|
|
8
|
+
'react',
|
|
9
|
+
'react-dom',
|
|
10
|
+
'react/jsx-runtime',
|
|
11
|
+
'react-dom/client',
|
|
12
|
+
'@vertesia/ui',
|
|
13
|
+
/^@vertesia\/ui\/.*/,
|
|
14
|
+
// add any other external dependencies here
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
// https://vite.dev/config/
|
|
18
|
+
export default defineConfig(({ command }) => {
|
|
19
|
+
// Check if we're running "vite build"
|
|
20
|
+
const isBuildMode = command === 'build';
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
plugins: [
|
|
24
|
+
tailwindcss(),
|
|
25
|
+
react(),
|
|
26
|
+
dts({
|
|
27
|
+
rollupTypes: true,
|
|
28
|
+
tsconfigPath: './tsconfig.app.json',
|
|
29
|
+
logLevel: 'info'
|
|
30
|
+
}),
|
|
31
|
+
vertesiaPluginBuilder(),
|
|
32
|
+
],
|
|
33
|
+
optimizeDeps: isBuildMode ? {
|
|
34
|
+
} : undefined,
|
|
35
|
+
build: {
|
|
36
|
+
lib: isBuildMode ? {
|
|
37
|
+
entry: './src/index.tsx', // Main entry point of your library
|
|
38
|
+
formats: ['es'], // Build ESM versions
|
|
39
|
+
fileName: "plugin",
|
|
40
|
+
} : undefined,
|
|
41
|
+
minify: false,
|
|
42
|
+
rollupOptions: {
|
|
43
|
+
external: isBuildMode ? EXTERNALS : [],
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
})
|