miki-template 2.3.1 → 2.3.2

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 (159) hide show
  1. package/package.json +45 -1
  2. package/.eslintrc.json +0 -16
  3. package/.github/release-notes/v1.3.1.md +0 -55
  4. package/.github/release-notes/v1.3.3.md +0 -77
  5. package/.github/release-notes/v1.3.7.md +0 -20
  6. package/.github/workflows/ci.yml +0 -42
  7. package/.github/workflows/docs.yml +0 -107
  8. package/.github/workflows/release.yml +0 -107
  9. package/AGENT.md +0 -71
  10. package/API_REFERENCE.md +0 -341
  11. package/CHANGELOG.md +0 -173
  12. package/CODE_OF_CONDUCT.md +0 -14
  13. package/CONTRIBUTING.md +0 -27
  14. package/ROADMAP.md +0 -40
  15. package/assets/banner.png +0 -0
  16. package/assets/logo.png +0 -0
  17. package/benchmarks/ejs-results.json +0 -17
  18. package/benchmarks/ejs.js +0 -38
  19. package/benchmarks/handlebars-results.json +0 -17
  20. package/benchmarks/handlebars.js +0 -45
  21. package/benchmarks/miki-results.json +0 -17
  22. package/benchmarks/miki.js +0 -39
  23. package/benchmarks/pug-results.json +0 -17
  24. package/benchmarks/pug.js +0 -38
  25. package/benchmarks/report.json +0 -17
  26. package/benchmarks/run.js +0 -81
  27. package/benchmarks/stress.mjs +0 -647
  28. package/benchmarks/templates/large.dtpl +0 -7
  29. package/benchmarks/templates/medium.dtpl +0 -3
  30. package/benchmarks/templates/small.dtpl +0 -7
  31. package/context/component.md +0 -109
  32. package/context/prd.md +0 -131
  33. package/context/project-structure.md +0 -33
  34. package/dir/base.html +0 -23
  35. package/dir/cmpnt.html +0 -11
  36. package/dir/footer.html +0 -3
  37. package/dir/home.html +0 -80
  38. package/dir/index.html +0 -80
  39. package/dir/navbar.html +0 -9
  40. package/docs/api/async-render.md +0 -170
  41. package/docs/api/cache.md +0 -174
  42. package/docs/api/compile.md +0 -256
  43. package/docs/api/context-processors.md +0 -154
  44. package/docs/api/filters.md +0 -437
  45. package/docs/api/finder.md +0 -188
  46. package/docs/api/helpers.md +0 -106
  47. package/docs/api/i18n.md +0 -314
  48. package/docs/api/index.md +0 -108
  49. package/docs/api/libraries.md +0 -414
  50. package/docs/api/render-partial.md +0 -162
  51. package/docs/api/render.md +0 -184
  52. package/docs/api/security.md +0 -290
  53. package/docs/api/setup-express.md +0 -152
  54. package/docs/api/tags.md +0 -268
  55. package/docs/assets/banner.png +0 -0
  56. package/docs/assets/logo.png +0 -0
  57. package/docs/filter.md +0 -0
  58. package/docs/guide/advanced-usage.md +0 -794
  59. package/docs/guide/async-rendering.md +0 -616
  60. package/docs/guide/context-processors.md +0 -514
  61. package/docs/guide/custom-filters.md +0 -622
  62. package/docs/guide/custom-tags.md +0 -542
  63. package/docs/guide/filters.md +0 -1314
  64. package/docs/guide/getting-started.md +0 -204
  65. package/docs/guide/installation.md +0 -190
  66. package/docs/guide/partial-templates.md +0 -734
  67. package/docs/guide/quick-start.md +0 -444
  68. package/docs/guide/security.md +0 -690
  69. package/docs/guide/tags.md +0 -1566
  70. package/docs/guide/template-discovery.md +0 -340
  71. package/docs/guide/template-inheritance.md +0 -546
  72. package/docs/guide/what-is-miki-template.md +0 -28
  73. package/docs/guide/why-miki-template.md +0 -75
  74. package/docs/index.md +0 -86
  75. package/docs/integrations/elysia.md +0 -80
  76. package/docs/integrations/express.md +0 -219
  77. package/docs/integrations/fastify.md +0 -79
  78. package/docs/integrations/hono.md +0 -80
  79. package/docs/integrations/index.md +0 -68
  80. package/docs/integrations/koa.md +0 -90
  81. package/docs/integrations/nestjs.md +0 -80
  82. package/docs/integrations/tsed.md +0 -83
  83. package/docs/performance.md +0 -74
  84. package/eslint.config.mjs +0 -42
  85. package/ex.mjs +0 -36
  86. package/live-test/integrations/elysia-example.js +0 -16
  87. package/live-test/integrations/express-example.js +0 -24
  88. package/live-test/integrations/fastify-example.js +0 -20
  89. package/live-test/integrations/hono-example.js +0 -16
  90. package/live-test/integrations/koa-example.js +0 -30
  91. package/live-test/integrations/nestjs-example.js +0 -25
  92. package/live-test/integrations/smoke-test.js +0 -166
  93. package/live-test/integrations/tsed-example.js +0 -23
  94. package/live-test/package-lock.json +0 -1150
  95. package/live-test/package.json +0 -13
  96. package/live-test/packages/product/templates/product/detail.html +0 -7
  97. package/live-test/server.js +0 -38
  98. package/live-test/templates/app_templates/detail.html +0 -6
  99. package/live-test/views/base.html +0 -8
  100. package/live-test/views/child.html +0 -7
  101. package/live-test/views/home.html +0 -17
  102. package/live-test/views/index.html +0 -1
  103. package/miki-template-extension/.github/workflows/ci.yml +0 -116
  104. package/miki-template-extension/.vscodeignore +0 -7
  105. package/miki-template-extension/CHANGELOG.md +0 -99
  106. package/miki-template-extension/LICENSE +0 -21
  107. package/miki-template-extension/README.md +0 -273
  108. package/miki-template-extension/extension.js +0 -1013
  109. package/miki-template-extension/icon.png +0 -0
  110. package/miki-template-extension/icon.svg +0 -10
  111. package/miki-template-extension/miki-template-1.7.1.vsix +0 -0
  112. package/miki-template-extension/package.json +0 -280
  113. package/miki-template-extension/snippets/miki-template.json +0 -717
  114. package/miki-template-extension/syntaxes/language-configuration.json +0 -114
  115. package/miki-template-extension/syntaxes/miki-template.tmLanguage.json +0 -355
  116. package/miki-template-extension/tests/grammar-tests.json +0 -162
  117. package/miki-template-extension/tests/run-grammar-tests.js +0 -82
  118. package/mkdocs.yml +0 -195
  119. package/overrides/main.html +0 -26
  120. package/requirements-docs.txt +0 -2
  121. package/sample-app/package-lock.json +0 -901
  122. package/sample-app/package.json +0 -9
  123. package/sample-app/server.js +0 -14
  124. package/sample-app/views/index.html +0 -1
  125. package/scripts/build-vsix.js +0 -129
  126. package/scripts/build-vsix.ps1 +0 -15
  127. package/snippets/miki-template.json +0 -177
  128. package/src/asyncRender.js +0 -21
  129. package/src/types.d.ts +0 -107
  130. package/syntaxes/language-configuration.json +0 -26
  131. package/syntaxes/miki-template.tmLanguage.json +0 -146
  132. package/tests/asyncRender.test.js +0 -17
  133. package/tests/base.html +0 -6
  134. package/tests/child.html +0 -3
  135. package/tests/context_processors.test.js +0 -13
  136. package/tests/esm.test.mjs +0 -61
  137. package/tests/filters.test.js +0 -263
  138. package/tests/finder-appdirs.test.js +0 -19
  139. package/tests/finder.test.js +0 -17
  140. package/tests/fixtures/views/nested/index.html +0 -1
  141. package/tests/fixtures/views/partial.html +0 -1
  142. package/tests/fixtures/views/sub/deepfile.html +0 -1
  143. package/tests/fixtures/views-appdirs/product/site/detail.html +0 -1
  144. package/tests/include_security.test.js +0 -9
  145. package/tests/integration/README.md +0 -32
  146. package/tests/integration/features.test.cjs +0 -1681
  147. package/tests/integration/features.test.mjs +0 -1697
  148. package/tests/integration/finder.esm.test.mjs +0 -13
  149. package/tests/integration/partial-render.test.cjs +0 -13
  150. package/tests/integration/templates/base.miki +0 -6
  151. package/tests/integration/templates/child.miki +0 -6
  152. package/tests/integration/templates/index.html +0 -17
  153. package/tests/lexer.test.js +0 -45
  154. package/tests/parser.test.js +0 -57
  155. package/tests/partial.html +0 -1
  156. package/tests/partialdef.test.js +0 -79
  157. package/tests/production_checks.js +0 -57
  158. package/tests/security.test.js +0 -28
  159. package/tests/tags.test.js +0 -233
package/docs/api/i18n.md DELETED
@@ -1,314 +0,0 @@
1
- # i18n API
2
-
3
-
4
-
5
- ## registerTranslation
6
-
7
-
8
-
9
- Register translations for a language. Keys match the `{% trans "text" %}` source string.
10
-
11
-
12
-
13
- === "CommonJS"
14
-
15
-
16
-
17
- ```javascript
18
-
19
- const { registerTranslation } = require('miki-template');
20
-
21
-
22
-
23
- registerTranslation('en', {
24
-
25
- hello: 'Hello',
26
-
27
- goodbye: 'Goodbye'
28
-
29
- });
30
-
31
- ```
32
-
33
-
34
-
35
- === "ES Modules"
36
-
37
-
38
-
39
- ```javascript
40
-
41
- import { registerTranslation } from 'miki-template';
42
-
43
-
44
-
45
- registerTranslation('en', {
46
-
47
- hello: 'Hello',
48
-
49
- goodbye: 'Goodbye'
50
-
51
- });
52
-
53
- ```
54
-
55
-
56
-
57
- You can also register nested keys for `blocktrans` with variables:
58
-
59
-
60
-
61
- === "CommonJS"
62
-
63
-
64
-
65
- ```javascript
66
-
67
- const { registerTranslation, setLanguage } = require('miki-template');
68
-
69
-
70
-
71
- setLanguage('en');
72
-
73
- registerTranslation('en', {
74
-
75
- 'Welcome, {name}!': 'Welcome, {name}!',
76
-
77
- 'Goodbye, {name}!': 'Goodbye, {name}!'
78
-
79
- });
80
-
81
- ```
82
-
83
-
84
-
85
- === "ES Modules"
86
-
87
-
88
-
89
- ```javascript
90
-
91
- import { registerTranslation, setLanguage } from 'miki-template';
92
-
93
-
94
-
95
- setLanguage('en');
96
-
97
- registerTranslation('en', {
98
-
99
- 'Welcome, {name}!': 'Welcome, {name}!',
100
-
101
- 'Goodbye, {name}!': 'Goodbye, {name}!'
102
-
103
- });
104
-
105
- ```
106
-
107
-
108
-
109
- ## unregisterTranslation
110
-
111
-
112
-
113
- === "CommonJS"
114
-
115
-
116
-
117
- ```javascript
118
-
119
- const { unregisterTranslation } = require('miki-template');
120
-
121
-
122
-
123
- // Unregister a specific key
124
-
125
- unregisterTranslation('en', 'hello');
126
-
127
-
128
-
129
- // Unregister entire language
130
-
131
- unregisterTranslation('en');
132
-
133
-
134
-
135
- // Unregister all translations
136
-
137
- unregisterTranslation();
138
-
139
- ```
140
-
141
-
142
-
143
- === "ES Modules"
144
-
145
-
146
-
147
- ```javascript
148
-
149
- import { unregisterTranslation } from 'miki-template';
150
-
151
-
152
-
153
- unregisterTranslation('en', 'hello');
154
-
155
- ```
156
-
157
-
158
-
159
- ## setLanguage / getLanguage
160
-
161
-
162
-
163
- Set or get the active language.
164
-
165
-
166
-
167
- === "CommonJS"
168
-
169
-
170
-
171
- ```javascript
172
-
173
- const { setLanguage, getLanguage } = require('miki-template');
174
-
175
-
176
-
177
- setLanguage('fr');
178
-
179
- console.log(getLanguage()); // 'fr'
180
-
181
- ```
182
-
183
-
184
-
185
- === "ES Modules"
186
-
187
-
188
-
189
- ```javascript
190
-
191
- import { setLanguage, getLanguage } from 'miki-template';
192
-
193
-
194
-
195
- setLanguage('fr');
196
-
197
- console.log(getLanguage()); // 'fr'
198
-
199
- ```
200
-
201
-
202
-
203
- ## setFallbackLanguage / getFallbackLanguage
204
-
205
-
206
-
207
- Set or get the fallback language (used when a key is missing from the active language).
208
-
209
-
210
-
211
- === "CommonJS"
212
-
213
-
214
-
215
- ```javascript
216
-
217
- const { setFallbackLanguage, getFallbackLanguage } = require('miki-template');
218
-
219
-
220
-
221
- setFallbackLanguage('en');
222
-
223
- console.log(getFallbackLanguage()); // 'en'
224
-
225
- ```
226
-
227
-
228
-
229
- === "ES Modules"
230
-
231
-
232
-
233
- ```javascript
234
-
235
- import { setFallbackLanguage, getFallbackLanguage } from 'miki-template';
236
-
237
-
238
-
239
- setFallbackLanguage('en');
240
-
241
- ```
242
-
243
-
244
-
245
- ## getAvailableLanguages
246
-
247
-
248
-
249
- List all registered languages.
250
-
251
-
252
-
253
- === "CommonJS"
254
-
255
-
256
-
257
- ```javascript
258
-
259
- const { getAvailableLanguages } = require('miki-template');
260
-
261
-
262
-
263
- console.log(getAvailableLanguages());
264
-
265
- // ['en', 'fr', 'es']
266
-
267
- ```
268
-
269
-
270
-
271
- === "ES Modules"
272
-
273
-
274
-
275
- ```javascript
276
-
277
- import { getAvailableLanguages } from 'miki-template';
278
-
279
-
280
-
281
- console.log(getAvailableLanguages());
282
-
283
- ```
284
-
285
-
286
-
287
- ## Template Tags
288
-
289
-
290
-
291
- The `{% trans %}` and `{% blocktrans %}` tags are provided by the auto-activated `i18n` library:
292
-
293
-
294
-
295
- ```html
296
-
297
- {% trans "Hello" %}
298
-
299
- {% blocktrans %}Welcome, {{ name }}!{% endblocktrans %}
300
-
301
- {% language "fr" %}...{% endlanguage %}
302
-
303
- ```
304
-
305
-
306
-
307
- ## Next Steps
308
-
309
-
310
-
311
- - [Advanced Usage: i18n](../guide/advanced-usage.md#i18n--internationalization)
312
-
313
- - [API Reference](../index.md)
314
-
package/docs/api/index.md DELETED
@@ -1,108 +0,0 @@
1
- # API Reference
2
-
3
-
4
-
5
- ## Core Functions
6
-
7
-
8
-
9
- - [render()](./render.md) — Render a template string or file partial
10
-
11
- - [compile()](./compile.md) — Compile a template into a reusable object with `render()`, `asyncRender()`, `renderBlock()`, `renderPartial()`
12
-
13
- - [asyncRender()](./async-render.md) — Asynchronous rendering (supports async filters/tags)
14
-
15
- - [renderPartialFromFile()](./render-partial.md) — Render a named partial from a file
16
-
17
- - [renderPartialFromSource()](./render-partial.md) — Render a named partial from source
18
-
19
- - [setupExpress()](./setup-express.md) — One-line Express integration
20
-
21
-
22
-
23
- ## Tag and Filter Registration
24
-
25
-
26
-
27
- - [registerFilter()](./filters.md) — Register a custom filter
28
-
29
- - [getFilter()](./filters.md) — Retrieve a registered filter
30
-
31
- - [registerTag()](./tags.md) — Register a custom tag
32
-
33
- - [registerHelper()](./helpers.md) — Register a custom helper
34
-
35
-
36
-
37
- ## Utilities
38
-
39
-
40
-
41
- - [findTemplateInViews()](./finder.md) — Locate a template in views directories
42
-
43
- - [setAppTemplateDirNames()](./finder.md) — Configure app-style template directory names
44
-
45
- - [clearCache()](./cache.md) — Clear the compiled template cache
46
-
47
- - [registerContextProcessor()](./context-processors.md) — Register a global context processor
48
-
49
- - [clearContextProcessors()](./context-processors.md) — Clear all context processors
50
-
51
-
52
-
53
- ## Security
54
-
55
-
56
-
57
- - [markSafe()](./security.md) — Mark a string as safe (bypass escaping)
58
-
59
- - [isSafe()](./security.md) — Check if a value is marked safe
60
-
61
- - [escapeHtml()](./security.md) — Escape HTML special characters
62
-
63
- - [SafeString](./security.md) — SafeString class
64
-
65
-
66
-
67
- ## Express Engine Functions
68
-
69
-
70
-
71
- - `__express(filePath, options, callback)` — Express-compatible sync view engine
72
-
73
- - `__expressAsync(filePath, options)` — Express 5 async view engine (returns Promise)
74
-
75
- - `express(options)` — Returns a view engine function for `app.engine()`
76
-
77
- - `expressPartialRenderer()` — Express middleware adding `res.renderPartial()`
78
-
79
- - `stripExpressContext(options)` — Remove Express framework keys from context
80
-
81
-
82
-
83
- ## i18n
84
-
85
-
86
-
87
- - [registerTranslation()](./i18n.md) — Register translations for a language
88
-
89
- - [unregisterTranslation()](./i18n.md) — Unregister translations
90
-
91
- - [setLanguage()](./i18n.md) / [getLanguage()](./i18n.md) — Set/get active language
92
-
93
- - [setFallbackLanguage()](./i18n.md) / [getFallbackLanguage()](./i18n.md) — Set/get fallback language
94
-
95
- - [getAvailableLanguages()](./i18n.md) — List registered languages
96
-
97
-
98
-
99
- ## Libraries
100
-
101
-
102
-
103
- - [registerLibrary()](./libraries.md) — Register a named library (filters, tags, helpers)
104
-
105
- - [activateLibrary()](./libraries.md) / [registerLibraryFromPath()](./libraries.md) — Activate or load from file
106
-
107
- - [unregisterLibrary()](./libraries.md) / [hasLibrary()](./libraries.md) / [getLibraryNames()](./libraries.md) — Library management
108
-