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.
- package/README.ja.md +1 -1
- package/README.md +1 -1
- package/dist/haori.cjs.js +10 -10
- package/dist/haori.es.js +191 -165
- package/dist/haori.iife.js +10 -10
- package/dist/index.d.ts +1 -1
- package/package.json +11 -3
- package/dist/haori.cjs.js.map +0 -1
- package/dist/haori.es.js.map +0 -1
- package/dist/haori.iife.js.map +0 -1
- package/dist/package.json +0 -70
- package/dist/src/builtins.d.ts +0 -100
- package/dist/src/builtins.d.ts.map +0 -1
- package/dist/src/builtins.js +0 -194
- package/dist/src/builtins.js.map +0 -1
- package/dist/src/core.d.ts +0 -505
- package/dist/src/core.d.ts.map +0 -1
- package/dist/src/core.js +0 -1817
- package/dist/src/core.js.map +0 -1
- package/dist/src/dev.d.ts +0 -35
- package/dist/src/dev.d.ts.map +0 -1
- package/dist/src/dev.js +0 -44
- package/dist/src/dev.js.map +0 -1
- package/dist/src/env.d.ts +0 -43
- package/dist/src/env.d.ts.map +0 -1
- package/dist/src/env.js +0 -108
- package/dist/src/env.js.map +0 -1
- package/dist/src/event.d.ts +0 -171
- package/dist/src/event.d.ts.map +0 -1
- package/dist/src/event.js +0 -235
- package/dist/src/event.js.map +0 -1
- package/dist/src/event_dispatcher.d.ts +0 -66
- package/dist/src/event_dispatcher.d.ts.map +0 -1
- package/dist/src/event_dispatcher.js +0 -167
- package/dist/src/event_dispatcher.js.map +0 -1
- package/dist/src/expression.d.ts +0 -260
- package/dist/src/expression.d.ts.map +0 -1
- package/dist/src/expression.js +0 -975
- package/dist/src/expression.js.map +0 -1
- package/dist/src/form.d.ts +0 -148
- package/dist/src/form.d.ts.map +0 -1
- package/dist/src/form.js +0 -428
- package/dist/src/form.js.map +0 -1
- package/dist/src/fragment.d.ts +0 -621
- package/dist/src/fragment.d.ts.map +0 -1
- package/dist/src/fragment.js +0 -1963
- package/dist/src/fragment.js.map +0 -1
- package/dist/src/haori.d.ts +0 -130
- package/dist/src/haori.d.ts.map +0 -1
- package/dist/src/haori.js +0 -215
- package/dist/src/haori.js.map +0 -1
- package/dist/src/import.d.ts +0 -19
- package/dist/src/import.d.ts.map +0 -1
- package/dist/src/import.js +0 -64
- package/dist/src/import.js.map +0 -1
- package/dist/src/index.d.ts +0 -27
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -30
- package/dist/src/index.js.map +0 -1
- package/dist/src/intersect.d.ts +0 -28
- package/dist/src/intersect.d.ts.map +0 -1
- package/dist/src/intersect.js +0 -201
- package/dist/src/intersect.js.map +0 -1
- package/dist/src/log.d.ts +0 -32
- package/dist/src/log.d.ts.map +0 -1
- package/dist/src/log.js +0 -43
- package/dist/src/log.js.map +0 -1
- package/dist/src/observer.d.ts +0 -24
- package/dist/src/observer.d.ts.map +0 -1
- package/dist/src/observer.js +0 -131
- package/dist/src/observer.js.map +0 -1
- package/dist/src/procedure.d.ts +0 -447
- package/dist/src/procedure.d.ts.map +0 -1
- package/dist/src/procedure.js +0 -1921
- package/dist/src/procedure.js.map +0 -1
- package/dist/src/queue.d.ts +0 -35
- package/dist/src/queue.d.ts.map +0 -1
- package/dist/src/queue.js +0 -202
- package/dist/src/queue.js.map +0 -1
- package/dist/src/url.d.ts +0 -14
- package/dist/src/url.d.ts.map +0 -1
- package/dist/src/url.js +0 -22
- package/dist/src/url.js.map +0 -1
- package/dist/tests/bind-arg-own-binding.test.d.ts +0 -2
- package/dist/tests/bind-arg-own-binding.test.d.ts.map +0 -1
- package/dist/tests/bind-arg-own-binding.test.js +0 -63
- package/dist/tests/bind-arg-own-binding.test.js.map +0 -1
- package/dist/tests/bindcomplete-and-scope.test.d.ts +0 -2
- package/dist/tests/bindcomplete-and-scope.test.d.ts.map +0 -1
- package/dist/tests/bindcomplete-and-scope.test.js +0 -115
- package/dist/tests/bindcomplete-and-scope.test.js.map +0 -1
- package/dist/tests/builtins.test.d.ts +0 -2
- package/dist/tests/builtins.test.d.ts.map +0 -1
- package/dist/tests/builtins.test.js +0 -152
- package/dist/tests/builtins.test.js.map +0 -1
- package/dist/tests/click-attributes.test.d.ts +0 -2
- package/dist/tests/click-attributes.test.d.ts.map +0 -1
- package/dist/tests/click-attributes.test.js +0 -113
- package/dist/tests/click-attributes.test.js.map +0 -1
- package/dist/tests/click-no-disabled.test.d.ts +0 -2
- package/dist/tests/click-no-disabled.test.d.ts.map +0 -1
- package/dist/tests/click-no-disabled.test.js +0 -67
- package/dist/tests/click-no-disabled.test.js.map +0 -1
- package/dist/tests/core.test.d.ts +0 -5
- package/dist/tests/core.test.d.ts.map +0 -1
- package/dist/tests/core.test.js +0 -1056
- package/dist/tests/core.test.js.map +0 -1
- package/dist/tests/data-bind-arg-reeval.test.d.ts +0 -2
- package/dist/tests/data-bind-arg-reeval.test.d.ts.map +0 -1
- package/dist/tests/data-bind-arg-reeval.test.js +0 -119
- package/dist/tests/data-bind-arg-reeval.test.js.map +0 -1
- package/dist/tests/data-bind-merge.test.d.ts +0 -2
- package/dist/tests/data-bind-merge.test.d.ts.map +0 -1
- package/dist/tests/data-bind-merge.test.js +0 -86
- package/dist/tests/data-bind-merge.test.js.map +0 -1
- package/dist/tests/data-click-defer.test.d.ts +0 -2
- package/dist/tests/data-click-defer.test.d.ts.map +0 -1
- package/dist/tests/data-click-defer.test.js +0 -57
- package/dist/tests/data-click-defer.test.js.map +0 -1
- package/dist/tests/data-click-run.test.d.ts +0 -5
- package/dist/tests/data-click-run.test.d.ts.map +0 -1
- package/dist/tests/data-click-run.test.js +0 -109
- package/dist/tests/data-click-run.test.js.map +0 -1
- package/dist/tests/data-derive.test.d.ts +0 -2
- package/dist/tests/data-derive.test.d.ts.map +0 -1
- package/dist/tests/data-derive.test.js +0 -999
- package/dist/tests/data-derive.test.js.map +0 -1
- package/dist/tests/data-each-browserlike.test.d.ts +0 -2
- package/dist/tests/data-each-browserlike.test.d.ts.map +0 -1
- package/dist/tests/data-each-browserlike.test.js +0 -48
- package/dist/tests/data-each-browserlike.test.js.map +0 -1
- package/dist/tests/data-each-fragment-debug.test.d.ts +0 -2
- package/dist/tests/data-each-fragment-debug.test.d.ts.map +0 -1
- package/dist/tests/data-each-fragment-debug.test.js +0 -119
- package/dist/tests/data-each-fragment-debug.test.js.map +0 -1
- package/dist/tests/data-each-table.test.d.ts +0 -2
- package/dist/tests/data-each-table.test.d.ts.map +0 -1
- package/dist/tests/data-each-table.test.js +0 -131
- package/dist/tests/data-each-table.test.js.map +0 -1
- package/dist/tests/data-each-template-recovery.test.d.ts +0 -2
- package/dist/tests/data-each-template-recovery.test.d.ts.map +0 -1
- package/dist/tests/data-each-template-recovery.test.js +0 -87
- package/dist/tests/data-each-template-recovery.test.js.map +0 -1
- package/dist/tests/data-event-prevent.test.d.ts +0 -2
- package/dist/tests/data-event-prevent.test.d.ts.map +0 -1
- package/dist/tests/data-event-prevent.test.js +0 -76
- package/dist/tests/data-event-prevent.test.js.map +0 -1
- package/dist/tests/data-fetch-form-input-binding.test.d.ts +0 -2
- package/dist/tests/data-fetch-form-input-binding.test.d.ts.map +0 -1
- package/dist/tests/data-fetch-form-input-binding.test.js +0 -202
- package/dist/tests/data-fetch-form-input-binding.test.js.map +0 -1
- package/dist/tests/data-fetch-tbody-dom.test.d.ts +0 -2
- package/dist/tests/data-fetch-tbody-dom.test.d.ts.map +0 -1
- package/dist/tests/data-fetch-tbody-dom.test.js +0 -82
- package/dist/tests/data-fetch-tbody-dom.test.js.map +0 -1
- package/dist/tests/data-form-container.test.d.ts +0 -2
- package/dist/tests/data-form-container.test.d.ts.map +0 -1
- package/dist/tests/data-form-container.test.js +0 -88
- package/dist/tests/data-form-container.test.js.map +0 -1
- package/dist/tests/data-if-dev-diagnostics.test.d.ts +0 -2
- package/dist/tests/data-if-dev-diagnostics.test.d.ts.map +0 -1
- package/dist/tests/data-if-dev-diagnostics.test.js +0 -55
- package/dist/tests/data-if-dev-diagnostics.test.js.map +0 -1
- package/dist/tests/data-if-falsy.test.d.ts +0 -2
- package/dist/tests/data-if-falsy.test.d.ts.map +0 -1
- package/dist/tests/data-if-falsy.test.js +0 -73
- package/dist/tests/data-if-falsy.test.js.map +0 -1
- package/dist/tests/data-load-on-show.test.d.ts +0 -2
- package/dist/tests/data-load-on-show.test.d.ts.map +0 -1
- package/dist/tests/data-load-on-show.test.js +0 -98
- package/dist/tests/data-load-on-show.test.js.map +0 -1
- package/dist/tests/derive-each-render-wait.test.d.ts +0 -2
- package/dist/tests/derive-each-render-wait.test.d.ts.map +0 -1
- package/dist/tests/derive-each-render-wait.test.js +0 -90
- package/dist/tests/derive-each-render-wait.test.js.map +0 -1
- package/dist/tests/dev.test.d.ts +0 -2
- package/dist/tests/dev.test.d.ts.map +0 -1
- package/dist/tests/dev.test.js +0 -51
- package/dist/tests/dev.test.js.map +0 -1
- package/dist/tests/each-update-event.test.d.ts +0 -2
- package/dist/tests/each-update-event.test.d.ts.map +0 -1
- package/dist/tests/each-update-event.test.js +0 -83
- package/dist/tests/each-update-event.test.js.map +0 -1
- package/dist/tests/each_arg.test.d.ts +0 -2
- package/dist/tests/each_arg.test.d.ts.map +0 -1
- package/dist/tests/each_arg.test.js +0 -41
- package/dist/tests/each_arg.test.js.map +0 -1
- package/dist/tests/env.test.d.ts +0 -2
- package/dist/tests/env.test.d.ts.map +0 -1
- package/dist/tests/env.test.js +0 -124
- package/dist/tests/env.test.js.map +0 -1
- package/dist/tests/evaluation-profile.test.d.ts +0 -2
- package/dist/tests/evaluation-profile.test.d.ts.map +0 -1
- package/dist/tests/evaluation-profile.test.js +0 -92
- package/dist/tests/evaluation-profile.test.js.map +0 -1
- package/dist/tests/event.test.d.ts +0 -2
- package/dist/tests/event.test.d.ts.map +0 -1
- package/dist/tests/event.test.js +0 -300
- package/dist/tests/event.test.js.map +0 -1
- package/dist/tests/expression-disallowed-keyword-hint.test.d.ts +0 -2
- package/dist/tests/expression-disallowed-keyword-hint.test.d.ts.map +0 -1
- package/dist/tests/expression-disallowed-keyword-hint.test.js +0 -45
- package/dist/tests/expression-disallowed-keyword-hint.test.js.map +0 -1
- package/dist/tests/expression-forbidden-hint.test.d.ts +0 -2
- package/dist/tests/expression-forbidden-hint.test.d.ts.map +0 -1
- package/dist/tests/expression-forbidden-hint.test.js +0 -37
- package/dist/tests/expression-forbidden-hint.test.js.map +0 -1
- package/dist/tests/expression.test.d.ts +0 -2
- package/dist/tests/expression.test.d.ts.map +0 -1
- package/dist/tests/expression.test.js +0 -482
- package/dist/tests/expression.test.js.map +0 -1
- package/dist/tests/fetch-and-procedure-scenarios.test.d.ts +0 -2
- package/dist/tests/fetch-and-procedure-scenarios.test.d.ts.map +0 -1
- package/dist/tests/fetch-and-procedure-scenarios.test.js +0 -195
- package/dist/tests/fetch-and-procedure-scenarios.test.js.map +0 -1
- package/dist/tests/form-number-type.test.d.ts +0 -2
- package/dist/tests/form-number-type.test.d.ts.map +0 -1
- package/dist/tests/form-number-type.test.js +0 -83
- package/dist/tests/form-number-type.test.js.map +0 -1
- package/dist/tests/form.test.d.ts +0 -2
- package/dist/tests/form.test.d.ts.map +0 -1
- package/dist/tests/form.test.js +0 -636
- package/dist/tests/form.test.js.map +0 -1
- package/dist/tests/fragment.test.d.ts +0 -2
- package/dist/tests/fragment.test.d.ts.map +0 -1
- package/dist/tests/fragment.test.js +0 -284
- package/dist/tests/fragment.test.js.map +0 -1
- package/dist/tests/haori.test.d.ts +0 -2
- package/dist/tests/haori.test.d.ts.map +0 -1
- package/dist/tests/haori.test.js +0 -149
- package/dist/tests/haori.test.js.map +0 -1
- package/dist/tests/helpers/async.d.ts +0 -20
- package/dist/tests/helpers/async.d.ts.map +0 -1
- package/dist/tests/helpers/async.js +0 -35
- package/dist/tests/helpers/async.js.map +0 -1
- package/dist/tests/import.test.d.ts +0 -2
- package/dist/tests/import.test.d.ts.map +0 -1
- package/dist/tests/import.test.js +0 -148
- package/dist/tests/import.test.js.map +0 -1
- package/dist/tests/intersect.test.d.ts +0 -2
- package/dist/tests/intersect.test.d.ts.map +0 -1
- package/dist/tests/intersect.test.js +0 -173
- package/dist/tests/intersect.test.js.map +0 -1
- package/dist/tests/log.test.d.ts +0 -2
- package/dist/tests/log.test.d.ts.map +0 -1
- package/dist/tests/log.test.js +0 -58
- package/dist/tests/log.test.js.map +0 -1
- package/dist/tests/observer.test.d.ts +0 -2
- package/dist/tests/observer.test.d.ts.map +0 -1
- package/dist/tests/observer.test.js +0 -64
- package/dist/tests/observer.test.js.map +0 -1
- package/dist/tests/placeholder-resolution.test.d.ts +0 -2
- package/dist/tests/placeholder-resolution.test.d.ts.map +0 -1
- package/dist/tests/placeholder-resolution.test.js +0 -463
- package/dist/tests/placeholder-resolution.test.js.map +0 -1
- package/dist/tests/procedure-action-operations.test.d.ts +0 -2
- package/dist/tests/procedure-action-operations.test.d.ts.map +0 -1
- package/dist/tests/procedure-action-operations.test.js +0 -1140
- package/dist/tests/procedure-action-operations.test.js.map +0 -1
- package/dist/tests/procedure-bind-append.test.d.ts +0 -2
- package/dist/tests/procedure-bind-append.test.d.ts.map +0 -1
- package/dist/tests/procedure-bind-append.test.js +0 -80
- package/dist/tests/procedure-bind-append.test.js.map +0 -1
- package/dist/tests/procedure-fetch-options.test.d.ts +0 -2
- package/dist/tests/procedure-fetch-options.test.d.ts.map +0 -1
- package/dist/tests/procedure-fetch-options.test.js +0 -255
- package/dist/tests/procedure-fetch-options.test.js.map +0 -1
- package/dist/tests/procedure.test.d.ts +0 -2
- package/dist/tests/procedure.test.d.ts.map +0 -1
- package/dist/tests/procedure.test.js +0 -137
- package/dist/tests/procedure.test.js.map +0 -1
- package/dist/tests/procedure_events.test.d.ts +0 -7
- package/dist/tests/procedure_events.test.d.ts.map +0 -1
- package/dist/tests/procedure_events.test.js +0 -261
- package/dist/tests/procedure_events.test.js.map +0 -1
- package/dist/tests/render-wait.test.d.ts +0 -2
- package/dist/tests/render-wait.test.d.ts.map +0 -1
- package/dist/tests/render-wait.test.js +0 -68
- package/dist/tests/render-wait.test.js.map +0 -1
- package/dist/tests/reset_each.test.d.ts +0 -2
- package/dist/tests/reset_each.test.d.ts.map +0 -1
- package/dist/tests/reset_each.test.js +0 -215
- package/dist/tests/reset_each.test.js.map +0 -1
- package/dist/tests/row-move.test.d.ts +0 -2
- package/dist/tests/row-move.test.d.ts.map +0 -1
- package/dist/tests/row-move.test.js +0 -220
- package/dist/tests/row-move.test.js.map +0 -1
- package/dist/tests/row-operations.test.d.ts +0 -2
- package/dist/tests/row-operations.test.d.ts.map +0 -1
- package/dist/tests/row-operations.test.js +0 -259
- package/dist/tests/row-operations.test.js.map +0 -1
- package/dist/tests/scheduled-evaluate-wait.test.d.ts +0 -2
- package/dist/tests/scheduled-evaluate-wait.test.d.ts.map +0 -1
- package/dist/tests/scheduled-evaluate-wait.test.js +0 -68
- package/dist/tests/scheduled-evaluate-wait.test.js.map +0 -1
- package/dist/tests/url.test.d.ts +0 -2
- package/dist/tests/url.test.d.ts.map +0 -1
- package/dist/tests/url.test.js +0 -150
- package/dist/tests/url.test.js.map +0 -1
- package/dist/vite.config.d.ts +0 -3
- package/dist/vite.config.d.ts.map +0 -1
- package/dist/vite.config.js +0 -28
- package/dist/vite.config.js.map +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -19
- package/dist/vitest.config.js.map +0 -1
package/dist/src/expression.d.ts
DELETED
|
@@ -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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"}
|