@dxos/plugin-template 0.6.7 → 0.6.8-main.046e6cf

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.
Files changed (109) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -8
  3. package/dist/lib/browser/chunk-5WVRC7MV.mjs +17 -0
  4. package/dist/lib/browser/chunk-5WVRC7MV.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +171 -0
  6. package/dist/lib/browser/index.mjs.map +7 -0
  7. package/dist/lib/browser/meta.json +1 -0
  8. package/dist/lib/browser/meta.mjs +9 -0
  9. package/dist/lib/browser/meta.mjs.map +7 -0
  10. package/dist/types/src/TemplatePlugin.d.ts +4 -0
  11. package/dist/types/src/TemplatePlugin.d.ts.map +1 -0
  12. package/dist/types/src/components/TemplateMain.d.ts +6 -0
  13. package/dist/types/src/components/TemplateMain.d.ts.map +1 -0
  14. package/dist/types/src/components/index.d.ts +2 -0
  15. package/dist/types/src/components/index.d.ts.map +1 -0
  16. package/dist/types/src/index.d.ts +2 -0
  17. package/dist/types/src/index.d.ts.map +1 -0
  18. package/dist/types/src/meta.d.ts +15 -0
  19. package/dist/types/src/meta.d.ts.map +1 -0
  20. package/dist/types/src/translations.d.ts +12 -0
  21. package/dist/types/src/translations.d.ts.map +1 -0
  22. package/dist/types/src/types.d.ts +8 -0
  23. package/dist/types/src/types.d.ts.map +1 -0
  24. package/package.json +47 -29
  25. package/src/TemplatePlugin.tsx +101 -0
  26. package/src/components/TemplateMain.tsx +28 -0
  27. package/src/components/index.ts +5 -0
  28. package/src/index.ts +5 -0
  29. package/src/meta.tsx +17 -0
  30. package/src/translations.ts +18 -0
  31. package/src/types.ts +32 -0
  32. package/.eslintrc.js +0 -9
  33. package/dist/src/README.md.t.d.ts +0 -18
  34. package/dist/src/README.md.t.d.ts.map +0 -1
  35. package/dist/src/README.md.t.js +0 -27
  36. package/dist/src/README.md.t.js.map +0 -1
  37. package/dist/src/composer/config.ts.t.d.ts +0 -49
  38. package/dist/src/composer/config.ts.t.d.ts.map +0 -1
  39. package/dist/src/composer/config.ts.t.js +0 -16
  40. package/dist/src/composer/config.ts.t.js.map +0 -1
  41. package/dist/src/composer/main.tsx.t.d.ts +0 -49
  42. package/dist/src/composer/main.tsx.t.d.ts.map +0 -1
  43. package/dist/src/composer/main.tsx.t.js +0 -115
  44. package/dist/src/composer/main.tsx.t.js.map +0 -1
  45. package/dist/src/composer/shell.html.t.d.ts +0 -18
  46. package/dist/src/composer/shell.html.t.d.ts.map +0 -1
  47. package/dist/src/composer/shell.html.t.js +0 -49
  48. package/dist/src/composer/shell.html.t.js.map +0 -1
  49. package/dist/src/composer/shell.ts.t.d.ts +0 -49
  50. package/dist/src/composer/shell.ts.t.d.ts.map +0 -1
  51. package/dist/src/composer/shell.ts.t.js +0 -18
  52. package/dist/src/composer/shell.ts.t.js.map +0 -1
  53. package/dist/src/composer/translations.d.ts +0 -21
  54. package/dist/src/composer/translations.d.ts.map +0 -1
  55. package/dist/src/composer/translations.js +0 -27
  56. package/dist/src/composer/translations.js.map +0 -1
  57. package/dist/src/package.json.t.d.ts +0 -55
  58. package/dist/src/package.json.t.d.ts.map +0 -1
  59. package/dist/src/package.json.t.js +0 -112
  60. package/dist/src/package.json.t.js.map +0 -1
  61. package/dist/src/src/index.ts.t.d.ts +0 -18
  62. package/dist/src/src/index.ts.t.d.ts.map +0 -1
  63. package/dist/src/src/index.ts.t.js +0 -11
  64. package/dist/src/src/index.ts.t.js.map +0 -1
  65. package/dist/src/src/plugin.tsx.t.d.ts +0 -49
  66. package/dist/src/src/plugin.tsx.t.d.ts.map +0 -1
  67. package/dist/src/src/plugin.tsx.t.js +0 -68
  68. package/dist/src/src/plugin.tsx.t.js.map +0 -1
  69. package/dist/src/template.t.d.ts +0 -16
  70. package/dist/src/template.t.d.ts.map +0 -1
  71. package/dist/src/template.t.js +0 -45
  72. package/dist/src/template.t.js.map +0 -1
  73. package/dist/src/utils.t/packageJson.d.ts +0 -6
  74. package/dist/src/utils.t/packageJson.d.ts.map +0 -1
  75. package/dist/src/utils.t/packageJson.js +0 -6
  76. package/dist/src/utils.t/packageJson.js.map +0 -1
  77. package/dist/src/vite.config.ts.t.d.ts +0 -49
  78. package/dist/src/vite.config.ts.t.d.ts.map +0 -1
  79. package/dist/src/vite.config.ts.t.js +0 -70
  80. package/dist/src/vite.config.ts.t.js.map +0 -1
  81. package/dist/test/scenarios.d.ts +0 -4
  82. package/dist/test/scenarios.d.ts.map +0 -1
  83. package/dist/test/scenarios.js +0 -19
  84. package/dist/test/scenarios.js.map +0 -1
  85. package/dist/test/template.test.d.ts +0 -2
  86. package/dist/test/template.test.d.ts.map +0 -1
  87. package/dist/test/template.test.js +0 -62
  88. package/dist/test/template.test.js.map +0 -1
  89. package/project.json +0 -28
  90. package/src/.npmignore.t.ts +0 -5
  91. package/src/README.md.t.ts +0 -22
  92. package/src/composer/config.ts.t.ts +0 -11
  93. package/src/composer/dx.yml +0 -11
  94. package/src/composer/index.html +0 -50
  95. package/src/composer/main.tsx.t.ts +0 -118
  96. package/src/composer/shell.html.t.ts +0 -44
  97. package/src/composer/shell.ts.t.ts +0 -13
  98. package/src/composer/translations.ts +0 -28
  99. package/src/package.json.t.ts +0 -116
  100. package/src/src/index.ts.t.ts +0 -7
  101. package/src/src/plugin.tsx.t.ts +0 -63
  102. package/src/template.t.ts +0 -40
  103. package/src/tsconfig.json +0 -17
  104. package/src/utils.t/packageJson.ts +0 -7
  105. package/src/vite.config.ts.t.ts +0 -65
  106. package/test/scenarios.ts +0 -20
  107. package/test/template.test.ts +0 -43
  108. package/tsconfig.json +0 -39
  109. package/tsconfig.plate.json +0 -15
@@ -1,5 +0,0 @@
1
- import template from './template.t';
2
-
3
- export default template.define.text({
4
- content: `composer`
5
- })
@@ -1,22 +0,0 @@
1
- import { plate } from '@dxos/plate';
2
- import template from './template.t';
3
-
4
- export default template.define.text({
5
- content: ({ input: { name } }) => plate`
6
- # ${name}
7
-
8
- This app was created with a DXOS application template.
9
-
10
- Run the app with \`npm\`:
11
- \`\`\`bash
12
- npm install
13
- npm run dev
14
- \`\`\`
15
-
16
- > Warning: pnpm is not supported for now, please use npm. (issue locating css in node_modules).
17
-
18
- - [📚 Composer Documentation](https://docs.dxos.org/composer/)
19
- - [📚 Using ECHO with React](https://docs.dxos.org/guide/react)
20
- - [📚 DXOS Documentation](https://docs.dxos.org)
21
- `
22
- });
@@ -1,11 +0,0 @@
1
- import { plate } from '@dxos/plate';
2
- import template from '../template.t';
3
-
4
- export default template.define.script({
5
- content: ({ input: { defaultPlugins } }) => defaultPlugins && plate/* javascript */ `
6
- import { Config, Defaults, Envs, Local, Storage } from '@dxos/config';
7
- export const createConfig = async () => {
8
- return new Config(await Storage(), Envs(), Local(), Defaults());
9
- };
10
- `,
11
- });
@@ -1,11 +0,0 @@
1
- version: 1
2
- runtime:
3
- client:
4
- storage:
5
- persistent: true
6
- services:
7
- signaling: [server: wss://kube.dxos.org/.well-known/dx/signal]
8
- ice:
9
- - urls: turn:kube.dxos.org:3478
10
- username: dxos
11
- credential: dxos
@@ -1,50 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en" style="overscroll-behavior: none">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no,interactive-widget=resizes-content" />
6
- <title>Composer</title>
7
- <meta name="description" content="DXOS Composer Application" />
8
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
9
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
10
- <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
11
- <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#003E70" />
12
- <meta name="msapplication-TileColor" content="#003E70" />
13
- <meta name="theme-color" content="#003E70" />
14
- <meta
15
- http-equiv="Content-Security-Policy"
16
- content="
17
- connect-src https: file: ipc: socket: wss://*.dxos.org ws://localhost:* http://localhost:*;
18
- script-src https: socket: http://localhost:* 'unsafe-eval' 'unsafe-inline';
19
- frame-src https: socket: http://localhost:* composer:;
20
- worker-src https: socket: http://localhost:*;
21
- img-src https: data: file: http://localhost:*;
22
- child-src 'none';
23
- object-src 'none';
24
- "
25
- />
26
- <script>
27
- function setTheme(darkMode) {
28
- document.documentElement.classList[darkMode ? 'add' : 'remove']('dark');
29
- }
30
- setTheme(window.matchMedia('(prefers-color-scheme: dark)').matches);
31
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (event) {
32
- setTheme(event.matches);
33
- });
34
- </script>
35
- <style>
36
- html {
37
- font-size: 18px;
38
- }
39
- @media (min-width: 768px) {
40
- html {
41
- font-size: 16px;
42
- }
43
- }
44
- </style>
45
- </head>
46
- <body>
47
- <div id="root"></div>
48
- <script type="module" src="main.tsx"></script>
49
- </body>
50
- </html>
@@ -1,118 +0,0 @@
1
- import template from '../template.t';
2
- import { plate } from '@dxos/plate';
3
-
4
- export default template.define.script({
5
- content: ({ input: { defaultPlugins } }) => plate/* javascript */ `
6
- import "@dxosTheme";
7
-
8
- import React from "react";
9
- import { registerSignalRuntime } from '@dxos/echo-signals';
10
- import { Status, ThemeProvider, Tooltip } from "@dxos/react-ui";
11
- import { defaultTx } from "@dxos/react-ui-theme";
12
- import { createApp, Plugin } from "@dxos/app-framework";
13
- import { createRoot } from "react-dom/client";
14
- import translations from "./translations";
15
-
16
- import ThemeMeta from "@braneframe/plugin-theme/meta";
17
- ${
18
- defaultPlugins &&
19
- plate/* javascript */ `
20
- import ClientMeta from "@braneframe/plugin-client/meta";
21
- import GraphMeta from "@braneframe/plugin-graph/meta";
22
- import DeckMeta from "@braneframe/plugin-deck/meta";
23
- import NavTreeMeta from "@braneframe/plugin-navtree/meta";
24
- import SpaceMeta from "@braneframe/plugin-space/meta";
25
- import StackMeta from "@braneframe/plugin-stack/meta";
26
- import SettingsMeta from "@braneframe/plugin-settings/meta";
27
- import MetadataMeta from "@braneframe/plugin-metadata/meta";
28
-
29
- import { createClientServices } from "@dxos/react-client";
30
- import { createConfig } from "./config";
31
- `
32
- }
33
-
34
- import { meta } from "../src/plugin";
35
-
36
- (async function () {
37
- registerSignalRuntime();
38
-
39
- ${
40
- defaultPlugins &&
41
- plate/* javascript */ `
42
- const config = await createConfig();
43
- const services = await createClientServices(
44
- config,
45
- // () =>
46
- // new SharedWorker(new URL("@dxos/client/shared-worker", import.meta.url), {
47
- // type: "module",
48
- // name: "dxos-client-worker",
49
- // })
50
- );`
51
- }
52
- const App = createApp({
53
- fallback: ({ error }) => (
54
- <ThemeProvider tx={defaultTx} resourceExtensions={translations}>
55
- <Tooltip.Provider>
56
- <div className="flex bs-[100dvh] justify-center items-center p-6 text-red-500">
57
- {error.message}
58
- </div>
59
- </Tooltip.Provider>
60
- </ThemeProvider>
61
- ),
62
- placeholder: (
63
- <ThemeProvider tx={defaultTx}>
64
- <div className="flex bs-[100dvh] justify-center items-center">
65
- <Status indeterminate aria-label="Initializing" placeholder="" />
66
- </div>
67
- </ThemeProvider>
68
- ),
69
- plugins: {
70
- [ThemeMeta.id]: Plugin.lazy(() => import("@braneframe/plugin-theme"), {
71
- appName: "Composer",
72
- }),
73
- ${
74
- defaultPlugins &&
75
- plate/* javascript */ `
76
- [DeckMeta.id]: Plugin.lazy(() => import("@braneframe/plugin-deck")),
77
- [NavTreeMeta.id]: Plugin.lazy(() => import("@braneframe/plugin-navTree")),
78
- [SettingsMeta.id]: Plugin.lazy(() => import("@braneframe/plugin-settings")),
79
- [ClientMeta.id]: Plugin.lazy(() => import("@braneframe/plugin-client"), {
80
- appKey: "composer.local",
81
- config,
82
- services,
83
- shell: "./shell.html",
84
- }),
85
- [SpaceMeta.id]: Plugin.lazy(() => import("@braneframe/plugin-space")),
86
- [GraphMeta.id]: Plugin.lazy(() => import("@braneframe/plugin-graph")),
87
- [MetadataMeta.id]: Plugin.lazy(
88
- () => import("@braneframe/plugin-metadata")
89
- ),
90
- [StackMeta.id]: Plugin.lazy(() => import("@braneframe/plugin-stack")),
91
- `
92
- }
93
- [meta.id]: Plugin.lazy(() => import("../src/plugin")),
94
- },
95
- order: [
96
- // Outside of error boundary so error dialog is styled.
97
- ThemeMeta,
98
- ${
99
- defaultPlugins &&
100
- plate/* javascript */ `
101
- DeckMeta,
102
- NavTreeMeta,
103
- SettingsMeta,
104
- ClientMeta,
105
- SpaceMeta,
106
- GraphMeta,
107
- MetadataMeta,
108
- StackMeta,
109
- `
110
- }
111
- meta,
112
- ],
113
- });
114
-
115
- createRoot(document.getElementById("root")!).render(<App />);
116
- })();
117
- `,
118
- });
@@ -1,44 +0,0 @@
1
- import { plate } from '@dxos/plate';
2
- import template from '../template.t';
3
-
4
- export default template.define.text({
5
- content: ({ input: { defaultPlugins } }) => defaultPlugins && plate`
6
- <!DOCTYPE html>
7
- <html lang="en">
8
- <head>
9
- <meta charset="UTF-8" />
10
- <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
11
- <meta
12
- http-equiv="Content-Security-Policy"
13
- content="
14
- connect-src https: file: ipc: socket: ws://localhost:* http://localhost:*;
15
- script-src https: socket: http://localhost:* 'unsafe-eval' 'unsafe-inline';
16
- img-src https: data: file: http://localhost:*;
17
- child-src 'none';
18
- object-src 'none';
19
- "
20
- />
21
- <style>
22
- html,
23
- body {
24
- background: transparent !important;
25
- }
26
- </style>
27
- <!-- TODO(wittjosiah): Add hash/nonce and remove unsafe-inline from content security policy. -->
28
- <script>
29
- function setTheme(darkMode) {
30
- document.documentElement.classList[darkMode ? 'add' : 'remove']('dark');
31
- }
32
- setTheme(window.matchMedia('(prefers-color-scheme: dark)').matches);
33
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (e) {
34
- setTheme(e.matches);
35
- });
36
- </script>
37
- </head>
38
- <body>
39
- <div id="root"></div>
40
- <script type="module" src="shell.ts"></script>
41
- </body>
42
- </html>
43
- `
44
- });
@@ -1,13 +0,0 @@
1
- import { plate } from '@dxos/plate';
2
- import template from '../template.t';
3
-
4
- export default template.define.script({
5
- content: ({ input: { defaultPlugins } }) => defaultPlugins && plate/* javascript */`
6
- import '@dxosTheme';
7
- import { runShell } from '@dxos/shell/react';
8
- import { createConfig } from './config';
9
-
10
- // eslint-disable-next-line no-console
11
- createConfig().then(runShell).catch(console.error);
12
- `
13
- })
@@ -1,28 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export default [
6
- {
7
- 'en-US': {
8
- composer: {
9
- 'show stack label': 'View stack trace',
10
- 'fatal error title': 'The app encountered an error',
11
- 'fatal error message':
12
- 'Please refresh the page to continue. If you keep seeing this error, please create a GitHub issue or ask for help on Discord.',
13
- 'reset dialog label': 'Reload or reset',
14
- 'reset dialog message':
15
- 'If you’re encountering issues, reloading may fix the issue. If reloading doesn’t help, consider resetting the app.',
16
- 'caught error message': 'Something went wrong; check the console for details.',
17
- 'copy error label': 'Copy this error',
18
- 'reload page label': 'Reload',
19
- 'update and reload page label': 'Update',
20
- 'reset client label': 'Reset',
21
- 'reset client confirm label': 'Confirm to wipe ALL DATA from local database',
22
- 'INVALID_STORAGE_VERSION title': 'Invalid storage version',
23
- 'INVALID_STORAGE_VERSION message':
24
- 'The application is not compatible with the current storage version. The data must be migrated to the new protocol in order to be used with this application. The current version is {{actual}} and the expected version is {{expected}}.',
25
- },
26
- },
27
- },
28
- ];
@@ -1,116 +0,0 @@
1
- //
2
- // Copyright 2022 DXOS.org
3
- //
4
- import path from 'path';
5
- import { promises as fs } from 'fs';
6
- import { InputOf, Slot } from '@dxos/plate';
7
- import { PackageJson } from './utils.t/packageJson';
8
- import merge from 'lodash.merge';
9
-
10
- import template from './template.t';
11
-
12
- type Context = { version: string; frameworkVersion: string } & InputOf<typeof template>;
13
-
14
- export namespace Features {
15
- export const react = (): Partial<PackageJson> => ({
16
- dependencies: {
17
- react: '~18.2.0',
18
- 'react-dom': '~18.2.0',
19
- },
20
- devDependencies: {
21
- '@types/react': '~18.2.0',
22
- '@types/react-dom': '~18.2.0',
23
- '@vitejs/plugin-react': '^4.2.1',
24
- },
25
- });
26
-
27
- export const dxosUi = ({ frameworkVersion }: Context): Partial<PackageJson> => ({
28
- dependencies: {
29
- '@phosphor-icons/react': '^2.0.5',
30
- },
31
- devDependencies: {
32
- '@dxos/react-ui': frameworkVersion,
33
- '@dxos/react-ui-theme': frameworkVersion,
34
- },
35
- });
36
-
37
- export const defaultPlugins = ({ frameworkVersion }: Context): Partial<PackageJson> => ({
38
- devDependencies: {
39
- 'vite-plugin-wasm': '^3.3.0',
40
- 'vite-plugin-top-level-await': '^1.3.1',
41
- '@dxos/react-client': frameworkVersion,
42
- '@dxos/config': frameworkVersion,
43
- '@dxos/shell': frameworkVersion,
44
- '@braneframe/plugin-space': frameworkVersion,
45
- '@braneframe/plugin-navtree': frameworkVersion,
46
- '@braneframe/plugin-deck': frameworkVersion,
47
- '@braneframe/plugin-graph': frameworkVersion,
48
- '@braneframe/plugin-client': frameworkVersion,
49
- '@braneframe/plugin-stack': frameworkVersion,
50
- '@braneframe/plugin-metadata': frameworkVersion,
51
- '@braneframe/plugin-settings': frameworkVersion,
52
- },
53
- });
54
- }
55
-
56
- export const base = ({ name, version, frameworkVersion }: Context): Partial<PackageJson> => {
57
- return {
58
- name,
59
- version: version,
60
- description: `${name} - a composer plugin`,
61
- private: true,
62
- main: 'dist/index.js',
63
- types: 'dist/index.d.ts',
64
- scripts: {
65
- build: 'tsc',
66
- serve: 'vite',
67
- },
68
- dependencies: {
69
- '@preact/signals-react': '^1.3.6',
70
- '@dxos/app-framework': frameworkVersion,
71
- },
72
- devDependencies: {
73
- '@types/node': '^18.11.9',
74
- vite: '^5.1.3',
75
- typescript: '^5.0.4',
76
- '@braneframe/plugin-theme': frameworkVersion,
77
- },
78
- };
79
- };
80
-
81
- const loadFromPackageRoot = async (moduleRelativePath: string) => {
82
- const stepOut = __filename.endsWith('.ts') ? '../' : '../../';
83
- const content = await fs.readFile(path.resolve(__dirname, stepOut, moduleRelativePath));
84
- return JSON.parse(content.toString());
85
- };
86
-
87
- export default template.define
88
- .slots<{ packageJson?: Slot<Partial<PackageJson>, InputOf<typeof template>, { depVersion?: string }> }>({
89
- packageJson: {},
90
- })
91
- .text({
92
- content: async ({ input, slots: { packageJson: slotPackageJson } }) => {
93
- // TODO(wittjosiah): Importing directly causes package.json to be included in the output.
94
- // Including package.json in the output causes syncpack to fail sometimes.
95
- // Upgrading syncpack will likely fix this but this is simpler for now.
96
- const ownPackageJson = await loadFromPackageRoot('package.json');
97
- const context = {
98
- version: '0.0.1',
99
- frameworkVersion: ownPackageJson.version,
100
- ...input,
101
- };
102
-
103
- const [first, ...rest] = [
104
- base(context),
105
- Features.react(),
106
- Features.dxosUi(context),
107
- input.defaultPlugins && Features.defaultPlugins(context),
108
- slotPackageJson?.() ?? {},
109
- ].filter(Boolean);
110
-
111
- const packageJson = merge(first, ...rest);
112
-
113
- const result = JSON.stringify(packageJson, null, 2);
114
- return result;
115
- },
116
- });
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import template from '../template.t';
6
-
7
- export default template.define.text({ content: "export * from './plugin';" });
@@ -1,63 +0,0 @@
1
- import { plate } from '@dxos/plate';
2
- import template from '../template.t';
3
-
4
- export default template.define.script({
5
- content: ({ input: { name }, imports }) => plate/* javascript */ `
6
- ${imports}
7
- import React from 'react';
8
- import { Asterisk } from '@phosphor-icons/react';
9
-
10
- import {
11
- PluginDefinition,
12
- type SurfaceProvides,
13
- type GraphBuilderProvides,
14
- type IntentResolverProvides,
15
- type TranslationsProvides,
16
- pluginMeta,
17
- } from '@dxos/app-framework';
18
-
19
- export const PLUGIN_ID = '${name}';
20
-
21
- export const meta = pluginMeta({
22
- id: PLUGIN_ID,
23
- name: "",
24
- iconComponent: Asterisk,
25
- });
26
-
27
- export type TemplatePluginProvides = SurfaceProvides &
28
- IntentResolverProvides &
29
- GraphBuilderProvides &
30
- TranslationsProvides & {};
31
-
32
- /**
33
- * See https://docs.dxos.org/composer/plugins/definition
34
- */
35
- const plugin = (): PluginDefinition<TemplatePluginProvides> => {
36
- return {
37
- meta,
38
- provides: {
39
- root: () => null,
40
- surface: {
41
- component: ({ data, role }) => null,
42
- },
43
- intent: {
44
- resolver: (intent) => {},
45
- },
46
- graph: {
47
- builder: (plugins) => [],
48
- },
49
- translations: [
50
- {
51
- 'en-US': {
52
- [PLUGIN_ID]: {
53
- 'plugin name': 'Template',
54
- },
55
- },
56
- },
57
- ],
58
- },
59
- };
60
- };
61
- export default plugin;
62
- `,
63
- });
package/src/template.t.ts DELETED
@@ -1,40 +0,0 @@
1
- import { z, plate, interactiveDirectory } from '@dxos/plate';
2
- import sanitize from 'sanitize-filename';
3
- import path from 'path';
4
- import chalk from 'chalk';
5
-
6
- export default interactiveDirectory({
7
- src: __filename.endsWith('.ts') ? __dirname : path.resolve(__dirname, '../../src'),
8
- inputShape: z.object({
9
- name: z.string().describe('Name the new package').default(path.basename(process.cwd())),
10
- createFolder: z.boolean().describe('Create a new folder for the project').default(true),
11
- defaultPlugins: z.boolean().describe('Include default plugins').default(true),
12
- }),
13
- options({ input, outputDirectory, ...rest }) {
14
- const { name, createFolder } = {...input};
15
- return {
16
- input,
17
- outputDirectory: createFolder ? path.resolve(outputDirectory, sanitize(name ?? '')) : outputDirectory,
18
- ...rest,
19
- };
20
- },
21
- after({ outputDirectory, input: { name } }) {
22
- const cwd = process.cwd();
23
- const relative = path.relative(cwd, outputDirectory);
24
- console.log(plate`
25
-
26
- Plugin ${chalk.green(chalk.bold(name))} created.
27
-
28
- Run the app:
29
- ${!!relative && `$ cd ${relative}`}
30
- $ npm install
31
- $ npm run serve
32
-
33
- See also:
34
- - ${path.join(relative, 'README.md')}
35
-
36
- Warning:
37
- - pnpm is not supported for now, please use npm. (issue locating css in node_modules).
38
- `);
39
- },
40
- });
package/src/tsconfig.json DELETED
@@ -1,17 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "esModuleInterop": true,
4
- "jsx": "react",
5
- "emitDeclarationOnly": false,
6
- "lib": ["DOM", "ESNext"],
7
- "module": "ESNext",
8
- "outDir": "dist",
9
- "skipLibCheck": true,
10
- "types": ["node"],
11
- "moduleResolution": "node",
12
- "isolatedModules": true,
13
- "target": "ES2018"
14
- },
15
- "include": ["src"],
16
- "exclude": ["node_modules", "dist", "vite.config.ts"]
17
- }
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type PackageJson as _PackageJson } from 'types-package-json';
6
-
7
- export type PackageJson = _PackageJson & { private: boolean; types: string };
@@ -1,65 +0,0 @@
1
- import template from './template.t';
2
- import { plate } from '@dxos/plate';
3
-
4
- export default template.define.script({
5
- content: ({ input: { defaultPlugins } }) => {
6
- return plate/* javascript */`
7
- import { defineConfig } from "vite";
8
- import { resolve } from "path";
9
- import react from "@vitejs/plugin-react";
10
- import { ThemePlugin } from "@dxos/react-ui-theme/plugin";
11
-
12
- ${defaultPlugins && plate/* javascript */`
13
- import { ConfigPlugin } from "@dxos/config/vite-plugin";
14
- import TopLevelAwaitPlugin from 'vite-plugin-top-level-await';
15
- import WasmPlugin from 'vite-plugin-wasm';
16
- `}
17
-
18
- // https://vitejs.dev/config
19
- export default defineConfig({
20
- server: {
21
- host: true,
22
- },
23
- root: 'composer',
24
- build: { outDir: "composer/out", target: "esnext" },
25
- optimizeDeps: { esbuildOptions: { target: "esnext" } },
26
- plugins: [
27
- react(),
28
- ThemePlugin({
29
- root: __dirname + '/composer',
30
- content: [
31
- resolve(__dirname, "./composer/index.html"),
32
- resolve(__dirname, "./src/**/*.{js,ts,jsx,tsx}"),
33
- resolve(__dirname, "./composer/**/*.{js,ts,jsx,tsx}"),
34
- ${defaultPlugins && plate/* javascript */`
35
- resolve(__dirname, "node_modules/@dxos/react-ui/dist/**/*.mjs"),
36
- resolve(__dirname, "node_modules/@dxos/react-ui-theme/dist/**/*.mjs"),
37
- resolve(
38
- __dirname,
39
- "node_modules/@dxos/react-ui-mosaic/dist/lib/**/*.mjs"
40
- ),
41
- resolve(
42
- __dirname,
43
- "node_modules/@dxos/react-ui-stack/dist/lib/**/*.mjs"
44
- ),
45
- resolve(
46
- __dirname,
47
- "node_modules/@dxos/react-ui-navtree/dist/lib/**/*.mjs"
48
- ),
49
- resolve(
50
- __dirname,
51
- "node_modules/@braneframe/plugin-*/dist/lib/**/*.mjs"
52
- ),
53
- `}
54
- ],
55
- }),
56
- ${defaultPlugins && plate/* javascript */`
57
- ConfigPlugin(),
58
- TopLevelAwaitPlugin(),
59
- WasmPlugin(),
60
- `}
61
- ],
62
- });
63
- `
64
- }
65
- })
package/test/scenarios.ts DELETED
@@ -1,20 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type InputOf } from '@dxos/plate';
6
-
7
- import type template from '../src/template.t';
8
-
9
- export const scenarios: InputOf<typeof template>[] = [
10
- {
11
- name: 'default',
12
- createFolder: true,
13
- defaultPlugins: true,
14
- },
15
- {
16
- name: 'default-bare',
17
- createFolder: true,
18
- defaultPlugins: false,
19
- },
20
- ];