@breadstone-infrastructure/vite 0.0.137 → 0.0.138

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 (88) hide show
  1. package/2/plugins/LiveReloadPlugin.d.ts.map +1 -0
  2. package/2/plugins/LiveReloadPlugin.js.map +1 -0
  3. package/2/plugins/LocalizatorPlugin.d.ts.map +1 -0
  4. package/2/plugins/LocalizatorPlugin.js.map +1 -0
  5. package/2/plugins/StaticContentPlugin.d.ts.map +1 -0
  6. package/2/plugins/StaticContentPlugin.js.map +1 -0
  7. package/2/plugins/env-export/const/Vercel.d.ts +104 -0
  8. package/2/plugins/env-export/const/Vercel.d.ts.map +1 -0
  9. package/2/plugins/env-export/const/Vercel.js +100 -0
  10. package/2/plugins/env-export/const/Vercel.js.map +1 -0
  11. package/2/plugins/env-export/envExport.d.ts +4 -0
  12. package/2/plugins/env-export/envExport.d.ts.map +1 -0
  13. package/2/plugins/env-export/envExport.js +28 -0
  14. package/2/plugins/env-export/envExport.js.map +1 -0
  15. package/2/plugins/env-export/envExportPlugin.d.ts +17 -0
  16. package/2/plugins/env-export/envExportPlugin.d.ts.map +1 -0
  17. package/2/plugins/env-export/envExportPlugin.js +32 -0
  18. package/2/plugins/env-export/envExportPlugin.js.map +1 -0
  19. package/2/plugins/env-export/interfaces/IEnvExportPluginOptions.d.ts +22 -0
  20. package/2/plugins/env-export/interfaces/IEnvExportPluginOptions.d.ts.map +1 -0
  21. package/2/plugins/env-export/interfaces/IEnvExportPluginOptions.js +3 -0
  22. package/2/plugins/env-export/interfaces/IEnvExportPluginOptions.js.map +1 -0
  23. package/2/plugins/env-export/types/EnvExportPreset.d.ts +7 -0
  24. package/2/plugins/env-export/types/EnvExportPreset.d.ts.map +1 -0
  25. package/2/plugins/env-export/types/EnvExportPreset.js +2 -0
  26. package/2/plugins/env-export/types/EnvExportPreset.js.map +1 -0
  27. package/2/plugins/env-export/types/EnvExportPresetFactory.d.ts +3 -0
  28. package/2/plugins/env-export/types/EnvExportPresetFactory.d.ts.map +1 -0
  29. package/2/plugins/env-export/types/EnvExportPresetFactory.js +3 -0
  30. package/2/plugins/env-export/types/EnvExportPresetFactory.js.map +1 -0
  31. package/2/plugins/env-export/types/EnvExportPresetLike.d.ts +9 -0
  32. package/2/plugins/env-export/types/EnvExportPresetLike.d.ts.map +1 -0
  33. package/2/plugins/env-export/types/EnvExportPresetLike.js +3 -0
  34. package/2/plugins/env-export/types/EnvExportPresetLike.js.map +1 -0
  35. package/2/plugins/env-export/types/EnvExportRecord.d.ts +7 -0
  36. package/2/plugins/env-export/types/EnvExportRecord.d.ts.map +1 -0
  37. package/2/plugins/env-export/types/EnvExportRecord.js +2 -0
  38. package/2/plugins/env-export/types/EnvExportRecord.js.map +1 -0
  39. package/2/plugins/live-reload/LiveReloadPlugin.d.ts +11 -0
  40. package/2/plugins/live-reload/LiveReloadPlugin.d.ts.map +1 -0
  41. package/2/plugins/live-reload/LiveReloadPlugin.js +62 -0
  42. package/2/plugins/live-reload/LiveReloadPlugin.js.map +1 -0
  43. package/2/plugins/live-reload/interfaces/ILiveReloadPluginOptions.d.ts +25 -0
  44. package/2/plugins/live-reload/interfaces/ILiveReloadPluginOptions.d.ts.map +1 -0
  45. package/2/plugins/live-reload/interfaces/ILiveReloadPluginOptions.js +2 -0
  46. package/2/plugins/live-reload/interfaces/ILiveReloadPluginOptions.js.map +1 -0
  47. package/2/plugins/localizator/LocalizatorPlugin.d.ts +16 -0
  48. package/2/plugins/localizator/LocalizatorPlugin.d.ts.map +1 -0
  49. package/2/plugins/localizator/LocalizatorPlugin.js +95 -0
  50. package/2/plugins/localizator/LocalizatorPlugin.js.map +1 -0
  51. package/2/plugins/localizator/interfaces/ILocalizatorPluginOptions.d.ts +11 -0
  52. package/2/plugins/localizator/interfaces/ILocalizatorPluginOptions.d.ts.map +1 -0
  53. package/2/plugins/localizator/interfaces/ILocalizatorPluginOptions.js +2 -0
  54. package/2/plugins/localizator/interfaces/ILocalizatorPluginOptions.js.map +1 -0
  55. package/2/plugins/static-content/StaticContentPlugin.d.ts +16 -0
  56. package/2/plugins/static-content/StaticContentPlugin.d.ts.map +1 -0
  57. package/2/plugins/static-content/StaticContentPlugin.js +229 -0
  58. package/2/plugins/static-content/StaticContentPlugin.js.map +1 -0
  59. package/2/plugins/static-content/interfaces/IStaticContentPluginOptions.d.ts +23 -0
  60. package/2/plugins/static-content/interfaces/IStaticContentPluginOptions.d.ts.map +1 -0
  61. package/2/plugins/static-content/interfaces/IStaticContentPluginOptions.js +2 -0
  62. package/2/plugins/static-content/interfaces/IStaticContentPluginOptions.js.map +1 -0
  63. package/CHANGELOG.md +37 -0
  64. package/Index.d.ts +16 -14
  65. package/Index.d.ts.map +1 -1
  66. package/Index.js +11 -10
  67. package/Index.js.map +1 -1
  68. package/package.json +8 -5
  69. package/virtual/env-export.d.ts +5 -0
  70. package/Plugins/BuildInfoPlugin.d.ts +0 -27
  71. package/Plugins/BuildInfoPlugin.d.ts.map +0 -1
  72. package/Plugins/BuildInfoPlugin.js +0 -73
  73. package/Plugins/BuildInfoPlugin.js.map +0 -1
  74. package/Plugins/LiveReloadPlugin.d.ts.map +0 -1
  75. package/Plugins/LiveReloadPlugin.js.map +0 -1
  76. package/Plugins/LocalizatorPlugin.d.ts.map +0 -1
  77. package/Plugins/LocalizatorPlugin.js.map +0 -1
  78. package/Plugins/StaticContentPlugin.d.ts.map +0 -1
  79. package/Plugins/StaticContentPlugin.js.map +0 -1
  80. package/virtual__build-info.d.ts +0 -12
  81. /package/{Plugins → 2/plugins}/LiveReloadPlugin.d.ts +0 -0
  82. /package/{Plugins → 2/plugins}/LiveReloadPlugin.js +0 -0
  83. /package/{Plugins → 2/plugins}/LocalizatorPlugin.d.ts +0 -0
  84. /package/{Plugins → 2/plugins}/LocalizatorPlugin.js +0 -0
  85. /package/{Plugins → 2/plugins}/StaticContentPlugin.d.ts +0 -0
  86. /package/{Plugins → 2/plugins}/StaticContentPlugin.js +0 -0
  87. /package/{virtual__localizator.d.ts → virtual/localizator.d.ts} +0 -0
  88. /package/{virtual__static-content.d.ts → virtual/static-content.d.ts} +0 -0
@@ -0,0 +1,95 @@
1
+ // #region Imports
2
+ import { blue, Path, yellow, FileSystem } from '@breadstone-infrastructure/utilities';
3
+ import { createLogger } from 'vite';
4
+ import { ResourceMode, ResourceReader, ResourceTransformer } from '@breadstone-tools/localizator-core';
5
+ // #endregion
6
+ /**
7
+ * @public
8
+ */
9
+ export const VIRTUAL_MODULE_KEY = 'virtual:localizator.ts';
10
+ /**
11
+ * Vite plugin to scan and transform resource files (e.g., `.resx`) into TypeScript components.
12
+ * To debug/view the generated components, navigate to `http://localhost:8080/@id/virtual:localizator.ts`.
13
+ *
14
+ * @public
15
+ * @param options - Plugin configuration
16
+ * @returns Vite-compatible plugin
17
+ */
18
+ export function localizatorPlugin(options) {
19
+ const logger = createLogger(undefined, { console: console });
20
+ const fileSystem = new FileSystem();
21
+ const reader = new ResourceReader(console, fileSystem);
22
+ const transformer = new ResourceTransformer(console);
23
+ return {
24
+ name: 'vite-plugin-localizator',
25
+ handleHotUpdate(ctx) {
26
+ if (ctx.file.endsWith('.resx')) {
27
+ const module = ctx.server.moduleGraph.getModuleById(VIRTUAL_MODULE_KEY);
28
+ logger.warn(`${yellow('[vite-plugin-localizator]:')} Virtual module: ${module?.id ?? 'not found'}`);
29
+ if (module) {
30
+ ctx.server.moduleGraph.invalidateModule(module);
31
+ }
32
+ else {
33
+ logger.warn(`${yellow('[vite-plugin-localizator]:')} Virtual module not found`);
34
+ }
35
+ ctx.server.ws.send({
36
+ type: 'full-reload',
37
+ path: '*'
38
+ });
39
+ logger.info(`${blue('[vite-plugin-localizator]:')} File updated: ${ctx.file}`);
40
+ }
41
+ },
42
+ configureServer(server) {
43
+ server.watcher.on('change', (path) => {
44
+ console.log(`[vite-plugin-localizator]: File changed: ${path}`);
45
+ });
46
+ const paths = Array.isArray(options.paths)
47
+ ? options.paths
48
+ : [options.paths];
49
+ for (const globPattern of paths) {
50
+ const resolvedFiles = Path.glob(globPattern);
51
+ for (const file of resolvedFiles) {
52
+ server.watcher.add(file);
53
+ logger.info(`[vite-plugin-localizator]: Watching: ${file}`);
54
+ }
55
+ }
56
+ },
57
+ resolveId(source) {
58
+ return source === VIRTUAL_MODULE_KEY
59
+ ? source
60
+ : null;
61
+ },
62
+ load(id) {
63
+ if (id !== VIRTUAL_MODULE_KEY) {
64
+ return null;
65
+ }
66
+ const resxFiles = Path.glob(options.paths)
67
+ .filter((file) => file.endsWith('.resx'));
68
+ const contents = resxFiles.map((file) => {
69
+ logger.info(`[vite-plugin-localizator]: Found resource file: ${file}`);
70
+ const resource = reader.scanFile(file, ResourceMode.Resx);
71
+ if (!resource) {
72
+ logger.warn(`[vite-plugin-localizator]: Resource file not found or invalid: ${file}`);
73
+ return null;
74
+ }
75
+ logger.info(`[vite-plugin-localizator]: Scanned resource: ${resource.name} (${resource.locale})`);
76
+ const models = transformer.transform(resource);
77
+ const resourceInfo = transformer.serialize(models, {
78
+ locale: resource.locale,
79
+ name: '',
80
+ path: '',
81
+ target: 'ts'
82
+ });
83
+ return resourceInfo;
84
+ }).filter((x) => x !== null);
85
+ return `
86
+ ${contents.map((x) => x.toString()).join('\n\n')}
87
+
88
+ export const translations = {
89
+ ${contents.map((c) => `'${c.locale}': _${c.locale}`).join(',\n')},
90
+ };
91
+ `;
92
+ }
93
+ };
94
+ }
95
+ //# sourceMappingURL=LocalizatorPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalizatorPlugin.js","sourceRoot":"","sources":["../../../../src/2/plugins/localizator/LocalizatorPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export interface ILocalizatorPluginOptions {
5
+ /**
6
+ * Directory containing resource files.
7
+ */
8
+ paths: string | Array<string>;
9
+ verbose?: boolean;
10
+ }
11
+ //# sourceMappingURL=ILocalizatorPluginOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILocalizatorPluginOptions.d.ts","sourceRoot":"","sources":["../../../../../src/2/plugins/localizator/interfaces/ILocalizatorPluginOptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,yBAAyB;IAEtC;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B,OAAO,CAAC,EAAE,OAAO,CAAC;CAErB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ILocalizatorPluginOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ILocalizatorPluginOptions.js","sourceRoot":"","sources":["../../../../../src/2/plugins/localizator/interfaces/ILocalizatorPluginOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { type Plugin } from 'vite';
2
+ import type { IStaticContentPluginOptions } from './interfaces/IStaticContentPluginOptions.js';
3
+ /**
4
+ * @public
5
+ */
6
+ export declare const VIRTUAL_MODULE_KEY = "virtual:static-content.ts";
7
+ /**
8
+ * Vite plugin to process Markdown files and expose a component registry, including subfolders.
9
+ * To debug/view the generated components, navigate to `http://localhost:8080/@id/virtual:static-content.ts`.
10
+ *
11
+ * @public
12
+ * @param options - Plugin options.
13
+ * @returns Vite plugin.
14
+ */
15
+ export declare function staticContentPlugin(options: IStaticContentPluginOptions): Plugin;
16
+ //# sourceMappingURL=StaticContentPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticContentPlugin.d.ts","sourceRoot":"","sources":["../../../../src/2/plugins/static-content/StaticContentPlugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgC,KAAK,MAAM,EAAoC,MAAM,MAAM,CAAC;AAEnG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAI/F;;GAEG;AACH,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAE9D;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CA2HhF"}
@@ -0,0 +1,229 @@
1
+ // #region Imports
2
+ import { Path, File, red } from '@breadstone-infrastructure/utilities';
3
+ import { createLogger } from 'vite';
4
+ import matter from 'gray-matter';
5
+ // #endregion
6
+ /**
7
+ * @public
8
+ */
9
+ export const VIRTUAL_MODULE_KEY = 'virtual:static-content.ts';
10
+ /**
11
+ * Vite plugin to process Markdown files and expose a component registry, including subfolders.
12
+ * To debug/view the generated components, navigate to `http://localhost:8080/@id/virtual:static-content.ts`.
13
+ *
14
+ * @public
15
+ * @param options - Plugin options.
16
+ * @returns Vite plugin.
17
+ */
18
+ export function staticContentPlugin(options) {
19
+ const logger = createLogger();
20
+ return {
21
+ name: 'vite-plugin-static-content',
22
+ handleHotUpdate(ctx) {
23
+ if (ctx.file.endsWith('.md')) {
24
+ const module = ctx.server.moduleGraph.getModuleById(VIRTUAL_MODULE_KEY);
25
+ logger.warn(`[vite-plugin-static-content]: Virtual module: ${module?.id ?? 'not found'}`);
26
+ if (module) {
27
+ ctx.server.moduleGraph.invalidateModule(module);
28
+ }
29
+ else {
30
+ logger.warn('[vite-plugin-static-content]: Virtual module not found');
31
+ }
32
+ ctx.server.ws.send({
33
+ type: 'full-reload',
34
+ path: '*'
35
+ });
36
+ logger.info(`[vite-plugin-static-content]: File updated: ${ctx.file}`);
37
+ }
38
+ },
39
+ configureServer(server) {
40
+ server.watcher.on('change', (path) => {
41
+ if (options.verbose) {
42
+ console.log('[vite-plugin-static-content] Changed:', path);
43
+ }
44
+ });
45
+ const paths = Array.isArray(options.paths) ? options.paths : [options.paths];
46
+ for (const globPattern of paths) {
47
+ const resolvedFiles = Path.glob(globPattern);
48
+ for (const file of resolvedFiles) {
49
+ server.watcher.add(file);
50
+ logger.info(`[vite-plugin-static-content]: Watching: ${file}`);
51
+ }
52
+ }
53
+ },
54
+ resolveId(source) {
55
+ return source === VIRTUAL_MODULE_KEY
56
+ ? source
57
+ : null;
58
+ },
59
+ load(id) {
60
+ if (id === VIRTUAL_MODULE_KEY) {
61
+ const mdFiles = Path.glob(options.paths)
62
+ .filter((file) => file.endsWith('.md'));
63
+ const sharedImports = `
64
+ import { html, LitElement } from 'lit';
65
+ import { customElement } from 'lit/decorators.js';
66
+ import { dateFormat, animate, Animate } from '@breadstone/mosaik-elements-foundation';
67
+ import { BlogBaseElement } from './src/Views/Blog/Abstracts/BlogBase';
68
+ import { Memoize } from './src/Decorators/MemoizeDecorator';
69
+ `.trim();
70
+ let componentsRegistry = 'const components = new Map();';
71
+ const components = mdFiles.map((x, i) => {
72
+ const cwd = options.cwd ?? process.cwd();
73
+ const relativeFilePath = Path.relative(cwd, x);
74
+ const componentName = generateComponentName(relativeFilePath, logger, options);
75
+ const content = File.readAllText(relativeFilePath, 'utf-8');
76
+ const meta = tryGetContentMeta(content, logger, options);
77
+ const contentWithoutMeta = removeMetadata(content);
78
+ const routePath = options.pathTransform
79
+ ? options.pathTransform(relativeFilePath)
80
+ : relativeFilePath.replace(/\\/g, '/').replace(/\.md$/, '');
81
+ if (options.verbose) {
82
+ logger.info(`[vite-plugin-static-content]: File transformed: ${relativeFilePath} -> ${routePath}`, {
83
+ timestamp: true,
84
+ clear: true
85
+ });
86
+ }
87
+ const displayName = generateDisplayName(Path.getFileName(relativeFilePath));
88
+ const breadcrumbParts = routePath.split('/');
89
+ const componentCode = `
90
+ class MarkdownComponent${i} extends BlogBaseElement {
91
+ @Memoize()
92
+ protected get description(): ISampleDescription<AnchorElement> {
93
+ return {
94
+ title: '${displayName}',
95
+ breadcrumb: [${breadcrumbParts.map((part, idx) => `{
96
+ label: '${generateDisplayName(part)}',
97
+ href: '/${breadcrumbParts.slice(0, idx + 1).join('/')}'
98
+ }`).join(',\n')}],
99
+ estimatedReadTime: ${estimateReadTime(contentWithoutMeta)},
100
+ meta: components.get('${componentName}')?.meta,
101
+ content: \`${escapeStringForTemplate(contentWithoutMeta)}\`,
102
+ };
103
+ }
104
+ }
105
+
106
+ customElements.define('${componentName}', MarkdownComponent${i});
107
+ `;
108
+ componentsRegistry += `
109
+ components.set('${componentName}', {
110
+ name: 'MarkdownComponent${i}',
111
+ displayName: '${typeof meta.title === 'string' ? escapeStringForTemplate(meta.title) : displayName}',
112
+ path: '${typeof meta.path === 'string' ? meta.path : `/${routePath}`}',
113
+ selector: '${componentName}',
114
+ meta: ${JSON.stringify(meta)}
115
+ });
116
+ `;
117
+ return componentCode;
118
+ }).join('\n');
119
+ return `
120
+ ${sharedImports}
121
+ ${componentsRegistry}
122
+ ${components}
123
+ export default components;
124
+ `.trim();
125
+ }
126
+ return null;
127
+ }
128
+ };
129
+ }
130
+ /**
131
+ * Generates a valid Lit component name, applying an optional prefix.
132
+ *
133
+ * @private
134
+ * @param fileName - The file name of the Markdown file
135
+ * @returns A valid component selector name.
136
+ */
137
+ function generateComponentName(fileName, logger, options) {
138
+ // if (options.verbose) {
139
+ // logger.info(`[vite-plugin-static-content]: Generating component name for file: ${fileName}`);
140
+ // }
141
+ const baseName = fileName
142
+ .replace(/-md$/, '-doc') // Replace `.md` with `-doc`
143
+ .replace(/^(\.\.\/)+/, '') // Remove relative path indicators
144
+ .replace(/[^a-zA-Z0-9]/g, '-') // Replace unsupported characters with dashes
145
+ .toLowerCase();
146
+ // if (options.verbose) {
147
+ // logger.info(`[vite-plugin-static-content]: Generated component name: ${prefix}${baseName}`);
148
+ // }
149
+ return `${options.prefix ?? ''}${baseName}`;
150
+ }
151
+ /**
152
+ * Escapes special characters in a string to make it TypeScript string-safe.
153
+ *
154
+ * @private
155
+ * @param content - The string content to escape.
156
+ * @returns The escaped string.
157
+ */
158
+ function escapeStringForTemplate(content) {
159
+ return content
160
+ .replace(/\\/g, '\\\\')
161
+ .replace(/`/g, '\\`')
162
+ .replace(/\${/g, '\\${')
163
+ .replace(/'/g, "\\'")
164
+ .replace(/"/g, '\\"');
165
+ }
166
+ /**
167
+ * Converts a file or folder name to a user-friendly display name.
168
+ *
169
+ * @private
170
+ * @param segment - The file or folder name to convert.
171
+ * @returns A user-friendly display name.
172
+ */
173
+ function generateDisplayName(segment) {
174
+ return segment
175
+ .replace(/-/g, ' ') // Replace dashes with spaces
176
+ .replace(/_/g, ' ') // Replace underscores with spaces
177
+ .replace(/\.[^/.]+$/, '') // Remove file extensions
178
+ .replace(/\b\w/g, (char) => char.toUpperCase()); // Capitalize the first letter of each word
179
+ }
180
+ /**
181
+ * @private
182
+ */
183
+ function tryGetContentMeta(content, logger, options) {
184
+ try {
185
+ const parsed = matter(content);
186
+ // if (options.verbose) {
187
+ // logger.info(`[vite-plugin-static-content]: Parsed content meta: ${JSON.stringify(parsed.data)}`);
188
+ // }
189
+ return parsed.data;
190
+ }
191
+ catch (error) {
192
+ logger.error(`[vite-plugin-static-content]: ${red(`Failed to parse content meta: ${String(error)}`)}`);
193
+ return {};
194
+ }
195
+ }
196
+ /**
197
+ * @private
198
+ */
199
+ function removeMetadata(content) {
200
+ const matterMatch = (/---\n([\s\S]*?)\n---/).exec(content);
201
+ if (matterMatch) {
202
+ return content.replace(matterMatch[0], '').trim();
203
+ }
204
+ return content.trim();
205
+ }
206
+ /**
207
+ * Calculates estimated reading time for a given Markdown text.
208
+ *
209
+ * @private
210
+ * @param markdown - The Markdown content.
211
+ * @param wordsPerMinute - The average reading speed in words per minute (default: 200).
212
+ * @returns Estimated reading time in minutes.
213
+ */
214
+ function estimateReadTime(markdown, wordsPerMinute = 100) {
215
+ if (!markdown) {
216
+ return 0;
217
+ }
218
+ // Strip out code blocks, front matter, and HTML tags
219
+ const textOnly = markdown
220
+ // .replace(/`{3}[\s\S]*?`{3}/g, '') // Remove code blocks
221
+ // .replace(/`[^`]*`/g, '') // Remove inline code
222
+ // .replace(/<[^>]+>/g, '') // Remove HTML tags
223
+ .replace(/---[\s\S]*?---/g, '') // Remove front matter
224
+ .replace(/\s+/g, ' ') // Normalize whitespace
225
+ .trim();
226
+ const wordCount = textOnly.split(' ').filter((word) => word.length > 0).length;
227
+ return Math.max(1, Math.ceil(wordCount / wordsPerMinute));
228
+ }
229
+ //# sourceMappingURL=StaticContentPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticContentPlugin.js","sourceRoot":"","sources":["../../../../src/2/plugins/static-content/StaticContentPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @public
3
+ */
4
+ export interface IStaticContentPluginOptions {
5
+ /**
6
+ * The current working directory.
7
+ */
8
+ cwd?: string;
9
+ /**
10
+ * Directory containing markdown files.
11
+ */
12
+ paths: string | Array<string>;
13
+ /**
14
+ * Optional prefix for component selectors.
15
+ */
16
+ prefix?: string;
17
+ /**
18
+ * Optional function to transform paths to URLs.
19
+ */
20
+ pathTransform?: (path: string) => string;
21
+ verbose?: boolean;
22
+ }
23
+ //# sourceMappingURL=IStaticContentPluginOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IStaticContentPluginOptions.d.ts","sourceRoot":"","sources":["../../../../../src/2/plugins/static-content/interfaces/IStaticContentPluginOptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAExC;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAEzC,OAAO,CAAC,EAAE,OAAO,CAAC;CAErB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IStaticContentPluginOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IStaticContentPluginOptions.js","sourceRoot":"","sources":["../../../../../src/2/plugins/static-content/interfaces/IStaticContentPluginOptions.ts"],"names":[],"mappings":""}
package/CHANGELOG.md CHANGED
@@ -1,3 +1,40 @@
1
+ ## 0.0.137 (2025-09-05)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **build:** add support for custom environment variables in build info ([e5554f85af](https://github.com/RueDeRennes/mosaik/commit/e5554f85af))
6
+ - **build:** add environment variable sanitization to build summary ([b2f1e0830e](https://github.com/RueDeRennes/mosaik/commit/b2f1e0830e))
7
+
8
+ ## 0.0.136 (2025-09-04)
9
+
10
+ ### 🚀 Features
11
+
12
+ - add comprehensive coding standards for backend, frontend, and testing ([3987d97056](https://github.com/RueDeRennes/mosaik/commit/3987d97056))
13
+ - integrate build info into AppElement and update template to display build metadata ([afff580948](https://github.com/RueDeRennes/mosaik/commit/afff580948))
14
+
15
+ ### 🩹 Fixes
16
+
17
+ - standardize padding-top property in Banner styles and templates ([377e883410](https://github.com/RueDeRennes/mosaik/commit/377e883410))
18
+
19
+ ## 0.0.135 (2025-09-03)
20
+
21
+ ### 🚀 Features
22
+
23
+ - add build info plugin for Vite to collect and expose build metadata ([888ea8b254](https://github.com/RueDeRennes/mosaik/commit/888ea8b254))
24
+
25
+ ### 🩹 Fixes
26
+
27
+ - enhance build info logging format and update release version to 0.0.135 ([61b1c86643](https://github.com/RueDeRennes/mosaik/commit/61b1c86643))
28
+ - add missing newline at end of package.json ([cf3b9a3f21](https://github.com/RueDeRennes/mosaik/commit/cf3b9a3f21))
29
+
30
+ ## 0.0.134 (2025-09-01)
31
+
32
+ ### 🚀 Features
33
+
34
+ - Add ThemeService for managing theme application and properties ([a3cb9be861](https://github.com/RueDeRennes/mosaik/commit/a3cb9be861))
35
+ - Add new Map and Thumbnail components with Cosmopolitan, Joy, and Retro themes ([5142fee885](https://github.com/RueDeRennes/mosaik/commit/5142fee885))
36
+ - add serve scripts for app and API in package.json ([1ad4faa834](https://github.com/RueDeRennes/mosaik/commit/1ad4faa834))
37
+
1
38
  ## 0.0.132 (2025-08-24)
2
39
 
3
40
  This was a version bump only for vite-plugins to align it with other projects, there were no code changes.
package/Index.d.ts CHANGED
@@ -1,15 +1,17 @@
1
- export type { IStaticContentPluginOptions } from './Plugins/StaticContentPlugin.js';
2
- export { staticContentPlugin } from './Plugins/StaticContentPlugin.js';
3
- export type { ILiveReloadPluginOptions } from './Plugins/LiveReloadPlugin.js';
4
- export { liveReloadPlugin } from './Plugins/LiveReloadPlugin.js';
5
- export type { ILocalizatorPluginOptions } from './Plugins/LocalizatorPlugin.js';
6
- export { localizatorPlugin } from './Plugins/LocalizatorPlugin.js';
7
- export type { IBuildInfoPluginOptions } from './Plugins/BuildInfoPlugin.js';
8
- export { buildInfoPlugin } from './Plugins/BuildInfoPlugin.js';
9
- import './virtual__localizator.d.ts';
10
- import './virtual__static-content.d.ts';
11
- import './virtual__build-info.d.ts';
12
- export { VIRTUAL_MODULE_KEY as LOCALIZATOR_VIRTUAL_MODULE_KEY } from './Plugins/LocalizatorPlugin.js';
13
- export { VIRTUAL_MODULE_KEY as STATIC_CONTENT_VIRTUAL_MODULE_KEY } from './Plugins/StaticContentPlugin.js';
14
- export { VIRTUAL_MODULE_KEY as BUILD_INFO_VIRTUAL_MODULE_KEY } from './Plugins/BuildInfoPlugin.js';
1
+ export { VIRTUAL_MODULE_KEY as STATIC_CONTENT_VIRTUAL_MODULE_KEY } from './2/plugins/static-content/StaticContentPlugin.js';
2
+ export type { IStaticContentPluginOptions } from './2/plugins/static-content/interfaces/IStaticContentPluginOptions.js';
3
+ export { staticContentPlugin } from './2/plugins/static-content/StaticContentPlugin.js';
4
+ export type { ILiveReloadPluginOptions } from './2/plugins/live-reload/interfaces/ILiveReloadPluginOptions.js';
5
+ export { liveReloadPlugin } from './2/plugins/live-reload/LiveReloadPlugin.js';
6
+ export { VIRTUAL_MODULE_KEY as LOCALIZATOR_VIRTUAL_MODULE_KEY } from './2/plugins/localizator/LocalizatorPlugin.js';
7
+ export type { ILocalizatorPluginOptions } from './2/plugins/localizator/interfaces/ILocalizatorPluginOptions.js';
8
+ export { localizatorPlugin } from './2/plugins/localizator/LocalizatorPlugin.js';
9
+ export { run as envExportRun } from './2/plugins/env-export/envExport.js';
10
+ export { VIRTUAL_MODULE_KEY as ENV_EXPORT_VIRTUAL_MODULE_KEY, envExportPlugin } from './2/plugins/env-export/envExportPlugin.js';
11
+ export type { IEnvExportPluginOptions } from './2/plugins/env-export/interfaces/IEnvExportPluginOptions.js';
12
+ export { VercelPresetKeys } from './2/plugins/env-export/const/Vercel.js';
13
+ export type { EnvExportPreset } from './2/plugins/env-export/types/EnvExportPreset.js';
14
+ import './virtual/localizator.d.ts';
15
+ import './virtual/static-content.d.ts';
16
+ import './virtual/env-export.d.ts';
15
17
  //# sourceMappingURL=Index.d.ts.map
package/Index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,4BAA4B,CAAC;AAEpC,OAAO,EAAE,kBAAkB,IAAI,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,kBAAkB,IAAI,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAC3G,OAAO,EAAE,kBAAkB,IAAI,6BAA6B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"Index.d.ts","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,iCAAiC,EAAE,MAAM,mDAAmD,CAAC;AAC5H,YAAY,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAExF,YAAY,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAC/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAE/E,OAAO,EAAE,kBAAkB,IAAI,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AACpH,YAAY,EAAE,yBAAyB,EAAE,MAAM,iEAAiE,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAEjF,OAAO,EAAE,GAAG,IAAI,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,IAAI,6BAA6B,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjI,YAAY,EAAE,uBAAuB,EAAE,MAAM,8DAA8D,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAEvF,OAAO,4BAA4B,CAAC;AACpC,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC"}
package/Index.js CHANGED
@@ -1,11 +1,12 @@
1
- export { staticContentPlugin } from './Plugins/StaticContentPlugin.js';
2
- export { liveReloadPlugin } from './Plugins/LiveReloadPlugin.js';
3
- export { localizatorPlugin } from './Plugins/LocalizatorPlugin.js';
4
- export { buildInfoPlugin } from './Plugins/BuildInfoPlugin.js';
5
- import './virtual__localizator.d.ts';
6
- import './virtual__static-content.d.ts';
7
- import './virtual__build-info.d.ts';
8
- export { VIRTUAL_MODULE_KEY as LOCALIZATOR_VIRTUAL_MODULE_KEY } from './Plugins/LocalizatorPlugin.js';
9
- export { VIRTUAL_MODULE_KEY as STATIC_CONTENT_VIRTUAL_MODULE_KEY } from './Plugins/StaticContentPlugin.js';
10
- export { VIRTUAL_MODULE_KEY as BUILD_INFO_VIRTUAL_MODULE_KEY } from './Plugins/BuildInfoPlugin.js';
1
+ export { VIRTUAL_MODULE_KEY as STATIC_CONTENT_VIRTUAL_MODULE_KEY } from './2/plugins/static-content/StaticContentPlugin.js';
2
+ export { staticContentPlugin } from './2/plugins/static-content/StaticContentPlugin.js';
3
+ export { liveReloadPlugin } from './2/plugins/live-reload/LiveReloadPlugin.js';
4
+ export { VIRTUAL_MODULE_KEY as LOCALIZATOR_VIRTUAL_MODULE_KEY } from './2/plugins/localizator/LocalizatorPlugin.js';
5
+ export { localizatorPlugin } from './2/plugins/localizator/LocalizatorPlugin.js';
6
+ export { run as envExportRun } from './2/plugins/env-export/envExport.js';
7
+ export { VIRTUAL_MODULE_KEY as ENV_EXPORT_VIRTUAL_MODULE_KEY, envExportPlugin } from './2/plugins/env-export/envExportPlugin.js';
8
+ export { VercelPresetKeys } from './2/plugins/env-export/const/Vercel.js';
9
+ import './virtual/localizator.d.ts';
10
+ import './virtual/static-content.d.ts';
11
+ import './virtual/env-export.d.ts';
11
12
  //# sourceMappingURL=Index.js.map
package/Index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,6BAA6B,CAAC;AACrC,OAAO,gCAAgC,CAAC;AACxC,OAAO,4BAA4B,CAAC;AAEpC,OAAO,EAAE,kBAAkB,IAAI,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,kBAAkB,IAAI,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAC3G,OAAO,EAAE,kBAAkB,IAAI,6BAA6B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../src/Index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,iCAAiC,EAAE,MAAM,mDAAmD,CAAC;AAE5H,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAGxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAE/E,OAAO,EAAE,kBAAkB,IAAI,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAEpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAEjF,OAAO,EAAE,GAAG,IAAI,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,IAAI,6BAA6B,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAEjI,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG1E,OAAO,4BAA4B,CAAC;AACpC,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@breadstone-infrastructure/vite",
3
3
  "description": "Vite configuration and plugins",
4
- "version": "0.0.137",
4
+ "version": "0.0.138",
5
5
  "license": "MIT",
6
6
  "author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
7
7
  "repository": {
@@ -12,8 +12,8 @@
12
12
  "module": "./Index.js",
13
13
  "types": "./Index.d.ts",
14
14
  "dependencies": {
15
- "@breadstone-infrastructure/utilities": "^0.0.137",
16
- "@breadstone-tools/localizator-core": "^0.0.137",
15
+ "@breadstone-infrastructure/utilities": "^0.0.138",
16
+ "@breadstone-tools/localizator-core": "^0.0.138",
17
17
  "gray-matter": "^4.0.3"
18
18
  },
19
19
  "peerDependencies": {
@@ -25,10 +25,13 @@
25
25
  "types": "./Index.d.ts"
26
26
  },
27
27
  "./virtual/localizator": {
28
- "types": "./virtual__localizator.d.ts"
28
+ "types": "./virtual/localizator.d.ts"
29
29
  },
30
30
  "./virtual/static-content": {
31
- "types": "./virtual__static-content.d.ts"
31
+ "types": "./virtual/static-content.d.ts"
32
+ },
33
+ "./virtual/env-export": {
34
+ "types": "./virtual/env-export.d.ts"
32
35
  }
33
36
  }
34
37
  }
@@ -0,0 +1,5 @@
1
+ declare module 'virtual:env-export.ts' {
2
+ export type EnvExport = Record<string, string>;
3
+
4
+ export const envVars: EnvExport;
5
+ }
@@ -1,27 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- /**
3
- * @public
4
- */
5
- export declare const VIRTUAL_MODULE_KEY = "virtual:build-info.ts";
6
- /**
7
- * @public
8
- */
9
- export interface IBuildInfoPluginOptions {
10
- /**
11
- * The name of the application.
12
- */
13
- app: string;
14
- /**
15
- * Custom environment (keys) variables to include in the build info.
16
- */
17
- extended?: Array<string>;
18
- }
19
- /**
20
- * Build information plugin for Vite/Vercel.
21
- *
22
- * @public
23
- * @param options - Plugin options.
24
- * @returns Vite plugin.
25
- */
26
- export declare function buildInfoPlugin(options: IBuildInfoPluginOptions): Plugin;
27
- //# sourceMappingURL=BuildInfoPlugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuildInfoPlugin.d.ts","sourceRoot":"","sources":["../../src/Plugins/BuildInfoPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAMnC;;GAEG;AACH,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAEpC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAE5B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAkBxE"}