haori 0.13.0 → 0.13.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 (307) hide show
  1. package/README.ja.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/haori.cjs.js +10 -10
  4. package/dist/haori.es.js +191 -165
  5. package/dist/haori.iife.js +10 -10
  6. package/dist/index.d.ts +1 -1
  7. package/package.json +11 -3
  8. package/dist/haori.cjs.js.map +0 -1
  9. package/dist/haori.es.js.map +0 -1
  10. package/dist/haori.iife.js.map +0 -1
  11. package/dist/package.json +0 -70
  12. package/dist/src/builtins.d.ts +0 -100
  13. package/dist/src/builtins.d.ts.map +0 -1
  14. package/dist/src/builtins.js +0 -194
  15. package/dist/src/builtins.js.map +0 -1
  16. package/dist/src/core.d.ts +0 -505
  17. package/dist/src/core.d.ts.map +0 -1
  18. package/dist/src/core.js +0 -1817
  19. package/dist/src/core.js.map +0 -1
  20. package/dist/src/dev.d.ts +0 -35
  21. package/dist/src/dev.d.ts.map +0 -1
  22. package/dist/src/dev.js +0 -44
  23. package/dist/src/dev.js.map +0 -1
  24. package/dist/src/env.d.ts +0 -43
  25. package/dist/src/env.d.ts.map +0 -1
  26. package/dist/src/env.js +0 -108
  27. package/dist/src/env.js.map +0 -1
  28. package/dist/src/event.d.ts +0 -171
  29. package/dist/src/event.d.ts.map +0 -1
  30. package/dist/src/event.js +0 -235
  31. package/dist/src/event.js.map +0 -1
  32. package/dist/src/event_dispatcher.d.ts +0 -66
  33. package/dist/src/event_dispatcher.d.ts.map +0 -1
  34. package/dist/src/event_dispatcher.js +0 -167
  35. package/dist/src/event_dispatcher.js.map +0 -1
  36. package/dist/src/expression.d.ts +0 -260
  37. package/dist/src/expression.d.ts.map +0 -1
  38. package/dist/src/expression.js +0 -975
  39. package/dist/src/expression.js.map +0 -1
  40. package/dist/src/form.d.ts +0 -148
  41. package/dist/src/form.d.ts.map +0 -1
  42. package/dist/src/form.js +0 -428
  43. package/dist/src/form.js.map +0 -1
  44. package/dist/src/fragment.d.ts +0 -621
  45. package/dist/src/fragment.d.ts.map +0 -1
  46. package/dist/src/fragment.js +0 -1963
  47. package/dist/src/fragment.js.map +0 -1
  48. package/dist/src/haori.d.ts +0 -130
  49. package/dist/src/haori.d.ts.map +0 -1
  50. package/dist/src/haori.js +0 -215
  51. package/dist/src/haori.js.map +0 -1
  52. package/dist/src/import.d.ts +0 -19
  53. package/dist/src/import.d.ts.map +0 -1
  54. package/dist/src/import.js +0 -64
  55. package/dist/src/import.js.map +0 -1
  56. package/dist/src/index.d.ts +0 -27
  57. package/dist/src/index.d.ts.map +0 -1
  58. package/dist/src/index.js +0 -30
  59. package/dist/src/index.js.map +0 -1
  60. package/dist/src/intersect.d.ts +0 -28
  61. package/dist/src/intersect.d.ts.map +0 -1
  62. package/dist/src/intersect.js +0 -201
  63. package/dist/src/intersect.js.map +0 -1
  64. package/dist/src/log.d.ts +0 -32
  65. package/dist/src/log.d.ts.map +0 -1
  66. package/dist/src/log.js +0 -43
  67. package/dist/src/log.js.map +0 -1
  68. package/dist/src/observer.d.ts +0 -24
  69. package/dist/src/observer.d.ts.map +0 -1
  70. package/dist/src/observer.js +0 -131
  71. package/dist/src/observer.js.map +0 -1
  72. package/dist/src/procedure.d.ts +0 -447
  73. package/dist/src/procedure.d.ts.map +0 -1
  74. package/dist/src/procedure.js +0 -1921
  75. package/dist/src/procedure.js.map +0 -1
  76. package/dist/src/queue.d.ts +0 -35
  77. package/dist/src/queue.d.ts.map +0 -1
  78. package/dist/src/queue.js +0 -202
  79. package/dist/src/queue.js.map +0 -1
  80. package/dist/src/url.d.ts +0 -14
  81. package/dist/src/url.d.ts.map +0 -1
  82. package/dist/src/url.js +0 -22
  83. package/dist/src/url.js.map +0 -1
  84. package/dist/tests/bind-arg-own-binding.test.d.ts +0 -2
  85. package/dist/tests/bind-arg-own-binding.test.d.ts.map +0 -1
  86. package/dist/tests/bind-arg-own-binding.test.js +0 -63
  87. package/dist/tests/bind-arg-own-binding.test.js.map +0 -1
  88. package/dist/tests/bindcomplete-and-scope.test.d.ts +0 -2
  89. package/dist/tests/bindcomplete-and-scope.test.d.ts.map +0 -1
  90. package/dist/tests/bindcomplete-and-scope.test.js +0 -115
  91. package/dist/tests/bindcomplete-and-scope.test.js.map +0 -1
  92. package/dist/tests/builtins.test.d.ts +0 -2
  93. package/dist/tests/builtins.test.d.ts.map +0 -1
  94. package/dist/tests/builtins.test.js +0 -152
  95. package/dist/tests/builtins.test.js.map +0 -1
  96. package/dist/tests/click-attributes.test.d.ts +0 -2
  97. package/dist/tests/click-attributes.test.d.ts.map +0 -1
  98. package/dist/tests/click-attributes.test.js +0 -113
  99. package/dist/tests/click-attributes.test.js.map +0 -1
  100. package/dist/tests/click-no-disabled.test.d.ts +0 -2
  101. package/dist/tests/click-no-disabled.test.d.ts.map +0 -1
  102. package/dist/tests/click-no-disabled.test.js +0 -67
  103. package/dist/tests/click-no-disabled.test.js.map +0 -1
  104. package/dist/tests/core.test.d.ts +0 -5
  105. package/dist/tests/core.test.d.ts.map +0 -1
  106. package/dist/tests/core.test.js +0 -1056
  107. package/dist/tests/core.test.js.map +0 -1
  108. package/dist/tests/data-bind-arg-reeval.test.d.ts +0 -2
  109. package/dist/tests/data-bind-arg-reeval.test.d.ts.map +0 -1
  110. package/dist/tests/data-bind-arg-reeval.test.js +0 -119
  111. package/dist/tests/data-bind-arg-reeval.test.js.map +0 -1
  112. package/dist/tests/data-bind-merge.test.d.ts +0 -2
  113. package/dist/tests/data-bind-merge.test.d.ts.map +0 -1
  114. package/dist/tests/data-bind-merge.test.js +0 -86
  115. package/dist/tests/data-bind-merge.test.js.map +0 -1
  116. package/dist/tests/data-click-defer.test.d.ts +0 -2
  117. package/dist/tests/data-click-defer.test.d.ts.map +0 -1
  118. package/dist/tests/data-click-defer.test.js +0 -57
  119. package/dist/tests/data-click-defer.test.js.map +0 -1
  120. package/dist/tests/data-click-run.test.d.ts +0 -5
  121. package/dist/tests/data-click-run.test.d.ts.map +0 -1
  122. package/dist/tests/data-click-run.test.js +0 -109
  123. package/dist/tests/data-click-run.test.js.map +0 -1
  124. package/dist/tests/data-derive.test.d.ts +0 -2
  125. package/dist/tests/data-derive.test.d.ts.map +0 -1
  126. package/dist/tests/data-derive.test.js +0 -999
  127. package/dist/tests/data-derive.test.js.map +0 -1
  128. package/dist/tests/data-each-browserlike.test.d.ts +0 -2
  129. package/dist/tests/data-each-browserlike.test.d.ts.map +0 -1
  130. package/dist/tests/data-each-browserlike.test.js +0 -48
  131. package/dist/tests/data-each-browserlike.test.js.map +0 -1
  132. package/dist/tests/data-each-fragment-debug.test.d.ts +0 -2
  133. package/dist/tests/data-each-fragment-debug.test.d.ts.map +0 -1
  134. package/dist/tests/data-each-fragment-debug.test.js +0 -119
  135. package/dist/tests/data-each-fragment-debug.test.js.map +0 -1
  136. package/dist/tests/data-each-table.test.d.ts +0 -2
  137. package/dist/tests/data-each-table.test.d.ts.map +0 -1
  138. package/dist/tests/data-each-table.test.js +0 -131
  139. package/dist/tests/data-each-table.test.js.map +0 -1
  140. package/dist/tests/data-each-template-recovery.test.d.ts +0 -2
  141. package/dist/tests/data-each-template-recovery.test.d.ts.map +0 -1
  142. package/dist/tests/data-each-template-recovery.test.js +0 -87
  143. package/dist/tests/data-each-template-recovery.test.js.map +0 -1
  144. package/dist/tests/data-event-prevent.test.d.ts +0 -2
  145. package/dist/tests/data-event-prevent.test.d.ts.map +0 -1
  146. package/dist/tests/data-event-prevent.test.js +0 -76
  147. package/dist/tests/data-event-prevent.test.js.map +0 -1
  148. package/dist/tests/data-fetch-form-input-binding.test.d.ts +0 -2
  149. package/dist/tests/data-fetch-form-input-binding.test.d.ts.map +0 -1
  150. package/dist/tests/data-fetch-form-input-binding.test.js +0 -202
  151. package/dist/tests/data-fetch-form-input-binding.test.js.map +0 -1
  152. package/dist/tests/data-fetch-tbody-dom.test.d.ts +0 -2
  153. package/dist/tests/data-fetch-tbody-dom.test.d.ts.map +0 -1
  154. package/dist/tests/data-fetch-tbody-dom.test.js +0 -82
  155. package/dist/tests/data-fetch-tbody-dom.test.js.map +0 -1
  156. package/dist/tests/data-form-container.test.d.ts +0 -2
  157. package/dist/tests/data-form-container.test.d.ts.map +0 -1
  158. package/dist/tests/data-form-container.test.js +0 -88
  159. package/dist/tests/data-form-container.test.js.map +0 -1
  160. package/dist/tests/data-if-dev-diagnostics.test.d.ts +0 -2
  161. package/dist/tests/data-if-dev-diagnostics.test.d.ts.map +0 -1
  162. package/dist/tests/data-if-dev-diagnostics.test.js +0 -55
  163. package/dist/tests/data-if-dev-diagnostics.test.js.map +0 -1
  164. package/dist/tests/data-if-falsy.test.d.ts +0 -2
  165. package/dist/tests/data-if-falsy.test.d.ts.map +0 -1
  166. package/dist/tests/data-if-falsy.test.js +0 -73
  167. package/dist/tests/data-if-falsy.test.js.map +0 -1
  168. package/dist/tests/data-load-on-show.test.d.ts +0 -2
  169. package/dist/tests/data-load-on-show.test.d.ts.map +0 -1
  170. package/dist/tests/data-load-on-show.test.js +0 -98
  171. package/dist/tests/data-load-on-show.test.js.map +0 -1
  172. package/dist/tests/derive-each-render-wait.test.d.ts +0 -2
  173. package/dist/tests/derive-each-render-wait.test.d.ts.map +0 -1
  174. package/dist/tests/derive-each-render-wait.test.js +0 -90
  175. package/dist/tests/derive-each-render-wait.test.js.map +0 -1
  176. package/dist/tests/dev.test.d.ts +0 -2
  177. package/dist/tests/dev.test.d.ts.map +0 -1
  178. package/dist/tests/dev.test.js +0 -51
  179. package/dist/tests/dev.test.js.map +0 -1
  180. package/dist/tests/each-update-event.test.d.ts +0 -2
  181. package/dist/tests/each-update-event.test.d.ts.map +0 -1
  182. package/dist/tests/each-update-event.test.js +0 -83
  183. package/dist/tests/each-update-event.test.js.map +0 -1
  184. package/dist/tests/each_arg.test.d.ts +0 -2
  185. package/dist/tests/each_arg.test.d.ts.map +0 -1
  186. package/dist/tests/each_arg.test.js +0 -41
  187. package/dist/tests/each_arg.test.js.map +0 -1
  188. package/dist/tests/env.test.d.ts +0 -2
  189. package/dist/tests/env.test.d.ts.map +0 -1
  190. package/dist/tests/env.test.js +0 -124
  191. package/dist/tests/env.test.js.map +0 -1
  192. package/dist/tests/evaluation-profile.test.d.ts +0 -2
  193. package/dist/tests/evaluation-profile.test.d.ts.map +0 -1
  194. package/dist/tests/evaluation-profile.test.js +0 -92
  195. package/dist/tests/evaluation-profile.test.js.map +0 -1
  196. package/dist/tests/event.test.d.ts +0 -2
  197. package/dist/tests/event.test.d.ts.map +0 -1
  198. package/dist/tests/event.test.js +0 -300
  199. package/dist/tests/event.test.js.map +0 -1
  200. package/dist/tests/expression-disallowed-keyword-hint.test.d.ts +0 -2
  201. package/dist/tests/expression-disallowed-keyword-hint.test.d.ts.map +0 -1
  202. package/dist/tests/expression-disallowed-keyword-hint.test.js +0 -45
  203. package/dist/tests/expression-disallowed-keyword-hint.test.js.map +0 -1
  204. package/dist/tests/expression-forbidden-hint.test.d.ts +0 -2
  205. package/dist/tests/expression-forbidden-hint.test.d.ts.map +0 -1
  206. package/dist/tests/expression-forbidden-hint.test.js +0 -37
  207. package/dist/tests/expression-forbidden-hint.test.js.map +0 -1
  208. package/dist/tests/expression.test.d.ts +0 -2
  209. package/dist/tests/expression.test.d.ts.map +0 -1
  210. package/dist/tests/expression.test.js +0 -482
  211. package/dist/tests/expression.test.js.map +0 -1
  212. package/dist/tests/fetch-and-procedure-scenarios.test.d.ts +0 -2
  213. package/dist/tests/fetch-and-procedure-scenarios.test.d.ts.map +0 -1
  214. package/dist/tests/fetch-and-procedure-scenarios.test.js +0 -195
  215. package/dist/tests/fetch-and-procedure-scenarios.test.js.map +0 -1
  216. package/dist/tests/form-number-type.test.d.ts +0 -2
  217. package/dist/tests/form-number-type.test.d.ts.map +0 -1
  218. package/dist/tests/form-number-type.test.js +0 -83
  219. package/dist/tests/form-number-type.test.js.map +0 -1
  220. package/dist/tests/form.test.d.ts +0 -2
  221. package/dist/tests/form.test.d.ts.map +0 -1
  222. package/dist/tests/form.test.js +0 -636
  223. package/dist/tests/form.test.js.map +0 -1
  224. package/dist/tests/fragment.test.d.ts +0 -2
  225. package/dist/tests/fragment.test.d.ts.map +0 -1
  226. package/dist/tests/fragment.test.js +0 -284
  227. package/dist/tests/fragment.test.js.map +0 -1
  228. package/dist/tests/haori.test.d.ts +0 -2
  229. package/dist/tests/haori.test.d.ts.map +0 -1
  230. package/dist/tests/haori.test.js +0 -149
  231. package/dist/tests/haori.test.js.map +0 -1
  232. package/dist/tests/helpers/async.d.ts +0 -20
  233. package/dist/tests/helpers/async.d.ts.map +0 -1
  234. package/dist/tests/helpers/async.js +0 -35
  235. package/dist/tests/helpers/async.js.map +0 -1
  236. package/dist/tests/import.test.d.ts +0 -2
  237. package/dist/tests/import.test.d.ts.map +0 -1
  238. package/dist/tests/import.test.js +0 -148
  239. package/dist/tests/import.test.js.map +0 -1
  240. package/dist/tests/intersect.test.d.ts +0 -2
  241. package/dist/tests/intersect.test.d.ts.map +0 -1
  242. package/dist/tests/intersect.test.js +0 -173
  243. package/dist/tests/intersect.test.js.map +0 -1
  244. package/dist/tests/log.test.d.ts +0 -2
  245. package/dist/tests/log.test.d.ts.map +0 -1
  246. package/dist/tests/log.test.js +0 -58
  247. package/dist/tests/log.test.js.map +0 -1
  248. package/dist/tests/observer.test.d.ts +0 -2
  249. package/dist/tests/observer.test.d.ts.map +0 -1
  250. package/dist/tests/observer.test.js +0 -64
  251. package/dist/tests/observer.test.js.map +0 -1
  252. package/dist/tests/placeholder-resolution.test.d.ts +0 -2
  253. package/dist/tests/placeholder-resolution.test.d.ts.map +0 -1
  254. package/dist/tests/placeholder-resolution.test.js +0 -463
  255. package/dist/tests/placeholder-resolution.test.js.map +0 -1
  256. package/dist/tests/procedure-action-operations.test.d.ts +0 -2
  257. package/dist/tests/procedure-action-operations.test.d.ts.map +0 -1
  258. package/dist/tests/procedure-action-operations.test.js +0 -1140
  259. package/dist/tests/procedure-action-operations.test.js.map +0 -1
  260. package/dist/tests/procedure-bind-append.test.d.ts +0 -2
  261. package/dist/tests/procedure-bind-append.test.d.ts.map +0 -1
  262. package/dist/tests/procedure-bind-append.test.js +0 -80
  263. package/dist/tests/procedure-bind-append.test.js.map +0 -1
  264. package/dist/tests/procedure-fetch-options.test.d.ts +0 -2
  265. package/dist/tests/procedure-fetch-options.test.d.ts.map +0 -1
  266. package/dist/tests/procedure-fetch-options.test.js +0 -255
  267. package/dist/tests/procedure-fetch-options.test.js.map +0 -1
  268. package/dist/tests/procedure.test.d.ts +0 -2
  269. package/dist/tests/procedure.test.d.ts.map +0 -1
  270. package/dist/tests/procedure.test.js +0 -137
  271. package/dist/tests/procedure.test.js.map +0 -1
  272. package/dist/tests/procedure_events.test.d.ts +0 -7
  273. package/dist/tests/procedure_events.test.d.ts.map +0 -1
  274. package/dist/tests/procedure_events.test.js +0 -261
  275. package/dist/tests/procedure_events.test.js.map +0 -1
  276. package/dist/tests/render-wait.test.d.ts +0 -2
  277. package/dist/tests/render-wait.test.d.ts.map +0 -1
  278. package/dist/tests/render-wait.test.js +0 -68
  279. package/dist/tests/render-wait.test.js.map +0 -1
  280. package/dist/tests/reset_each.test.d.ts +0 -2
  281. package/dist/tests/reset_each.test.d.ts.map +0 -1
  282. package/dist/tests/reset_each.test.js +0 -215
  283. package/dist/tests/reset_each.test.js.map +0 -1
  284. package/dist/tests/row-move.test.d.ts +0 -2
  285. package/dist/tests/row-move.test.d.ts.map +0 -1
  286. package/dist/tests/row-move.test.js +0 -220
  287. package/dist/tests/row-move.test.js.map +0 -1
  288. package/dist/tests/row-operations.test.d.ts +0 -2
  289. package/dist/tests/row-operations.test.d.ts.map +0 -1
  290. package/dist/tests/row-operations.test.js +0 -259
  291. package/dist/tests/row-operations.test.js.map +0 -1
  292. package/dist/tests/scheduled-evaluate-wait.test.d.ts +0 -2
  293. package/dist/tests/scheduled-evaluate-wait.test.d.ts.map +0 -1
  294. package/dist/tests/scheduled-evaluate-wait.test.js +0 -68
  295. package/dist/tests/scheduled-evaluate-wait.test.js.map +0 -1
  296. package/dist/tests/url.test.d.ts +0 -2
  297. package/dist/tests/url.test.d.ts.map +0 -1
  298. package/dist/tests/url.test.js +0 -150
  299. package/dist/tests/url.test.js.map +0 -1
  300. package/dist/vite.config.d.ts +0 -3
  301. package/dist/vite.config.d.ts.map +0 -1
  302. package/dist/vite.config.js +0 -28
  303. package/dist/vite.config.js.map +0 -1
  304. package/dist/vitest.config.d.ts +0 -3
  305. package/dist/vitest.config.d.ts.map +0 -1
  306. package/dist/vitest.config.js +0 -19
  307. package/dist/vitest.config.js.map +0 -1
@@ -1,260 +0,0 @@
1
- /**
2
- * @fileoverview 式評価エンジン
3
- *
4
- * 式評価システムです。
5
- * XSS攻撃やコードインジェクションを防ぐためのセキュリティ機能と、
6
- * パフォーマンス向上のためのキャッシュ機能を提供します。
7
- */
8
- /**
9
- * 式評価結果の詳細です。
10
- */
11
- export interface ExpressionEvaluationDetail {
12
- /** 評価結果 */
13
- value: unknown;
14
- /** 未解決参照が含まれていたかどうか */
15
- unresolvedReference: boolean;
16
- }
17
- export default class Expression {
18
- /** 未宣言識別子の自動補完を試みる最大回数 */
19
- private static readonly MAX_IDENTIFIER_RECOVERY_COUNT;
20
- /** 組み込みヘルパーを公開する予約名前空間 */
21
- private static readonly BUILTIN_NAMESPACE;
22
- /**
23
- * 式スコープへ注入する組み込みヘルパー。公開 API の凍結オブジェクトをそのまま
24
- * 注入すると、評価時の Proxy ラップが「read-only プロパティに別値を返せない」と
25
- * いう Proxy 不変条件に違反するため、非凍結の浅いコピーを用いる。
26
- */
27
- private static readonly BUILTIN_HELPERS;
28
- /**
29
- * 式が予約名前空間 `haori` を独立した識別子として参照しているか判定する正規表現。
30
- * `foo.haori` のようなプロパティアクセスは対象外とする。
31
- */
32
- private static readonly BUILTIN_REFERENCE_PATTERN;
33
- /** 危険値チェック結果の短命キャッシュ */
34
- private static forbiddenBindingValueCache;
35
- /** 危険値チェックキャッシュのクリア予約済みフラグ */
36
- private static forbiddenBindingValueCacheResetScheduled;
37
- /** Haoriで禁止すべき識別子一覧(eval と arguments は strict モードで無効化) */
38
- private static readonly FORBIDDEN_NAMES;
39
- /** strict モードで禁止される識別子 */
40
- private static readonly STRICT_FORBIDDEN_NAMES;
41
- /** 明示バインド時のみ利用を許可する衝突名 */
42
- private static readonly REBINDABLE_FORBIDDEN_NAMES;
43
- /** バインド識別子としては拒否する名前 */
44
- private static readonly FORBIDDEN_BINDING_NAMES;
45
- /**
46
- * 明示バインド内に持ち込まれてはならない危険値を返します。
47
- *
48
- * @returns 危険値の配列
49
- */
50
- private static getForbiddenBindingValues;
51
- /**
52
- * 現在の評価サイクルで利用する危険値集合を返します。
53
- *
54
- * @returns 危険値の集合
55
- */
56
- private static getForbiddenBindingValueSet;
57
- /**
58
- * 危険値チェック用の短命キャッシュを次の microtask で破棄します。
59
- */
60
- private static scheduleForbiddenBindingValueCacheReset;
61
- /** プロパティアクセスで拒否する名前 */
62
- private static readonly FORBIDDEN_PROPERTY_NAMES;
63
- /** object literal のプロパティ定義で前置修飾子として扱う識別子 */
64
- private static readonly OBJECT_PROPERTY_MODIFIERS;
65
- /** 式構文として許可しない予約語 */
66
- private static readonly DISALLOWED_KEYWORDS;
67
- /** 式 → 評価関数のグローバルキャッシュ */
68
- private static readonly EXPRESSION_CACHE;
69
- /**
70
- * 現在のバインド識別子に含まれない禁止グローバルを遮断するコードを生成します。
71
- *
72
- * @param bindKeys 現在の式で利用するバインド識別子一覧
73
- * @returns 評価前に挿入する初期化コード
74
- */
75
- private static buildAssignments;
76
- /**
77
- * 式の中で「使用できない(ブロックされた)グローバル識別子」を参照しているものを
78
- * 検出します。`Object` などは評価時に `undefined` へ遮断されるため、`Object.assign`
79
- * のように使うと原因の分かりにくい `TypeError` になります。エラー時のヒント表示に
80
- * 用います。プロパティアクセス(`foo.Object`)は対象外です。
81
- *
82
- * @param expression 評価対象の式
83
- * @returns 式が参照しているブロック済み識別子の一覧
84
- */
85
- private static detectForbiddenIdentifiers;
86
- /**
87
- * 式を評価します。
88
- *
89
- * @param expression 評価する式文字列
90
- * @param bindedValue バインドされた値のオブジェクト
91
- */
92
- static evaluate(expression: string, bindedValues?: Record<string, unknown>): unknown;
93
- /**
94
- * 式を評価し、未解決参照の有無を含む詳細結果を返します。
95
- *
96
- * @param expression 評価する式文字列
97
- * @param bindedValues バインドされた値のオブジェクト
98
- * @returns 評価結果と未解決参照の有無
99
- */
100
- static evaluateDetailed(expression: string, bindedValues?: Record<string, unknown>): ExpressionEvaluationDetail;
101
- /**
102
- * 現在のバインド集合で evaluator を取得または生成します。
103
- *
104
- * @param expression 評価する式
105
- * @param bindedValues バインドされた値のオブジェクト
106
- * @returns evaluator 準備結果
107
- */
108
- private static prepareEvaluator;
109
- /**
110
- * ReferenceError から未宣言識別子名を抽出します。
111
- *
112
- * @param error 発生した ReferenceError
113
- * @returns 識別子名。抽出できない場合は null
114
- */
115
- private static extractMissingIdentifier;
116
- /**
117
- * 未宣言識別子を undefined バインドとして補完可能かを返します。
118
- *
119
- * @param identifier 識別子名
120
- * @param bindedValues 現在のバインド値
121
- * @returns 補完可能なら true
122
- */
123
- private static canRecoverMissingIdentifier;
124
- /**
125
- * 未宣言識別子の補完を試みてよい式かを返します。
126
- *
127
- * @param expression 評価する式
128
- * @returns 補完を試みてよい場合は true
129
- */
130
- private static canAttemptMissingIdentifierRecovery;
131
- /**
132
- * 式にevalや危険な構文が含まれているかチェックします。
133
- *
134
- * @param expression チェック対象の式文字列
135
- * @return 危険なパターンが含まれている場合はtrue
136
- */
137
- protected static containsDangerousPatterns(expression: string): boolean;
138
- /**
139
- * 式の中で使用されている「使用できないキーワード」を検出します。
140
- * 文字列リテラルやプロパティ名は対象外とするため、トークナイザを用いて
141
- * 識別子トークンのみを判定します。エラー時のヒント表示に使用します。
142
- *
143
- * @param expression 検査対象の式
144
- * @returns 式に現れた使用できないキーワードの一覧(重複なし、出現順)
145
- */
146
- private static detectDisallowedKeywords;
147
- /**
148
- * 許可する式構文かどうかを検証します。
149
- *
150
- * @param expression 検証対象の式
151
- * @returns 許可する構文であればtrue
152
- */
153
- private static hasAllowedSyntax;
154
- /**
155
- * 式をトークン列に分解します。
156
- *
157
- * @param expression 評価前に検証する式
158
- * @returns 分解結果。未対応構文を含む場合はnull
159
- */
160
- private static tokenizeExpression;
161
- /**
162
- * 文字列リテラルを読み取ります。
163
- *
164
- * @param expression 式全体
165
- * @param start 開始位置
166
- * @returns トークンと次の位置
167
- */
168
- private static readStringToken;
169
- /**
170
- * 数値リテラルを読み取ります。
171
- *
172
- * @param expression 式全体
173
- * @param start 開始位置
174
- * @returns トークンと次の位置
175
- */
176
- private static readNumberToken;
177
- /**
178
- * 識別子を読み取ります。
179
- *
180
- * @param expression 式全体
181
- * @param start 開始位置
182
- * @returns トークンと次の位置
183
- */
184
- private static readIdentifierToken;
185
- /**
186
- * 角括弧がメンバーアクセスかどうかを判定します。
187
- *
188
- * @param previous 直前のトークン
189
- * @returns メンバーアクセスであればtrue
190
- */
191
- private static startsMemberAccess;
192
- /**
193
- * object literal 内で次のトークンがキー位置かどうかを判定します。
194
- *
195
- * @param activeGroup 現在のグループ種別
196
- * @param previous 直前のトークン
197
- * @returns object literal のキー位置であれば true
198
- */
199
- private static startsObjectKey;
200
- /**
201
- * 文字列リテラルをプレーン文字列へ変換します。
202
- *
203
- * @param literal 文字列リテラル
204
- * @returns デコード後の文字列
205
- */
206
- private static decodeStringLiteral;
207
- /**
208
- * バインド値を安全なProxyでラップします。
209
- *
210
- * @param bindedValues バインド値
211
- * @returns ラップ済みのバインド値
212
- */
213
- private static wrapBoundValues;
214
- /**
215
- * 危険なプロパティアクセスを防ぐために値を再帰的にラップします。
216
- *
217
- * @param value ラップ対象の値
218
- * @param cache 既存Proxyのキャッシュ
219
- * @returns ラップ済みの値
220
- */
221
- private static wrapBoundValue;
222
- /**
223
- * Proxy ラップ対象の値かどうかを判定します。
224
- *
225
- * @param value 判定対象
226
- * @returns ラップ対象であればtrue
227
- */
228
- private static shouldWrapValue;
229
- /**
230
- * 評価中のみ prototype 系プロパティへの生アクセスを抑止します。
231
- *
232
- * @param callback 実行する処理
233
- * @returns 処理結果
234
- */
235
- private static withBlockedPropertyAccess;
236
- /**
237
- * イテレータ互換オブジェクトかどうかを判定します。
238
- *
239
- * @param value 判定対象
240
- * @returns イテレータ互換であればtrue
241
- */
242
- private static isIteratorLike;
243
- /**
244
- * トップレベルのバインド識別子に拒否対象名が含まれていないかを判定します。
245
- * ネストしたオブジェクトのプロパティ名は識別子として評価されないため、ここでは拒否しません。
246
- *
247
- * @param obj チェック対象のオブジェクト
248
- * @return 禁止識別子が含まれていればtrue
249
- */
250
- protected static containsForbiddenKeys(obj: unknown): boolean;
251
- /**
252
- * バインド値に危険なホストオブジェクトやグローバル関数が含まれていないかを再帰的に判定します。
253
- *
254
- * @param obj チェック対象の値
255
- * @param seen 循環参照検出用の訪問済み集合
256
- * @return 危険値が含まれていればtrue
257
- */
258
- protected static containsForbiddenBindingValues(obj: unknown, seen?: WeakSet<object>, forbiddenBindingValues?: ReadonlySet<unknown>): boolean;
259
- }
260
- //# sourceMappingURL=expression.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../src/expression.ts"],"names":[],"mappings":"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"}