create-lt-adventure 0.0.13 → 0.0.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-lt-adventure",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "description": "A CLI tool to scaffold Foundry VTT modules",
5
5
  "keywords": [
6
6
  "foundry-vtt",
@@ -454,7 +454,7 @@ export class LootTavernSheet extends DnDSheet {
454
454
 
455
455
  function registerSheet(sheet) {
456
456
  foundry.applications.apps.DocumentSheetConfig.registerSheet(JournalEntry, moduleJSON.id, sheet, {
457
- label: `${moduleJSON.title} Sheet`,
457
+ label: `LT - ${moduleJSON.title} Sheet`,
458
458
  canBeDefault: false,
459
459
  });
460
460
  }
@@ -1,50 +1,48 @@
1
- import { id } from "moduleJSON";
2
-
3
- CONFIG.fontDefinitions["Candara"] = {
4
- editor: true,
5
- fonts: [
6
- { urls: [`modules/${id}/assets/journals/fonts/Candara.ttf`] }
7
- ]
8
- };
9
-
10
- CONFIG.fontDefinitions["Coinage Caps Kruger Gray"] = {
11
- editor: true,
12
- fonts: [
13
- { urls: [`modules/${id}/assets/journals/fonts/CoinageCapsKrugerGray.ttf`] }
14
- ]
15
- };
16
-
17
- CONFIG.fontDefinitions["Geizer"] = {
18
- editor: true,
19
- fonts: [
20
- { urls: [`modules/${id}/assets/journals/fonts/GeizerModifiedO.otf`] }
21
- ]
22
- };
23
-
24
- CONFIG.fontDefinitions["Kings Caslon"] = {
25
- editor: true,
26
- fonts: [
27
- { urls: [`modules/${id}/assets/journals/fonts/Kings Caslon/Kings_Caslon_Regular.otf`] },
28
- { urls: [`modules/${id}/assets/journals/fonts/Kings Caslon/Kings_Caslon_Bold.otf`], weight: 700 },
29
- { urls: [`modules/${id}/assets/journals/fonts/Kings Caslon/Kings_Caslon_Italic.otf`], style: "italic" },
30
- { urls: [`modules/${id}/assets/journals/fonts/Kings Caslon/Kings_Caslon_BoldItalic.otf`], style: "italic", weight: 700 }
31
- ]
32
- };
33
-
34
- CONFIG.fontDefinitions["Modesto"] = {
35
- editor: true,
36
- fonts: [
37
- { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_Regular.otf`] },
38
- { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_Bold.otf`], weight: 700 },
39
- { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_Light.otf`], weight: 300 },
40
- { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_Italic.otf`], style: "italic" },
41
- { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_LightItalic.otf`], style: "italic", weight: 300 },
42
- { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_MediumItalic.otf`], style: "italic", weight: 500 },
43
- { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_Medium.otf`], weight: 500 },
44
- { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_BoldItalic.otf`], style: "italic", weight: 700 }
45
- ]
46
- };
47
-
48
- if (import.meta.hot) {
49
- import.meta.hot.accept();
1
+ import { id } from "moduleJSON";
2
+
3
+ CONFIG.fontDefinitions["Candara"] = {
4
+ editor: true,
5
+ fonts: [
6
+ { urls: [`modules/${id}/assets/journals/fonts/Candara.ttf`] }
7
+ ]
8
+ };
9
+
10
+ CONFIG.fontDefinitions["Coinage Caps Kruger Gray"] = {
11
+ editor: true,
12
+ fonts: [
13
+ { urls: [`modules/${id}/assets/journals/fonts/CoinageCapsKrugerGray.ttf`] }
14
+ ]
15
+ };
16
+
17
+ CONFIG.fontDefinitions["Geizer"] = {
18
+ editor: true,
19
+ fonts: [
20
+ { urls: [`modules/${id}/assets/journals/fonts/GeizerModifiedO.otf`] }
21
+ ]
22
+ };
23
+
24
+ CONFIG.fontDefinitions["Kings Caslon"] = {
25
+ editor: true,
26
+ fonts: [
27
+ { urls: [`modules/${id}/assets/journals/fonts/Kings Caslon/Kings_Caslon_Regular.otf`] },
28
+ { urls: [`modules/${id}/assets/journals/fonts/Kings Caslon/Kings_Caslon_Bold.otf`], weight: 700 },
29
+ { urls: [`modules/${id}/assets/journals/fonts/Kings Caslon/Kings_Caslon_Italic.otf`], style: "italic" },
30
+ { urls: [`modules/${id}/assets/journals/fonts/Kings Caslon/Kings_Caslon_BoldItalic.otf`], style: "italic", weight: 700 }
31
+ ]
32
+ };
33
+
34
+ CONFIG.fontDefinitions["Modesto"] = {
35
+ editor: true,
36
+ fonts: [
37
+ { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_Light.otf`], weight: 300 },
38
+ { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_Medium.otf`], weight: 500 },
39
+ { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_Bold.otf`], weight: 700 },
40
+ { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_LightItalic.otf`], style: "italic", weight: 300 },
41
+ { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_BoldItalic.otf`], style: "italic", weight: 700 },
42
+ { urls: [`modules/${id}/assets/journals/fonts/Modesto/ModestoText_MediumItalic.otf`], style: "italic", weight: 500 },
43
+ ]
44
+ };
45
+
46
+ if (import.meta.hot) {
47
+ import.meta.hot.accept();
50
48
  }
@@ -78,10 +78,10 @@ body.theme-dark .((moduleId)).Checks-and-Saves {
78
78
  border-image-width: 20px 26px 20px 26px;
79
79
  border-image-outset: 19px 0px 19px 0px;
80
80
  border-image-repeat: round round;
81
- border-image-source: url("modules/((moduleId))/assets/journals/Sidebar_Frame_Green.webp");
81
+ border-image-source: url("/modules/((moduleId))/assets/journals/Sidebar_Frame_Green.webp");
82
82
 
83
83
  &.brown {
84
- border-image-source: url("modules/((moduleId))/assets/journals/Sidebar_Frame_Brown.webp");
84
+ border-image-source: url("/modules/((moduleId))/assets/journals/Sidebar_Frame_Brown.webp");
85
85
  }
86
86
  }
87
87
 
@@ -108,7 +108,7 @@ body.theme-dark .((moduleId)).Checks-and-Saves {
108
108
  border-image-width: 12px 12px 12px 12px;
109
109
  border-image-outset: 6px 6px 6px 6px;
110
110
  border-image-repeat: stretch stretch;
111
- border-image-source: url("modules/((moduleId))/assets/journals/Read-Aloud_Corner.webp");
111
+ border-image-source: url("/modules/((moduleId))/assets/journals/Read-Aloud_Corner.webp");
112
112
 
113
113
  .themed.theme-dark & {
114
114
  background: hsl(25, 30%, 75%, 15%);
@@ -152,12 +152,17 @@ body.theme-dark .((moduleId)).Checks-and-Saves {
152
152
  .mask {
153
153
  --mask-size: 40%;
154
154
  border: none;
155
- mask-image: url("modules/((moduleId))/assets/journals/masks/mask-soft-04.webp"),
155
+ mask-image:
156
+ url("/modules/((moduleId))/assets/journals/masks/mask-soft-04.webp"),
156
157
  linear-gradient(white 0 0);
157
158
  mask-composite: add;
158
159
  mask-mode: luminance;
159
- mask-position: top right, bottom;
160
- mask-size: 101% var(--mask-size), 101% calc(101% - var(--mask-size));
160
+ mask-position:
161
+ top right,
162
+ bottom;
163
+ mask-size:
164
+ 101% var(--mask-size),
165
+ 101% calc(101% - var(--mask-size));
161
166
  mask-repeat: no-repeat;
162
167
 
163
168
  &.upside-down {
@@ -195,12 +200,15 @@ body.theme-dark .((moduleId)).Checks-and-Saves {
195
200
  background: rgba(0, 0, 0, 66%);
196
201
 
197
202
  border: none;
198
- mask-image: url("modules/((moduleId))/assets/journals/masks/mask-soft-04.webp"),
199
- url("modules/((moduleId))/assets/journals/masks/flipped/mask-soft-04.webp");
203
+ mask-image:
204
+ url("/modules/((moduleId))/assets/journals/masks/mask-soft-04.webp"),
205
+ url("/modules/((moduleId))/assets/journals/masks/flipped/mask-soft-04.webp");
200
206
  mask-composite: add;
201
207
  mask-mode: luminance;
202
208
  mask-position: top, bottom;
203
- mask-size: 100% 51%, 100% 50%;
209
+ mask-size:
210
+ 100% 51%,
211
+ 100% 50%;
204
212
  mask-repeat: no-repeat;
205
213
  }
206
214
 
@@ -241,7 +249,7 @@ body.theme-dark .((moduleId)).Checks-and-Saves {
241
249
  height: calc(100% + var(--ltBorderSizeMod, 0px));
242
250
  border-image: var(
243
251
  --urlBorderImage,
244
- url("modules/((moduleId))/assets/journals/borders/panel-border-026.webp")
252
+ url("/modules/((moduleId))/assets/journals/borders/panel-border-026.webp")
245
253
  )
246
254
  var(--ltBorderCut) var(--ltBorderCut) var(--ltBorderCut)
247
255
  var(--ltBorderCut) fill / calc(1px * var(--ltBorderOutset))
@@ -282,13 +290,16 @@ body.theme-dark .((moduleId)).Checks-and-Saves {
282
290
  background-size: cover;
283
291
 
284
292
  --mask-size: 10%;
285
- mask-image: url("modules/((moduleId))/assets/journals/masks/mask-hard-06.webp"),
293
+ mask-image:
294
+ url("/modules/((moduleId))/assets/journals/masks/mask-hard-06.webp"),
286
295
  linear-gradient(white 0 0),
287
- url("modules/((moduleId))/assets/journals/masks/flipped/mask-soft-04.webp");
296
+ url("/modules/((moduleId))/assets/journals/masks/flipped/mask-soft-04.webp");
288
297
  mask-composite: add;
289
298
  mask-mode: luminance;
290
299
  mask-position: top, center, bottom;
291
- mask-size: 101% var(--mask-size), 100% calc(100% - 2 * var(--mask-size)),
300
+ mask-size:
301
+ 101% var(--mask-size),
302
+ 100% calc(100% - 2 * var(--mask-size)),
292
303
  101% var(--mask-size);
293
304
  mask-repeat: no-repeat;
294
305
  }
@@ -1,12 +1,12 @@
1
1
  import type { Plugin, UserConfig } from "vite";
2
+ import fs from "node:fs";
2
3
  import path from "node:path";
3
- import fs from 'node:fs';
4
4
  import vttSync from "foundryvtt-sync";
5
- import { defineConfig } from "vite";
6
- import moduleJSON from "./module.json" with { type: "json" };
7
5
  import postcssPresetEnv from "postcss-preset-env";
8
6
  import PostCSSReplace from "postcss-replace";
9
- import 'dotenv/config'
7
+ import { defineConfig } from "vite";
8
+ import moduleJSON from "./module.json" with { type: "json" };
9
+ import "dotenv/config";
10
10
 
11
11
  const target = "es2022"; // Build target for the vinal bundle.
12
12
  const foundryPort = Number(process.env.FOUNDRY_PORT || 30000); // Which port your FoundryVTT instance is hosted at.
@@ -31,9 +31,9 @@ const postcss = {
31
31
 
32
32
  const PACKAGE_ID = `modules/${moduleJSON.id}`;
33
33
 
34
- console.log(`Running foundry port ${foundryPort} -> dev port ${devPort}`)
35
34
 
36
35
  export default defineConfig(({ mode: _mode }) => {
36
+ if (_mode === "serve") console.log(`Running foundry port ${foundryPort} -> dev port ${devPort}`);
37
37
  return {
38
38
  root: "src/", // Source location / esbuild root.
39
39
  base: `/${PACKAGE_ID}/dist`, // Base module path.
@@ -78,7 +78,7 @@ export default defineConfig(({ mode: _mode }) => {
78
78
  sourcemap: true, // Provide a publicly available sourcemap for debuggin purposes.
79
79
  target,
80
80
  lib: {
81
- entry: "./" + libEntry,
81
+ entry: `./${libEntry}`,
82
82
  formats: ["es"],
83
83
  fileName: moduleJSON.id,
84
84
  },
@@ -94,17 +94,32 @@ export default defineConfig(({ mode: _mode }) => {
94
94
  plugins: [
95
95
  vttSync(moduleJSON, {}) as Plugin[], // Build the database from JSON files on build
96
96
  {
97
- name: 'create-dist-files', // Create dummy files for Foundry's tests to pass
98
- apply: 'serve',
97
+ name: "create-dist-files", // Create dummy files for Foundry's tests to pass
98
+ apply: "serve",
99
99
  buildStart() {
100
- if (!fs.existsSync('dist')) fs.mkdirSync('dist');
100
+ if (!fs.existsSync("dist")) fs.mkdirSync("dist");
101
101
 
102
102
  const files = [...moduleJSON.esmodules, ...moduleJSON.styles];
103
103
  for (const name of files) {
104
- fs.writeFileSync(name, '', { flag: 'a' });
104
+ fs.writeFileSync(name, "", { flag: "a" });
105
+ }
106
+ },
107
+ },
108
+ {
109
+ name: 'empty-css-proxy', // Create dummy CSS responses for Foundry requests
110
+ apply: 'serve',
111
+ configureServer(server) {
112
+ server.middlewares.use((req, res, next) => {
113
+ const cssPath = `/${PACKAGE_ID}/dist/${moduleJSON.id}.css`;
114
+ if (req.url === cssPath) {
115
+ res.setHeader('Content-Type', 'text/css');
116
+ res.end('');
117
+ return;
105
118
  }
119
+ next();
120
+ });
106
121
  },
107
122
  },
108
123
  ],
109
124
  } satisfies UserConfig;
110
- });
125
+ });