@dxos/plugin-template 0.4.7-main.4d8eb56

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 (74) hide show
  1. package/.eslintrc.js +9 -0
  2. package/LICENSE +8 -0
  3. package/README.md +21 -0
  4. package/dist/package.json +43 -0
  5. package/dist/src/README.md.t.d.ts +18 -0
  6. package/dist/src/README.md.t.d.ts.map +1 -0
  7. package/dist/src/README.md.t.js +27 -0
  8. package/dist/src/README.md.t.js.map +1 -0
  9. package/dist/src/dev/config.ts.t.d.ts +49 -0
  10. package/dist/src/dev/config.ts.t.d.ts.map +1 -0
  11. package/dist/src/dev/config.ts.t.js +16 -0
  12. package/dist/src/dev/config.ts.t.js.map +1 -0
  13. package/dist/src/dev/main.tsx.t.d.ts +49 -0
  14. package/dist/src/dev/main.tsx.t.d.ts.map +1 -0
  15. package/dist/src/dev/main.tsx.t.js +108 -0
  16. package/dist/src/dev/main.tsx.t.js.map +1 -0
  17. package/dist/src/dev/shell.html.t.d.ts +18 -0
  18. package/dist/src/dev/shell.html.t.d.ts.map +1 -0
  19. package/dist/src/dev/shell.html.t.js +49 -0
  20. package/dist/src/dev/shell.html.t.js.map +1 -0
  21. package/dist/src/dev/shell.ts.t.d.ts +49 -0
  22. package/dist/src/dev/shell.ts.t.d.ts.map +1 -0
  23. package/dist/src/dev/shell.ts.t.js +18 -0
  24. package/dist/src/dev/shell.ts.t.js.map +1 -0
  25. package/dist/src/dev/translations.d.ts +21 -0
  26. package/dist/src/dev/translations.d.ts.map +1 -0
  27. package/dist/src/dev/translations.js +27 -0
  28. package/dist/src/dev/translations.js.map +1 -0
  29. package/dist/src/package.json.t.d.ts +55 -0
  30. package/dist/src/package.json.t.d.ts.map +1 -0
  31. package/dist/src/package.json.t.js +99 -0
  32. package/dist/src/package.json.t.js.map +1 -0
  33. package/dist/src/src/index.ts.t.d.ts +18 -0
  34. package/dist/src/src/index.ts.t.d.ts.map +1 -0
  35. package/dist/src/src/index.ts.t.js +11 -0
  36. package/dist/src/src/index.ts.t.js.map +1 -0
  37. package/dist/src/src/plugin.tsx.t.d.ts +49 -0
  38. package/dist/src/src/plugin.tsx.t.d.ts.map +1 -0
  39. package/dist/src/src/plugin.tsx.t.js +68 -0
  40. package/dist/src/src/plugin.tsx.t.js.map +1 -0
  41. package/dist/src/template.t.d.ts +16 -0
  42. package/dist/src/template.t.d.ts.map +1 -0
  43. package/dist/src/template.t.js +45 -0
  44. package/dist/src/template.t.js.map +1 -0
  45. package/dist/src/utils.t/packageJson.d.ts +6 -0
  46. package/dist/src/utils.t/packageJson.d.ts.map +1 -0
  47. package/dist/src/utils.t/packageJson.js +6 -0
  48. package/dist/src/utils.t/packageJson.js.map +1 -0
  49. package/dist/src/vite.config.ts.t.d.ts +49 -0
  50. package/dist/src/vite.config.ts.t.d.ts.map +1 -0
  51. package/dist/src/vite.config.ts.t.js +77 -0
  52. package/dist/src/vite.config.ts.t.js.map +1 -0
  53. package/dist/test/scenarios.d.ts +4 -0
  54. package/dist/test/scenarios.d.ts.map +1 -0
  55. package/dist/test/scenarios.js +19 -0
  56. package/dist/test/scenarios.js.map +1 -0
  57. package/dist/test/template.test.d.ts +2 -0
  58. package/dist/test/template.test.d.ts.map +1 -0
  59. package/dist/test/template.test.js +61 -0
  60. package/dist/test/template.test.js.map +1 -0
  61. package/package.json +43 -0
  62. package/project.json +25 -0
  63. package/src/README.md.t.ts +22 -0
  64. package/src/package.json.t.ts +107 -0
  65. package/src/src/index.ts.t.ts +7 -0
  66. package/src/src/plugin.tsx.t.ts +63 -0
  67. package/src/template.t.ts +40 -0
  68. package/src/tsconfig.json +17 -0
  69. package/src/utils.t/packageJson.ts +7 -0
  70. package/src/vite.config.ts.t.ts +72 -0
  71. package/test/scenarios.ts +20 -0
  72. package/test/template.test.ts +40 -0
  73. package/tsconfig.json +40 -0
  74. package/tsconfig.plate.json +15 -0
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.base = exports.Features = void 0;
7
+ const package_json_1 = __importDefault(require("../package.json"));
8
+ const lodash_merge_1 = __importDefault(require("lodash.merge"));
9
+ const template_t_1 = __importDefault(require("./template.t"));
10
+ var Features;
11
+ (function (Features) {
12
+ Features.react = () => ({
13
+ dependencies: {
14
+ react: '^18.2.0',
15
+ 'react-dom': '^18.2.0',
16
+ },
17
+ devDependencies: {
18
+ '@types/react': '~18.2.0',
19
+ '@types/react-dom': '~18.2.0',
20
+ '@vitejs/plugin-react': '^4.2.1',
21
+ },
22
+ });
23
+ Features.dxosUi = ({ frameworkVersion }) => ({
24
+ dependencies: {
25
+ '@phosphor-icons/react': '^2.0.5',
26
+ },
27
+ devDependencies: {
28
+ '@dxos/react-ui': '^' + frameworkVersion,
29
+ '@dxos/react-ui-theme': '^' + frameworkVersion,
30
+ },
31
+ });
32
+ Features.defaultPlugins = ({ frameworkVersion }) => ({
33
+ devDependencies: {
34
+ 'vite-plugin-wasm': '^3.3.0',
35
+ 'vite-plugin-top-level-await': '^1.3.1',
36
+ '@dxos/react-client': '^' + frameworkVersion,
37
+ '@dxos/config': '^' + frameworkVersion,
38
+ '@dxos/shell': '^' + frameworkVersion,
39
+ '@braneframe/plugin-space': '^' + frameworkVersion,
40
+ '@braneframe/plugin-navtree': '^' + frameworkVersion,
41
+ '@braneframe/plugin-layout': '^' + frameworkVersion,
42
+ '@braneframe/plugin-graph': '^' + frameworkVersion,
43
+ '@braneframe/plugin-client': '^' + frameworkVersion,
44
+ '@braneframe/plugin-stack': '^' + frameworkVersion,
45
+ '@braneframe/plugin-metadata': '^' + frameworkVersion,
46
+ '@braneframe/plugin-settings': '^' + frameworkVersion,
47
+ },
48
+ });
49
+ })(Features || (exports.Features = Features = {}));
50
+ const base = ({ name, version, frameworkVersion }) => {
51
+ return {
52
+ name,
53
+ version: version,
54
+ description: `${name} - a composer plugin`,
55
+ private: true,
56
+ main: 'dist/index.js',
57
+ types: 'dist/index.d.ts',
58
+ scripts: {
59
+ build: 'tsc',
60
+ dev: 'vite',
61
+ },
62
+ dependencies: {
63
+ '@preact/signals-react': '^1.3.6',
64
+ '@dxos/app-framework': `^${frameworkVersion}`,
65
+ },
66
+ devDependencies: {
67
+ '@types/node': '^18.11.9',
68
+ vite: '^5.1.3',
69
+ typescript: '^5.0.4',
70
+ '@braneframe/plugin-theme': `^${frameworkVersion}`,
71
+ },
72
+ };
73
+ };
74
+ exports.base = base;
75
+ exports.default = template_t_1.default.define
76
+ .slots({
77
+ packageJson: {},
78
+ })
79
+ .text({
80
+ content: async ({ input, slots: { packageJson: slotPackageJson } }) => {
81
+ var _a;
82
+ const context = {
83
+ version: '0.0.1',
84
+ frameworkVersion: package_json_1.default.version,
85
+ ...input,
86
+ };
87
+ const [first, ...rest] = [
88
+ (0, exports.base)(context),
89
+ Features.react(),
90
+ Features.dxosUi(context),
91
+ input.defaultPlugins && Features.defaultPlugins(context),
92
+ (_a = slotPackageJson === null || slotPackageJson === void 0 ? void 0 : slotPackageJson()) !== null && _a !== void 0 ? _a : {},
93
+ ].filter(Boolean);
94
+ const packageJson = (0, lodash_merge_1.default)(first, ...rest);
95
+ const result = JSON.stringify(packageJson, null, 2);
96
+ return result;
97
+ },
98
+ });
99
+ //# sourceMappingURL=package.json.t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.t.js","sourceRoot":"","sources":["../../src/package.json.t.ts"],"names":[],"mappings":";;;;;;AAOA,mEAA6C;AAC7C,gEAAiC;AAEjC,8DAAoC;AAIpC,IAAiB,QAAQ,CAwCxB;AAxCD,WAAiB,QAAQ;IACV,cAAK,GAAG,GAAyB,EAAE,CAAC,CAAC;QAChD,YAAY,EAAE;YACZ,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,SAAS;SACvB;QACD,eAAe,EAAE;YACf,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,SAAS;YAC7B,sBAAsB,EAAE,QAAQ;SACjC;KACF,CAAC,CAAC;IAEU,eAAM,GAAG,CAAC,EAAE,gBAAgB,EAAW,EAAwB,EAAE,CAAC,CAAC;QAC9E,YAAY,EAAE;YACZ,uBAAuB,EAAE,QAAQ;SAClC;QACD,eAAe,EAAE;YACf,gBAAgB,EAAE,GAAG,GAAG,gBAAgB;YACxC,sBAAsB,EAAE,GAAG,GAAG,gBAAgB;SAC/C;KACF,CAAC,CAAC;IAEU,uBAAc,GAAG,CAAC,EAAE,gBAAgB,EAAW,EAAwB,EAAE,CAAC,CAAC;QACtF,eAAe,EAAE;YACf,kBAAkB,EAAE,QAAQ;YAC5B,6BAA6B,EAAE,QAAQ;YACvC,oBAAoB,EAAE,GAAG,GAAG,gBAAgB;YAC5C,cAAc,EAAE,GAAG,GAAG,gBAAgB;YACtC,aAAa,EAAE,GAAG,GAAG,gBAAgB;YACrC,0BAA0B,EAAE,GAAG,GAAG,gBAAgB;YAClD,4BAA4B,EAAE,GAAG,GAAG,gBAAgB;YACpD,2BAA2B,EAAE,GAAG,GAAG,gBAAgB;YACnD,0BAA0B,EAAE,GAAG,GAAG,gBAAgB;YAClD,2BAA2B,EAAE,GAAG,GAAG,gBAAgB;YACnD,0BAA0B,EAAE,GAAG,GAAG,gBAAgB;YAClD,6BAA6B,EAAE,GAAG,GAAG,gBAAgB;YACrD,6BAA6B,EAAE,GAAG,GAAG,gBAAgB;SACtD;KACF,CAAC,CAAC;AACL,CAAC,EAxCgB,QAAQ,wBAAR,QAAQ,QAwCxB;AAEM,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAW,EAAwB,EAAE;IACzF,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,GAAG,IAAI,sBAAsB;QAC1C,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE;YACP,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,MAAM;SACZ;QACD,YAAY,EAAE;YACZ,uBAAuB,EAAE,QAAQ;YACjC,qBAAqB,EAAE,IAAI,gBAAgB,EAAE;SAC9C;QACD,eAAe,EAAE;YACf,aAAa,EAAE,UAAU;YACzB,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ;YACpB,0BAA0B,EAAE,IAAI,gBAAgB,EAAE;SACnD;KACF,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,IAAI,QAuBf;AAEF,kBAAe,oBAAQ,CAAC,MAAM;KAC3B,KAAK,CAAkG;IACtG,WAAW,EAAE,EAAE;CAChB,CAAC;KACD,IAAI,CAAC;IACJ,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE;;QACpE,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,OAAO;YAChB,gBAAgB,EAAE,sBAAc,CAAC,OAAO;YACxC,GAAG,KAAK;SACT,CAAC;QAEF,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG;YACvB,IAAA,YAAI,EAAC,OAAO,CAAC;YACb,QAAQ,CAAC,KAAK,EAAE;YAChB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YACxB,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;YACxD,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,EAAI,mCAAI,EAAE;SAC1B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,MAAM,WAAW,GAAG,IAAA,sBAAK,EAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ declare const _default: {
2
+ (options: import("@dxos/plate").Options<{
3
+ name: string;
4
+ createFolder: boolean;
5
+ defaultPlugins: boolean;
6
+ }, import("@dxos/plate").SlotsWithContext<{
7
+ name: string;
8
+ createFolder: boolean;
9
+ defaultPlugins: boolean;
10
+ }, {}, import("@dxos/plate").Context<{
11
+ name: string;
12
+ createFolder: boolean;
13
+ defaultPlugins: boolean;
14
+ }, {}>>>): Promise<import("@dxos/plate").FileResults<any, import("@dxos/plate").FileSlots<any>>>;
15
+ slots: {};
16
+ };
17
+ export default _default;
18
+ //# sourceMappingURL=index.ts.t.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ts.t.d.ts","sourceRoot":"","sources":["../../../src/src/index.ts.t.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,wBAA8E"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2024 DXOS.org
4
+ //
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const template_t_1 = __importDefault(require("../template.t"));
10
+ exports.default = template_t_1.default.define.text({ content: "export * from './plugin';" });
11
+ //# sourceMappingURL=index.ts.t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ts.t.js","sourceRoot":"","sources":["../../../src/src/index.ts.t.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,+DAAqC;AAErC,kBAAe,oBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC"}
@@ -0,0 +1,49 @@
1
+ declare const _default: {
2
+ (options: import("@dxos/plate").Options<{
3
+ name: string;
4
+ createFolder: boolean;
5
+ defaultPlugins: boolean;
6
+ }, import("@dxos/plate").SlotsWithContext<{
7
+ name: string;
8
+ createFolder: boolean;
9
+ defaultPlugins: boolean;
10
+ }, {}, Required<Omit<import("@dxos/plate").Options<{
11
+ name: string;
12
+ createFolder: boolean;
13
+ defaultPlugins: boolean;
14
+ }, {}>, "slots" | "input">> & {
15
+ input: {
16
+ name: string;
17
+ createFolder: boolean;
18
+ defaultPlugins: boolean;
19
+ };
20
+ outputFile: string;
21
+ slots: import("@dxos/plate").SlotProducers<{}>;
22
+ inherited: import("@dxos/plate").FileResults<{
23
+ name: string;
24
+ createFolder: boolean;
25
+ defaultPlugins: boolean;
26
+ }, import("@dxos/plate").FileSlots<{
27
+ name: string;
28
+ createFolder: boolean;
29
+ defaultPlugins: boolean;
30
+ }>> | undefined;
31
+ } & {
32
+ imports: {
33
+ (): (relativeTo?: (string | string[]) | undefined) => string;
34
+ use: {
35
+ (name: string, from: string | string[], o?: {
36
+ aliasOf?: string | undefined;
37
+ isDefault?: boolean | undefined;
38
+ } | undefined): () => string;
39
+ (names: string[], from: string | string[], o?: {
40
+ aliasOf?: string | undefined;
41
+ isDefault?: boolean | undefined;
42
+ } | undefined): Record<string, () => string>;
43
+ };
44
+ };
45
+ }>>): Promise<import("@dxos/plate").FileResults<any, import("@dxos/plate").FileSlots<any>>>;
46
+ slots: {};
47
+ };
48
+ export default _default;
49
+ //# sourceMappingURL=plugin.tsx.t.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.tsx.t.d.ts","sourceRoot":"","sources":["../../../src/src/plugin.tsx.t.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,wBA2DE"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const plate_1 = require("@dxos/plate");
7
+ const template_t_1 = __importDefault(require("../template.t"));
8
+ exports.default = template_t_1.default.define.script({
9
+ content: ({ input: { name }, imports }) => (0, plate_1.plate /* javascript */) `
10
+ ${imports}
11
+ import React from 'react';
12
+ import { Asterisk } from '@phosphor-icons/react';
13
+
14
+ import {
15
+ PluginDefinition,
16
+ type SurfaceProvides,
17
+ type GraphBuilderProvides,
18
+ type IntentResolverProvides,
19
+ type TranslationsProvides,
20
+ pluginMeta,
21
+ } from '@dxos/app-framework';
22
+
23
+ export const PLUGIN_ID = '${name}';
24
+
25
+ export const meta = pluginMeta({
26
+ id: PLUGIN_ID,
27
+ name: "",
28
+ iconComponent: Asterisk,
29
+ });
30
+
31
+ export type TemplatePluginProvides = SurfaceProvides &
32
+ IntentResolverProvides &
33
+ GraphBuilderProvides &
34
+ TranslationsProvides & {};
35
+
36
+ /**
37
+ * See https://docs.dxos.org/composer/plugins/definition
38
+ */
39
+ const plugin = (): PluginDefinition<TemplatePluginProvides> => {
40
+ return {
41
+ meta,
42
+ provides: {
43
+ root: () => null,
44
+ surface: {
45
+ component: ({ data, role }) => null,
46
+ },
47
+ intent: {
48
+ resolver: (intent) => {},
49
+ },
50
+ graph: {
51
+ builder: ({ parent, plugins }) => {},
52
+ },
53
+ translations: [
54
+ {
55
+ 'en-US': {
56
+ [PLUGIN_ID]: {
57
+ 'plugin name': 'Template',
58
+ },
59
+ },
60
+ },
61
+ ],
62
+ },
63
+ };
64
+ };
65
+ export default plugin;
66
+ `
67
+ });
68
+ //# sourceMappingURL=plugin.tsx.t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.tsx.t.js","sourceRoot":"","sources":["../../../src/src/plugin.tsx.t.ts"],"names":[],"mappings":";;;;;AAAA,uCAAoC;AACpC,+DAAqC;AAErC,kBAAe,oBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAA,aAAK,CAAA,gBAAgB,EAAA;MAC5D,OAAO;;;;;;;;;;;;;gCAamB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CjC;CACF,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { z } from '@dxos/plate';
2
+ declare const _default: import("@dxos/plate").InteractiveDirectoryTemplate<z.ZodObject<{
3
+ name: z.ZodDefault<z.ZodString>;
4
+ createFolder: z.ZodDefault<z.ZodBoolean>;
5
+ defaultPlugins: z.ZodDefault<z.ZodBoolean>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ name: string;
8
+ createFolder: boolean;
9
+ defaultPlugins: boolean;
10
+ }, {
11
+ name?: string | undefined;
12
+ createFolder?: boolean | undefined;
13
+ defaultPlugins?: boolean | undefined;
14
+ }>>;
15
+ export default _default;
16
+ //# sourceMappingURL=template.t.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.t.d.ts","sourceRoot":"","sources":["../../src/template.t.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAA+B,MAAM,aAAa,CAAC;;;;;;;;;;;;;;AAK7D,wBAkCG"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const plate_1 = require("@dxos/plate");
7
+ const sanitize_filename_1 = __importDefault(require("sanitize-filename"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ exports.default = (0, plate_1.interactiveDirectory)({
11
+ src: __filename.endsWith('.ts') ? __dirname : path_1.default.resolve(__dirname, '../../src'),
12
+ inputShape: plate_1.z.object({
13
+ name: plate_1.z.string().describe('Name the new package').default(path_1.default.basename(process.cwd())),
14
+ createFolder: plate_1.z.boolean().describe('Create a new folder for the project').default(true),
15
+ defaultPlugins: plate_1.z.boolean().describe('Include default plugins').default(true),
16
+ }),
17
+ options({ input, outputDirectory, ...rest }) {
18
+ const { name, createFolder } = { ...input };
19
+ return {
20
+ input,
21
+ outputDirectory: createFolder ? path_1.default.resolve(outputDirectory, (0, sanitize_filename_1.default)(name !== null && name !== void 0 ? name : '')) : outputDirectory,
22
+ ...rest,
23
+ };
24
+ },
25
+ after({ outputDirectory, input: { name } }) {
26
+ const cwd = process.cwd();
27
+ const relative = path_1.default.relative(cwd, outputDirectory);
28
+ console.log((0, plate_1.plate) `
29
+
30
+ Plugin ${chalk_1.default.green(chalk_1.default.bold(name))} created.
31
+
32
+ Run the app:
33
+ ${!!relative && `$ cd ${relative}`}
34
+ $ npm install
35
+ $ npm run dev
36
+
37
+ See also:
38
+ - ${path_1.default.join(relative, 'README.md')}
39
+
40
+ Warning:
41
+ - pnpm is not supported for now, please use npm. (issue locating css in node_modules).
42
+ `);
43
+ },
44
+ });
45
+ //# sourceMappingURL=template.t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.t.js","sourceRoot":"","sources":["../../src/template.t.ts"],"names":[],"mappings":";;;;;AAAA,uCAA6D;AAC7D,0EAAyC;AACzC,gDAAwB;AACxB,kDAA0B;AAE1B,kBAAe,IAAA,4BAAoB,EAAC;IAClC,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;IAClF,UAAU,EAAE,SAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,SAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvF,YAAY,EAAE,SAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACvF,cAAc,EAAE,SAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;KAC9E,CAAC;IACF,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE;QACzC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAC,GAAG,KAAK,EAAC,CAAC;QAC1C,OAAO;YACL,KAAK;YACL,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,eAAe,EAAE,IAAA,2BAAQ,EAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;YACrG,GAAG,IAAI;SACR,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,IAAA,aAAK,EAAA;;aAER,eAAK,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;MAGpC,CAAC,CAAC,QAAQ,IAAI,QAAQ,QAAQ,EAAE;;;;;QAK9B,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;;;;KAInC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type PackageJson as _PackageJson } from 'types-package-json';
2
+ export type PackageJson = _PackageJson & {
3
+ private: boolean;
4
+ types: string;
5
+ };
6
+ //# sourceMappingURL=packageJson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageJson.d.ts","sourceRoot":"","sources":["../../../src/utils.t/packageJson.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2023 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=packageJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageJson.js","sourceRoot":"","sources":["../../../src/utils.t/packageJson.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE"}
@@ -0,0 +1,49 @@
1
+ declare const _default: {
2
+ (options: import("@dxos/plate").Options<{
3
+ name: string;
4
+ createFolder: boolean;
5
+ defaultPlugins: boolean;
6
+ }, import("@dxos/plate").SlotsWithContext<{
7
+ name: string;
8
+ createFolder: boolean;
9
+ defaultPlugins: boolean;
10
+ }, {}, Required<Omit<import("@dxos/plate").Options<{
11
+ name: string;
12
+ createFolder: boolean;
13
+ defaultPlugins: boolean;
14
+ }, {}>, "slots" | "input">> & {
15
+ input: {
16
+ name: string;
17
+ createFolder: boolean;
18
+ defaultPlugins: boolean;
19
+ };
20
+ outputFile: string;
21
+ slots: import("@dxos/plate").SlotProducers<{}>;
22
+ inherited: import("@dxos/plate").FileResults<{
23
+ name: string;
24
+ createFolder: boolean;
25
+ defaultPlugins: boolean;
26
+ }, import("@dxos/plate").FileSlots<{
27
+ name: string;
28
+ createFolder: boolean;
29
+ defaultPlugins: boolean;
30
+ }>> | undefined;
31
+ } & {
32
+ imports: {
33
+ (): (relativeTo?: (string | string[]) | undefined) => string;
34
+ use: {
35
+ (name: string, from: string | string[], o?: {
36
+ aliasOf?: string | undefined;
37
+ isDefault?: boolean | undefined;
38
+ } | undefined): () => string;
39
+ (names: string[], from: string | string[], o?: {
40
+ aliasOf?: string | undefined;
41
+ isDefault?: boolean | undefined;
42
+ } | undefined): Record<string, () => string>;
43
+ };
44
+ };
45
+ }>>): Promise<import("@dxos/plate").FileResults<any, import("@dxos/plate").FileSlots<any>>>;
46
+ slots: {};
47
+ };
48
+ export default _default;
49
+ //# sourceMappingURL=vite.config.ts.t.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.config.ts.t.d.ts","sourceRoot":"","sources":["../../src/vite.config.ts.t.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,wBAoEE"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const template_t_1 = __importDefault(require("./template.t"));
7
+ const plate_1 = require("@dxos/plate");
8
+ exports.default = template_t_1.default.define.script({
9
+ content: ({ input: { defaultPlugins } }) => {
10
+ return (0, plate_1.plate /* javascript */) `
11
+ import { defineConfig } from "vite";
12
+ import { resolve } from "path";
13
+ import react from "@vitejs/plugin-react";
14
+ import { ThemePlugin } from "@dxos/react-ui-theme/plugin";
15
+
16
+ ${defaultPlugins && (0, plate_1.plate /* javascript */) `
17
+ import { ConfigPlugin } from "@dxos/config/vite-plugin";
18
+ import TopLevelAwaitPlugin from 'vite-plugin-top-level-await';
19
+ import WasmPlugin from 'vite-plugin-wasm';
20
+ `}
21
+
22
+ // https://vitejs.dev/config/
23
+ export default defineConfig({
24
+ server: {
25
+ host: true,
26
+ },
27
+ root: 'dev',
28
+ build: { outDir: "dev/out", target: "esnext" },
29
+ optimizeDeps: { esbuildOptions: { target: "esnext" } },
30
+ define: {
31
+ process: {
32
+ env: {
33
+ NODE_ENV: JSON.stringify(process.env.NODE_ENV),
34
+ },
35
+ },
36
+ },
37
+ plugins: [
38
+ react(),
39
+ ThemePlugin({
40
+ root: __dirname + '/dev',
41
+ content: [
42
+ resolve(__dirname, "./dev/index.html"),
43
+ resolve(__dirname, "./src/**/*.{js,ts,jsx,tsx}"),
44
+ resolve(__dirname, "./dev/**/*.{js,ts,jsx,tsx}"),
45
+ ${defaultPlugins && (0, plate_1.plate /* javascript */) `
46
+ resolve(__dirname, "node_modules/@dxos/react-ui/dist/**/*.mjs"),
47
+ resolve(__dirname, "node_modules/@dxos/react-ui-theme/dist/**/*.mjs"),
48
+ resolve(
49
+ __dirname,
50
+ "node_modules/@dxos/react-ui-mosaic/dist/lib/**/*.mjs"
51
+ ),
52
+ resolve(
53
+ __dirname,
54
+ "node_modules/@dxos/react-ui-stack/dist/lib/**/*.mjs"
55
+ ),
56
+ resolve(
57
+ __dirname,
58
+ "node_modules/@dxos/react-ui-navtree/dist/lib/**/*.mjs"
59
+ ),
60
+ resolve(
61
+ __dirname,
62
+ "node_modules/@braneframe/plugin-*/dist/lib/**/*.mjs"
63
+ ),
64
+ `}
65
+ ],
66
+ }),
67
+ ${defaultPlugins && (0, plate_1.plate /* javascript */) `
68
+ ConfigPlugin(),
69
+ TopLevelAwaitPlugin(),
70
+ WasmPlugin(),
71
+ `}
72
+ ],
73
+ });
74
+ `;
75
+ }
76
+ });
77
+ //# sourceMappingURL=vite.config.ts.t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.config.ts.t.js","sourceRoot":"","sources":["../../src/vite.config.ts.t.ts"],"names":[],"mappings":";;;;;AAAA,8DAAoC;AACpC,uCAAoC;AAEpC,kBAAe,oBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE;QACzC,OAAO,IAAA,aAAK,CAAA,gBAAgB,EAAA;;;;;;QAMxB,cAAc,IAAI,IAAA,aAAK,CAAA,gBAAgB,EAAA;;;;OAIxC;;;;;;;;;;;;;;;;;;;;;;;;;gBAyBS,cAAc,IAAI,IAAA,aAAK,CAAA,gBAAgB,EAAA;;;;;;;;;;;;;;;;;;;eAmBxC;;;YAGH,cAAc,IAAI,IAAA,aAAK,CAAA,gBAAgB,EAAA;;;;WAIxC;;;KAGN,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type InputOf } from '@dxos/plate';
2
+ import type template from '../src/template.t';
3
+ export declare const scenarios: InputOf<typeof template>[];
4
+ //# sourceMappingURL=scenarios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenarios.d.ts","sourceRoot":"","sources":["../../test/scenarios.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,OAAO,QAAQ,CAAC,EAW/C,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2023 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.scenarios = void 0;
7
+ exports.scenarios = [
8
+ {
9
+ name: 'default',
10
+ createFolder: true,
11
+ defaultPlugins: true,
12
+ },
13
+ {
14
+ name: 'default-bare',
15
+ createFolder: true,
16
+ defaultPlugins: false,
17
+ },
18
+ ];
19
+ //# sourceMappingURL=scenarios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../../test/scenarios.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAMW,QAAA,SAAS,GAA+B;IACnD;QACE,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,IAAI;KACrB;IACD;QACE,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,KAAK;KACtB;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=template.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.test.d.ts","sourceRoot":"","sources":["../../test/template.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2023 DXOS.org
4
+ //
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ const chai_1 = __importStar(require("chai"));
33
+ const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
34
+ const path_1 = __importDefault(require("path"));
35
+ const tmp_promise_1 = __importDefault(require("tmp-promise"));
36
+ const scenarios_1 = require("./scenarios");
37
+ const package_json_1 = __importDefault(require("../package.json"));
38
+ const template_t_1 = __importDefault(require("../src/template.t"));
39
+ chai_1.default.use(chai_as_promised_1.default);
40
+ describe('plugin template', () => {
41
+ it('exists', () => {
42
+ (0, chai_1.expect)(true).to.be.true;
43
+ });
44
+ it('execute with permuted inputs', async () => {
45
+ console.log('executing', scenarios_1.scenarios.length, 'scenarios...');
46
+ const tempFolder = await tmp_promise_1.default.dir({ unsafeCleanup: false, keep: true, prefix: 'plugin-template' });
47
+ const promises = scenarios_1.scenarios.map(async (scenario) => {
48
+ const outputDirectory = path_1.default.resolve(tempFolder.path);
49
+ const results = await template_t_1.default.apply({
50
+ input: { ...scenario, name: `${package_json_1.default.name.split('/')[1]}-${scenario.name}` },
51
+ outputDirectory,
52
+ after: false, // do not print messages
53
+ });
54
+ return await results.apply();
55
+ });
56
+ await Promise.all(promises);
57
+ console.log('done executing scenarios');
58
+ console.log(`temp folder: ${tempFolder.path}`);
59
+ });
60
+ });
61
+ //# sourceMappingURL=template.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.test.js","sourceRoot":"","sources":["../../test/template.test.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,6CAAoC;AACpC,wEAA8C;AAC9C,gDAAwB;AACxB,8DAA8B;AAE9B,2CAAwC;AACxC,mEAA0C;AAC1C,mEAAyC;AAEzC,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEzB,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QAChB,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,qBAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,MAAM,qBAAG,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAElG,MAAM,QAAQ,GAAG,qBAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAChD,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEtD,MAAM,OAAO,GAAG,MAAM,oBAAQ,CAAC,KAAK,CAAC;gBACnC,KAAK,EAAE,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,GAAG,sBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;gBAClF,eAAe;gBACf,KAAK,EAAE,KAAK,EAAE,wBAAwB;aACvC,CAAC,CAAC;YAEH,OAAO,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@dxos/plugin-template",
3
+ "version": "0.4.7-main.4d8eb56",
4
+ "description": "An template project for prototyping plugins for the DXOS app framework.",
5
+ "keywords": [
6
+ "dxos",
7
+ "plugin",
8
+ "template",
9
+ "composer",
10
+ "local-first",
11
+ "offline",
12
+ "multiplayer"
13
+ ],
14
+ "homepage": "https://dxos.org",
15
+ "bugs": "https://github.com/dxos/dxos/issues",
16
+ "license": "MIT",
17
+ "author": "info@dxos.org",
18
+ "main": "dist/src/template.t.js",
19
+ "types": "dist/src/template.t.d.ts",
20
+ "dependencies": {
21
+ "chalk": "^4.1.0",
22
+ "lodash.merge": "^4.6.2",
23
+ "sanitize-filename": "1.6.3",
24
+ "@dxos/plate": "0.4.7-main.4d8eb56"
25
+ },
26
+ "devDependencies": {
27
+ "@phosphor-icons/react": "^2.0.5",
28
+ "@types/lodash.merge": "^4.6.6",
29
+ "tmp-promise": "^3.0.3",
30
+ "ts-node": "10.9.1",
31
+ "types-package-json": "^2.0.39",
32
+ "typescript": "^5.2.2",
33
+ "@dxos/config": "0.4.7-main.4d8eb56",
34
+ "@dxos/app-framework": "0.4.7-main.4d8eb56",
35
+ "@dxos/shell": "0.4.7-main.4d8eb56"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "scripts": {
41
+ "build": "tsc"
42
+ }
43
+ }