miki-template 1.3.3 → 1.3.7

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 (115) hide show
  1. package/.eslintrc.json +16 -0
  2. package/.github/release-notes/v1.3.1.md +55 -55
  3. package/.github/release-notes/v1.3.3.md +77 -0
  4. package/.github/workflows/ci.yml +38 -54
  5. package/.github/workflows/release.yml +106 -0
  6. package/AGENT.md +71 -71
  7. package/API_REFERENCE.md +314 -314
  8. package/CHANGELOG.md +173 -169
  9. package/CODE_OF_CONDUCT.md +14 -14
  10. package/CONTRIBUTING.md +27 -27
  11. package/README.md +342 -321
  12. package/ROADMAP.md +40 -40
  13. package/benchmarks/report.json +16 -16
  14. package/benchmarks/run.js +49 -49
  15. package/benchmarks/stress.mjs +647 -647
  16. package/benchmarks/templates/large.dtpl +7 -7
  17. package/benchmarks/templates/medium.dtpl +3 -3
  18. package/benchmarks/templates/small.dtpl +7 -7
  19. package/context/component.md +109 -109
  20. package/context/prd.md +131 -131
  21. package/context/project-structure.md +33 -33
  22. package/dir/base.html +22 -22
  23. package/dir/cmpnt.html +10 -10
  24. package/dir/footer.html +2 -2
  25. package/dir/home.html +80 -80
  26. package/dir/index.html +80 -0
  27. package/dir/navbar.html +8 -8
  28. package/docs/README.md +18 -18
  29. package/docs/advanced_usage.md +71 -71
  30. package/docs/api.md +119 -119
  31. package/docs/filters.md +708 -708
  32. package/docs/installation.md +106 -106
  33. package/docs/overview.md +79 -57
  34. package/docs/partialdef.md +70 -70
  35. package/docs/security.md +27 -27
  36. package/docs/tags.md +673 -673
  37. package/docs/usage.md +646 -646
  38. package/eslint.config.mjs +42 -42
  39. package/ex.mjs +34 -32
  40. package/live-test/package-lock.json +915 -0
  41. package/live-test/package.json +9 -0
  42. package/live-test/server.js +14 -0
  43. package/live-test/views/base.html +8 -0
  44. package/live-test/views/child.html +7 -0
  45. package/live-test/views/index.html +1 -0
  46. package/miki-template-extension/.github/workflows/ci.yml +116 -116
  47. package/miki-template-extension/.vscodeignore +7 -7
  48. package/miki-template-extension/CHANGELOG.md +99 -99
  49. package/miki-template-extension/LICENSE +21 -21
  50. package/miki-template-extension/README.md +273 -273
  51. package/miki-template-extension/extension.js +1013 -1013
  52. package/miki-template-extension/icon.svg +10 -10
  53. package/miki-template-extension/package.json +280 -280
  54. package/miki-template-extension/snippets/miki-template.json +717 -717
  55. package/miki-template-extension/syntaxes/language-configuration.json +114 -114
  56. package/miki-template-extension/syntaxes/miki-template.tmLanguage.json +355 -355
  57. package/miki-template-extension/tests/grammar-tests.json +162 -162
  58. package/miki-template-extension/tests/run-grammar-tests.js +82 -82
  59. package/package.json +40 -34
  60. package/sample-app/package-lock.json +901 -0
  61. package/sample-app/package.json +9 -0
  62. package/sample-app/server.js +14 -0
  63. package/sample-app/views/index.html +1 -0
  64. package/scripts/build-vsix.js +129 -129
  65. package/scripts/build-vsix.ps1 +15 -15
  66. package/snippets/miki-template.json +177 -177
  67. package/src/asyncRender.js +20 -20
  68. package/src/cache.js +80 -80
  69. package/src/context.js +126 -126
  70. package/src/context_processors.js +48 -48
  71. package/src/esm.mjs +89 -84
  72. package/src/filters.js +975 -975
  73. package/src/i18n.js +171 -171
  74. package/src/index.js +1112 -940
  75. package/src/lexer.js +114 -114
  76. package/src/libraries.js +371 -371
  77. package/src/parser.js +270 -270
  78. package/src/security.js +53 -53
  79. package/src/tags/control.js +719 -719
  80. package/src/tags/extra.js +154 -154
  81. package/src/tags/helpers.js +26 -26
  82. package/src/tags/i18n.js +256 -256
  83. package/src/tags/inheritance.js +335 -335
  84. package/src/tags/registry.js +18 -18
  85. package/src/tags/util.js +400 -400
  86. package/src/types.d.ts +107 -107
  87. package/syntaxes/language-configuration.json +26 -26
  88. package/syntaxes/miki-template.tmLanguage.json +146 -146
  89. package/tests/asyncRender.test.js +17 -17
  90. package/tests/base.html +6 -6
  91. package/tests/child.html +3 -3
  92. package/tests/context_processors.test.js +13 -13
  93. package/tests/esm.test.mjs +61 -61
  94. package/tests/filters.test.js +254 -254
  95. package/tests/finder-appdirs.test.js +19 -0
  96. package/tests/finder.test.js +17 -0
  97. package/tests/fixtures/views/nested/index.html +1 -0
  98. package/tests/fixtures/views/partial.html +1 -0
  99. package/tests/fixtures/views/sub/deepfile.html +1 -0
  100. package/tests/fixtures/views-appdirs/product/site/detail.html +1 -0
  101. package/tests/include_security.test.js +9 -9
  102. package/tests/integration/README.md +32 -32
  103. package/tests/integration/features.test.cjs +1681 -1681
  104. package/tests/integration/features.test.mjs +1697 -1697
  105. package/tests/integration/finder.esm.test.mjs +13 -0
  106. package/tests/integration/templates/base.miki +6 -6
  107. package/tests/integration/templates/child.miki +6 -6
  108. package/tests/integration/templates/index.html +17 -17
  109. package/tests/lexer.test.js +45 -45
  110. package/tests/parser.test.js +57 -57
  111. package/tests/partial.html +1 -1
  112. package/tests/partialdef.test.js +79 -79
  113. package/tests/production_checks.js +57 -57
  114. package/tests/security.test.js +28 -28
  115. package/tests/tags.test.js +233 -233
@@ -1,114 +1,114 @@
1
- {
2
- "comments": {
3
- "lineComment": "{#",
4
- "blockComment": ["{#", "#}"]
5
- },
6
- "brackets": [
7
- ["{%", "%}"],
8
- ["{{", "}}"],
9
- ["{#", "#}"],
10
- ["<", ">"],
11
- ["(", ")"],
12
- ["[", "]"],
13
- ["{", "}"]
14
- ],
15
- "autoClosingPairs": [
16
- {
17
- "open": "{%",
18
- "close": "%}"
19
- },
20
- {
21
- "open": "{{",
22
- "close": "}}"
23
- },
24
- {
25
- "open": "{#",
26
- "close": "#}"
27
- },
28
- {
29
- "open": "<",
30
- "close": ">",
31
- "notIn": ["string", "comment"]
32
- },
33
- {
34
- "open": "\"",
35
- "close": "\"",
36
- "notIn": [
37
- "string"
38
- ]
39
- },
40
- {
41
- "open": "'",
42
- "close": "'",
43
- "notIn": [
44
- "string",
45
- "comment"
46
- ]
47
- },
48
- {
49
- "open": "(",
50
- "close": ")"
51
- },
52
- {
53
- "open": "[",
54
- "close": "]"
55
- },
56
- {
57
- "open": "{",
58
- "close": "}"
59
- }
60
- ],
61
- "surroundingPairs": [
62
- {
63
- "open": "{%",
64
- "close": "%}"
65
- },
66
- {
67
- "open": "{{",
68
- "close": "}}"
69
- },
70
- {
71
- "open": "{#",
72
- "close": "#}"
73
- },
74
- {
75
- "open": "<",
76
- "close": ">"
77
- },
78
- {
79
- "open": "\"",
80
- "close": "\""
81
- },
82
- {
83
- "open": "'",
84
- "close": "'"
85
- },
86
- {
87
- "open": "(",
88
- "close": ")"
89
- },
90
- {
91
- "open": "[",
92
- "close": "]"
93
- },
94
- {
95
- "open": "{",
96
- "close": "}"
97
- }
98
- ],
99
- "folding": {
100
- "markers": {
101
- "start": "{%\\s*(block|for|if|with|autoescape|spaceless|verbatim|comment|partialdef|cache|filter|blocktrans|regroup|language|addtoblock|style|script)\\b",
102
- "end": "{%\\s*end(block|for|if|with|autoescape|spaceless|verbatim|comment|partialdef|endcache|endfilter|blocktrans|endblocktrans|endlanguage|endaddtoblock)|</(style|script)>"
103
- }
104
- },
105
- "wordPattern": "[a-zA-Z_][a-zA-Z0-9_.]*",
106
- "indentationRules": {
107
- "increaseIndentPattern": "{%\\s*(block|for|if|with|autoescape|spaceless|verbatim|comment|partialdef|cache|filter|blocktrans|regroup|language|addtoblock)\\b[^}]*%}|(<(?!(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)[^>]*>)[^>]*>)\\s*$",
108
- "decreaseIndentPattern": "{%\\s*end(block|for|if|with|autoescape|spaceless|verbatim|comment|partialdef|endcache|endfilter|blocktrans|endblocktrans|endlanguage|endaddtoblock)\\b|</(html|head|body|div|section|article|aside|header|footer|nav|main|form|table|tr|td|th|tbody|thead|style|script)>"
109
- },
110
- "formatTabSize": 2,
111
- "formatIndentSize": 2,
112
- "formatOnSave": false,
113
- "formatDefaultFormatter": "esbenp.prettier-vscode"
114
- }
1
+ {
2
+ "comments": {
3
+ "lineComment": "{#",
4
+ "blockComment": ["{#", "#}"]
5
+ },
6
+ "brackets": [
7
+ ["{%", "%}"],
8
+ ["{{", "}}"],
9
+ ["{#", "#}"],
10
+ ["<", ">"],
11
+ ["(", ")"],
12
+ ["[", "]"],
13
+ ["{", "}"]
14
+ ],
15
+ "autoClosingPairs": [
16
+ {
17
+ "open": "{%",
18
+ "close": "%}"
19
+ },
20
+ {
21
+ "open": "{{",
22
+ "close": "}}"
23
+ },
24
+ {
25
+ "open": "{#",
26
+ "close": "#}"
27
+ },
28
+ {
29
+ "open": "<",
30
+ "close": ">",
31
+ "notIn": ["string", "comment"]
32
+ },
33
+ {
34
+ "open": "\"",
35
+ "close": "\"",
36
+ "notIn": [
37
+ "string"
38
+ ]
39
+ },
40
+ {
41
+ "open": "'",
42
+ "close": "'",
43
+ "notIn": [
44
+ "string",
45
+ "comment"
46
+ ]
47
+ },
48
+ {
49
+ "open": "(",
50
+ "close": ")"
51
+ },
52
+ {
53
+ "open": "[",
54
+ "close": "]"
55
+ },
56
+ {
57
+ "open": "{",
58
+ "close": "}"
59
+ }
60
+ ],
61
+ "surroundingPairs": [
62
+ {
63
+ "open": "{%",
64
+ "close": "%}"
65
+ },
66
+ {
67
+ "open": "{{",
68
+ "close": "}}"
69
+ },
70
+ {
71
+ "open": "{#",
72
+ "close": "#}"
73
+ },
74
+ {
75
+ "open": "<",
76
+ "close": ">"
77
+ },
78
+ {
79
+ "open": "\"",
80
+ "close": "\""
81
+ },
82
+ {
83
+ "open": "'",
84
+ "close": "'"
85
+ },
86
+ {
87
+ "open": "(",
88
+ "close": ")"
89
+ },
90
+ {
91
+ "open": "[",
92
+ "close": "]"
93
+ },
94
+ {
95
+ "open": "{",
96
+ "close": "}"
97
+ }
98
+ ],
99
+ "folding": {
100
+ "markers": {
101
+ "start": "{%\\s*(block|for|if|with|autoescape|spaceless|verbatim|comment|partialdef|cache|filter|blocktrans|regroup|language|addtoblock|style|script)\\b",
102
+ "end": "{%\\s*end(block|for|if|with|autoescape|spaceless|verbatim|comment|partialdef|endcache|endfilter|blocktrans|endblocktrans|endlanguage|endaddtoblock)|</(style|script)>"
103
+ }
104
+ },
105
+ "wordPattern": "[a-zA-Z_][a-zA-Z0-9_.]*",
106
+ "indentationRules": {
107
+ "increaseIndentPattern": "{%\\s*(block|for|if|with|autoescape|spaceless|verbatim|comment|partialdef|cache|filter|blocktrans|regroup|language|addtoblock)\\b[^}]*%}|(<(?!(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)[^>]*>)[^>]*>)\\s*$",
108
+ "decreaseIndentPattern": "{%\\s*end(block|for|if|with|autoescape|spaceless|verbatim|comment|partialdef|endcache|endfilter|blocktrans|endblocktrans|endlanguage|endaddtoblock)\\b|</(html|head|body|div|section|article|aside|header|footer|nav|main|form|table|tr|td|th|tbody|thead|style|script)>"
109
+ },
110
+ "formatTabSize": 2,
111
+ "formatIndentSize": 2,
112
+ "formatOnSave": false,
113
+ "formatDefaultFormatter": "esbenp.prettier-vscode"
114
+ }